D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
vblioqus
/
karachi777.vip
/
images
/
494334
/
65412
/
Filename :
customizer.tar
back
Copy
class-theme-customizer.php 0000644 00000242174 15151531424 0011677 0 ustar 00 <?php /** * Class for the Customizer * * @package Kadence */ namespace Kadence; use Kadence_Control_Builder; use Kadence_Control_Builder_Tabs; use Customizer_Sanitize; use WP_Customize_Control; use LearnDash_Settings_Section; use Kadence\WebFont_Loader; use function Kadence\kadence; use function add_action; use function get_template_part; use function add_filter; use function wp_enqueue_style; use function get_template_directory; use function wp_style_add_data; use function get_theme_file_uri; use function get_theme_file_path; use function wp_styles; use function esc_attr; use function esc_url; use function wp_style_is; use function _doing_it_wrong; use function wp_print_styles; use function post_password_required; use function get_option; use function comments_open; use function get_comments_number; use function apply_filters; use function add_query_arg; use function wp_add_inline_style; if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class for Customizer * * @category class */ class Theme_Customizer { /** * Instance Control. * * @var null */ protected static $instance = null; /** * Holds theme settings * * @var the theme settings array. */ public static $settings = array(); /** * Panels. * * @var null */ private static $panels = null; /** * Sections. * * @var null */ private static $sections = null; /** * Sections added. * * @var array */ private static $sections_added = array(); /** * Panels added. * * @var array */ private static $panels_added = array(); /** * Capability for customizer access. * * @var null */ private static $capability = null; /** * Context for customizer controls. * * @var null */ private static $contexts = array(); /** * Live Preview Control Data for customizer controls. * * @var null */ private static $live_control = array(); /** * Choices Data for customizer controls. * * @var null */ private static $choices = array(); /** * Holds theme settings array sections. * * @var the theme settings sections. */ public static $settings_sections = array( 'general-layout', 'general-colors', 'general-button', 'secondary-button', 'outline-button', 'general-typography', 'general-social', 'general-scroll-to-top', 'general-performance', 'general-image', 'general-breadcrumb', 'general-sidebar', 'general-comments', 'header-builder', 'header-logo', 'header-navigation', 'header-secondary-navigation', 'header-dropdown', 'transparent-header', 'header-trigger', 'header-sticky', 'header-mobile-nav', 'header-mobile-button', 'header-mobile-html', 'header-main', 'header-top', 'header-bottom', 'header-popup', 'header-html', 'header-button', 'header-social', 'header-mobile-social', 'header-search', 'page-layout', 'footer-builder', 'footer-middle', 'footer-top', 'footer-bottom', 'footer-widget1', 'footer-widget2', 'footer-widget3', 'footer-widget4', 'footer-widget5', 'footer-widget6', 'footer-html', 'footer-social', 'footer-navigation', 'post-layout', 'post-archive-layout', 'custom-layout', 'search-layout', '404-layout', ); /** * Instance Control. */ public static function get_instance() { if ( is_null( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Constructor function. */ public function __construct() { add_action( 'customize_register', array( $this, 'create_settings_array' ), 1 ); add_action( 'customize_register', array( $this, 'register_controls' ) ); add_action( 'customize_register', array( $this, 'register_settings' ) ); add_action( 'customize_register', array( $this, 'add_controls' ) ); add_action( 'customize_register', array( $this, 'override_defaults' ), 20 ); add_action( 'customize_register', array( $this, 'add_woocommerce_choices' ), 20 ); add_action( 'customize_register', array( $this, 'upgrade_section' ), 15 ); add_action( 'customize_section_active', array( $this, 'active_footer_widgets' ), 20, 2 ); add_filter( 'customize_controls_enqueue_scripts', array( $this, 'convert_beaver_custom_fonts' ), 5 ); add_filter( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_customizer_scripts' ) ); add_action( 'customize_preview_init', array( $this, 'action_enqueue_customize_preview_scripts' ) ); add_filter( 'customizer_widgets_section_args', array( $this, 'customizer_custom_widget_areas' ), 10, 3 ); add_action( 'wp_ajax_kadence_flush_fonts_folder', array( $this, 'ajax_delete_fonts_folder' ) ); } /** * Add a filter that matches beaver builder custom font filter. */ public function convert_beaver_custom_fonts() { $beaver_fonts = apply_filters( 'kadence_theme_add_custom_fonts', array() ); if ( ! empty( $beaver_fonts ) && is_array( $beaver_fonts ) ) { add_filter( 'kadence_theme_custom_fonts', function( $custom_fonts ) use( $beaver_fonts ) { foreach ( $beaver_fonts as $font_name => $args ) { $weights_arg = array(); if ( is_array( $args ) && isset( $args['weights'] ) && is_array( $args['weights'] ) ) { $weights_arg = $args['weights']; } $font_slug = ( is_array( $args ) && isset( $args['fallback'] ) && ! empty( $args['fallback'] ) ? '"' . $font_name . '", ' . $args['fallback'] : $font_name ); $custom_fonts[ $font_slug ] = array( 'v' => $weights_arg, ); } return $custom_fonts; }, 10 ); } } /** * Reset font folder * * @access public * @return void */ public function ajax_delete_fonts_folder() { // Check request. if ( ! check_ajax_referer( 'kadence-local-fonts-flush', 'nonce', false ) ) { wp_send_json_error( 'invalid_nonce' ); } if ( ! current_user_can( 'edit_theme_options' ) ) { wp_send_json_error( 'invalid_permissions' ); } if ( class_exists( '\Kadence\WebFont_Loader' ) ) { $font_loader = new \Kadence\WebFont_Loader( '' ); $removed = $font_loader->delete_fonts_folder(); if ( ! $removed ) { wp_send_json_error( 'failed_to_flush' ); } wp_send_json_success(); } wp_send_json_error( 'no_font_loader' ); } /** * Add Woocommerce Cart option to header. */ public function add_woocommerce_choices() { if ( class_exists( 'woocommerce' ) ) { $options = self::$choices['header_desktop_items']; $options['cart'] = array( 'name' => esc_html__( 'Cart', 'kadence' ), 'section' => 'kadence_customizer_cart', ); self::$choices['header_desktop_items'] = $options; // Mobile Cart. $options = self::$choices['header_mobile_items']; $options['mobile-cart'] = array( 'name' => esc_html__( 'Cart', 'kadence' ), 'section' => 'kadence_customizer_mobile_cart', ); self::$choices['header_mobile_items'] = $options; } } /** * Filter footer widget areas. * * @param array $section_args the widget sections args. * @param string $section_id the widget sections id. * @param string $sidebar_id the widget area id. */ public function customizer_custom_widget_areas( $section_args, $section_id, $sidebar_id ) { if ( 'footer1' === $sidebar_id || 'footer2' === $sidebar_id || 'footer3' === $sidebar_id || 'footer4' === $sidebar_id || 'footer5' === $sidebar_id || 'footer6' === $sidebar_id ) { $section_args['panel'] = 'kadence_customizer_footer'; } return $section_args; } /** * Add settings * * @access public * @param object $wp_customize the customizer object. * @return void */ public function create_settings_array( $wp_customize ) { // Load Sanitize Class. require_once get_template_directory() . '/inc/customizer/class-customizer-sanitize.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound // Load Settings files. foreach ( self::$settings_sections as $key ) { require_once get_template_directory() . '/inc/customizer/options/' . $key . '-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } if ( class_exists( 'woocommerce' ) ) { require_once get_template_directory() . '/inc/customizer/options/header-cart-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/header-mobile-cart-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/product-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/product-archive-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/my-account-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/woo-store-notice-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } if ( class_exists( 'SFWD_LMS' ) ) { require_once get_template_directory() . '/inc/customizer/options/learndash-course-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/learndash-groups-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/learndash-essays-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/learndash-course-archive-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound if ( class_exists( 'LearnDash_Settings_Section' ) ) { $in_focus_mode = \LearnDash_Settings_Section::get_section_setting( 'LearnDash_Settings_Theme_LD30', 'focus_mode_enabled' ); if ( ! $in_focus_mode ) { require_once get_template_directory() . '/inc/customizer/options/learndash-lesson-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/learndash-topic-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/learndash-quiz-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } } if ( defined( 'LEARNDASH_COURSE_GRID_VERSION' ) && version_compare( LEARNDASH_COURSE_GRID_VERSION, '2.0.0', '<' ) ) { require_once get_template_directory() . '/inc/customizer/options/learndash-grid-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } } if ( class_exists( 'LifterLMS' ) ) { require_once get_template_directory() . '/inc/customizer/options/lifter-course-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/lifter-course-archive-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/lifter-lesson-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/lifter-quiz-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/lifter-member-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/lifter-member-archive-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/lifter-dashboard-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } if ( class_exists( 'TUTOR\Tutor' ) ) { require_once get_template_directory() . '/inc/customizer/options/tutor-course-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/tutor-course-archive-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } if ( class_exists( 'BBPress' ) ) { require_once get_template_directory() . '/inc/customizer/options/forum-archive-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/forum-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_template_directory() . '/inc/customizer/options/topic-layout-options.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } if ( defined( 'TRIBE_EVENTS_FILE' ) ) { require_once get_template_directory() . '/inc/customizer/options/tec-event-layout-options.php'; // phpcs:ignore WPThemeReview. require_once get_template_directory() . '/inc/customizer/options/tec-event-archive-layout-options.php'; // phpcs:ignore WPThemeReview. } } /** * Overide default settings * * @access public * @param object $wp_customize the customizer object. * @return void */ public function override_defaults( $wp_customize ) { /** * Override Settings */ $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; /** * Move Site Identity */ $wp_customize->get_control( 'site_icon' )->section = 'kadence_customizer_site_identity'; /** * Override Controls Priority */ $wp_customize->get_control( 'custom_logo' )->priority = 4; $wp_customize->get_control( 'blogname' )->priority = 7; $wp_customize->get_control( 'blogdescription' )->priority = 10; /** * Override Post Message */ $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; if ( isset( $wp_customize->selective_refresh ) ) { $wp_customize->selective_refresh->add_partial( 'blogname', array( 'selector' => '.site-title', 'render_callback' => function() { bloginfo( 'name' ); }, ) ); $wp_customize->selective_refresh->add_partial( 'blogdescription', array( 'selector' => '.site-description', 'render_callback' => function() { bloginfo( 'description' ); }, ) ); $wp_customize->selective_refresh->add_partial( 'custom_logo', array( 'selector' => '.site-branding', 'container_inclusive' => true, 'render_callback' => 'Kadence\site_branding', ) ); } if ( ! empty( $opt_name_key = apply_filters( 'kadence_settings_key_custom_mapping', '', 'custom_logo' ) ) ) { $wp_customize->remove_control( 'custom_logo' ); $id = $opt_name_key . '[custom_logo]'; $wp_customize->add_setting( $id, array( 'type' => 'option', 'transport' => 'postMessage', 'capability' => self::get_capability(), 'default' => isset( $setting['default'] ) && $control_class !== 'Kadence_Control_Background' ? $setting['default'] : '', 'sanitize_callback' => array( 'Kadence\Customizer_Sanitize', 'kadence_sanitize_option' ), ) ); $control_config = array( 'settings' => $id, 'section' => 'title_tagline', 'capability' => self::get_capability(), 'priority' => 4, 'label' => esc_html__( 'Logo', 'kadence' ), 'mime_type' => 'image', 'active_callback' => '__return_true', ); $wp_customize->add_control( new \WP_Customize_Media_Control( $wp_customize, $id, $control_config ) ); $wp_customize->selective_refresh->add_partial( $id, array( 'selector' => '.site-branding', 'container_inclusive' => true, 'render_callback' => 'Kadence\site_branding', ) ); $general_tab = array( array( 'setting' => '__current_tab', 'value' => 'general', ), ); self::$contexts[$id] = $general_tab; } /** * Add Tab Conditionals */ $general_tab = array( array( 'setting' => '__current_tab', 'value' => 'general', ), ); self::$contexts['custom_logo'] = $general_tab; self::$contexts['blogname'] = $general_tab; self::$contexts['blogdescription'] = $general_tab; $palette_live = array( array( 'type' => 'palette', 'selector' => ':root', 'property' => 'global-palette', 'pattern' => '$', 'key' => 'palette', ), ); self::$live_control['kadence_global_palette'] = $palette_live; } /** * Add Controls * * @access public * @param object $wp_customize the customizer object. * @return void */ public function register_controls( $wp_customize ) { $path = get_template_directory() . '/inc/customizer/custom-controls/'; $react_path = get_template_directory() . '/inc/customizer/react/'; // Register the custom control type. require_once $path . 'class-kadence-control-blank.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-color.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-range.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-switch.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-radio-icon.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-multi-radio-icon.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-builder.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-available.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-color-palette.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-background.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-border.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-borders.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-typography.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-title.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-focus-button.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-color-link.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-text.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-textarea.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-measure.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-editor.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-sorter.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-social.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-contact.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-check-icon.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-select.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-row.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-tab.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once $react_path . 'class-kadence-control-shadow.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } /** * Add Upgrade Section * * @access public * @param object $wp_customize the customizer object. * @return void */ public function upgrade_section( $wp_customize ) { if ( ! class_exists( 'Kadence_Theme_Pro' ) ) { $path = get_template_directory() . '/inc/customizer/custom-controls/'; require_once $path . 'class-kadence-section-pro.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound $wp_customize->register_section_type( \Kadence_Section_Pro::class ); $wp_customize->add_section( new \Kadence_Section_Pro( $wp_customize, 'kadence_pro_upgrade', array( 'title' => esc_html__( 'More Options Available in Kadence Pro', 'kadence' ), 'pro_link' => esc_url( \Kadence\kadence()->get_pro_url( 'https://www.kadencewp.com/kadence-theme/premium/', 'https://www.kadencewp.com/kadence-theme/premium/', 'in-app', 'theme-customizer' ) ), 'priority' => 1, ) ) ); $wp_customize->add_control( new \Kadence_Control_Blank( $wp_customize, 'pro-notice', array( 'label' => '', 'section' => 'kadence_pro_upgrade', 'settings' => array(), 'priority' => 0, ) ) ); } } /** * Adds Settings to settings array. * * @param array $new_settings an array of settings. */ public static function add_settings( $new_settings ) { self::$settings = array_merge( $new_settings, self::$settings ); } /** * Get header customizer panels * * @access public * @return array */ public static function get_panels() { // Define panels. if ( is_null( self::$panels ) ) { $panels = array( 'design' => array( 'title' => __( 'Colors & Fonts', 'kadence' ), 'priority' => 18, ), 'header' => array( 'title' => __( 'Header', 'kadence' ), 'priority' => 20, ), 'footer' => array( 'title' => __( 'Footer', 'kadence' ), 'priority' => 22, ), 'general' => array( 'title' => __( 'General', 'kadence' ), 'priority' => 23, ), 'all_posts' => array( 'title' => __( 'Posts/Pages Layout', 'kadence' ), 'priority' => 24, ), ); if ( class_exists( 'SFWD_LMS' ) ) { $extra_learn['learndash'] = array( 'title' => __( 'LearnDash', 'kadence' ), 'priority' => 25, ); $panels = array_merge( $panels, $extra_learn ); } if ( class_exists( 'LifterLMS' ) ) { $extra_lifter['lifterlms'] = array( 'title' => __( 'LifterLMS', 'kadence' ), 'priority' => 25, ); $panels = array_merge( $panels, $extra_lifter ); } if ( class_exists( 'BBPress' ) ) { $extra_bbpress['bbpress'] = array( 'title' => __( 'bbPress', 'kadence' ), 'priority' => 25, ); $panels = array_merge( $panels, $extra_bbpress ); } if ( class_exists( 'TUTOR\Tutor' ) ) { $extra_tutor['tutorlms'] = array( 'title' => __( 'TutorLMS', 'kadence' ), 'priority' => 25, ); $panels = array_merge( $panels, $extra_tutor ); } self::$panels = $panels; } // Return panels. return self::$panels; } /** * Get Customizer sections * * @access public * @return array */ public static function get_sections() { // Define sections. if ( is_null( self::$sections ) ) { $sections = array( 'site_identity' => array( 'title' => __( 'Site Identity', 'kadence' ), 'priority' => 25, ), 'general_layout' => array( 'title' => __( 'Layout', 'kadence' ), 'panel' => 'general', 'priority' => 7, ), 'sidebar' => array( 'title' => __( 'Sidebar', 'kadence' ), 'panel' => 'general', 'priority' => 8, ), 'sidebar_design' => array( 'title' => __( 'Sidebar Design', 'kadence' ), 'panel' => 'general', 'priority' => 8, ), 'general_colors' => array( 'title' => __( 'Colors', 'kadence' ), 'panel' => 'design', 'priority' => 9, ), 'general_buttons' => array( 'title' => __( 'Base Button Styles', 'kadence' ), 'panel' => 'design', 'priority' => 12, ), 'secondary_button' => array( 'title' => __( 'Secondary Button', 'kadence' ), 'panel' => 'design', 'priority' => 13, ), 'outline_button' => array( 'title' => __( 'Outline Button', 'kadence' ), 'panel' => 'design', 'priority' => 14, ), 'general_typography' => array( 'title' => __( 'Typography', 'kadence' ), 'panel' => 'design', 'priority' => 11, ), 'general_image' => array( 'title' => __( 'Images', 'kadence' ), 'panel' => 'general', 'priority' => 11, ), 'scroll_up' => array( 'title' => __( 'Scroll To Top', 'kadence' ), 'panel' => 'general', 'priority' => 12, ), 'scroll_up_design' => array( 'title' => __( 'Scroll To Top', 'kadence' ), 'panel' => 'general', 'priority' => 12, ), 'general_social' => array( 'title' => __( 'Social Links', 'kadence' ), 'panel' => 'general', 'priority' => 20, ), 'general_comments' => array( 'title' => __( 'Comments', 'kadence' ), 'panel' => 'general', 'priority' => 20, ), 'general_performance' => array( 'title' => __( 'Performance', 'kadence' ), 'panel' => 'general', 'priority' => 21, ), 'breadcrumbs' => array( 'title' => __( 'Breadcrumbs', 'kadence' ), 'panel' => 'general', 'priority' => 20, ), 'general_404' => array( 'title' => __( '404 Page Layout', 'kadence' ), 'panel' => 'general', 'priority' => 20, ), 'general_404_design' => array( 'title' => __( '404 Page Layout', 'kadence' ), 'panel' => 'general', 'priority' => 20, ), 'header_layout' => array( 'title' => __( 'Header Layout', 'kadence' ), 'panel' => 'header', 'priority' => 8, ), 'header_builder' => array( 'title' => __( 'Header Builder', 'kadence' ), 'panel' => 'header', 'priority' => 9, ), 'header_top' => array( 'title' => __( 'Top Row', 'kadence' ), 'panel' => 'header', 'priority' => 10, ), 'header_main' => array( 'title' => __( 'Main Row', 'kadence' ), 'panel' => 'header', 'priority' => 10, ), 'header_bottom' => array( 'title' => __( 'Bottom Row', 'kadence' ), 'panel' => 'header', 'priority' => 10, ), 'header_popup' => array( 'title' => __( 'Header Off Canvas', 'kadence' ), 'panel' => 'header', 'priority' => 10, ), 'header_popup_design' => array( 'title' => __( 'Header Off Canvas', 'kadence' ), 'panel' => 'header', 'priority' => 10, ), 'title_tagline' => array( 'title' => __( 'Site Identity', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'primary_navigation' => array( 'title' => __( 'Primary Navigation', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'secondary_navigation' => array( 'title' => __( 'Secondary Navigation', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'dropdown_navigation' => array( 'title' => __( 'Dropdown Navigation', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'dropdown_navigation_design' => array( 'title' => __( 'Dropdown Navigation', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_trigger' => array( 'title' => __( 'Mobile Trigger', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_trigger_design' => array( 'title' => __( 'Mobile Trigger', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_navigation' => array( 'title' => __( 'Mobile Navigation', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_button' => array( 'title' => __( 'Header Mobile Button', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_button_design' => array( 'title' => __( 'Header Mobile Button', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_html' => array( 'title' => __( 'Header Mobile HTML', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'header_html' => array( 'title' => __( 'HTML Editor', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'header_html_design' => array( 'title' => __( 'HTML Editor', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'cart' => array( 'title' => __( 'Header Cart', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'cart_design' => array( 'title' => __( 'Header Cart Design', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_cart' => array( 'title' => __( 'Mobile Header Cart', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_cart_design' => array( 'title' => __( 'Mobile Header Cart', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'header_button' => array( 'title' => __( 'Header Button', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'header_button_design' => array( 'title' => __( 'Header Button', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'header_social' => array( 'title' => __( 'Header Social', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'header_social_design' => array( 'title' => __( 'Header Social', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_social' => array( 'title' => __( 'Header Social', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'mobile_social_design' => array( 'title' => __( 'Header Social', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'header_search' => array( 'title' => __( 'Header Search', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'transparent_header' => array( 'title' => __( 'Transparent Header', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'transparent_header_design' => array( 'title' => __( 'Transparent Header', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'header_sticky' => array( 'title' => __( 'Sticky Header', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'header_sticky_design' => array( 'title' => __( 'Sticky Header', 'kadence' ), 'panel' => 'header', 'priority' => 20, ), 'footer_layout' => array( 'title' => __( 'Footer Layout', 'kadence' ), 'panel' => 'footer', 'priority' => 8, ), 'footer_builder' => array( 'title' => __( 'Footer Builder', 'kadence' ), 'panel' => 'footer', 'priority' => 9, ), 'footer_top' => array( 'title' => __( 'Footer Top', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'footer_top_design' => array( 'title' => __( 'Footer Top', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'footer_middle' => array( 'title' => __( 'Footer Middle', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'footer_middle_design' => array( 'title' => __( 'Footer Middle', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'footer_bottom' => array( 'title' => __( 'Footer Bottom', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'footer_bottom_design' => array( 'title' => __( 'Footer Bottom', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'footer_html' => array( 'title' => __( 'Footer Copyright HTML', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'footer_social' => array( 'title' => __( 'Footer Social', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'footer_social_design' => array( 'title' => __( 'Footer Social', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'footer_navigation' => array( 'title' => __( 'Footer Navigation', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ), 'page_layout' => array( 'title' => __( 'Page Layout', 'kadence' ), 'panel' => 'all_posts', 'priority' => 3, ), 'search' => array( 'title' => __( 'Search Results', 'kadence' ), 'priority' => 24, ), 'search_design' => array( 'title' => __( 'Search Results', 'kadence' ), 'priority' => 24, ), 'post_layout' => array( 'title' => __( 'Single Post Layout', 'kadence' ), 'panel' => 'all_posts', 'priority' => 7, ), 'post_layout_design' => array( 'title' => __( 'Single Post Layout', 'kadence' ), 'panel' => 'all_posts', 'priority' => 7, ), 'post_archive' => array( 'title' => __( 'Archive Layout', 'kadence' ), 'panel' => 'all_posts', 'priority' => 8, ), 'post_archive_design' => array( 'title' => __( 'Archive Layout', 'kadence' ), 'panel' => 'all_posts', 'priority' => 8, ), // 'custom_post' => array( // 'title' => __( 'Custom Post Types', 'kadence' ), // 'panel' => 'all_posts', // 'priority' => 24, // ), ); if ( ( defined( 'GUTENBERG_VERSION' ) && version_compare( GUTENBERG_VERSION, '10.6.2', '>' ) ) || version_compare( substr( get_bloginfo( 'version' ), 0, 3 ), '5.8', '>=' ) ) { $blocks_extra['sidebar-widgets-footer1'] = array( 'title' => __( 'Widget Footer 1 Settings', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ); $blocks_extra['sidebar-widgets-footer2'] = array( 'title' => __( 'Widget Footer 2 Settings', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ); $blocks_extra['sidebar-widgets-footer3'] = array( 'title' => __( 'Widget Footer 3 Settings', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ); $blocks_extra['sidebar-widgets-footer4'] = array( 'title' => __( 'Widget Footer 4 Settings', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ); $blocks_extra['sidebar-widgets-footer5'] = array( 'title' => __( 'Widget Footer 5 Settings', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ); $blocks_extra['sidebar-widgets-footer6'] = array( 'title' => __( 'Widget Footer 6 Settings', 'kadence' ), 'panel' => 'footer', 'priority' => 10, ); $blocks_extra['sidebar-widgets-header1'] = array( 'title' => __( 'Widget Header Settings', 'kadence' ), 'panel' => 'header', 'priority' => 10, ); $blocks_extra['sidebar-widgets-header2'] = array( 'title' => __( 'Widget Area Settings', 'kadence' ), 'panel' => 'header', 'priority' => 10, ); $blocks_extra['sidebar-widgets-product-filter'] = array( 'title' => __( 'Catalog Off Canvas Sidebar Settings', 'kadence' ), 'panel' => 'woocommerce', 'priority' => 18, ); $sections = array_merge( $sections, $blocks_extra ); } if ( class_exists( 'woocommerce' ) ) { $extra_woo['woocommerce_product_catalog'] = array( 'title' => __( 'Product Catalog', 'kadence' ), 'panel' => 'woocommerce', 'priority' => 10, ); $extra_woo['woocommerce_product_catalog_design'] = array( 'title' => __( 'Product Catalog', 'kadence' ), 'panel' => 'woocommerce', 'priority' => 10, ); $extra_woo['product_layout'] = array( 'title' => __( 'Single Product Layout', 'kadence' ), 'panel' => 'woocommerce', 'priority' => 10, ); $extra_woo['product_layout_design'] = array( 'title' => __( 'Single Product Layout', 'kadence' ), 'panel' => 'woocommerce', 'priority' => 10, ); $extra_woo['account_layout'] = array( 'title' => __( 'My Account Layout', 'kadence' ), 'panel' => 'woocommerce', 'priority' => 24, ); $extra_woo['woocommerce_store_notice_design'] = array( 'title' => __( 'Store Notice', 'kadence' ), 'panel' => 'woocommerce', 'priority' => 10, ); $sections = array_merge( $sections, $extra_woo ); } if ( class_exists( 'SFWD_LMS' ) ) { $extra_learn = array(); $extra_learn['sfwd_courses_layout'] = array( 'title' => __( 'Course Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 10, ); $extra_learn['sfwd_courses_layout_design'] = array( 'title' => __( 'Course Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 10, ); $extra_learn['sfwd_courses_archive_layout'] = array( 'title' => __( 'Course Archive Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 11, ); $extra_learn['sfwd_courses_archive_layout_design'] = array( 'title' => __( 'Course Archive Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 11, ); $extra_learn['sfwd_lesson_layout'] = array( 'title' => __( 'Lesson Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 12, ); $extra_learn['sfwd_lesson_layout_design'] = array( 'title' => __( 'Lesson Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 12, ); $extra_learn['sfwd_quiz_layout'] = array( 'title' => __( 'Quiz Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 12, ); $extra_learn['sfwd_quiz_layout_design'] = array( 'title' => __( 'Quiz Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 12, ); $extra_learn['sfwd_topic_layout'] = array( 'title' => __( 'Topic Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 12, ); $extra_learn['sfwd_topic_layout_design'] = array( 'title' => __( 'Topic Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 12, ); $extra_learn['sfwd_groups_layout'] = array( 'title' => __( 'Groups Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 11, ); $extra_learn['sfwd_groups_layout_design'] = array( 'title' => __( 'Groups Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 11, ); $extra_learn['sfwd_essays_layout'] = array( 'title' => __( 'Essay Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 11, ); $extra_learn['sfwd_essays_layout_design'] = array( 'title' => __( 'Essay Layout', 'kadence' ), 'panel' => 'learndash', 'priority' => 11, ); $extra_learn['sfwd_design'] = array( 'title' => __( 'Learn Dash Design', 'kadence' ), 'panel' => 'learndash', 'priority' => 12, ); $extra_learn['sfwd_grid_layout'] = array( 'title' => __( 'Course Grid Design', 'kadence' ), 'panel' => 'learndash', 'priority' => 12, ); $extra_learn['sfwd_grid_layout_design'] = array( 'title' => __( 'Course Grid Design', 'kadence' ), 'panel' => 'learndash', 'priority' => 12, ); $sections = array_merge( $sections, $extra_learn ); } if ( class_exists( 'BBPress' ) ) { $extra_bbpress = array(); $extra_bbpress['topic_layout'] = array( 'title' => __( 'Topic Layout', 'kadence' ), 'panel' => 'bbpress', 'priority' => 10, ); $extra_bbpress['topic_layout_design'] = array( 'title' => __( 'Topic Layout', 'kadence' ), 'panel' => 'bbpress', 'priority' => 10, 'type' => 'design-hidden', ); $extra_bbpress['forum_layout'] = array( 'title' => __( 'Forum Layout', 'kadence' ), 'panel' => 'bbpress', 'priority' => 10, ); $extra_bbpress['forum_layout_design'] = array( 'title' => __( 'Forum Layout', 'kadence' ), 'panel' => 'bbpress', 'priority' => 10, 'type' => 'design-hidden', ); $extra_bbpress['forum_archive'] = array( 'title' => __( 'Forum Archive', 'kadence' ), 'panel' => 'bbpress', 'priority' => 10, ); $extra_bbpress['forum_archive_design'] = array( 'title' => __( 'Forum Archive', 'kadence' ), 'panel' => 'bbpress', 'priority' => 10, 'type' => 'design-hidden', ); $sections = array_merge( $sections, $extra_bbpress ); } if ( class_exists( 'LifterLMS' ) ) { $extra_lifter['course_layout'] = array( 'title' => __( 'Course Layout', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 10, ); $extra_lifter['course_layout_design'] = array( 'title' => __( 'Course Layout', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 10, ); $extra_lifter['course_archive'] = array( 'title' => __( 'Course Archive', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 11, ); $extra_lifter['course_archive_design'] = array( 'title' => __( 'Course Archive', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 11, ); $extra_lifter['lesson_layout'] = array( 'title' => __( 'Lesson Layout', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 12, ); $extra_lifter['lesson_layout_design'] = array( 'title' => __( 'Lesson Layout', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 12, ); $extra_lifter['llms_quiz_layout'] = array( 'title' => __( 'Quiz Layout', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 13, ); $extra_lifter['llms_membership_layout'] = array( 'title' => __( 'Membership Layout', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 14, ); $extra_lifter['llms_membership_archive'] = array( 'title' => __( 'Membership Archive', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 15, ); $extra_lifter['llms_membership_archive_design'] = array( 'title' => __( 'Membership Archive', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 15, ); $extra_lifter['llms_dashboard_layout'] = array( 'title' => __( 'User Dashboard', 'kadence' ), 'panel' => 'lifterlms', 'priority' => 16, ); $sections = array_merge( $sections, $extra_lifter ); } if ( class_exists( 'TUTOR\Tutor' ) ) { $extra_tutor['courses_layout'] = array( 'title' => __( 'Course Layout', 'kadence' ), 'panel' => 'tutorlms', 'priority' => 10, ); $extra_tutor['courses_layout_design'] = array( 'title' => __( 'Course Layout', 'kadence' ), 'panel' => 'tutorlms', 'priority' => 10, ); $extra_tutor['courses_archive_layout'] = array( 'title' => __( 'Course Archive Layout', 'kadence' ), 'panel' => 'tutorlms', 'priority' => 11, ); $extra_tutor['courses_archive_layout_design'] = array( 'title' => __( 'Course Archive Layout', 'kadence' ), 'panel' => 'tutorlms', 'priority' => 11, ); $sections = array_merge( $sections, $extra_tutor ); } if ( defined( 'TRIBE_EVENTS_FILE' ) ) { $extra_events['tribe_events_layout'] = array( 'title' => __( 'Single Event Layout', 'kadence' ), 'panel' => 'tribe_customizer', 'priority' => 80, ); $extra_events['tribe_events_layout_design'] = array( 'title' => __( 'Single Event Layout', 'kadence' ), 'panel' => 'tribe_customizer', 'priority' => 80, ); $extra_events['tribe_events_archive'] = array( 'title' => __( 'Events Layout', 'kadence' ), 'panel' => 'tribe_customizer', 'priority' => 85, ); $sections = array_merge( $sections, $extra_events ); } $post_types = kadence()->get_post_types_objects(); $extras_post_types = array(); $add_extras = false; foreach ( $post_types as $post_type_item ) { $post_type_name = $post_type_item->name; $post_type_label = $post_type_item->label; $ignore_type = kadence()->get_post_types_to_ignore(); $panel_name = 'all_posts'; $panel_priority = 10; if ( ! in_array( $post_type_name, $ignore_type, true ) ) { if ( $post_type_name === 'ld-exam' ) { $panel_name = 'learndash'; $panel_priority = 40; } $add_extras = true; $extras_post_types[ $post_type_name . '_layout' ] = array( 'title' => $post_type_label . ' ' . __( 'Layout', 'kadence' ), 'panel' => $panel_name, 'priority' => $panel_priority, ); $extras_post_types[ $post_type_name . '_layout_design' ] = array( 'title' => $post_type_label . ' ' . __( 'Layout', 'kadence' ), 'panel' => $panel_name, 'priority' => $panel_priority, 'type' => 'design-hidden', ); if ( $post_type_name !== 'ld-exam' ) { $extras_post_types[ $post_type_name . '_archive' ] = array( 'title' => $post_type_label . ' ' . __( 'Archive', 'kadence' ), 'panel' => $panel_name, 'priority' => $panel_priority, ); $extras_post_types[ $post_type_name . '_archive_design' ] = array( 'title' => $post_type_label . ' ' . __( 'Archive', 'kadence' ), 'panel' => $panel_name, 'priority' => $panel_priority, 'type' => 'design-hidden', ); } } } if ( $add_extras ) { $extras_post_types['custom_posts_placeholder'] = array( 'title' => __( 'Custom Post Types', 'kadence' ), 'panel' => 'all_posts', 'priority' => 9, ); $final_sections = array_merge( $sections, $extras_post_types ); } else { $final_sections = $sections; } self::$sections = apply_filters( 'kadence_theme_customizer_sections', $final_sections ); } // Return sections. return self::$sections; } /** * Get Customizer Capability * * @access public * @return string */ public static function get_capability() { // Define sections. if ( is_null( self::$capability ) ) { self::$capability = apply_filters( 'kadence_theme_customizer_capability', 'manage_options' ); } // Return capability. return self::$capability; } /** * Add settings * * @access public * @param object $wp_customize the customizer object. * @return void */ public function register_settings( $wp_customize ) { // Iterate over settings. foreach ( self::$settings as $setting_key => $setting ) { if ( isset( $setting['settings'] ) && false === $setting['settings'] ) { continue; } // Define Control Class. if ( isset( $setting['control_type'] ) && ! empty( $setting['control_type'] ) ) { if ( substr( $setting['control_type'], 0, 8 ) === 'kadence_' ) { $control_class = 'Kadence_Control_' . ucfirst( str_replace( 'kadence_', '', str_replace( '_control', '', $setting['control_type'] ) ) ); } else { $control_class = 'WP_Customize_' . ucfirst( $setting['control_type'] ) . '_Control'; } } else { $control_class = 'WP_Customize_Control'; } // Define Sanitize Function. if ( isset( $setting['sanitize'] ) && ! empty( $setting['sanitize'] ) ) { if ( substr( $setting['sanitize'], 0, 8 ) === 'kadence_' ) { $sanitize_function = array( 'Kadence\Customizer_Sanitize', $setting['sanitize'] ); } else { $sanitize_function = $setting['sanitize']; } } else { $sanitize_function = array( 'Kadence\Customizer_Sanitize', 'kadence_sanitize_option' ); $sanitize_function = ''; } if ( 'option' === kadence()->get_option_type() ) { $setting_key = kadence()->get_option_name() . '[' . $setting_key . ']'; } if ( ! empty( $opt_name_key = apply_filters( 'kadence_settings_key_custom_mapping', '', $setting_key ) ) ) { $id = $opt_name_key . '[' . $setting_key . ']'; if ( isset( $setting['settings'] ) && is_array( $setting['settings'] ) ) { foreach ( $setting['settings'] as $setting_key => $id ) { $setting_id = $opt_name_key . '[' . $id . ']'; $wp_customize->add_setting( $setting_id, array( 'type' => 'option', 'default' => kadence()->default( $id ), 'transport' => isset( $setting['transport'] ) ? $setting['transport'] : 'postMessage', 'capability' => self::get_capability(), 'sanitize_callback' => $sanitize_function, ) ); } } else { $wp_customize->add_setting( $id, array( 'type' => 'option', 'transport' => isset( $setting['transport'] ) ? $setting['transport'] : 'postMessage', 'capability' => self::get_capability(), 'default' => isset( $setting['default'] ) && $control_class !== 'Kadence_Control_Background' ? $setting['default'] : '', 'sanitize_callback' => $sanitize_function, ) ); } } else { if ( isset( $setting['settings'] ) && is_array( $setting['settings'] ) ) { foreach ( $setting['settings'] as $setting_key => $id ) { if ( 'option' === kadence()->get_option_type() ) { $id = self::get_option_name() . '[' . $id . ']'; } $wp_customize->add_setting( $id, array( 'type' => kadence()->get_option_type(), 'default' => kadence()->default( $id ), 'transport' => isset( $setting['transport'] ) ? $setting['transport'] : 'postMessage', 'capability' => self::get_capability(), 'sanitize_callback' => $sanitize_function, ) ); } } else { $wp_customize->add_setting( $setting_key, array( 'type' => kadence()->get_option_type(), 'transport' => isset( $setting['transport'] ) ? $setting['transport'] : 'postMessage', 'capability' => self::get_capability(), 'default' => isset( $setting['default'] ) && $control_class !== 'Kadence_Control_Background' ? $setting['default'] : '', 'sanitize_callback' => $sanitize_function, ) ); } } } } /** * Maybe add section * * @access public * @param object $wp_customize the object. * @param array $child the child item. * @return void */ public static function maybe_add_section( $wp_customize, $child ) { // Get sections. $sections = self::get_sections(); // Check if section is set and exists. if ( ! empty( $child['section'] ) && isset( $sections[ $child['section'] ] ) ) { // Reference current section key. $section_key = $child['section']; // Check if section was not added yet. if ( ! in_array( $section_key, self::$sections_added, true ) ) { // Reference current section. $section = $sections[ $section_key ]; // Section config. $section_config = array( 'title' => $section['title'], 'priority' => ( isset( $section['priority'] ) ? $section['priority'] : 10 ), 'type' => ( isset( $section['type'] ) ? $section['type'] : 'default' ), ); // Description. if ( ! empty( $section['description'] ) ) { $section_config['description'] = $section['description']; } // Maybe add panel. self::maybe_add_panel( $wp_customize, $section ); // Maybe add section to panel. if ( ! empty( $section['panel'] ) ) { if ( 'woocommerce' === $section['panel'] ) { $section_config['panel'] = $section['panel']; } elseif ( 'tribe_customizer' === $section['panel'] ) { $section_config['panel'] = $section['panel']; } else { $section_config['panel'] = 'kadence_customizer_' . $section['panel']; } } $section_id = 'title_tagline' === $section_key || 'static_front_page' === $section_key || 'sidebar-widgets-product-filter' === $section_key || 'sidebar-widgets-header1' === $section_key || 'sidebar-widgets-header2' === $section_key || 'sidebar-widgets-footer1' === $section_key || 'sidebar-widgets-footer2' === $section_key || 'sidebar-widgets-footer3' === $section_key || 'sidebar-widgets-footer4' === $section_key || 'sidebar-widgets-footer5' === $section_key || 'sidebar-widgets-footer6' === $section_key || 'woocommerce_product_catalog_design' === $section_key || 'woocommerce_product_catalog' === $section_key || 'woocommerce_store_notice' === $section_key || 'woocommerce_store_notice_design' === $section_key ? $section_key : 'kadence_customizer_' . $section_key; // Undo widgets if using gutenberg plugin or 5.8 beta. if ( ( defined( 'GUTENBERG_VERSION' ) && version_compare( GUTENBERG_VERSION, '10.6.2', '>' ) ) || version_compare( substr( get_bloginfo( 'version' ), 0, 3 ), '5.8', '>=' ) ) { if ( 'sidebar-widgets-footer1' === $section_key || 'sidebar-widgets-footer2' === $section_key || 'sidebar-widgets-footer3' === $section_key || 'sidebar-widgets-footer4' === $section_key || 'sidebar-widgets-footer5' === $section_key || 'sidebar-widgets-footer6' === $section_key || 'sidebar-widgets-header1' === $section_key || 'sidebar-widgets-header2' === $section_key || 'sidebar-widgets-product-filter' === $section_key ) { $section_id = 'kadence_customizer_' . $section_key; } } // Register section. $wp_customize->add_section( $section_id, $section_config ); // Track which sections were added. self::$sections_added[] = $section_key; } } } /** * Maybe add panel * * @access public * @param object $wp_customize the object. * @param array $child the child item. * @return void */ public static function maybe_add_panel( $wp_customize, $child ) { // Get panels. $panels = self::get_panels(); // Check if panel is set and exists. if ( ! empty( $child['panel'] ) && isset( $panels[ $child['panel'] ] ) ) { // Reference current panel key. $panel_key = $child['panel']; // Check if panel was not added yet. if ( ! in_array( $panel_key, self::$panels_added, true ) ) { // Reference current panel. $panel = $panels[ $panel_key ]; // Panel config. $panel_config = array( 'title' => $panel['title'], 'priority' => ( isset( $panel['priority'] ) ? $panel['priority'] : 10 ), 'capability' => self::get_capability(), ); // Panel description. if ( ! empty( $panel['description'] ) ) { $panel_config['description'] = $panel['description']; } // Register panel. $wp_customize->add_panel( 'kadence_customizer_' . $panel_key, $panel_config ); // Track which panels were added. self::$panels_added[] = $panel_key; } } } /** * Add controls, sections and panels * * @access public * @param object $wp_customize the customizer object. * @return void */ public function add_controls( $wp_customize ) { // Iterate over settings. foreach ( self::$settings as $setting_key => $setting ) { // Maybe add section. self::maybe_add_section( $wp_customize, $setting ); // Maybe add panel. self::maybe_add_panel( $wp_customize, $setting ); // Maybe add context. if ( isset( $setting['context'] ) && ! empty( $setting['context'] ) ) { self::maybe_add_context( $setting_key, $setting ); } // Maybe add live changes. if ( isset( $setting['live_method'] ) && ! empty( $setting['live_method'] ) ) { if ( isset( $setting['settings'] ) && is_array( $setting['settings'] ) ) { foreach ( $setting['settings'] as $setting_item => $id ) { self::maybe_add_live( $id, $setting ); } } else { self::maybe_add_live( $setting_key, $setting ); } } // Maybe add partial. if ( isset( $setting['partial'] ) && ! empty( $setting['partial'] ) ) { self::maybe_add_partial( $wp_customize, $setting_key, $setting ); } // Maybe add choices. if ( isset( $setting['choices'] ) && ! empty( $setting['choices'] ) ) { self::maybe_add_choices( $setting_key, $setting ); } // Get control class name (none, color, upload, image). if ( isset( $setting['control_type'] ) && ! empty( $setting['control_type'] ) ) { if ( substr( $setting['control_type'], 0, 8 ) === 'kadence_' ) { $control_class = 'Kadence_Control_' . ucfirst( str_replace( 'kadence_', '', str_replace( '_control', '', $setting['control_type'] ) ) ); } else { $control_class = 'WP_Customize_' . ucfirst( $setting['control_type'] ) . '_Control'; } } else { $control_class = 'WP_Customize_Control'; } if ( isset( $setting['settings'] ) && false === $setting['settings'] ) { $control_config = array( 'settings' => array(), 'priority' => isset( $setting['priority'] ) ? $setting['priority'] : 10, ); } else { // Control configuration. $control_config = array( 'settings' => $setting_key, 'capability' => self::get_capability(), 'priority' => isset( $setting['priority'] ) ? $setting['priority'] : 10, 'active_callback' => ( isset( $setting['active_callback'] ) ? array( $this, 'active_callback' ) : '__return_true' ), ); } // Title. if ( ! empty( $setting['label'] ) ) { $control_config['label'] = $setting['label']; } // Description. if ( ! empty( $setting['description'] ) ) { $control_config['description'] = $setting['description']; } // Add control to section. if ( ! empty( $setting['section'] ) ) { $control_config['section'] = ( 'title_tagline' === $setting['section'] || 'static_front_page' === $setting['section'] || 'sidebar-widgets-product-filter' === $setting['section'] || 'sidebar-widgets-header1' === $setting['section'] || 'sidebar-widgets-header2' === $setting['section'] || 'sidebar-widgets-footer1' === $setting['section'] || 'sidebar-widgets-footer2' === $setting['section'] || 'sidebar-widgets-footer3' === $setting['section'] || 'sidebar-widgets-footer4' === $setting['section'] || 'sidebar-widgets-footer5' === $setting['section'] || 'sidebar-widgets-footer6' === $setting['section'] || 'woocommerce_product_catalog' === $setting['section'] || 'woocommerce_product_catalog_design' === $setting['section'] || 'woocommerce_store_notice' === $setting['section'] || 'woocommerce_store_notice_design' === $setting['section'] ? $setting['section'] : 'kadence_customizer_' . $setting['section'] ); // Undo widgets if using gutenberg plugin or 5.8 beta. if ( ( defined( 'GUTENBERG_VERSION' ) && version_compare( GUTENBERG_VERSION, '10.6.2', '>' ) ) || version_compare( substr( get_bloginfo( 'version' ), 0, 3 ), '5.8', '>=' ) ) { if ( 'sidebar-widgets-footer1' === $setting['section'] || 'sidebar-widgets-footer2' === $setting['section'] || 'sidebar-widgets-footer3' === $setting['section'] || 'sidebar-widgets-footer4' === $setting['section'] || 'sidebar-widgets-footer5' === $setting['section'] || 'sidebar-widgets-footer6' === $setting['section'] || 'sidebar-widgets-header1' === $setting['section'] || 'sidebar-widgets-header2' === $setting['section'] || 'sidebar-widgets-product-filter' === $setting['section'] ) { $control_config['section'] = 'kadence_customizer_' . $setting['section']; } } } // Add control to panel. if ( ! empty( $setting['panel'] ) ) { if ( 'woocommerce' === $control_config['panel'] ) { $control_config['panel'] = $setting['panel']; } elseif ( 'tribe_customizer' === $control_config['panel'] ) { $control_config['panel'] = $setting['panel']; } else { $control_config['panel'] = 'kadence_customizer_' . $setting['panel']; } } // Add custom field type. if ( ! empty( $setting['type'] ) ) { $control_config['type'] = $setting['type']; } // Add select field options. if ( ! empty( $setting['choices'] ) ) { $control_config['choices'] = $setting['choices']; } // Defaults. if ( ! empty( $setting['default'] ) ) { $control_config['default'] = $setting['default']; } // Input attributes. if ( ! empty( $setting['input_attrs'] ) ) { $control_config['input_attrs'] = $setting['input_attrs']; } // Input attributes. if ( ! empty( $setting['mime_type'] ) ) { $control_config['mime_type'] = $setting['mime_type']; } // Builder. if ( ! empty( $setting['labels'] ) ) { $control_config['labels'] = $setting['labels']; } if ( isset( $setting['settings'] ) && ! empty( $setting['settings'] ) && is_array( $setting['settings'] ) ) { $settings_array = array(); foreach ( $setting['settings'] as $s_key => $s_id ) { $settings_array[ $s_key ] = $s_id; } $control_config['settings'] = $settings_array; } if ( ! empty( $opt_name_key = apply_filters( 'kadence_settings_key_custom_mapping', '', $setting_key ) ) ) { $setting_key = $opt_name_key . '[' . $setting_key . ']'; if ( isset( $setting['settings'] ) && ! empty( $setting['settings'] ) && is_array( $setting['settings'] ) ) { $settings_array = array(); foreach ( $setting['settings'] as $s_key => $s_id ) { $settings_array[ $s_key ] = $opt_name_key . '[' . $s_id . ']'; } $control_config['settings'] = $settings_array; } else { if ( isset( $setting['settings'] ) && false === $setting['settings'] ) { $control_config['settings'] = array(); } else { $control_config['settings'] = $setting_key; } } } // Add control. $wp_customize->add_control( new $control_class( $wp_customize, $setting_key, $control_config ) ); } } /** * Call back to hide or show field. * * @access public * @param object $object the customizer object. */ public static function active_callback( $object ) { if ( ! isset( $object->setting->id ) && 'kadence_builder_control' !== $object->type ) { return true; } if ( 'kadence_builder_control' === $object->type ) { $id = str_replace( kadence()->get_option_name() . '_', '', $object->id ); } else { $opt_name = explode( '[', $object->setting->id ); $opt_name = $opt_name[0]; $id = str_replace( $opt_name . '[', '', str_replace( ']', '', $object->setting->id ) ); } $settings = self::$settings; if ( ! isset( $settings[ $id ] ) ) { return true; } $show = true; if ( ! isset( $settings[ $id ]['active_callback'][0] ) && 3 === count( $settings[ $id ]['active_callback'] ) ) { $field_id = $settings[ $id ]['active_callback']['id']; $compare = $settings[ $id ]['active_callback']['compare']; $value = $settings[ $id ]['active_callback']['value']; $field_value = kadence()->option( $field_id ); $show = self::active_callback_compare( $compare, $value, $field_value ); } elseif ( is_array( $settings[ $id ]['active_callback'][0] ) ) { foreach ( $settings[ $id ]['active_callback'] as $required ) { $field_id = $required['id']; $compare = $required['compare']; $value = $required['value']; $field_value = kadence()->option( $field_id ); $show = self::active_callback_compare( $compare, $value, $field_value ); if ( ! $show ) { return false; } } } return $show; } /** * Call back to compare. * * @access public * @param string $compare the compare item. * @param string $value the first item. * @param string $field_value the second item. */ public static function active_callback_compare( $compare, $value, $field_value ) { $show = true; switch ( $compare ) { case '==': case '=': case 'equals': case 'equal': if ( is_array( $value ) ) { foreach ( $value as $sub_value ) { if ( $field_value === $sub_value ) { $show = true; break; } else { $show = false; } } } else { $show = ( $field_value === $value ) ? true : false; } break; case '!=': case 'not equal': $show = ( $field_value !== $value ) ? true : false; break; } return $show; } /** * Get Builder Choices. * * @access public */ public static function get_builder_choices() { return apply_filters( 'kadence_theme_customizer_control_choices', self::$choices ); } /** * Enqueue Customizer scripts * * @access public * @return void */ public function enqueue_customizer_scripts() { // Make it possible to prevent gutenberg from loading in the customizer for plugins that are using the customizer for other purposes. if ( isset( $_GET['wpum_email_customizer'] ) || apply_filters( 'prevent_kadence_customizer_scripts', false ) ) { return; } $palette_presets = '{"basic":[{"color":"#2B6CB0"},{"color":"#215387"},{"color":"#222222"},{"color":"#3B3B3B"},{"color":"#515151"},{"color":"#626262"},{"color":"#E1E1E1"},{"color":"#F7F7F7"},{"color":"#ffffff"}],"palette":[{"color":"#255FDD"},{"color":"#00F2FF"},{"color":"#1A202C"},{"color":"#2D3748"},{"color":"#4A5568"},{"color":"#718096"},{"color":"#EDF2F7"},{"color":"#F7FAFC"},{"color":"#ffffff"}],"first-palette":[{"color":"#3296ff"},{"color":"#003174"},{"color":"#ffffff"},{"color":"#f7fafc"},{"color":"#edf2f7"},{"color":"#cbd2d9"},{"color":"#1A202C"},{"color":"#252c39"},{"color":"#2D3748"}],"orange":[{"color":"#e47b02"},{"color":"#ed8f0c"},{"color":"#1f2933"},{"color":"#3e4c59"},{"color":"#52606d"},{"color":"#7b8794"},{"color":"#f3f4f7"},{"color":"#f9f9fb"},{"color":"#ffffff"}],"third-palette":[{"color":"#E21E51"},{"color":"#4d40ff"},{"color":"#040037"},{"color":"#032075"},{"color":"#514d7c"},{"color":"#666699"},{"color":"#deddeb"},{"color":"#efeff5"},{"color":"#f8f9fa"}],"forth-palette":[{"color":"#E21E51"},{"color":"#4d40ff"},{"color":"#f8f9fa"},{"color":"#efeff5"},{"color":"#deddeb"},{"color":"#c3c2d6"},{"color":"#040037"},{"color":"#221e5b"},{"color":"#514D7C"}],"fifth-palette":[{"color":"#049f82"},{"color":"#008f72"},{"color":"#222222"},{"color":"#353535"},{"color":"#454545"},{"color":"#676767"},{"color":"#eeeeee"},{"color":"#f7f7f7"},{"color":"#ffffff"}],"sixth-palette":[{"color":"#dd6b20"},{"color":"#cf3033"},{"color":"#27241d"},{"color":"#423d33"},{"color":"#504a40"},{"color":"#625d52"},{"color":"#e8e6e1"},{"color":"#faf9f7"},{"color":"#ffffff"}]}'; $fonts = array( array( 'name' => 'Montserrat & Source Sans Pro', 'hfont' => 'Montserrat', 'bfont' => 'Source Sans Pro', 'hv' => array( '100', '100italic', '200', '200italic', '300', '300italic', 'regular', 'italic', '500', '500italic', '600', '600italic', '700', '700italic', '800', '800italic', '900', '900italic' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/montserrat.jpg', ), array( 'name' => 'Libre Franklin & Libre Baskerville', 'hfont' => 'Libre Franklin', 'bfont' => 'Libre Baskerville', 'hv' => array( '100', '100italic', '200', '200italic', '300', '300italic', 'regular', 'italic', '500', '500italic', '600', '600italic', '700', '700italic', '800', '800italic', '900', '900italic' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/libre.jpg', ), array( 'name' => 'Proza Libre & Open Sans', 'hfont' => 'Proza Libre', 'bfont' => 'Open Sans', 'hv' => array( 'regular', 'italic', '500', '500italic', '600', '600italic', '700', '700italic', '800', '800italic' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/proza.jpg', ), array( 'name' => 'Work Sans & Work Sans', 'hfont' => 'Work Sans', 'bfont' => 'Work Sans', 'hv' => array( '100', '100italic', '200', '200italic', '300', '300italic', 'regular', 'italic', '500', '500italic', '600', '600italic', '700', '700italic', '800', '800italic', '900', '900italic' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/worksans.jpg', ), array( 'name' => 'Josefin Sans & Lato', 'hfont' => 'Josefin Sans', 'bfont' => 'Lato', 'hv' => array( '100', '100italic', '200', '200italic', '300', '300italic', 'regular', 'italic', '500', '500italic', '600', '600italic', '700', '700italic' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/josefin.jpg', ), array( 'name' => 'Oswald & Open Sans', 'hfont' => 'Oswald', 'bfont' => 'Open Sans', 'hv' => array( '200', '300', 'regular', '500', '600', '700' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/oswald.jpg', ), array( 'name' => 'Nunito & Roboto', 'hfont' => 'Nunito', 'bfont' => 'Roboto', 'hv' => array( '200', '200italic', '300', '300italic', 'regular', 'italic', '600', '600italic', '700', '700italic', '800', '800italic', '900', '900italic' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/nunito.jpg', ), array( 'name' => 'Rubik & Karla', 'hfont' => 'Rubik', 'bfont' => 'Karla', 'hv' => array( '300', '300italic', 'regular', 'italic', '500', '500italic', '600', '600italic', '700', '700italic', '800', '800italic', '900', '900italic' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/rubik.jpg', ), array( 'name' => 'Lora & Merriweather', 'hfont' => 'Lora', 'bfont' => 'Merriweather', 'hv' => array( 'regular', 'italic', '500', '500italic', '600', '600italic', '700', '700italic' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/lora.jpg', ), array( 'name' => 'Playfair Display & Raleway', 'hfont' => 'Playfair Display', 'bfont' => 'Raleway', 'hv' => array( 'regular', 'italic', '500', '500italic', '600', '600italic', '700', '700italic', '800', '800italic', '900', '900italic' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/playfair.jpg', ), array( 'name' => 'Antic Didone & Raleway', 'hfont' => 'Antic Didone', 'bfont' => 'Raleway', 'hv' =>array( 'regular' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/antic.jpg', ), array( 'name' => 'Gilda Display & Raleway', 'hfont' => 'Gilda Display', 'bfont' => 'Raleway', 'hv' => array( 'regular' ), 'img' => get_template_directory_uri() . '/assets/images/fonts/gilda.jpg', ), ); $path = get_template_directory_uri() . '/inc/customizer/'; $dir_path = get_template_directory() . '/inc/customizer/'; wp_enqueue_style( 'kadence-customizer-styles', $path . 'css/kadence-customizer.css', false, KADENCE_VERSION ); if ( is_rtl() ) { wp_enqueue_style( 'kadence-customizer-rtl', $path . 'css/rtl-kadence-customizer.css', false, KADENCE_VERSION ); } // Enqueue Customizer script. $google_font_variants = include $dir_path . 'google-font-variants.php'; $editor_dependencies = array( 'jquery', 'customize-controls', 'wp-i18n', 'wp-components', 'wp-edit-post', 'wp-element', 'lodash', 'react', 'react-dom', 'wp-compose', 'wp-polyfill', 'wp-primitives', ); // Overide Core Text scripts because of naming issues. wp_enqueue_script( 'customizer-text-widgets', get_template_directory_uri() . '/assets/js/text-widgets.min.js', array( 'jquery', 'backbone', 'editor', 'wp-util', 'wp-a11y', 'text-widgets' ), KADENCE_VERSION, false ); wp_enqueue_script( 'kadence-customizer-controls', get_template_directory_uri() . '/assets/js/admin/customizer.js', $editor_dependencies, KADENCE_VERSION, true ); wp_enqueue_style( 'kadence-customizer-controls', $path . 'react/build/controls.css', array( 'wp-components' ), KADENCE_VERSION ); wp_localize_script( 'kadence-customizer-controls', 'kadenceCustomizerControlsData', array( 'contexts' => self::get_control_contexts(), 'choices' => self::get_builder_choices(), 'palette' => kadence()->get_palette_for_customizer(), 'gfontvars' => $google_font_variants, 'cfontvars' => apply_filters( 'kadence_theme_custom_fonts', array() ), 'palettePresets' => apply_filters( 'kadence_theme_palette_presets', $palette_presets ), 'flushFonts' => wp_create_nonce( 'kadence-local-fonts-flush' ), 'fontPairs' => apply_filters( 'kadence_font_pairs_array', $fonts ), 'source' => apply_filters( 'kadence_settings_extra_source', false ), 'blockWidgets' => ( ( defined( 'GUTENBERG_VERSION' ) && version_compare( GUTENBERG_VERSION, '10.6.2', '>' ) ) || version_compare( substr( get_bloginfo( 'version' ), 0, 3 ), '5.8', '>=' ) ? true : false ), ) ); $css = ':root { --global-palette1: ' . kadence()->palette_option( 'palette1' ) . '; --global-palette2: ' . kadence()->palette_option( 'palette2' ) . '; --global-palette3: ' . kadence()->palette_option( 'palette3' ) . '; --global-palette4: ' . kadence()->palette_option( 'palette4' ) . '; --global-palette5: ' . kadence()->palette_option( 'palette5' ) . '; --global-palette6: ' . kadence()->palette_option( 'palette6' ) . '; --global-palette7: ' . kadence()->palette_option( 'palette7' ) . '; --global-palette8: ' . kadence()->palette_option( 'palette8' ) . '; --global-palette9: ' . kadence()->palette_option( 'palette9' ) . '; --global-palette10: ' . kadence()->palette_option( 'palette10' ) . '; --global-palette11: ' . kadence()->palette_option( 'palette11' ) . '; --global-palette12: ' . kadence()->palette_option( 'palette12' ) . '; --global-palette13: ' . kadence()->palette_option( 'palette13' ) . '; --global-palette14: ' . kadence()->palette_option( 'palette14' ) . '; --global-palette15: ' . kadence()->palette_option( 'palette15' ) . '; --global-palette16: blue; --global-palette-highlight: ' . $this->render_color( kadence()->sub_option( 'link_color', 'highlight' ) ) . '; --global-palette-highlight-alt: ' . $this->render_color( kadence()->sub_option( 'link_color', 'highlight-alt' ) ) . '; --global-palette-highlight-alt2: ' . $this->render_color( kadence()->sub_option( 'link_color', 'highlight-alt2' ) ) . '; --global-palette-btn: ' . $this->render_color( kadence()->sub_option( 'buttons_color', 'color' ) ) . '; --global-palette-btn-hover: ' . $this->render_color( kadence()->sub_option( 'buttons_color', 'hover' ) ) . '; --global-palette-btn-bg: ' . $this->render_color_or_gradient( kadence()->sub_option( 'buttons_background', 'color' ) ) . '; --global-palette-btn-bg-hover: ' . $this->render_color_or_gradient( kadence()->sub_option( 'buttons_background', 'hover' ) ) . '; --global-palette-btn-sec: ' . $this->render_color( kadence()->sub_option( 'buttons_secondary_color', 'color' ) ) . '; --global-palette-btn-sec-hover: ' . $this->render_color( kadence()->sub_option( 'buttons_secondary_color', 'hover' ) ) . '; --global-palette-btn-sec-bg: ' . $this->render_color_or_gradient( kadence()->sub_option( 'buttons_secondary_background', 'color' ) ) . '; --global-palette-btn-sec-bg-hover: ' . $this->render_color_or_gradient( kadence()->sub_option( 'buttons_secondary_background', 'hover' ) ) . '; --global-palette-btn-out: ' . $this->render_color( kadence()->sub_option( 'buttons_outline_color', 'color' ) ) . '; --global-palette-btn-out-hover: ' . $this->render_color( kadence()->sub_option( 'buttons_outline_color', 'hover' ) ) . '; --global-palette-btn-out-bg: ' . $this->render_color_or_gradient( kadence()->sub_option( 'buttons_outline_background', 'color' ) ) . '; --global-palette-btn-out-bg-hover: ' . $this->render_color_or_gradient( kadence()->sub_option( 'buttons_outline_background', 'hover' ) ) . '; --global-base-font: ' . kadence()->sub_option( 'base_font', 'family' ) . '; --global-heading-font: ' . ( 'inherit' !== kadence()->sub_option( 'heading_font', 'family' ) ? kadence()->sub_option( 'heading_font', 'family' ) : 'var(--global-base-font)' ) . '; }'; wp_add_inline_style( 'kadence-customizer-controls', wp_strip_all_tags( $css ) ); if ( function_exists( 'wp_set_script_translations' ) ) { wp_set_script_translations( 'kadence-customizer-controls', 'kadence' ); } } /** * Generates the color output. * * @param string $color any color attribute. * @return string */ public function render_color_or_gradient( $color ) { if ( empty( $color ) ) { return false; } if ( ! is_array( $color ) && 'palette' === substr( $color, 0, 7 ) ) { $color = 'var(--global-' . $color . ')'; } return $color; } /** * Generates the color output. * * @param string $color any color attribute. * @return string */ public function render_color( $color ) { if ( empty( $color ) ) { return false; } if ( ! is_array( $color ) && strpos( $color, 'palette' ) !== false ) { $color = 'var(--global-' . $color . ')'; } return $color; } /** * Enqueues JavaScript to make Customizer preview reload changes asynchronously. */ public function action_enqueue_customize_preview_scripts() { $path = get_template_directory_uri() . '/inc/customizer/'; wp_enqueue_style( 'kadence-customizer-preview', $path . 'css/kadence-customizer-preview.css', false, KADENCE_VERSION ); wp_enqueue_script( 'kadence-webfont-js', 'https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js', array( 'jquery' ), '1.6.26', true ); wp_enqueue_script( 'kadence-customizer-preview', $path . 'js/kadence-customizer-preview.min.js', array( 'customize-preview' ), KADENCE_VERSION, true ); wp_localize_script( 'kadence-customizer-preview', 'kadenceCustomizerPreviewData', array( 'liveControl' => self::get_live_control_data(), ) ); } /** * Get Customizer Control Contexts * * @access public * @return array */ public static function get_control_contexts() { // Return contexts. return apply_filters( 'kadence_theme_customizer_control_contexts', self::$contexts ); } /** * Get Customizer Live Control Data * * @access public * @return array */ public static function get_live_control_data() { // Return contexts. return apply_filters( 'kadence_theme_customizer_live_control_data', self::$live_control ); } /** * Maybe add Context * * @access public * @param string $setting_key the item setting key. * @param array $setting the item setting. * @return void */ public static function maybe_add_context( $setting_key, $setting ) { if ( isset( $setting['context'] ) && ! empty( $setting['context'] ) ) { // Add to contexts array. if ( ! empty( $opt_name_key = apply_filters( 'kadence_settings_key_custom_mapping', '', $setting_key ) ) ) { $setting_key = $opt_name_key . '[' . $setting_key . ']'; } self::$contexts[ $setting_key ] = $setting['context']; } } /** * Maybe add Live Control Data * * @access public * @param string $setting_key the item setting key. * @param array $setting the item setting. * @return void */ public static function maybe_add_live( $setting_key, $setting ) { if ( isset( $setting['live_method'] ) && ! empty( $setting['live_method'] ) ) { // Add to live_method array. $setting_id = $setting_key; if ( ! empty( $opt_name_key = apply_filters( 'kadence_settings_key_custom_mapping', '', $setting_key ) ) ) { $setting_id = $opt_name_key . '[' . $setting_key . ']'; } if ( isset( $setting['settings'] ) && is_array( $setting['settings'] ) ) { self::$live_control[ $setting_id ] = $setting['live_method'][ $setting_key ]; } else { self::$live_control[ $setting_id ] = $setting['live_method']; } } } /** * Maybe add Partial Control Data * * @access public * @param object $wp_customize the object. * @param string $setting_key the item setting key. * @param array $setting the item setting. * @return void */ public static function maybe_add_partial( $wp_customize, $setting_key, $setting ) { if ( isset( $setting['partial'] ) && ! empty( $setting['partial'] ) ) { if ( isset( $wp_customize->selective_refresh ) ) { if ( ! empty( $opt_name_key = apply_filters( 'kadence_settings_key_custom_mapping', '', $setting_key ) ) ) { $setting_key = $opt_name_key . '[' . $setting_key . ']'; } $wp_customize->selective_refresh->add_partial( $setting_key, $setting['partial'] ); } } } /** * Maybe add Choices * * @access public * @param string $setting_key the item setting key. * @param array $setting the item setting. * @return void */ public static function maybe_add_choices( $setting_key, $setting ) { if ( isset( $setting['choices'] ) && ! empty( $setting['choices'] ) ) { // Add to choices array. self::$choices[ $setting_key ] = $setting['choices']; } } /** * Show footer widgets as active * * @param bool $active wether the panel is active. * @param object $section the section object. */ public function active_footer_widgets( $active, $section ) { if ( strpos( $section->id, 'widgets-footer' ) ) { $active = true; } return $active; } } Theme_Customizer::get_instance(); custom-controls/class-kadence-section-pro.php 0000644 00000002653 15151531425 0015375 0 ustar 00 <?php /** * The pro customize section extends the WP_Customize_Control class. * * @package kadence */ if ( ! class_exists( 'WP_Customize_Section' ) ) { return; } /** * Class Kadence_Section_Pro * * @access public */ class Kadence_Section_Pro extends WP_Customize_Section { /** * Control type * * @var string */ public $type = 'kadence_section_pro'; /** * Link for pro version. * * @since 1.0.10 * @access public * @var string */ public $pro_link = ''; /** * Gather the parameters passed to client JavaScript via JSON. * * @since 4.1.0 * * @return array The array to be exported to the client as JSON. */ public function json() { $json = parent::json(); $json['pro_link'] = esc_url_raw( $this->pro_link ); return $json; } /** * An Underscore (JS) template for rendering this section. * * Class variables for this section class are available in the `data` JS object; * export custom variables by overriding WP_Customize_Section::json(). * * @since 4.3.0 * * @see WP_Customize_Section::print_template() */ protected function render_template() { ?> <li id="accordion-section-{{ data.id }}" class="accordion-section control-section cannon-expand control-section-{{ data.type }}"> <h3 class="wp-ui-highlight"> <a href="{{ data.pro_link }}" class="wp-ui-text-highlight" target="_blank" rel="noopener">{{ data.title }}</a> </h3> </li> <?php } } custom-controls/class-kadence-control-import-export.php 0000644 00000004347 15151531425 0017444 0 ustar 00 <?php /** * The Radio Icon customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Import_Export * * @access public */ class Kadence_Control_Import_Export extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_import_export_control'; /** * Empty Render Function to prevent errors. */ public function render_content() { ?> <span class="customize-control-title"> <?php esc_html_e( 'Export', 'kadence' ); ?> </span> <span class="description customize-control-description"> <?php esc_html_e( 'Click the button below to export the customization settings for this theme.', 'kadence' ); ?> </span> <input type="button" class="button kadence-theme-export kadence-theme-button" name="kadence-theme-export-button" value="<?php esc_attr_e( 'Export', 'kadence' ); ?>" /> <hr class="kt-theme-hr" /> <span class="customize-control-title"> <?php esc_html_e( 'Import', 'kadence' ); ?> </span> <span class="description customize-control-description"> <?php esc_html_e( 'Upload a file to import customization settings for this theme.', 'kadence' ); ?> </span> <div class="kadence-theme-import-controls"> <input type="file" name="kadence-theme-import-file" class="kadence-theme-import-file" /> <?php wp_nonce_field( 'kadence-theme-importing', 'kadence-theme-import' ); ?> </div> <div class="kadence-theme-uploading"><?php esc_html_e( 'Uploading...', 'kadence' ); ?></div> <input type="button" class="button kadence-theme-import kadence-theme-button" name="kadence-theme-import-button" value="<?php esc_attr_e( 'Import', 'kadence' ); ?>" /> <hr class="kt-theme-hr" /> <span class="customize-control-title"> <?php esc_html_e( 'Reset', 'kadence' ); ?> </span> <span class="description customize-control-description"> <?php esc_html_e( 'Click the button to reset all theme settings.', 'kadence' ); ?> </span> <input type="button" class="components-button is-destructive kadence-theme-reset kadence-theme-button" name="kadence-theme-reset-button" value="<?php esc_attr_e( 'Reset', 'kadence' ); ?>" /> <?php } } custom-controls/class-kadence-control-blank.php 0000644 00000001461 15151531425 0015674 0 ustar 00 <?php /** * The blank customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Blank * * @access public */ class Kadence_Control_Blank extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_blank_control'; /** * Render the control in the customizer */ public function render_content() { if ( ! empty( $this->label ) ) : ?> <span class="customize-control-title"><?php echo $this->label; // phpcs:ignore ?></span> <?php endif; if ( ! empty( $this->description ) ) : ?> <span class="customize-control-description"><?php echo $this->description; // phpcs:ignore ?></span> <?php endif; ?> <?php } } react/class-kadence-control-editor.php 0000644 00000001722 15151531425 0014016 0 ustar 00 <?php /** * The Editor customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Blank * * @access public */ class Kadence_Control_Editor extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_editor_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Refresh the parameters passed to the JavaScript via JSON. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Editor' ); react/class-kadence-control-shadow.php 0000644 00000001645 15151531425 0014021 0 ustar 00 <?php /** * The Shadow customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Shadow * * @access public */ class Kadence_Control_Shadow extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_shadow_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Shadow' ); react/class-kadence-control-builder.php 0000644 00000001724 15151531425 0014160 0 ustar 00 <?php /** * The blank customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Blank * * @access public */ class Kadence_Control_Builder extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_builder_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Refresh the parameters passed to the JavaScript via JSON. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Builder' ); react/class-kadence-control-select.php 0000644 00000001645 15151531426 0014014 0 ustar 00 <?php /** * The Select customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Select * * @access public */ class Kadence_Control_Select extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_select_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Select' ); react/class-kadence-control-available.php 0000644 00000001516 15151531426 0014452 0 ustar 00 <?php /** * The blank customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Available * * @access public */ class Kadence_Control_Available extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_available_control'; /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Refresh the parameters passed to the JavaScript via JSON. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Available' ); react/class-kadence-control-focus-button.php 0000644 00000001463 15151531426 0015163 0 ustar 00 <?php /** * The Focus Button customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Focus_Button * * @access public */ class Kadence_Control_Focus_Button extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_focus_button_control'; /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Focus_Button' ); react/class-kadence-control-color-palette.php 0000644 00000001664 15151531426 0015310 0 ustar 00 <?php /** * The blank customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Blank * * @access public */ class Kadence_Control_Color_Palette extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_color_palette_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Color_Palette' ); react/class-kadence-control-text.php 0000644 00000001403 15151531426 0013511 0 ustar 00 <?php /** * The Text customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Text * * @access public */ class Kadence_Control_Text extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_text_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Text' ); react/class-kadence-control-typography.php 0000644 00000001671 15151531426 0014742 0 ustar 00 <?php /** * The Typography customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Typography * * @access public */ class Kadence_Control_Typography extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_typography_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Typography' ); react/class-kadence-control-textarea.php 0000644 00000001417 15151531426 0014347 0 ustar 00 <?php /** * The Text customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Text * * @access public */ class Kadence_Control_Textarea extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_textarea_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Textarea' ); react/class-kadence-control-measure.php 0000644 00000001652 15151531426 0014174 0 ustar 00 <?php /** * The Measure customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Measure * * @access public */ class Kadence_Control_Measure extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_measure_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Measure' ); react/class-kadence-control-sorter.php 0000644 00000001645 15151531426 0014053 0 ustar 00 <?php /** * The Sorter customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Sorter * * @access public */ class Kadence_Control_Sorter extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_sorter_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Sorter' ); react/class-kadence-control-tab.php 0000644 00000001547 15151531426 0013304 0 ustar 00 <?php /** * The Tab customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Tab * * @access public */ class Kadence_Control_Tab extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_tab_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Tab' ); react/class-kadence-control-row.php 0000644 00000001626 15151531426 0013343 0 ustar 00 <?php /** * The Row customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Row * * @access public */ class Kadence_Control_Row extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_row_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Row' ); react/class-kadence-control-switch.php 0000644 00000001645 15151531426 0014036 0 ustar 00 <?php /** * The Switch customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Switch * * @access public */ class Kadence_Control_Switch extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_switch_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Switch' ); react/class-kadence-control-range.php 0000644 00000001640 15151531426 0013624 0 ustar 00 <?php /** * The blank customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Blank * * @access public */ class Kadence_Control_Range extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_range_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Range' ); react/class-kadence-control-title.php 0000644 00000001172 15151531426 0013651 0 ustar 00 <?php /** * The Switch customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Switch * * @access public */ class Kadence_Control_Title extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_title_control'; /** * Send to JS. */ public function to_json() { parent::to_json(); } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Title' ); react/class-kadence-control-color-link.php 0000644 00000001660 15151531427 0014604 0 ustar 00 <?php /** * The Color customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Color_Link * * @access public */ class Kadence_Control_Color_Link extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_color_link_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Color_Link' ); react/class-kadence-control-border.php 0000644 00000001645 15151531427 0014013 0 ustar 00 <?php /** * The Border customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Border * * @access public */ class Kadence_Control_Border extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_border_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Border' ); react/class-kadence-control-social.php 0000644 00000001645 15151531427 0014010 0 ustar 00 <?php /** * The Social customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Social * * @access public */ class Kadence_Control_Social extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_social_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Social' ); react/build/controls.css 0000644 00000446633 15151531427 0011342 0 ustar 00 .customize-control-kadence_builder_control { border: 0 !important; } .kadence-builder-items { padding: 10px 20px; } .kadence-builder-sortable-panel { min-height: 44px; display: flex; flex: 1; align-items: center; } .kadence-builder-item { line-height: 32px; display: inline-flex; align-items: center; justify-content: space-between; height: auto; min-width: 80px; background: white; position: relative; border: 1px solid #A0AEC0; white-space: nowrap; position: relative; cursor: grab; margin: 0 4px; padding: 0 12px; border-radius: 3px; } .kadence-builder-item > .kadence-builder-item-icon { display: flex; align-items: center; justify-content: center; right: 0; cursor: pointer; margin-right: -10px; width: 28px; height: 28px; color: #718096; background: transparent; border: 0; padding: 0; margin-left: 8px; } .kadence-builder-item.sortable-ghost { opacity: 0.4; box-shadow: none; opacity: 0.6; font-size: 0; border: 1px dashed #9c9c9c; background: rgba(0, 0, 0, 0.015); background: rgba(0, 124, 186, 0.25); } .kadence-builder-item.sortable-ghost .kadence-builder-item-icon { display: none; } .kadence-builder-item.sortable-drag { box-shadow: 0 5px 20px -5px rgba(104, 104, 104, 0.4), inset 3px 0px 0px #007cba; z-index: 999999 !important; } .kadence-builder-item.sortable-drag .kadence-builder-item-icon:not(.kadence-move-icon) { display: none; } .kadence-builder-item-start { margin-bottom: 10px; min-height: 34px; display: flex; } .kadence-builder-item-start .kadence-builder-item { flex: 1; display: flex; width: 100%; box-sizing: border-box; } .kadence-builder-item-start .kadence-builder-item.sortable-drag { width: auto; } #accordion-section-kadence_customizer_header_builder { display: none !important; } #accordion-section-kadence_customizer_footer_builder { display: none !important; } .kadence-build-tabs { border-bottom: 4px solid #ddd; margin: 0; padding-top: 9px; padding-bottom: 0; line-height: inherit; display: flex; padding: 0 12px; } .kadence-build-tabs .nav-tab { font-size: 14px; line-height: 20px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; text-transform: uppercase; height: 40px; margin: 0; margin-bottom: -4px; padding: 0 18px; cursor: pointer; border: 0; box-sizing: content-box; border-bottom: 4px solid #ddd; border-radius: 0; border-top-left-radius: 2px; border-top-right-radius: 2px; } .kadence-build-tabs .nav-tab .dashicons.dashicons-desktop { font-size: 14px; height: auto; } .kadence-build-tabs .nav-tab:not(.nav-tab-active):hover { background: #e5e5e5 !important; color: #444 !important; border-bottom-color: #f9f9f9; } .kadence-build-tabs .nav-tab:hover { box-shadow: none !important; } .kadence-build-tabs .nav-tab:not(:first-child) { margin-left: 8px; } .kadence-build-tabs .nav-tab.nav-tab-active { border-bottom-color: #007cba; background: #f9f9f9; color: #000; } #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { position: fixed !important; top: auto; left: 300px; right: 0; min-height: 0; background: #eee; border-top: 1px solid #A0AEC0; bottom: 0; visibility: visible; height: auto; width: auto; padding: 0; max-height: 60%; overflow: auto; transform: translateY(100%); transition: transform 0.1s ease; backface-visibility: hidden; } @media (min-width: 1660px) { #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { left: 18%; } } @media (max-width: 1659px) { .rtl #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, .rtl #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { right: 300px; left: 0; } } #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder.kadence-builder-active, #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder.kadence-footer-builder-active { transform: translateY(0%); visibility: visible; overflow: visible; } #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder.kadence-builder-active.kadence-builder-hide, #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder.kadence-footer-builder-active.kadence-builder-hide { transform: translateY(100%) !important; overflow: visible; } .kadence-builder-active > li.customize-section-description-container, .kadence-footer-builder-active > li.customize-section-description-container { display: none !important; } .kadence-builder-areas .kadence-builder-group-horizontal { display: flex; margin-bottom: 15px; border: 1px dashed #A0AEC0; background: #f7f7f7; } .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-area { display: flex; } .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-area-left, .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-area-right { flex: 1 1 0%; } .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-area-right .kadence-builder-drop-right, .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-drop-left_center { justify-content: flex-end; } .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-drop-left_center, .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-drop-right_center { width: 0px; flex: 0; overflow: hidden; } .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-area-center { min-width: 80px; border-left: 1px dashed #A0AEC0; border-right: 1px dashed #A0AEC0; } .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-area-center .kadence-builder-sortable-panel { justify-content: center; } .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-area-center.kadence-dragging-dropzones { min-width: 120px; } .kadence-builder-areas.has-center-items .kadence-builder-drop-left_center, .kadence-builder-areas.has-center-items .kadence-builder-drop-right_center { width: auto; flex: 1; overflow: auto; } .kadence-builder-areas.has-center-items .kadence-dragging-dropzones .kadence-builder-drop-left_center { min-width: 100px; border-left: 1px dashed #A0AEC0; } .kadence-builder-areas.has-center-items .kadence-dragging-dropzones .kadence-builder-drop-right_center { min-width: 100px; border-right: 1px dashed #A0AEC0; } .kadence-builder-areas.has-center-items .kadence-builder-area-center { min-width: 120px; border-left: 1px dashed #A0AEC0; border-right: 1px dashed #A0AEC0; } .kadence-builder-areas .kadence-small-label { display: none; } .kadence-builder-areas.popup-vertical-group { width: 200px; padding-right: 20px; } .kadence-builder-areas.popup-vertical-group .kadence-builder-group { height: 100%; margin-bottom: 0; } .kadence-builder-areas.popup-vertical-group .kadence-builder-area { flex: auto; flex-direction: column; } .kadence-builder-areas.popup-vertical-group .kadence-builder-area .kadence-builder-sortable-panel { min-height: 115px; align-items: center; flex-direction: column; flex-wrap: wrap; } .kadence-builder-areas.popup-vertical-group .kadence-builder-area .kadence-builder-sortable-panel .kadence-builder-item { width: 90%; margin-top: 4px; margin-bottom: 4px; box-sizing: border-box; } .kadence-builder-item-start button.kadence-builder-item { border: 1px dashed #bbb; background: #f2f2f2; cursor: pointer; box-shadow: none !important; } .kadence-builder-item-start button.kadence-builder-item:hover { border: 1px dashed #a2a2a2; background: #f9f9f9 !important; } .kadence-footer-builder-is-active .in-sub-panel:not(.section-open) ul#sub-accordion-section-kadence_customizer_footer_layout, .kadence-builder-is-active .in-sub-panel:not(.section-open) ul#sub-accordion-section-kadence_customizer_header_layout { transform: none; height: auto; visibility: visible; top: 75px; } .kadence-footer-builder-is-active .in-sub-panel:not(.section-open) ul#sub-accordion-section-kadence_customizer_footer_layout .customize-section-description-container.section-meta, .kadence-builder-is-active .in-sub-panel:not(.section-open) ul#sub-accordion-section-kadence_customizer_header_layout .customize-section-description-container.section-meta { display: none; } .kadence-footer-builder-is-active .in-sub-panel:not(.section-open) #sub-accordion-section-kadence_customizer_footer_layout .customize-section-description-container, .kadence-builder-is-active .in-sub-panel:not(.section-open) ul#sub-accordion-section-kadence_customizer_header_layout .customize-section-description-container { display: none; } .kadence-footer-builder-is-active .in-sub-panel:not(.section-open) #sub-accordion-panel-kadence_customizer_footer .accordion-section.control-section, .kadence-builder-is-active .in-sub-panel:not(.section-open) #sub-accordion-panel-kadence_customizer_header .accordion-section.control-section { display: none !important; } .kadence-footer-builder-is-active .preview-desktop #customize-preview, .kadence-footer-builder-is-active .preview-tablet #customize-preview, .kadence-builder-is-active .preview-desktop #customize-preview, .kadence-builder-is-active .preview-tablet #customize-preview { height: auto; } #customize-control-header_mobile_items .kadence-builder-items { display: flex; } #customize-control-header_mobile_items .kadence-builder-row-items { flex: 1; } .customize-control-kadence_builder_control .kadence-builder-items.kadence-builder-items-with-popup { display: flex; } .customize-control-kadence_builder_control .kadence-builder-items.kadence-builder-items-with-popup .kadence-builder-row-items { flex: 1; } .kadence-builder-areas button.components-button.kadence-row-actions { background: #007cba; color: #c8dbe4; text-transform: uppercase; font-size: 10px; height: auto; line-height: 26px; border-radius: 0; position: absolute; top: -26px; border: 0; opacity: 0; height: 26px; padding-top: 0; padding-bottom: 0; z-index: 10; } .kadence-builder-areas:hover button.components-button.kadence-row-actions { opacity: 1; } .kadence-builder-areas button.components-button.kadence-row-actions svg { width: 10px; margin-left: 8px; } .kadence-builder-areas button.components-button.kadence-row-actions .dashicons { width: 10px; font-size: 10px; height: 10px; margin-left: 8px; } .kadence-builder-areas button.components-button.kadence-row-actions:hover, .kadence-builder-areas button.components-button.kadence-row-actions:focus { background: #007cba !important; color: white !important; box-shadow: none !important; } .kadence-builder-areas { position: relative; } .kadence-builder-areas:hover .kadence-builder-group-horizontal { border: 1px solid #007cba; } .kadence-builder-group.kadence-builder-group-horizontal[data-setting=bottom] { margin-bottom: 0; } .footer-column-row .kadence-builder-area { flex: 1; border-right: 1px dashed #A0AEC0; } .footer-column-row .kadence-builder-area .kadence-builder-sortable-panel { justify-content: center; } .footer-column-row .kadence-builder-area:first-child .kadence-builder-sortable-panel { justify-content: flex-start; } .footer-column-row .kadence-builder-area:last-child .kadence-builder-sortable-panel { justify-content: flex-end; } .footer-column-row .kadence-builder-area:last-child { border-right: 0; } #sub-accordion-section-kadence_customizer_footer_builder .customize-control-kadence_blank_control .kadence-builder-tab-toggle { top: -4px; } #sub-accordion-section-kadence_customizer_footer_builder .customize-control-kadence_blank_control .kadence-builder-show-button.kadence-builder-tab-toggle { top: auto; } .footer-row-columns-2.footer-row-layout-left-golden .kadence-builder-area-1 { flex: 0 1 66.67%; } .footer-row-columns-2.footer-row-layout-left-golden .kadence-builder-area-2 { flex: 0 1 33.33%; } .footer-row-columns-2.footer-row-layout-right-golden .kadence-builder-area-1 { flex: 0 1 33.33%; } .footer-row-columns-2.footer-row-layout-right-golden .kadence-builder-area-2 { flex: 0 1 66.67%; } .footer-row-columns-3.footer-row-layout-left-half .kadence-builder-area { flex: 0 1 25%; } .footer-row-columns-3.footer-row-layout-left-half .kadence-builder-area-1 { flex: 0 1 50%; } .footer-row-columns-3.footer-row-layout-right-half .kadence-builder-area { flex: 0 1 25%; } .footer-row-columns-3.footer-row-layout-right-half .kadence-builder-area-3 { flex: 0 1 50%; } .footer-row-columns-3.footer-row-layout-center-half .kadence-builder-area { flex: 0 1 25%; } .footer-row-columns-3.footer-row-layout-center-half .kadence-builder-area-2 { flex: 0 1 50%; } .footer-row-columns-3.footer-row-layout-center-wide .kadence-builder-area { flex: 0 1 20%; } .footer-row-columns-3.footer-row-layout-center-wide .kadence-builder-area-2 { flex: 0 1 60%; } .footer-row-columns-3.footer-row-layout-center-exwide .kadence-builder-area { flex: 0 1 15%; } .footer-row-columns-3.footer-row-layout-center-exwide .kadence-builder-area-2 { flex: 0 1 70%; } .footer-row-columns-4.footer-row-layout-left-forty .kadence-builder-area { flex: 1; } .footer-row-columns-4.footer-row-layout-left-forty .kadence-builder-area-1 { flex: 2; } .footer-row-columns-4.footer-row-layout-right-forty .kadence-builder-area { flex: 1; } .footer-row-columns-4.footer-row-layout-right-forty .kadence-builder-area-4 { flex: 2; } .footer-column-row.footer-row-columns-1 .kadence-builder-area:last-child .kadence-builder-sortable-panel { justify-content: center; } .kadence-builder-areas.footer-row-direction-column .kadence-builder-group-horizontal .kadence-builder-area .kadence-builder-drop { flex-direction: column; align-items: normal; } .kadence-builder-areas.footer-row-direction-column .kadence-builder-group-horizontal .kadence-builder-area .kadence-builder-drop .kadence-builder-item { margin: 4px; } .kadence-builder-item-start .kadence-builder-item { border-left: 3px solid #007cba; } .kadence-builder-item-start button.kadence-builder-item { border: 1px solid #fff; background: #fff; } .kadence-builder-item-start button.kadence-builder-item:hover { border: 1px solid #fff; background: #fff !important; } .kadence-builder-item-start .kadence-builder-item:hover > .kadence-builder-item-icon { color: #007cba; } .kadence-builder-item > .kadence-builder-item-icon.kadence-move-icon { margin-left: -10px; transform: rotate(90deg); margin-right: 0; cursor: grab; width: 18px; opacity: 0.7; } .kadence-builder-item-text { flex-grow: 1; } .kadence-builder-item-start.kadence-move-item .kadence-builder-item { justify-content: flex-start; } .customize-control:not(.customize-control-kadence_blank_control) + .customize-control#customize-control-header_mobile_available_items { padding-top: 0; border-top: 0; } .kadence-available-items-pool { min-width: 80px; border: 1px dashed #A0AEC0; padding: 20px 10px 10px; } .kadence-available-items-title { padding: 10px 0; } .kadence-builder-item > .kadence-builder-item-icon.kadence-builder-item-focus-icon svg { width: 14px; } .kadence-builder-item > .kadence-builder-item-icon.kadence-builder-item-focus-icon .dashicon { font-size: 14px; width: 14px; height: 14px; } .kadence-builder-area .kadence-builder-add-item { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } .kadence-builder-area { position: relative; } .kadence-builder-area .kadence-builder-item { z-index: 10; } .kadence-builder-area .kadence-builder-item-add-icon { display: block; position: absolute; left: 0; right: 0; top: 0; bottom: 0; background: transparent; border: 0; height: auto; width: auto; padding: 0; min-width: 100%; z-index: 1; transition: all 0.2s ease-in-out; color: transparent !important; } .kadence-builder-area .kadence-builder-item-add-icon:hover, .kadence-builder-area .kadence-builder-item-add-icon:focus { color: #444 !important; background: rgba(0, 124, 186, 0.05) !important; box-shadow: none !important; border: 0 !important; } .components-popover.kadence-popover-add-builder.components-animate__appear { left: 50% !important; top: 0 !important; position: absolute; bottom: auto; } .components-popover__content .kadence-popover-builder-list .kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 10px; width: 300px; } .kadence-popover-builder-list { padding: 0 10px; } .kadence-popover-builder-list .kadence-radio-container-control button.components-button.is-tertiary { font-size: 10px; margin: 0; } .kadence-builder-area .kadence-builder-item-add-icon svg { margin-top: 5px; } .kadence-builder-area-center .kadence-builder-drop-center .kadence-builder-item:first-child { margin-left: 25px; } .kadence-builder-area-center .kadence-builder-drop-center .kadence-builder-item:last-child { margin-right: 25px; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.center-on-right { right: 50%; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.center-on-right .kadence-builder-item-add-icon { text-align: right; padding-right: 30px; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.center-on-left { left: 50%; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.center-on-left .kadence-builder-item-add-icon { text-align: left; padding-left: 30px; } .kadence-builder-area .kadence-builder-add-item.left-center-on-left, .kadence-builder-area .kadence-builder-add-item.right-center-on-right { display: none; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.left-center-on-left { display: block; right: 50%; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.right-center-on-right { display: block; left: 50%; } .rfipbtn, .rfipdropdown { font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; font-size: 14px; line-height: 1.71429; vertical-align: baseline; } .rfipbtn, .rfipbtn *, .rfipdropdown, .rfipdropdown * { margin: 0; padding: 0; -webkit-box-sizing: border-box; box-sizing: border-box; } .rfipbtn input, .rfipbtn select, .rfipdropdown input, .rfipdropdown select { font-size: 14px; } .rfip { position: relative; display: inline-block; margin: 8px; vertical-align: middle; } .rfipbtn { width: 136px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row nowrap; flex-flow: row nowrap; min-height: 50px; border-radius: 2px; cursor: pointer; -webkit-transition: border-color 0.25s, -webkit-box-shadow 0.25s; transition: border-color 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border-color 0.25s; transition: box-shadow 0.25s, border-color 0.25s, -webkit-box-shadow 0.25s; outline: 0 none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .rfipbtn--open { border-radius: 2px 2px 0 0; } .rfipbtn__button { width: 48px; margin-left: auto; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; height: auto; -webkit-transition: background 0.25s, -webkit-box-shadow 0.25s; transition: background 0.25s, -webkit-box-shadow 0.25s; transition: background 0.25s, box-shadow 0.25s; transition: background 0.25s, box-shadow 0.25s, -webkit-box-shadow 0.25s; } .rfipbtn__button i { font-size: 32px; -webkit-transition: -webkit-transform 0.25s; transition: -webkit-transform 0.25s; transition: transform 0.25s; transition: transform 0.25s, -webkit-transform 0.25s; } .rfipbtn__button--open i { -webkit-transform: rotate(-180deg); transform: rotate(-180deg); } .rfipbtn__current { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-flex: 0; -ms-flex: 0 0 86px; flex: 0 0 86px; padding: 2px; } .rfipbtn--multi { width: 258px; } .rfipbtn--multi .rfipbtn__current { -ms-flex-flow: row wrap; flex-flow: row wrap; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; -ms-flex-preferred-size: 212px; flex-basis: 212px; -ms-flex-line-pack: center; align-content: center; } .rfipbtn--multi .rfipbtn__current, .rfipbtn__icon { -webkit-box-orient: horizontal; -webkit-box-direction: normal; } .rfipbtn__icon { margin: 2px; padding: 0; height: 28px; width: 48px; display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; border-radius: 2px; } .rfipbtn__icon--empty { font-size: 14px; line-height: 16px; margin-left: 8px; text-align: center; text-transform: lowercase; font-style: italic; } .rfipbtn__elm { display: -webkit-box; display: -ms-flexbox; display: flex; height: 28px; width: 28px; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; font-size: 18px; } .rfipbtn__elm img, .rfipbtn__elm svg { height: 18px; width: auto; } .rfipbtn__del { width: 18px; display: -webkit-box; display: -ms-flexbox; display: flex; height: 28px; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-transition: background-color 0.25s; transition: background-color 0.25s; cursor: pointer; } .rfipcategory { width: 100%; margin: 0 0 8px; position: relative; } .rfipcategory select { width: 100%; display: block; height: 32px; line-height: 32px; border-radius: 0; -webkit-appearance: none; -moz-appearance: none; appearance: none; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, box-shadow 0.25s; transition: border 0.25s, box-shadow 0.25s, -webkit-box-shadow 0.25s; background-color: transparent !important; } .rfipcategory i { position: absolute; right: 2px; top: 0; font-size: 16px; line-height: 32px; z-index: -1; } .rfipdropdown { width: 352px; position: absolute; left: 0; margin-top: -1px; z-index: 100000001; border-radius: 0 1px 4px 4px; } .rfipdropdown__selector { overflow: hidden; padding: 16px; } .rfipdropdown.fipappear-enter-active .rfipdropdown__selector, .rfipdropdown.fipappear-exit-active .rfipdropdown__selector { -webkit-transition: max-height 0.3s ease-out, padding 0.3s ease-out; transition: max-height 0.3s ease-out, padding 0.3s ease-out; padding: 16px; } .rfipicons__pager { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row nowrap; flex-flow: row nowrap; height: 24px; line-height: 24px; -webkit-box-align: center; -ms-flex-align: center; align-items: center; margin-bottom: 8px; } .rfipicons__num { width: 100px; margin-right: auto; } .rfipicons__cp { width: 32px; height: 24px; line-height: 24px; text-align: right; } .rfipicons__cp, .rfipicons__sp, .rfipicons__tp { margin-right: 8px; } .rfipicons__arrow { margin-left: auto; width: 56px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row nowrap; flex-flow: row nowrap; -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; -webkit-box-align: center; -ms-flex-align: center; align-items: center; height: 24px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .rfipicons__right { margin-left: auto; } .rfipicons__left, .rfipicons__right { cursor: pointer; width: 24px; height: 24px; position: relative; -webkit-transition: background-color 0.25s, border 0.25s; transition: background-color 0.25s, border 0.25s; outline: 0 none; border-radius: 2px; font-size: 18px; } .rfipicons__label { height: 22px; width: 22px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .rfipicons__label img { height: 18px; width: 18px; } .rfipicons__selector { -webkit-box-flex: 1; -ms-flex: 1 1 20%; flex: 1 1 20%; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row wrap; flex-flow: row wrap; -ms-flex-line-pack: center; align-content: center; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } .rfipicons__ibox, .rfipicons__selector { display: -webkit-box; display: -ms-flexbox; display: flex; } .rfipicons__ibox { -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; height: 100%; width: 100%; -webkit-transition: background-color 0.25s, border 0.25s; transition: background-color 0.25s, border 0.25s; border-radius: 2px; outline: 0 none; font-size: 20px; } .rfipicons__ibox img, .rfipicons__ibox svg { max-height: 24px; width: auto; } .rfipicons__ibox > * { -webkit-transform: scale(1); transform: scale(1); -webkit-transition: -webkit-transform 0.25s; transition: -webkit-transform 0.25s; transition: transform 0.25s; transition: transform 0.25s, -webkit-transform 0.25s; -webkit-transform-origin: center; transform-origin: center; } .rfipicons__ibox:hover > * { -webkit-transform: scale(1.8); transform: scale(1.8); } .rfipicons__ibox--error { text-transform: lowercase; font-style: italic; } .rfipicons__icon { width: 20%; height: 64px; padding: 1px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; cursor: pointer; } .rfipicons__icon--error { display: block; padding: 16px; text-align: center; font-size: 24px; width: 100%; line-height: 1; } .rfipsearch { width: 100%; margin: 0 0 8px; } .rfipsearch input { width: 100%; display: block; height: 32px; line-height: 32px; } /*! * * React FontIconPicker * * React Component to show a picker element to pick font-icons & svg * * @author Swashata Ghosh <swashata@wpquark.com> * @version 1.1.0 * @link https://github.com/fontIconPicker/react-fonticonpicker * @license MIT * * Copyright (c) 2018 Swashata Ghosh <swashata@wpquark.com> * * This software is released under the MIT License. * https://opensource.org/licenses/MIT * */ .rfipbtn--green { background-color: #fff; border: 1px solid #81c784; } .rfipbtn--green:active, .rfipbtn--green:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #66bb6a; } .rfipbtn--green .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #81c784; background-color: #c8e6c9; color: #2e7d32; } .rfipbtn--green .rfipbtn__button:hover { background-color: #66bb6a; } .rfipbtn--green .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #81c784; box-shadow: inset 0 0 10px 0 #81c784; } .rfipbtn--green .rfipbtn__icon { border: 1px solid #a5d6a7; color: #2e7d32; } .rfipbtn--green .rfipbtn__icon--empty { color: #81c784; } .rfipbtn--green .rfipbtn__del { background-color: #a5d6a7; } .rfipbtn--green .rfipbtn__del:hover { background-color: #81c784; } .rfipbtn--green .rfipbtn__del:active, .rfipbtn--green .rfipbtn__del:focus { outline: 1px solid #81c784; } .rfipdropdown--green { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #81c784; } .rfipdropdown--green input, .rfipdropdown--green select { color: #424242; } .rfipdropdown--green .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #66bb6a; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--green .rfipcategory select:active, .rfipdropdown--green .rfipcategory select:focus { border-bottom-color: #4caf50; -webkit-box-shadow: 0 1px 0 0 #4caf50; box-shadow: 0 1px 0 0 #4caf50; outline: 0 none; } .rfipdropdown--green .rfipicons__cp { border: 0 none; border-bottom: 1px solid #66bb6a; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--green .rfipicons__cp:active, .rfipdropdown--green .rfipicons__cp:focus { border-bottom-color: #4caf50; -webkit-box-shadow: 0 1px 0 0 #4caf50; box-shadow: 0 1px 0 0 #4caf50; outline: 0 none; } .rfipdropdown--green .rfipicons__left, .rfipdropdown--green .rfipicons__right { background-color: #a5d6a7; border: 1px solid #a5d6a7; color: #2e7d32; } .rfipdropdown--green .rfipicons__left:hover, .rfipdropdown--green .rfipicons__right:hover { background-color: #66bb6a; border: 1px solid #66bb6a; } .rfipdropdown--green .rfipicons__left:active, .rfipdropdown--green .rfipicons__left:focus, .rfipdropdown--green .rfipicons__right:active, .rfipdropdown--green .rfipicons__right:focus { border: 1px solid #66bb6a; } .rfipdropdown--green .rfipicons__ibox { background-color: #c8e6c9; border: 1px solid #c8e6c9; color: #2e7d32; } .rfipdropdown--green .rfipicons__ibox:hover { background-color: #66bb6a; border: 1px solid #66bb6a; } .rfipdropdown--green .rfipicons__ibox:active, .rfipdropdown--green .rfipicons__ibox:focus { border: 1px solid #66bb6a; } .rfipdropdown--green .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--green .rfipicons__icon--selected .rfipicons__ibox { background-color: #a5d6a7; } .rfipdropdown--green .rfipsearch input { border: 0 none; border-bottom: 1px solid #66bb6a; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--green .rfipsearch input:active, .rfipdropdown--green .rfipsearch input:focus { border-bottom-color: #4caf50; -webkit-box-shadow: 0 1px 0 0 #4caf50; box-shadow: 0 1px 0 0 #4caf50; outline: 0 none; } .rfipbtn--bluegrey { background-color: #fff; border: 1px solid #90a4ae; } .rfipbtn--bluegrey:active, .rfipbtn--bluegrey:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #78909c; } .rfipbtn--bluegrey .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #90a4ae; background-color: #cfd8dc; color: #37474f; } .rfipbtn--bluegrey .rfipbtn__button:hover { background-color: #78909c; } .rfipbtn--bluegrey .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #90a4ae; box-shadow: inset 0 0 10px 0 #90a4ae; } .rfipbtn--bluegrey .rfipbtn__icon { border: 1px solid #b0bec5; color: #37474f; } .rfipbtn--bluegrey .rfipbtn__icon--empty { color: #90a4ae; } .rfipbtn--bluegrey .rfipbtn__del { background-color: #b0bec5; } .rfipbtn--bluegrey .rfipbtn__del:hover { background-color: #90a4ae; } .rfipbtn--bluegrey .rfipbtn__del:active, .rfipbtn--bluegrey .rfipbtn__del:focus { outline: 1px solid #90a4ae; } .rfipdropdown--bluegrey { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #90a4ae; } .rfipdropdown--bluegrey input, .rfipdropdown--bluegrey select { color: #424242; } .rfipdropdown--bluegrey .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #78909c; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--bluegrey .rfipcategory select:active, .rfipdropdown--bluegrey .rfipcategory select:focus { border-bottom-color: #607d8b; -webkit-box-shadow: 0 1px 0 0 #607d8b; box-shadow: 0 1px 0 0 #607d8b; outline: 0 none; } .rfipdropdown--bluegrey .rfipicons__cp { border: 0 none; border-bottom: 1px solid #78909c; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--bluegrey .rfipicons__cp:active, .rfipdropdown--bluegrey .rfipicons__cp:focus { border-bottom-color: #607d8b; -webkit-box-shadow: 0 1px 0 0 #607d8b; box-shadow: 0 1px 0 0 #607d8b; outline: 0 none; } .rfipdropdown--bluegrey .rfipicons__left, .rfipdropdown--bluegrey .rfipicons__right { background-color: #b0bec5; border: 1px solid #b0bec5; color: #37474f; } .rfipdropdown--bluegrey .rfipicons__left:hover, .rfipdropdown--bluegrey .rfipicons__right:hover { background-color: #78909c; border: 1px solid #78909c; } .rfipdropdown--bluegrey .rfipicons__left:active, .rfipdropdown--bluegrey .rfipicons__left:focus, .rfipdropdown--bluegrey .rfipicons__right:active, .rfipdropdown--bluegrey .rfipicons__right:focus { border: 1px solid #78909c; } .rfipdropdown--bluegrey .rfipicons__ibox { background-color: #cfd8dc; border: 1px solid #cfd8dc; color: #37474f; } .rfipdropdown--bluegrey .rfipicons__ibox:hover { background-color: #78909c; border: 1px solid #78909c; } .rfipdropdown--bluegrey .rfipicons__ibox:active, .rfipdropdown--bluegrey .rfipicons__ibox:focus { border: 1px solid #78909c; } .rfipdropdown--bluegrey .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--bluegrey .rfipicons__icon--selected .rfipicons__ibox { background-color: #b0bec5; } .rfipdropdown--bluegrey .rfipsearch input { border: 0 none; border-bottom: 1px solid #78909c; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--bluegrey .rfipsearch input:active, .rfipdropdown--bluegrey .rfipsearch input:focus { border-bottom-color: #607d8b; -webkit-box-shadow: 0 1px 0 0 #607d8b; box-shadow: 0 1px 0 0 #607d8b; outline: 0 none; } .rfipbtn--brown { background-color: #fff; border: 1px solid #a1887f; } .rfipbtn--brown:active, .rfipbtn--brown:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #8d6e63; } .rfipbtn--brown .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #a1887f; background-color: #d7ccc8; color: #4e342e; } .rfipbtn--brown .rfipbtn__button:hover { background-color: #8d6e63; } .rfipbtn--brown .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #a1887f; box-shadow: inset 0 0 10px 0 #a1887f; } .rfipbtn--brown .rfipbtn__icon { border: 1px solid #bcaaa4; color: #4e342e; } .rfipbtn--brown .rfipbtn__icon--empty { color: #a1887f; } .rfipbtn--brown .rfipbtn__del { background-color: #bcaaa4; } .rfipbtn--brown .rfipbtn__del:hover { background-color: #a1887f; } .rfipbtn--brown .rfipbtn__del:active, .rfipbtn--brown .rfipbtn__del:focus { outline: 1px solid #a1887f; } .rfipdropdown--brown { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #a1887f; } .rfipdropdown--brown input, .rfipdropdown--brown select { color: #424242; } .rfipdropdown--brown .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #8d6e63; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--brown .rfipcategory select:active, .rfipdropdown--brown .rfipcategory select:focus { border-bottom-color: #795548; -webkit-box-shadow: 0 1px 0 0 #795548; box-shadow: 0 1px 0 0 #795548; outline: 0 none; } .rfipdropdown--brown .rfipicons__cp { border: 0 none; border-bottom: 1px solid #8d6e63; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--brown .rfipicons__cp:active, .rfipdropdown--brown .rfipicons__cp:focus { border-bottom-color: #795548; -webkit-box-shadow: 0 1px 0 0 #795548; box-shadow: 0 1px 0 0 #795548; outline: 0 none; } .rfipdropdown--brown .rfipicons__left, .rfipdropdown--brown .rfipicons__right { background-color: #bcaaa4; border: 1px solid #bcaaa4; color: #4e342e; } .rfipdropdown--brown .rfipicons__left:hover, .rfipdropdown--brown .rfipicons__right:hover { background-color: #8d6e63; border: 1px solid #8d6e63; } .rfipdropdown--brown .rfipicons__left:active, .rfipdropdown--brown .rfipicons__left:focus, .rfipdropdown--brown .rfipicons__right:active, .rfipdropdown--brown .rfipicons__right:focus { border: 1px solid #8d6e63; } .rfipdropdown--brown .rfipicons__ibox { background-color: #d7ccc8; border: 1px solid #d7ccc8; color: #4e342e; } .rfipdropdown--brown .rfipicons__ibox:hover { background-color: #8d6e63; border: 1px solid #8d6e63; } .rfipdropdown--brown .rfipicons__ibox:active, .rfipdropdown--brown .rfipicons__ibox:focus { border: 1px solid #8d6e63; } .rfipdropdown--brown .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--brown .rfipicons__icon--selected .rfipicons__ibox { background-color: #bcaaa4; } .rfipdropdown--brown .rfipsearch input { border: 0 none; border-bottom: 1px solid #8d6e63; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--brown .rfipsearch input:active, .rfipdropdown--brown .rfipsearch input:focus { border-bottom-color: #795548; -webkit-box-shadow: 0 1px 0 0 #795548; box-shadow: 0 1px 0 0 #795548; outline: 0 none; } .rfipbtn--cyan { background-color: #fff; border: 1px solid #4dd0e1; } .rfipbtn--cyan:active, .rfipbtn--cyan:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #26c6da; } .rfipbtn--cyan .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #4dd0e1; background-color: #b2ebf2; color: #00838f; } .rfipbtn--cyan .rfipbtn__button:hover { background-color: #26c6da; } .rfipbtn--cyan .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #4dd0e1; box-shadow: inset 0 0 10px 0 #4dd0e1; } .rfipbtn--cyan .rfipbtn__icon { border: 1px solid #80deea; color: #00838f; } .rfipbtn--cyan .rfipbtn__icon--empty { color: #4dd0e1; } .rfipbtn--cyan .rfipbtn__del { background-color: #80deea; } .rfipbtn--cyan .rfipbtn__del:hover { background-color: #4dd0e1; } .rfipbtn--cyan .rfipbtn__del:active, .rfipbtn--cyan .rfipbtn__del:focus { outline: 1px solid #4dd0e1; } .rfipdropdown--cyan { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #4dd0e1; } .rfipdropdown--cyan input, .rfipdropdown--cyan select { color: #424242; } .rfipdropdown--cyan .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #26c6da; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--cyan .rfipcategory select:active, .rfipdropdown--cyan .rfipcategory select:focus { border-bottom-color: #00bcd4; -webkit-box-shadow: 0 1px 0 0 #00bcd4; box-shadow: 0 1px 0 0 #00bcd4; outline: 0 none; } .rfipdropdown--cyan .rfipicons__cp { border: 0 none; border-bottom: 1px solid #26c6da; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--cyan .rfipicons__cp:active, .rfipdropdown--cyan .rfipicons__cp:focus { border-bottom-color: #00bcd4; -webkit-box-shadow: 0 1px 0 0 #00bcd4; box-shadow: 0 1px 0 0 #00bcd4; outline: 0 none; } .rfipdropdown--cyan .rfipicons__left, .rfipdropdown--cyan .rfipicons__right { background-color: #80deea; border: 1px solid #80deea; color: #00838f; } .rfipdropdown--cyan .rfipicons__left:hover, .rfipdropdown--cyan .rfipicons__right:hover { background-color: #26c6da; border: 1px solid #26c6da; } .rfipdropdown--cyan .rfipicons__left:active, .rfipdropdown--cyan .rfipicons__left:focus, .rfipdropdown--cyan .rfipicons__right:active, .rfipdropdown--cyan .rfipicons__right:focus { border: 1px solid #26c6da; } .rfipdropdown--cyan .rfipicons__ibox { background-color: #b2ebf2; border: 1px solid #b2ebf2; color: #00838f; } .rfipdropdown--cyan .rfipicons__ibox:hover { background-color: #26c6da; border: 1px solid #26c6da; } .rfipdropdown--cyan .rfipicons__ibox:active, .rfipdropdown--cyan .rfipicons__ibox:focus { border: 1px solid #26c6da; } .rfipdropdown--cyan .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--cyan .rfipicons__icon--selected .rfipicons__ibox { background-color: #80deea; } .rfipdropdown--cyan .rfipsearch input { border: 0 none; border-bottom: 1px solid #26c6da; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--cyan .rfipsearch input:active, .rfipdropdown--cyan .rfipsearch input:focus { border-bottom-color: #00bcd4; -webkit-box-shadow: 0 1px 0 0 #00bcd4; box-shadow: 0 1px 0 0 #00bcd4; outline: 0 none; } .rfipbtn--deeporange { background-color: #fff; border: 1px solid #ff8a65; } .rfipbtn--deeporange:active, .rfipbtn--deeporange:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #ff7043; } .rfipbtn--deeporange .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #ff8a65; background-color: #ffccbc; color: #d84315; } .rfipbtn--deeporange .rfipbtn__button:hover { background-color: #ff7043; } .rfipbtn--deeporange .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #ff8a65; box-shadow: inset 0 0 10px 0 #ff8a65; } .rfipbtn--deeporange .rfipbtn__icon { border: 1px solid #ffab91; color: #d84315; } .rfipbtn--deeporange .rfipbtn__icon--empty { color: #ff8a65; } .rfipbtn--deeporange .rfipbtn__del { background-color: #ffab91; } .rfipbtn--deeporange .rfipbtn__del:hover { background-color: #ff8a65; } .rfipbtn--deeporange .rfipbtn__del:active, .rfipbtn--deeporange .rfipbtn__del:focus { outline: 1px solid #ff8a65; } .rfipdropdown--deeporange { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #ff8a65; } .rfipdropdown--deeporange input, .rfipdropdown--deeporange select { color: #424242; } .rfipdropdown--deeporange .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #ff7043; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--deeporange .rfipcategory select:active, .rfipdropdown--deeporange .rfipcategory select:focus { border-bottom-color: #ff5722; -webkit-box-shadow: 0 1px 0 0 #ff5722; box-shadow: 0 1px 0 0 #ff5722; outline: 0 none; } .rfipdropdown--deeporange .rfipicons__cp { border: 0 none; border-bottom: 1px solid #ff7043; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--deeporange .rfipicons__cp:active, .rfipdropdown--deeporange .rfipicons__cp:focus { border-bottom-color: #ff5722; -webkit-box-shadow: 0 1px 0 0 #ff5722; box-shadow: 0 1px 0 0 #ff5722; outline: 0 none; } .rfipdropdown--deeporange .rfipicons__left, .rfipdropdown--deeporange .rfipicons__right { background-color: #ffab91; border: 1px solid #ffab91; color: #d84315; } .rfipdropdown--deeporange .rfipicons__left:hover, .rfipdropdown--deeporange .rfipicons__right:hover { background-color: #ff7043; border: 1px solid #ff7043; } .rfipdropdown--deeporange .rfipicons__left:active, .rfipdropdown--deeporange .rfipicons__left:focus, .rfipdropdown--deeporange .rfipicons__right:active, .rfipdropdown--deeporange .rfipicons__right:focus { border: 1px solid #ff7043; } .rfipdropdown--deeporange .rfipicons__ibox { background-color: #ffccbc; border: 1px solid #ffccbc; color: #d84315; } .rfipdropdown--deeporange .rfipicons__ibox:hover { background-color: #ff7043; border: 1px solid #ff7043; } .rfipdropdown--deeporange .rfipicons__ibox:active, .rfipdropdown--deeporange .rfipicons__ibox:focus { border: 1px solid #ff7043; } .rfipdropdown--deeporange .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--deeporange .rfipicons__icon--selected .rfipicons__ibox { background-color: #ffab91; } .rfipdropdown--deeporange .rfipsearch input { border: 0 none; border-bottom: 1px solid #ff7043; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--deeporange .rfipsearch input:active, .rfipdropdown--deeporange .rfipsearch input:focus { border-bottom-color: #ff5722; -webkit-box-shadow: 0 1px 0 0 #ff5722; box-shadow: 0 1px 0 0 #ff5722; outline: 0 none; } .rfipbtn--deeppurple { background-color: #fff; border: 1px solid #9575cd; } .rfipbtn--deeppurple:active, .rfipbtn--deeppurple:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #7e57c2; } .rfipbtn--deeppurple .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #9575cd; background-color: #d1c4e9; color: #4527a0; } .rfipbtn--deeppurple .rfipbtn__button:hover { background-color: #7e57c2; } .rfipbtn--deeppurple .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #9575cd; box-shadow: inset 0 0 10px 0 #9575cd; } .rfipbtn--deeppurple .rfipbtn__icon { border: 1px solid #b39ddb; color: #4527a0; } .rfipbtn--deeppurple .rfipbtn__icon--empty { color: #9575cd; } .rfipbtn--deeppurple .rfipbtn__del { background-color: #b39ddb; } .rfipbtn--deeppurple .rfipbtn__del:hover { background-color: #9575cd; } .rfipbtn--deeppurple .rfipbtn__del:active, .rfipbtn--deeppurple .rfipbtn__del:focus { outline: 1px solid #9575cd; } .rfipdropdown--deeppurple { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #9575cd; } .rfipdropdown--deeppurple input, .rfipdropdown--deeppurple select { color: #424242; } .rfipdropdown--deeppurple .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #7e57c2; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--deeppurple .rfipcategory select:active, .rfipdropdown--deeppurple .rfipcategory select:focus { border-bottom-color: #673ab7; -webkit-box-shadow: 0 1px 0 0 #673ab7; box-shadow: 0 1px 0 0 #673ab7; outline: 0 none; } .rfipdropdown--deeppurple .rfipicons__cp { border: 0 none; border-bottom: 1px solid #7e57c2; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--deeppurple .rfipicons__cp:active, .rfipdropdown--deeppurple .rfipicons__cp:focus { border-bottom-color: #673ab7; -webkit-box-shadow: 0 1px 0 0 #673ab7; box-shadow: 0 1px 0 0 #673ab7; outline: 0 none; } .rfipdropdown--deeppurple .rfipicons__left, .rfipdropdown--deeppurple .rfipicons__right { background-color: #b39ddb; border: 1px solid #b39ddb; color: #4527a0; } .rfipdropdown--deeppurple .rfipicons__left:hover, .rfipdropdown--deeppurple .rfipicons__right:hover { background-color: #7e57c2; border: 1px solid #7e57c2; } .rfipdropdown--deeppurple .rfipicons__left:active, .rfipdropdown--deeppurple .rfipicons__left:focus, .rfipdropdown--deeppurple .rfipicons__right:active, .rfipdropdown--deeppurple .rfipicons__right:focus { border: 1px solid #7e57c2; } .rfipdropdown--deeppurple .rfipicons__ibox { background-color: #d1c4e9; border: 1px solid #d1c4e9; color: #4527a0; } .rfipdropdown--deeppurple .rfipicons__ibox:hover { background-color: #7e57c2; border: 1px solid #7e57c2; } .rfipdropdown--deeppurple .rfipicons__ibox:active, .rfipdropdown--deeppurple .rfipicons__ibox:focus { border: 1px solid #7e57c2; } .rfipdropdown--deeppurple .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--deeppurple .rfipicons__icon--selected .rfipicons__ibox { background-color: #b39ddb; } .rfipdropdown--deeppurple .rfipsearch input { border: 0 none; border-bottom: 1px solid #7e57c2; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--deeppurple .rfipsearch input:active, .rfipdropdown--deeppurple .rfipsearch input:focus { border-bottom-color: #673ab7; -webkit-box-shadow: 0 1px 0 0 #673ab7; box-shadow: 0 1px 0 0 #673ab7; outline: 0 none; } .rfipbtn--default { background-color: #fff; border: 1px solid #e0e0e0; } .rfipbtn--default:active, .rfipbtn--default:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #bdbdbd; } .rfipbtn--default .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #e0e0e0; background-color: #f5f5f5; color: #424242; } .rfipbtn--default .rfipbtn__button:hover { background-color: #bdbdbd; } .rfipbtn--default .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #e0e0e0; box-shadow: inset 0 0 10px 0 #e0e0e0; } .rfipbtn--default .rfipbtn__icon { border: 1px solid #eee; color: #424242; } .rfipbtn--default .rfipbtn__icon--empty { color: #e0e0e0; } .rfipbtn--default .rfipbtn__del { background-color: #eee; } .rfipbtn--default .rfipbtn__del:hover { background-color: #e0e0e0; } .rfipbtn--default .rfipbtn__del:active, .rfipbtn--default .rfipbtn__del:focus { outline: 1px solid #e0e0e0; } .rfipdropdown--default { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #e0e0e0; } .rfipdropdown--default input, .rfipdropdown--default select { color: #424242; } .rfipdropdown--default .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #bdbdbd; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--default .rfipcategory select:active, .rfipdropdown--default .rfipcategory select:focus { border-bottom-color: #9e9e9e; -webkit-box-shadow: 0 1px 0 0 #9e9e9e; box-shadow: 0 1px 0 0 #9e9e9e; outline: 0 none; } .rfipdropdown--default .rfipicons__cp { border: 0 none; border-bottom: 1px solid #bdbdbd; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--default .rfipicons__cp:active, .rfipdropdown--default .rfipicons__cp:focus { border-bottom-color: #9e9e9e; -webkit-box-shadow: 0 1px 0 0 #9e9e9e; box-shadow: 0 1px 0 0 #9e9e9e; outline: 0 none; } .rfipdropdown--default .rfipicons__left, .rfipdropdown--default .rfipicons__right { background-color: #eee; border: 1px solid #eee; color: #424242; } .rfipdropdown--default .rfipicons__left:hover, .rfipdropdown--default .rfipicons__right:hover { background-color: #bdbdbd; border: 1px solid #bdbdbd; } .rfipdropdown--default .rfipicons__left:active, .rfipdropdown--default .rfipicons__left:focus, .rfipdropdown--default .rfipicons__right:active, .rfipdropdown--default .rfipicons__right:focus { border: 1px solid #bdbdbd; } .rfipdropdown--default .rfipicons__ibox { background-color: #f5f5f5; border: 1px solid #f5f5f5; color: #424242; } .rfipdropdown--default .rfipicons__ibox:hover { background-color: #bdbdbd; border: 1px solid #bdbdbd; } .rfipdropdown--default .rfipicons__ibox:active, .rfipdropdown--default .rfipicons__ibox:focus { border: 1px solid #bdbdbd; } .rfipdropdown--default .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--default .rfipicons__icon--selected .rfipicons__ibox { background-color: #eee; } .rfipdropdown--default .rfipsearch input { border: 0 none; border-bottom: 1px solid #bdbdbd; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--default .rfipsearch input:active, .rfipdropdown--default .rfipsearch input:focus { border-bottom-color: #9e9e9e; -webkit-box-shadow: 0 1px 0 0 #9e9e9e; box-shadow: 0 1px 0 0 #9e9e9e; outline: 0 none; } .rfipbtn--blue { background-color: #fff; border: 1px solid #64b5f6; } .rfipbtn--blue:active, .rfipbtn--blue:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #42a5f5; } .rfipbtn--blue .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #64b5f6; background-color: #bbdefb; color: #1565c0; } .rfipbtn--blue .rfipbtn__button:hover { background-color: #42a5f5; } .rfipbtn--blue .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #64b5f6; box-shadow: inset 0 0 10px 0 #64b5f6; } .rfipbtn--blue .rfipbtn__icon { border: 1px solid #90caf9; color: #1565c0; } .rfipbtn--blue .rfipbtn__icon--empty { color: #64b5f6; } .rfipbtn--blue .rfipbtn__del { background-color: #90caf9; } .rfipbtn--blue .rfipbtn__del:hover { background-color: #64b5f6; } .rfipbtn--blue .rfipbtn__del:active, .rfipbtn--blue .rfipbtn__del:focus { outline: 1px solid #64b5f6; } .rfipdropdown--blue { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #64b5f6; } .rfipdropdown--blue input, .rfipdropdown--blue select { color: #424242; } .rfipdropdown--blue .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #42a5f5; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--blue .rfipcategory select:active, .rfipdropdown--blue .rfipcategory select:focus { border-bottom-color: #2196f3; -webkit-box-shadow: 0 1px 0 0 #2196f3; box-shadow: 0 1px 0 0 #2196f3; outline: 0 none; } .rfipdropdown--blue .rfipicons__cp { border: 0 none; border-bottom: 1px solid #42a5f5; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--blue .rfipicons__cp:active, .rfipdropdown--blue .rfipicons__cp:focus { border-bottom-color: #2196f3; -webkit-box-shadow: 0 1px 0 0 #2196f3; box-shadow: 0 1px 0 0 #2196f3; outline: 0 none; } .rfipdropdown--blue .rfipicons__left, .rfipdropdown--blue .rfipicons__right { background-color: #90caf9; border: 1px solid #90caf9; color: #1565c0; } .rfipdropdown--blue .rfipicons__left:hover, .rfipdropdown--blue .rfipicons__right:hover { background-color: #42a5f5; border: 1px solid #42a5f5; } .rfipdropdown--blue .rfipicons__left:active, .rfipdropdown--blue .rfipicons__left:focus, .rfipdropdown--blue .rfipicons__right:active, .rfipdropdown--blue .rfipicons__right:focus { border: 1px solid #42a5f5; } .rfipdropdown--blue .rfipicons__ibox { background-color: #bbdefb; border: 1px solid #bbdefb; color: #1565c0; } .rfipdropdown--blue .rfipicons__ibox:hover { background-color: #42a5f5; border: 1px solid #42a5f5; } .rfipdropdown--blue .rfipicons__ibox:active, .rfipdropdown--blue .rfipicons__ibox:focus { border: 1px solid #42a5f5; } .rfipdropdown--blue .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--blue .rfipicons__icon--selected .rfipicons__ibox { background-color: #90caf9; } .rfipdropdown--blue .rfipsearch input { border: 0 none; border-bottom: 1px solid #42a5f5; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--blue .rfipsearch input:active, .rfipdropdown--blue .rfipsearch input:focus { border-bottom-color: #2196f3; -webkit-box-shadow: 0 1px 0 0 #2196f3; box-shadow: 0 1px 0 0 #2196f3; outline: 0 none; } .rfipbtn--indigo { background-color: #fff; border: 1px solid #7986cb; } .rfipbtn--indigo:active, .rfipbtn--indigo:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #5c6bc0; } .rfipbtn--indigo .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #7986cb; background-color: #c5cae9; color: #283593; } .rfipbtn--indigo .rfipbtn__button:hover { background-color: #5c6bc0; } .rfipbtn--indigo .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #7986cb; box-shadow: inset 0 0 10px 0 #7986cb; } .rfipbtn--indigo .rfipbtn__icon { border: 1px solid #9fa8da; color: #283593; } .rfipbtn--indigo .rfipbtn__icon--empty { color: #7986cb; } .rfipbtn--indigo .rfipbtn__del { background-color: #9fa8da; } .rfipbtn--indigo .rfipbtn__del:hover { background-color: #7986cb; } .rfipbtn--indigo .rfipbtn__del:active, .rfipbtn--indigo .rfipbtn__del:focus { outline: 1px solid #7986cb; } .rfipdropdown--indigo { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #7986cb; } .rfipdropdown--indigo input, .rfipdropdown--indigo select { color: #424242; } .rfipdropdown--indigo .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #5c6bc0; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--indigo .rfipcategory select:active, .rfipdropdown--indigo .rfipcategory select:focus { border-bottom-color: #3f51b5; -webkit-box-shadow: 0 1px 0 0 #3f51b5; box-shadow: 0 1px 0 0 #3f51b5; outline: 0 none; } .rfipdropdown--indigo .rfipicons__cp { border: 0 none; border-bottom: 1px solid #5c6bc0; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--indigo .rfipicons__cp:active, .rfipdropdown--indigo .rfipicons__cp:focus { border-bottom-color: #3f51b5; -webkit-box-shadow: 0 1px 0 0 #3f51b5; box-shadow: 0 1px 0 0 #3f51b5; outline: 0 none; } .rfipdropdown--indigo .rfipicons__left, .rfipdropdown--indigo .rfipicons__right { background-color: #9fa8da; border: 1px solid #9fa8da; color: #283593; } .rfipdropdown--indigo .rfipicons__left:hover, .rfipdropdown--indigo .rfipicons__right:hover { background-color: #5c6bc0; border: 1px solid #5c6bc0; } .rfipdropdown--indigo .rfipicons__left:active, .rfipdropdown--indigo .rfipicons__left:focus, .rfipdropdown--indigo .rfipicons__right:active, .rfipdropdown--indigo .rfipicons__right:focus { border: 1px solid #5c6bc0; } .rfipdropdown--indigo .rfipicons__ibox { background-color: #c5cae9; border: 1px solid #c5cae9; color: #283593; } .rfipdropdown--indigo .rfipicons__ibox:hover { background-color: #5c6bc0; border: 1px solid #5c6bc0; } .rfipdropdown--indigo .rfipicons__ibox:active, .rfipdropdown--indigo .rfipicons__ibox:focus { border: 1px solid #5c6bc0; } .rfipdropdown--indigo .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--indigo .rfipicons__icon--selected .rfipicons__ibox { background-color: #9fa8da; } .rfipdropdown--indigo .rfipsearch input { border: 0 none; border-bottom: 1px solid #5c6bc0; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--indigo .rfipsearch input:active, .rfipdropdown--indigo .rfipsearch input:focus { border-bottom-color: #3f51b5; -webkit-box-shadow: 0 1px 0 0 #3f51b5; box-shadow: 0 1px 0 0 #3f51b5; outline: 0 none; } .rfipbtn--lightblue { background-color: #fff; border: 1px solid #4fc3f7; } .rfipbtn--lightblue:active, .rfipbtn--lightblue:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #29b6f6; } .rfipbtn--lightblue .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #4fc3f7; background-color: #b3e5fc; color: #0277bd; } .rfipbtn--lightblue .rfipbtn__button:hover { background-color: #29b6f6; } .rfipbtn--lightblue .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #4fc3f7; box-shadow: inset 0 0 10px 0 #4fc3f7; } .rfipbtn--lightblue .rfipbtn__icon { border: 1px solid #81d4fa; color: #0277bd; } .rfipbtn--lightblue .rfipbtn__icon--empty { color: #4fc3f7; } .rfipbtn--lightblue .rfipbtn__del { background-color: #81d4fa; } .rfipbtn--lightblue .rfipbtn__del:hover { background-color: #4fc3f7; } .rfipbtn--lightblue .rfipbtn__del:active, .rfipbtn--lightblue .rfipbtn__del:focus { outline: 1px solid #4fc3f7; } .rfipdropdown--lightblue { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #4fc3f7; } .rfipdropdown--lightblue input, .rfipdropdown--lightblue select { color: #424242; } .rfipdropdown--lightblue .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #29b6f6; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--lightblue .rfipcategory select:active, .rfipdropdown--lightblue .rfipcategory select:focus { border-bottom-color: #03a9f4; -webkit-box-shadow: 0 1px 0 0 #03a9f4; box-shadow: 0 1px 0 0 #03a9f4; outline: 0 none; } .rfipdropdown--lightblue .rfipicons__cp { border: 0 none; border-bottom: 1px solid #29b6f6; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--lightblue .rfipicons__cp:active, .rfipdropdown--lightblue .rfipicons__cp:focus { border-bottom-color: #03a9f4; -webkit-box-shadow: 0 1px 0 0 #03a9f4; box-shadow: 0 1px 0 0 #03a9f4; outline: 0 none; } .rfipdropdown--lightblue .rfipicons__left, .rfipdropdown--lightblue .rfipicons__right { background-color: #81d4fa; border: 1px solid #81d4fa; color: #0277bd; } .rfipdropdown--lightblue .rfipicons__left:hover, .rfipdropdown--lightblue .rfipicons__right:hover { background-color: #29b6f6; border: 1px solid #29b6f6; } .rfipdropdown--lightblue .rfipicons__left:active, .rfipdropdown--lightblue .rfipicons__left:focus, .rfipdropdown--lightblue .rfipicons__right:active, .rfipdropdown--lightblue .rfipicons__right:focus { border: 1px solid #29b6f6; } .rfipdropdown--lightblue .rfipicons__ibox { background-color: #b3e5fc; border: 1px solid #b3e5fc; color: #0277bd; } .rfipdropdown--lightblue .rfipicons__ibox:hover { background-color: #29b6f6; border: 1px solid #29b6f6; } .rfipdropdown--lightblue .rfipicons__ibox:active, .rfipdropdown--lightblue .rfipicons__ibox:focus { border: 1px solid #29b6f6; } .rfipdropdown--lightblue .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--lightblue .rfipicons__icon--selected .rfipicons__ibox { background-color: #81d4fa; } .rfipdropdown--lightblue .rfipsearch input { border: 0 none; border-bottom: 1px solid #29b6f6; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--lightblue .rfipsearch input:active, .rfipdropdown--lightblue .rfipsearch input:focus { border-bottom-color: #03a9f4; -webkit-box-shadow: 0 1px 0 0 #03a9f4; box-shadow: 0 1px 0 0 #03a9f4; outline: 0 none; } .rfipbtn--pink { background-color: #fff; border: 1px solid #f06292; } .rfipbtn--pink:active, .rfipbtn--pink:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #ec407a; } .rfipbtn--pink .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #f06292; background-color: #f8bbd0; color: #ad1457; } .rfipbtn--pink .rfipbtn__button:hover { background-color: #ec407a; } .rfipbtn--pink .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #f06292; box-shadow: inset 0 0 10px 0 #f06292; } .rfipbtn--pink .rfipbtn__icon { border: 1px solid #f48fb1; color: #ad1457; } .rfipbtn--pink .rfipbtn__icon--empty { color: #f06292; } .rfipbtn--pink .rfipbtn__del { background-color: #f48fb1; } .rfipbtn--pink .rfipbtn__del:hover { background-color: #f06292; } .rfipbtn--pink .rfipbtn__del:active, .rfipbtn--pink .rfipbtn__del:focus { outline: 1px solid #f06292; } .rfipdropdown--pink { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #f06292; } .rfipdropdown--pink input, .rfipdropdown--pink select { color: #424242; } .rfipdropdown--pink .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #ec407a; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--pink .rfipcategory select:active, .rfipdropdown--pink .rfipcategory select:focus { border-bottom-color: #e91e63; -webkit-box-shadow: 0 1px 0 0 #e91e63; box-shadow: 0 1px 0 0 #e91e63; outline: 0 none; } .rfipdropdown--pink .rfipicons__cp { border: 0 none; border-bottom: 1px solid #ec407a; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--pink .rfipicons__cp:active, .rfipdropdown--pink .rfipicons__cp:focus { border-bottom-color: #e91e63; -webkit-box-shadow: 0 1px 0 0 #e91e63; box-shadow: 0 1px 0 0 #e91e63; outline: 0 none; } .rfipdropdown--pink .rfipicons__left, .rfipdropdown--pink .rfipicons__right { background-color: #f48fb1; border: 1px solid #f48fb1; color: #ad1457; } .rfipdropdown--pink .rfipicons__left:hover, .rfipdropdown--pink .rfipicons__right:hover { background-color: #ec407a; border: 1px solid #ec407a; } .rfipdropdown--pink .rfipicons__left:active, .rfipdropdown--pink .rfipicons__left:focus, .rfipdropdown--pink .rfipicons__right:active, .rfipdropdown--pink .rfipicons__right:focus { border: 1px solid #ec407a; } .rfipdropdown--pink .rfipicons__ibox { background-color: #f8bbd0; border: 1px solid #f8bbd0; color: #ad1457; } .rfipdropdown--pink .rfipicons__ibox:hover { background-color: #ec407a; border: 1px solid #ec407a; } .rfipdropdown--pink .rfipicons__ibox:active, .rfipdropdown--pink .rfipicons__ibox:focus { border: 1px solid #ec407a; } .rfipdropdown--pink .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--pink .rfipicons__icon--selected .rfipicons__ibox { background-color: #f48fb1; } .rfipdropdown--pink .rfipsearch input { border: 0 none; border-bottom: 1px solid #ec407a; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--pink .rfipsearch input:active, .rfipdropdown--pink .rfipsearch input:focus { border-bottom-color: #e91e63; -webkit-box-shadow: 0 1px 0 0 #e91e63; box-shadow: 0 1px 0 0 #e91e63; outline: 0 none; } .rfipbtn--orange { background-color: #fff; border: 1px solid #ffb74d; } .rfipbtn--orange:active, .rfipbtn--orange:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #ffa726; } .rfipbtn--orange .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #ffb74d; background-color: #ffe0b2; color: #ef6c00; } .rfipbtn--orange .rfipbtn__button:hover { background-color: #ffa726; } .rfipbtn--orange .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #ffb74d; box-shadow: inset 0 0 10px 0 #ffb74d; } .rfipbtn--orange .rfipbtn__icon { border: 1px solid #ffcc80; color: #ef6c00; } .rfipbtn--orange .rfipbtn__icon--empty { color: #ffb74d; } .rfipbtn--orange .rfipbtn__del { background-color: #ffcc80; } .rfipbtn--orange .rfipbtn__del:hover { background-color: #ffb74d; } .rfipbtn--orange .rfipbtn__del:active, .rfipbtn--orange .rfipbtn__del:focus { outline: 1px solid #ffb74d; } .rfipdropdown--orange { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #ffb74d; } .rfipdropdown--orange input, .rfipdropdown--orange select { color: #424242; } .rfipdropdown--orange .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #ffa726; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--orange .rfipcategory select:active, .rfipdropdown--orange .rfipcategory select:focus { border-bottom-color: #ff9800; -webkit-box-shadow: 0 1px 0 0 #ff9800; box-shadow: 0 1px 0 0 #ff9800; outline: 0 none; } .rfipdropdown--orange .rfipicons__cp { border: 0 none; border-bottom: 1px solid #ffa726; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--orange .rfipicons__cp:active, .rfipdropdown--orange .rfipicons__cp:focus { border-bottom-color: #ff9800; -webkit-box-shadow: 0 1px 0 0 #ff9800; box-shadow: 0 1px 0 0 #ff9800; outline: 0 none; } .rfipdropdown--orange .rfipicons__left, .rfipdropdown--orange .rfipicons__right { background-color: #ffcc80; border: 1px solid #ffcc80; color: #ef6c00; } .rfipdropdown--orange .rfipicons__left:hover, .rfipdropdown--orange .rfipicons__right:hover { background-color: #ffa726; border: 1px solid #ffa726; } .rfipdropdown--orange .rfipicons__left:active, .rfipdropdown--orange .rfipicons__left:focus, .rfipdropdown--orange .rfipicons__right:active, .rfipdropdown--orange .rfipicons__right:focus { border: 1px solid #ffa726; } .rfipdropdown--orange .rfipicons__ibox { background-color: #ffe0b2; border: 1px solid #ffe0b2; color: #ef6c00; } .rfipdropdown--orange .rfipicons__ibox:hover { background-color: #ffa726; border: 1px solid #ffa726; } .rfipdropdown--orange .rfipicons__ibox:active, .rfipdropdown--orange .rfipicons__ibox:focus { border: 1px solid #ffa726; } .rfipdropdown--orange .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--orange .rfipicons__icon--selected .rfipicons__ibox { background-color: #ffcc80; } .rfipdropdown--orange .rfipsearch input { border: 0 none; border-bottom: 1px solid #ffa726; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--orange .rfipsearch input:active, .rfipdropdown--orange .rfipsearch input:focus { border-bottom-color: #ff9800; -webkit-box-shadow: 0 1px 0 0 #ff9800; box-shadow: 0 1px 0 0 #ff9800; outline: 0 none; } .rfipbtn--purple { background-color: #fff; border: 1px solid #ba68c8; } .rfipbtn--purple:active, .rfipbtn--purple:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #ab47bc; } .rfipbtn--purple .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #ba68c8; background-color: #e1bee7; color: #6a1b9a; } .rfipbtn--purple .rfipbtn__button:hover { background-color: #ab47bc; } .rfipbtn--purple .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #ba68c8; box-shadow: inset 0 0 10px 0 #ba68c8; } .rfipbtn--purple .rfipbtn__icon { border: 1px solid #ce93d8; color: #6a1b9a; } .rfipbtn--purple .rfipbtn__icon--empty { color: #ba68c8; } .rfipbtn--purple .rfipbtn__del { background-color: #ce93d8; } .rfipbtn--purple .rfipbtn__del:hover { background-color: #ba68c8; } .rfipbtn--purple .rfipbtn__del:active, .rfipbtn--purple .rfipbtn__del:focus { outline: 1px solid #ba68c8; } .rfipdropdown--purple { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #ba68c8; } .rfipdropdown--purple input, .rfipdropdown--purple select { color: #424242; } .rfipdropdown--purple .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #ab47bc; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--purple .rfipcategory select:active, .rfipdropdown--purple .rfipcategory select:focus { border-bottom-color: #9c27b0; -webkit-box-shadow: 0 1px 0 0 #9c27b0; box-shadow: 0 1px 0 0 #9c27b0; outline: 0 none; } .rfipdropdown--purple .rfipicons__cp { border: 0 none; border-bottom: 1px solid #ab47bc; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--purple .rfipicons__cp:active, .rfipdropdown--purple .rfipicons__cp:focus { border-bottom-color: #9c27b0; -webkit-box-shadow: 0 1px 0 0 #9c27b0; box-shadow: 0 1px 0 0 #9c27b0; outline: 0 none; } .rfipdropdown--purple .rfipicons__left, .rfipdropdown--purple .rfipicons__right { background-color: #ce93d8; border: 1px solid #ce93d8; color: #6a1b9a; } .rfipdropdown--purple .rfipicons__left:hover, .rfipdropdown--purple .rfipicons__right:hover { background-color: #ab47bc; border: 1px solid #ab47bc; } .rfipdropdown--purple .rfipicons__left:active, .rfipdropdown--purple .rfipicons__left:focus, .rfipdropdown--purple .rfipicons__right:active, .rfipdropdown--purple .rfipicons__right:focus { border: 1px solid #ab47bc; } .rfipdropdown--purple .rfipicons__ibox { background-color: #e1bee7; border: 1px solid #e1bee7; color: #6a1b9a; } .rfipdropdown--purple .rfipicons__ibox:hover { background-color: #ab47bc; border: 1px solid #ab47bc; } .rfipdropdown--purple .rfipicons__ibox:active, .rfipdropdown--purple .rfipicons__ibox:focus { border: 1px solid #ab47bc; } .rfipdropdown--purple .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--purple .rfipicons__icon--selected .rfipicons__ibox { background-color: #ce93d8; } .rfipdropdown--purple .rfipsearch input { border: 0 none; border-bottom: 1px solid #ab47bc; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--purple .rfipsearch input:active, .rfipdropdown--purple .rfipsearch input:focus { border-bottom-color: #9c27b0; -webkit-box-shadow: 0 1px 0 0 #9c27b0; box-shadow: 0 1px 0 0 #9c27b0; outline: 0 none; } .rfipbtn--red { background-color: #fff; border: 1px solid #e57373; } .rfipbtn--red:active, .rfipbtn--red:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #ef5350; } .rfipbtn--red .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #e57373; background-color: #ffcdd2; color: #c62828; } .rfipbtn--red .rfipbtn__button:hover { background-color: #ef5350; } .rfipbtn--red .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #e57373; box-shadow: inset 0 0 10px 0 #e57373; } .rfipbtn--red .rfipbtn__icon { border: 1px solid #ef9a9a; color: #c62828; } .rfipbtn--red .rfipbtn__icon--empty { color: #e57373; } .rfipbtn--red .rfipbtn__del { background-color: #ef9a9a; } .rfipbtn--red .rfipbtn__del:hover { background-color: #e57373; } .rfipbtn--red .rfipbtn__del:active, .rfipbtn--red .rfipbtn__del:focus { outline: 1px solid #e57373; } .rfipdropdown--red { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #e57373; } .rfipdropdown--red input, .rfipdropdown--red select { color: #424242; } .rfipdropdown--red .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #ef5350; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--red .rfipcategory select:active, .rfipdropdown--red .rfipcategory select:focus { border-bottom-color: #f44336; -webkit-box-shadow: 0 1px 0 0 #f44336; box-shadow: 0 1px 0 0 #f44336; outline: 0 none; } .rfipdropdown--red .rfipicons__cp { border: 0 none; border-bottom: 1px solid #ef5350; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--red .rfipicons__cp:active, .rfipdropdown--red .rfipicons__cp:focus { border-bottom-color: #f44336; -webkit-box-shadow: 0 1px 0 0 #f44336; box-shadow: 0 1px 0 0 #f44336; outline: 0 none; } .rfipdropdown--red .rfipicons__left, .rfipdropdown--red .rfipicons__right { background-color: #ef9a9a; border: 1px solid #ef9a9a; color: #c62828; } .rfipdropdown--red .rfipicons__left:hover, .rfipdropdown--red .rfipicons__right:hover { background-color: #ef5350; border: 1px solid #ef5350; } .rfipdropdown--red .rfipicons__left:active, .rfipdropdown--red .rfipicons__left:focus, .rfipdropdown--red .rfipicons__right:active, .rfipdropdown--red .rfipicons__right:focus { border: 1px solid #ef5350; } .rfipdropdown--red .rfipicons__ibox { background-color: #ffcdd2; border: 1px solid #ffcdd2; color: #c62828; } .rfipdropdown--red .rfipicons__ibox:hover { background-color: #ef5350; border: 1px solid #ef5350; } .rfipdropdown--red .rfipicons__ibox:active, .rfipdropdown--red .rfipicons__ibox:focus { border: 1px solid #ef5350; } .rfipdropdown--red .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--red .rfipicons__icon--selected .rfipicons__ibox { background-color: #ef9a9a; } .rfipdropdown--red .rfipsearch input { border: 0 none; border-bottom: 1px solid #ef5350; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--red .rfipsearch input:active, .rfipdropdown--red .rfipsearch input:focus { border-bottom-color: #f44336; -webkit-box-shadow: 0 1px 0 0 #f44336; box-shadow: 0 1px 0 0 #f44336; outline: 0 none; } .rfipbtn--teal { background-color: #fff; border: 1px solid #4db6ac; } .rfipbtn--teal:active, .rfipbtn--teal:focus { -webkit-box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12); border: 1px solid #26a69a; } .rfipbtn--teal .rfipbtn__button { border: 0 none transparent; border-left: 1px solid #4db6ac; background-color: #b2dfdb; color: #00695c; } .rfipbtn--teal .rfipbtn__button:hover { background-color: #26a69a; } .rfipbtn--teal .rfipbtn__button:active { -webkit-box-shadow: inset 0 0 10px 0 #4db6ac; box-shadow: inset 0 0 10px 0 #4db6ac; } .rfipbtn--teal .rfipbtn__icon { border: 1px solid #80cbc4; color: #00695c; } .rfipbtn--teal .rfipbtn__icon--empty { color: #4db6ac; } .rfipbtn--teal .rfipbtn__del { background-color: #80cbc4; } .rfipbtn--teal .rfipbtn__del:hover { background-color: #4db6ac; } .rfipbtn--teal .rfipbtn__del:active, .rfipbtn--teal .rfipbtn__del:focus { outline: 1px solid #4db6ac; } .rfipdropdown--teal { -webkit-box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); box-shadow: 0 15px 24px rgba(0, 0, 0, 0.22), 0 19px 76px rgba(0, 0, 0, 0.3); color: #424242; background-color: #fff; border: 1px solid #4db6ac; } .rfipdropdown--teal input, .rfipdropdown--teal select { color: #424242; } .rfipdropdown--teal .rfipcategory select { background-color: #fff; border: 0 none; border-bottom: 1px solid #26a69a; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--teal .rfipcategory select:active, .rfipdropdown--teal .rfipcategory select:focus { border-bottom-color: #009688; -webkit-box-shadow: 0 1px 0 0 #009688; box-shadow: 0 1px 0 0 #009688; outline: 0 none; } .rfipdropdown--teal .rfipicons__cp { border: 0 none; border-bottom: 1px solid #26a69a; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--teal .rfipicons__cp:active, .rfipdropdown--teal .rfipicons__cp:focus { border-bottom-color: #009688; -webkit-box-shadow: 0 1px 0 0 #009688; box-shadow: 0 1px 0 0 #009688; outline: 0 none; } .rfipdropdown--teal .rfipicons__left, .rfipdropdown--teal .rfipicons__right { background-color: #80cbc4; border: 1px solid #80cbc4; color: #00695c; } .rfipdropdown--teal .rfipicons__left:hover, .rfipdropdown--teal .rfipicons__right:hover { background-color: #26a69a; border: 1px solid #26a69a; } .rfipdropdown--teal .rfipicons__left:active, .rfipdropdown--teal .rfipicons__left:focus, .rfipdropdown--teal .rfipicons__right:active, .rfipdropdown--teal .rfipicons__right:focus { border: 1px solid #26a69a; } .rfipdropdown--teal .rfipicons__ibox { background-color: #b2dfdb; border: 1px solid #b2dfdb; color: #00695c; } .rfipdropdown--teal .rfipicons__ibox:hover { background-color: #26a69a; border: 1px solid #26a69a; } .rfipdropdown--teal .rfipicons__ibox:active, .rfipdropdown--teal .rfipicons__ibox:focus { border: 1px solid #26a69a; } .rfipdropdown--teal .rfipicons__ibox--error { color: #ef9a9a; } .rfipdropdown--teal .rfipicons__icon--selected .rfipicons__ibox { background-color: #80cbc4; } .rfipdropdown--teal .rfipsearch input { border: 0 none; border-bottom: 1px solid #26a69a; -webkit-transition: border 0.25s, -webkit-box-shadow 0.25s; transition: border 0.25s, -webkit-box-shadow 0.25s; transition: box-shadow 0.25s, border 0.25s; transition: box-shadow 0.25s, border 0.25s, -webkit-box-shadow 0.25s; } .rfipdropdown--teal .rfipsearch input:active, .rfipdropdown--teal .rfipsearch input:focus { border-bottom-color: #009688; -webkit-box-shadow: 0 1px 0 0 #009688; box-shadow: 0 1px 0 0 #009688; outline: 0 none; } .rfipbtn--default .rfipbtn__icon { border: 0; height: 30px; margin: 0; border-radius: 0; } .rfipbtn--default .rfipbtn__del { height: 18px; } .rfipicons__icon svg[fill=none] { fill: none !important; } .rfipbtn__elm svg[fill=none] { fill: none !important; } [class^=fipicon-] { font-style: normal; font-weight: 400; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } i.fipicon-angle-down:before { content: "\f140"; font-family: dashicons; } .rfipcategory i.fipicon-angle-down:before { display: none; } .kb-icon-picker-container .rfipbtn--default:active, .kb-icon-picker-container .rfipbtn--default:focus { box-shadow: none; } .kb-icon-picker-container .rfip { margin: 0 0 10px; width: 100%; } .kb-icon-picker-container .rfip .rfipbtn { width: 100%; min-height: 30px; } i.fipicon-angle-up:before { content: "\f142"; font-family: dashicons; } i.fipicon-angle-right:before { content: "\f345"; font-family: dashicons; } i.fipicon-angle-left:before { content: "\f341"; font-family: dashicons; } li#accordion-section-kadence_customizer_custom_posts_placeholder { pointer-events: none; margin: 10px 0 0; } li#accordion-section-kadence_customizer_custom_posts_placeholder > h3.accordion-section-title { border: 0; background: transparent; text-transform: uppercase; font-size: 80%; } li#accordion-section-kadence_customizer_custom_posts_placeholder > h3.accordion-section-title:after { display: none; } .kadence-units .components-dropdown__content .components-popover__content > div { padding: 5px 0; } .kadence-units .components-dropdown__content .components-popover__content > div .components-button.components-dropdown-menu__menu-item.has-icon { padding: 0; min-width: 32px; } .wrap-components-custom-gradient-picker:before { content: ""; background-image: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; left: 0; right: 0; height: 100%; position: absolute; z-index: -1; border-radius: 24px; } .components-custom-gradient-picker__gradient-bar { position: relative; } .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button { box-shadow: 0px 0px 0px 2px rgba(0, 0, 0, 0.8); } .kadence-range-control-inner { box-sizing: border-box; align-items: flex-start; display: inline-flex; -webkit-box-pack: start; justify-content: flex-start; padding: 0px; position: relative; width: 100%; } .kadence-range-control-inner .components-range-control.kadence-range-control-range { flex-grow: 1; margin-bottom: 0; } .kadence-range-control { width: 100%; } .kadence-range-control-inner .components-base-control.kt-range-number-input { margin-left: 16px; margin-bottom: 0; flex: 0 1 65px; } .kadence-control-field button.components-button.kadence-reset span.dashicon { height: auto; width: auto; font-size: 12px; } #customize-theme-controls .customize-pane-child.accordion-section-content { padding: 12px 24px; } #customize-theme-controls .customize-pane-child.accordion-section-content .customize-section-title { margin: -12px -24px 0 -24px; } #customize-theme-controls .customize-pane-child.accordion-section-content.control-section-sidebar { padding: 12px; } .kadence-units { max-width: 60px; } .kadence-units .components-dropdown-menu { padding: 0; min-height: 0; border-color: #e2e4e7; } .kadence-units .components-button.components-dropdown-menu__toggle { min-height: 28px; min-width: 30px; height: auto; } .kadence-units .components-popover__content { min-width: 50px; width: 50px; } .kadence-units .components-popover__content button.components-button { height: 36px; text-align: center; justify-content: center; box-shadow: none; } .kadence-units .components-popover__content button.components-button svg { margin: 0; } .kadence-range-control .kadence-responsive-controls-content { display: flex; } .kadence-range-control .components-range-control { flex-grow: 1; } .kadence-range-control input.components-range-control__number { max-width: 65px; margin-left: 18px; border: 1px solid #e2e4e7; border-radius: 0; margin-right: 1px; } .kadence-range-control .components-base-control__field { margin: 0; } .kadence-range-control button.components-button { height: 28px; } .kadence-control-field.radio-btn-width-50 .kadence-radio-container-control { flex-wrap: wrap; } .kadence-control-field.radio-btn-width-50 .kadence-radio-container-control button.components-button.is-tertiary { min-width: 45%; margin: 4px; } .kadence-responsive-control-bar { display: flex; justify-content: space-between; position: relative; margin-bottom: 10px; } .kadence-responsive-control-bar .floating-controls .components-button.is-tertiary:not(.active-device) { color: #A0AEC0; } .kadence-responsive-control-bar .floating-controls .components-button.is-tertiary:not(.active-device):hover { color: #718096; } .kadence-responsive-control-bar .floating-controls .components-button { height: 18px; padding-top: 0; padding-bottom: 0; box-shadow: none; } .kadence-responsive-control-bar .floating-controls .components-button svg { height: 16px; width: 16px; } .kadence-responsive-control-bar .floating-controls .components-button:focus:not(:disabled) { color: #007cba; box-shadow: none; } .kadence-responsive-control-bar .floating-controls .components-button-group { display: flex; border: 0; } .kadence-responsive-control-bar .advanced-controls .components-button { color: #A0AEC0; height: 18px; padding-top: 0; padding-bottom: 0; box-shadow: none; } .kadence-responsive-control-bar .advanced-controls .components-button svg { height: 16px; width: 16px; } .kadence-responsive-control-bar .advanced-controls .components-button:focus-visible:not(:disabled), .kadence-responsive-control-bar .advanced-controls .components-button:hover { color: #718096; box-shadow: none; border: none; } .kadence-responsive-control-bar .advanced-controls .components-button.is-pressed { background: none; color: #007cba; } .kadence-typography-advanced-group-label { font-weight: bold; } .kadence-advanced-control-button { justify-content: center; width: 100%; } .kadence-popover-typography-advanced.components-popover div.components-popover__content { padding: 0; } .kadence-popover-typography-advanced .kadence-control-field.kadence-title-control { margin: 0; } .kadence-popover-typography-advanced .kadence-popover-typography-advanced-content { padding: 10px; } .kadence-popover-typography-advanced .kadence-popover-close { position: absolute; top: 4px; right: 0; } .kadence-popover-typography-advanced .kadence-typography-advanced-control-row .kadence-typography-advanced-control { display: flex; } .kadence-popover-typography-advanced .kadence-typography-advanced-control-row .kadence-typography-advanced-control input { flex: 1; height: 32px; } .kadence-popover-typography-advanced .kadence-typography-advanced-control-row .kadence-typography-advanced-control .components-base-control { flex: 0.5; } .kadence-control-field .components-button-group { border: 0; } .kadence-control-field { position: relative; margin-top: 10px; margin-bottom: 10px; } .kadence-control-field .customize-control-title { font-size: 14px; font-weight: 600; margin-bottom: 0; display: flex; align-items: center; letter-spacing: 0.1px; line-height: 18px; } .kadence-control-field button.components-button.kadence-reset { height: 18px; padding: 0 5px; margin-right: 0; margin-left: -20px; opacity: 0.5; } .kadence-control-field button.components-button.kadence-reset svg { width: 12px; height: 12px; } .kadence-control-field button.components-button.kadence-reset:disabled { opacity: 0; } .kadence-control-field button.components-button.kadence-reset:not(:disabled):hover { opacity: 1; color: #007cba; box-shadow: none !important; } .kadence-radio-container-control { display: flex; padding: 10px; background: #f9f9f9; border: 0; flex-wrap: wrap; } .kadence-radio-container-control button.components-button.is-tertiary { flex: 1 1 0; display: flex; -webkit-box-align: center; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; text-transform: uppercase; height: 40px; line-height: normal; margin: 0; padding: 4px; border: 1px solid #CBD5E0; border-radius: 2px; background: transparent; color: #4A5568; white-space: normal; box-shadow: none; } .kadence-radio-container-control button.components-button.is-tertiary:not(:first-child) { margin-left: 4px; } .kadence-radio-container-control button.components-button.is-tertiary:not(:disabled):not([aria-disabled=true]):hover { border-color: #718096; color: #4A5568; } .kadence-radio-container-control button.components-button.is-tertiary.active-radio { border-color: #007cba; background: #007cba; color: #fff; } .kadence-radio-container-control button.components-button.is-tertiary.active-radio:not(:disabled):not([aria-disabled=true]):hover { color: #fff; border-color: #007cba; } .kadence-radio-container-control button.components-button.is-tertiary .kadence-radio-icon { display: flex; justify-content: center; align-items: center; } .kadence-radio-container-control.kadence-radio-icon-container-control { margin-top: 10px; } .kadence-radio-container-control.kadence-radio-icon-container-control button.components-button.is-tertiary { padding: 5px; height: 50px; } .kadence-radio-container-control.kadence-radio-icon-container-control button.components-button.is-tertiary svg { width: 100%; height: auto; max-height: 100%; } .kadence-popover-color .components-popover__content { min-width: 240px; } .kadence-popover-color .components-popover__content .components-focal-point-picker-wrapper { box-sizing: border-box; } .kadence-popover-color .components-popover__content .components-focal-point-picker_position-display-container input[type=number].components-text-control__input { min-height: 16px; line-height: 16px; font-size: 12px; width: 50px; font-weight: normal; } .kadence-popover-color .components-popover__content .components-focal-point-picker_position-display-container .components-base-control { flex: 1; margin-bottom: 0; } .kadence-popover-color .components-popover__content .components-focal-point-picker_position-display-container .components-base-control .components-base-control__label { margin-bottom: 0; margin-right: 0.2em; } .kadence-popover-color .components-popover__content .components-focal-point-picker_position-display-container .components-base-control__field { display: flex; align-items: center; font-size: 8px; font-weight: 600; font-style: normal; text-transform: uppercase; } .kadence-popover-color .components-popover__content .components-focal-point-picker_position-display-container .components-base-control:last-child .components-base-control__field { justify-content: flex-end; } .kadence-popover-color .components-popover__content .actions { display: flex; justify-content: center; margin-bottom: 10px; } .kadence-popover-color .components-popover__content .actions .button { flex: 1; margin-top: 10px; } .kadence-background-picker-wrap .kadence-popover-color .components-popover__content { min-width: 300px; min-height: 340px; max-height: 60vh; } .kadence-background-picker-wrap .kadence-popover-color .components-popover__content > div { min-height: 320px; } .components-popover.kadence-popover-add-builder .components-popover__content { bottom: 0; } .components-button.kadence-color-icon-indicate { height: auto; position: relative; transform: scale(1); transition: transform 0.1s ease; border-radius: 50%; padding: 0; background-image: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; } .components-button.kadence-color-icon-indicate .component-color-indicator.kadence-advanced-color-indicate { width: 28px; height: 28px; border-radius: 50%; margin: 0; } .components-button.kadence-color-icon-indicate:hover { transform: scale(1.1); } .components-button.kadence-background-icon-indicate { width: 50px; height: 50px; overflow: hidden; border-radius: 50%; position: relative; transform: scale(1); transition: transform 0.1s ease; border-radius: 50%; padding: 0; background-image: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); border: 1px solid #dadada; background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; } .components-button.kadence-background-icon-indicate .component-color-indicator.kadence-advanced-color-indicate { width: 100%; height: 100%; border-radius: 50%; margin: 0; display: block; position: absolute; border: 0; top: 0; } .components-button.kadence-background-icon-indicate > .dashicon { position: absolute; transform: translate(-50%, -50%); left: 50%; top: 50%; color: white; background: rgba(0, 0, 0, 0.6); border-radius: 100%; width: 16px; height: 16px; border: 1px solid rgba(0, 0, 0, 0.1); } .components-button.kadence-background-icon-indicate img.kadence-background-image-preview { display: flex; object-fit: cover; min-width: 100%; min-height: 100%; position: absolute; top: 0; } .components-button.kadence-background-icon-indicate:hover { box-shadow: none !important; } .kadence-control-field.kadence-color-control { display: flex; } .kadence-control-field.kadence-color-control .customize-control-title { flex-grow: 2; } .components-popover.kadence-popover-color .components-popover__content { padding: 10px 10px 0px; box-sizing: initial; background: rgb(255, 255, 255); border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.15) 0px 8px 16px; } .components-popover.kadence-popover-color .components-popover__content .sketch-picker { padding: 0 0 5px !important; box-shadow: none !important; border-radius: 0px !important; } .components-popover.kadence-popover-color .components-popover__content .attachment-media-view { margin-top: 10px; margin-bottom: 10px; } .kadence-swatches-wrap { display: flex; flex-wrap: wrap; justify-content: flex-start; column-gap: 0.75px; border-top: 1px solid rgb(238, 238, 238); } .kadence-swatches-wrap .kadence-swatche-item-wrap:hover { transform: scale(1.2) !important; } .kadence-swatches-wrap .kadence-swatche-item-wrap .kadence-swatch-item { background-image: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; padding: 0; display: flex; justify-content: center; } .kadence-swatches-wrap .kadence-swatche-item-wrap .kadence-swatch-item .dashicon { display: none; } .kadence-swatches-wrap .kadence-swatche-item-wrap .kadence-swatch-item.swatch-active { box-shadow: 0 0 0 8px inset !important; } .kadence-swatches-wrap .kadence-swatche-item-wrap .kadence-swatch-item.swatch-active .dashicon { display: block; color: white; background: rgba(0, 0, 0, 0.6); width: 16px; height: 16px; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 100%; } .components-button.kadence-color-icon-indicate > .dashicon { position: absolute; transform: translate(-50%, -50%); left: 50%; top: 50%; color: white; background: rgba(0, 0, 0, 0.6); border-radius: 100%; width: 16px; height: 16px; border: 1px solid rgba(0, 0, 0, 0.1); } .customize-control-kadence_measure_control input[type=number] { padding: 0 4px; } @media (max-width: 1900px) { .kadence-palette-colors .components-button.kadence-color-icon-indicate .component-color-indicator.kadence-advanced-color-indicate { width: 26px; height: 26px; } .kadence-typography-control .typography-button-wrap > button.components-button.kadence-typography-preview-indicate { padding: 0 2px; } .kadence-typography-control .typography-button-wrap > button.components-button { padding: 0 4px; } .customize-control-kadence_measure_control input[type=number] { padding: 0 2px; } } @media (max-width: 1900px) { .kadence-palette-colors .components-button.kadence-color-icon-indicate .component-color-indicator.kadence-advanced-color-indicate { width: 24px; height: 24px; } } @media (max-width: 1400px) { .kadence-palette-colors .components-button.kadence-color-icon-indicate .component-color-indicator.kadence-advanced-color-indicate { width: 22px; height: 22px; } .customize-control-kadence_measure_control input[type=number] { padding: 0px; } } .kadence-palette-colors .kadence-color-picker-wrap:first-child { margin-left: 0; } .kadence-popover-tabs.kadence-background-tabs .components-tab-panel__tabs { display: flex; border-bottom: 1px solid #dadada; margin-top: -5px; margin-bottom: 15px; } .kadence-palette-import-wrap { float: left; } .kadence-palette-popover-tabs { width: 350px; max-height: 420px; } .kadence-palette-popover-tabs .components-tab-panel__tabs-item { display: flex; flex: 1; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; height: 36px; text-transform: uppercase; border: 0; border-bottom: 4px solid transparent; border-radius: 0; margin-bottom: -1px; opacity: 0.6; } .kadence-palette-popover-tabs .components-tab-panel__tabs { display: flex; border-bottom: 1px solid #dadada; margin-top: -5px; margin-bottom: 15px; } .kadence-palette-popover-copy-paste .components-popover__content { padding: 8px; box-sizing: initial; background: #fff; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.15) 0px 8px 16px; width: 100%; box-sizing: border-box; } .kadence-palette-popover-copy-paste .components-popover__content .kadence-palette-popover-tabs { width: 100%; } .kadence-palette-popover-tabs .components-tab-panel__tabs-item.active-tab { border-bottom-color: #007cba; opacity: 1; box-shadow: none; } .kadence-palette-popover-tabs .components-button.kadence-palette-item { display: flex; flex-direction: row; justify-content: space-between; padding: 5px; margin-bottom: 5px; border: 1px solid transparent; border-radius: 4px; } .kadence-palette-popover-tabs .components-button.kadence-palette-item:hover { border-color: #777; } .kadence-popover-tabs.kadence-background-tabs .components-tab-panel__tabs .components-button { display: flex; flex: 1; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; height: 36px; text-transform: uppercase; border: 0; border-bottom: 4px solid transparent; border-radius: 0; margin-bottom: -1px; opacity: 0.6; } .kadence-popover-tabs.kadence-background-tabs .components-tab-panel__tabs .components-button:focus { outline: 0; box-shadow: none; } .kadence-popover-tabs.kadence-background-tabs .components-tab-panel__tabs .components-button:hover { box-shadow: none !important; opacity: 1; border-bottom: 4px solid #dadada; } .kadence-popover-tabs.kadence-background-tabs .components-tab-panel__tabs .components-button.active-tab { border-bottom-color: #007cba; opacity: 1; } .components-popover__content .kadence-radio-container-control { padding: 10px 0; background: white; } .kadence-control-field .kadence-background-tabs .customize-control-title { padding-top: 10px; font-size: 12px; display: block; } .kadence-control-field.kadence-background-control .kadence-responsive-control-bar .floating-controls { display: flex; align-items: center; margin-left: 0px; } .kadence-control-field.kadence-background-control .kadence-responsive-control-bar .customize-control-title { flex-grow: 1; } .kadence-control-field.kadence-background-control .kadence-responsive-controls-content { display: flex; justify-content: flex-end; } .kadence-control-field.kadence-palette-control.kadence-color-control { display: block; } .kadence-palette-header { display: flex; align-items: center; } .kadence-palette-colors { padding: 20px 0 0; } .kadence-palette-colors .kadence-palette-group { margin-bottom: 7px; } .kadence-palette-colors .kadence-palette-group-name { font-weight: bold; } .kadence-palette-colors .kadence-palette-group-colors { display: flex; gap: 5px; margin-top: 3px; } .kadence-palette-colors .kadence-palette-group:nth-child(1) .kadence-color-picker-wrap:nth-child(3) .kadence-color-icon-indicate:hover { transform: scale(1); } .kadence-palette-colors .kadence-palette-group:nth-child(1) .kadence-color-picker-wrap:nth-child(3) .kadence-advanced-color-indicate { background: var(--global-palette10) !important; box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.2); } .kadence-palette-header .components-button-group .components-button.is-tertiary { color: #a0aec0; border: 1px solid #a0aec0; height: 30px; font-size: 12px; padding: 0 4px; box-shadow: none; } @media (max-width: 1900px) { .kadence-palette-header .components-button-group .components-button.is-tertiary { font-size: 10px; padding: 0 2px; letter-spacing: -0.4px; } } @media (max-width: 1601px) { .kadence-control-field .customize-control-title { font-size: 13px; } } .kadence-palette-header .components-button-group .components-button.is-tertiary.active-palette { color: #fff; border: 1px solid #007cba; background: #007cba; } .kadence-border-control .kadence-responsive-controls-content { display: flex; justify-content: flex-end; } .kadence-border-control .kadence-responsive-controls-content input.components-text-control__input { border: 1px solid #e2e4e7; width: 60px; } .kadence-border-control .kadence-responsive-controls-content .kadence-color-picker-wrap { margin-right: 5px; margin-left: 0; justify-content: flex-end; align-items: center; display: flex; } .kadence-border-control .kadence-responsive-controls-content .color-button-wrap { display: inline-flex; } .kadence-units .components-button { padding-top: 2px; padding-bottom: 2px; } .kadence-typography-control .kadence-typography-controls { display: flex; align-items: center; justify-content: flex-end; margin-top: 5px; } .kadence-typography-control .color-button-wrap { display: flex; } .kadence-typography-control .customize-control-title { flex-grow: 1; } .kadence-typography-control .components-popover.kadence-popover-typography > .components-popover__content { min-width: 340px; min-height: 339px; } .kadence-typography-control .components-popover.kadence-popover-typography > .components-popover__content > div { min-height: 339px; } .kadence-typography-control .kadence-typography-tabs .customize-control-title { padding-top: 0; } .kadence-typography-control .kadence-typography-tabs .kadence-range-control { padding-top: 10px; } .kadence-typography-control .kadence-transform-controls { width: 50%; padding-right: 10px; padding-bottom: 5px; } .kadence-typography-control .kadence-transform-controls .components-button-group { padding: 0 0 10px 0; } .kadence-typography-control .kadence-transform-controls .components-button-group button.components-button.is-tertiary { height: 30px; } .kadence-typography-control .kadence-font-family-list-wrapper { padding-top: 35px; } .kadence-typography-control .components-button-group.kadence-font-family-list { display: flex; max-height: 259px; overflow: scroll; flex-direction: column; } .kadence-typography-control .components-button-group.kadence-font-family-list .kadence-font-family-choice { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-evenly; border-radius: 0; margin: 0; width: 340px; height: 36px; min-height: 36px; border-bottom: 1px solid #e2e4e7; white-space: nowrap; box-shadow: none; color: #2D3748; } .kadence-typography-control .components-button-group.kadence-font-family-list .kadence-font-family-choice .preview-text { font-size: 16px; white-space: nowrap; color: #2D3748; line-height: 30px; } .kadence-typography-control .components-button-group.kadence-font-family-list .kadence-font-family-choice.active-radio, .kadence-typography-control .components-button-group.kadence-font-family-list .kadence-font-family-choice.active-radio:hover, .kadence-typography-control .components-button-group.kadence-font-family-list .kadence-font-family-choice.active-radio:focus { background: #007cba !important; color: white !important; outline: 0 !important; box-shadow: none !important; } .kadence-typography-control .components-button-group.kadence-font-family-list .kadence-font-family-choice.active-radio .preview-text, .kadence-typography-control .components-button-group.kadence-font-family-list .kadence-font-family-choice.active-radio:hover .preview-text, .kadence-typography-control .components-button-group.kadence-font-family-list .kadence-font-family-choice.active-radio:focus .preview-text { color: white; } .kadence-typography-control .components-button-group.kadence-font-variant-list { max-height: 294px; display: flex; flex-direction: column; overflow: scroll; } .kadence-typography-control .components-button-group.kadence-font-variant-list .kadence-font-variant-choice { display: flex; box-shadow: none; border-radius: 0; margin: 0; min-height: 36px; border-bottom: 1px solid #e2e4e7; white-space: nowrap; color: #2D3748; } .kadence-typography-control .components-button-group.kadence-font-variant-list .kadence-font-variant-choice.active-radio, .kadence-typography-control .components-button-group.kadence-font-variant-list .kadence-font-variant-choice.active-radio:hover, .kadence-typography-control .components-button-group.kadence-font-variant-list .kadence-font-variant-choice.active-radio:focus { background: #007cba !important; color: white !important; outline: 0 !important; box-shadow: none !important; } .kadence-typography-control .kadence-font-family-search { position: absolute; display: flex; top: 0; left: 0; right: 0; background: white; } .kadence-typography-control .kadence-font-family-search .components-base-control { display: flex; flex-grow: 1; } .kadence-typography-control .kadence-font-family-search .components-base-control .components-base-control__field { display: flex; margin-bottom: 5px; flex-grow: 1; } .kadence-typography-control .kadence-font-family-search .components-base-control .components-base-control__field input { padding-right: 40px; } .kadence-typography-control .kadence-font-family-search .kadence-clear-search { position: absolute; right: 0; z-index: 100; height: 30px; border: 0 !important; background: transparent !important; box-shadow: none !important; } .kadence-typography-control .kadence-typography-tabs .components-tab-panel__tab-content { position: relative; } .kadence-typography-control button.components-button.kadence-typography-family-indicate { max-width: 100px; white-space: nowrap; overflow: hidden; } .kadence-typography-control .typography-button-wrap > button.components-button { border: 1px solid #e2e4e7; margin-left: 2px; background-color: #fff; } .kadence-typography-control .kadence-popover-typography-single-item { position: relative; } .kadence-typography-control .kadence-popover-typography-single-item .components-button-group.kadence-font-family-list { max-height: 304px; } .customize-control-kadence_typography_control .kadence-control-field button.components-button.kadence-reset { height: 36px; top: 0; } .kadence-preview-font { padding: 10px; background: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; margin-top: 10px; line-height: 1.2; } .kadence-select-units select.components-select-control__input { width: 100%; margin: 0 0 2px 0; border: 1px solid #e2e4e7; } .kadence-control-field.kadence-title-control { background: #f9f9f9; margin-bottom: -13px; margin-top: -17px; margin-left: -24px; margin-right: -24px; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 12px 20px; } .kadence-control-field.kadence-title-control .customize-control-title { font-size: 16px; font-weight: 700; letter-spacing: 0.3px; } .kadence-locked .components-button.is-single { border: 1px solid #e2e4e7; background-color: #fff; display: flex; height: 30px; } .kadence-locked .components-button svg { width: 16px; } .measure-input-wrap { flex-grow: 0; display: flex; flex-direction: column; padding-right: 5px; } .measure-input-wrap small { padding-left: 3px; } .measure-input-wrap input.measure-inputs { border: 1px solid #e2e4e7; } .kadence-radio-container-control button.components-button.is-tertiary svg { width: 100%; height: 100%; max-height: 100%; } .kadence-radio-icon-control.kadence-two-col .components-button-group.kadence-radio-container-control .components-button.is-tertiary svg { height: 60px; } .kadence-radio-container-control button.components-button .kadence-radio-icon { width: 100%; height: 100%; } #customize-control-page_layout .components-button-group.kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } #customize-control-page_layout .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-width: 25%; padding: 10px; margin: 0; min-height: 80px; } #customize-control-page_title_layout .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-height: 90px; padding: 10px; } #customize-control-page_title_layout .kadence-radio-container-control button.components-button.is-tertiary:not(:first-child) { margin-left: 10px; } .kadence-radio-dashicon { max-width: 20px; } .kadence-sorter-item-panel-header { display: flex; width: 100%; cursor: grab; align-items: center; border-bottom: 1px solid #a0aec0; margin-bottom: -1px; } .kadence-sorter-item-panel-header .kadence-sorter-title { flex-grow: 2; padding: 0 8px; font-weight: bold; } .kadence-sorter-item-panel-header .kadence-sorter-visiblity { border-radius: 0; height: 36px; border-right: 1px solid #a0aec0; } .kadence-sorter-item-panel-header .kadence-sorter-visiblity .dashicon { width: 14px; height: 14px; font-size: 14px; } .kadence-sorter-item-panel-header .kadence-sorter-item-expand { border-radius: 0; position: relative; height: 36px; border-left: 0; } .kadence-sorter-item-panel-header .kadence-sorter-item-expand:before { content: ""; position: absolute; left: 0; height: 50%; background: #a0aec0; width: 1px; } .kadence-sorter-item-panel-header .kadence-sorter-item-expand:focus:before { opacity: 0; } .kadence-sorter-item-panel-header .kadence-sorter-item-expand .dashicon { width: 14px; height: 14px; font-size: 14px; } .kadence-sorter-drop .kadence-sorter-item { line-height: 28px; height: auto; background: white; position: relative; border: 1px solid #a0aec0; white-space: nowrap; position: relative; margin: 0 0 4px; padding: 0px; border-radius: 3px; } .kadence-sorter-drop { display: flex; flex-direction: column; } .kadence-sorter-item-panel-content { padding: 10px; } .kadence-sorter-item-panel-content .components-base-control__field { display: flex; flex-direction: column; } .kadence-sorter-item-panel-content .components-button.kadence-sorter-item-remove { color: #b52727; } .sortable-style-tabs .components-tab-panel__tabs { display: flex; border-bottom: 1px solid #dadada; margin-bottom: 15px; } .sortable-style-tabs .components-tab-panel__tabs .components-button { display: flex; -webkit-box-flex: 1; flex: 1; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; height: 36px; text-transform: uppercase; border: 0; border-bottom: 4px solid transparent; border-radius: 0; margin-bottom: -1px; opacity: 0.6; box-shadow: none; } .sortable-style-tabs .components-tab-panel__tabs .components-button.active-tab { border-bottom-color: #007cba; opacity: 1; } .kadence-social-add-area { display: flex; } .kadence-social-add-area .components-base-control { flex-grow: 1; padding-right: 10px; } .kadence-social-add-area .components-base-control .components-base-control__field { margin-bottom: 0; } .kadence-social-add-area .kadence-sorter-add-item { height: 32px; line-height: normal; } .kadence-social-add-area .kadence-sorter-add-item svg, .kadence-social-add-area .kadence-sorter-add-item .dashicons { width: 14px; height: 14px; font-size: 14px; margin-top: 2px; } .kadence-sorter-row { margin-bottom: 16px; } .kadence-sorter-item-panel-content .components-button.button-add-media { display: block; margin-bottom: 20px; height: auto; } .social-custom-image { display: flex; margin-bottom: 20px; align-items: center; justify-content: space-around; } .social-custom-image .components-button.remove-image.is-destructive { color: #b52727; } .kadence-social-image { max-width: 50px; padding-right: 20px; } .kadence-sorter-item-panel-content .kadence-radio-container-control button.components-button.is-tertiary { padding: 4px; } @media (max-width: 1760px) { .measure-input-wrap { padding-right: 2px; } .measure-input-wrap input.measure-inputs { padding: 0 2px; } .kadence-locked .components-button.is-single { padding: 0 2px; } .kadence-range-control button.components-button { padding: 0 2px; } .components-button.has-icon.has-text svg { margin-right: 3px; max-width: 20px; } .kadence-locked .components-button.is-single svg { width: 14px; } } .kadence-post-title-sorter .kadence-sorter-item-panel-content .components-toggle-control .components-base-control__field { flex-direction: row; } .kadence-meta-sorter .kadence-radio-container-control button.components-button.is-tertiary svg { max-width: 12px; margin: 0 auto; } .components-toggle-control .components-base-control__field .components-toggle-control__label { white-space: normal; } .kadence-sorter-item-panel-content .kadence-radio-container-control { margin-bottom: 10px; } .sorter-sub-option { padding: 12px 12px 0px; border: 1px solid #bbb; margin-bottom: 12px; } .meta-label-input-control { display: flex; margin-bottom: 6px; } .kadence-label-visiblity svg { width: 14px; } .components-button.kadence-label-visiblity { height: 30px; } .label-is-hidden .components-text-control__input { opacity: 0.2; pointer-events: none; } .kadence-radio-icon-control.kadence-three-col .components-button-group.kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } .kadence-radio-icon-control.kadence-three-col .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-width: 25%; padding: 10px; margin: 0; min-height: 90px; } .kadence-radio-icon-control.kadence-three-col .components-button-group.kadence-radio-container-control .components-button.is-tertiary svg { max-width: 50px; } .kadence-radio-icon-control.kadence-two-col .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-height: 90px; padding: 10px; } .kadence-radio-icon-control .components-button-group.kadence-radio-container-control .components-button.btn-flex-col.is-tertiary { flex-direction: column; font-size: 10px; } .kadence-radio-icon-control .components-button-group.kadence-radio-container-control .components-button.btn-flex-col.is-tertiary .kadence-radio-icon { margin-bottom: 3px; display: block; } .kadence-radio-icon-control.kadence-two-col .kadence-radio-container-control button.components-button.is-tertiary:not(:first-child) { margin-left: 10px; } .kadence-row-layout-control .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-width: 25%; padding: 5px; margin: 0; min-height: 40px; } .kadence-row-layout-control .components-button-group.kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } .kadence-row-layout-control .components-button-group.kadence-radio-container-control .components-button.is-tertiary.active-radio { background: white; } .kadence-row-layout-control .components-button-group.kadence-radio-container-control .components-button.is-tertiary.active-radio svg rect { fill: #007cba; } #customize-control-footer_widget1_tabs { display: block !important; } .typography-button-wrap .components-button { height: 36px; } .kadence-radio-icon-control.kadence-three-col-short .components-button-group.kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } .kadence-radio-icon-control.kadence-three-col-short .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-width: 25%; padding: 0px; margin: 0; height: 30px; } .kadence-sorter-no-sorting .kadence-sorter-item { margin-bottom: 12px; } .kadence-sorter-no-sorting .kadence-sorter-item-panel-header { cursor: default; } .components-button-group.kadence-featured-image-ratio { display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } .kadence-sorter-item-panel-content .kadence-featured-image-ratio button.components-button.is-tertiary { padding: 0; height: 30px; margin: 0; } .kadence-sorter-item-panel-content .kadence-radio-container-control button.components-button.is-tertiary svg { max-width: 14px; margin: 0 auto; } #customize-theme-controls .accordion-section-content { color: #2d3748; } .kadence-sorter-item-panel-content .components-range-control .components-base-control__field input.components-range-control__number { width: auto; } .kadence-popover-social-list .components-button-group.kadence-radio-container-control { flex-wrap: wrap; display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 5px; padding-bottom: 15px; padding-top: 5px; } .kadence-popover-social-list .components-button-group.kadence-radio-container-control .components-button.social-radio-btn.is-tertiary { min-width: 80px; margin: 0; padding: 0; font-size: 10px; } .radio-icon-padding .kadence-radio-container-control button.components-button.is-tertiary { padding: 10px 0; } .kadence-sorter-drop-social_item_group .kadence-sorter-item-panel-header .kadence-sorter-visiblity { background: #f9f9f9; border: 0; } .kadence-sorter-drop-social_item_group .kadence-sorter-item-panel-header .kadence-sorter-visiblity svg { max-width: 14px; } .kadence-sorter-drop-social_item_group .kadence-sorter-item-panel-header .kadence-sorter-visiblity.item-is-hidden { opacity: 0.2; } .kadence-link-color-control .components-base-control__field { margin-bottom: 0; } .customize-control-kadence_borders_control .kadence-border-control > .kadence-responsive-controls-content { display: block; } .customize-control-kadence_borders_control .kadence-responsive-controls-content.kadence-border-single-item { margin-bottom: 5px; padding-bottom: 5px; border-bottom: 1px solid #ddd; } .customize-control-kadence_borders_control .kadence-responsive-controls-content.kadence-border-single-item:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; } span.border-icon { display: flex; width: 30px; align-items: center; flex-grow: 1; } span.border-icon svg { width: 24px; height: 24px; } .components-custom-gradient-picker .components-base-control__label { padding-top: 10px; font-size: 12px; display: block; font-weight: 600; letter-spacing: 0.1px; line-height: 18px; } .kadence-background-tabs .components-circular-option-picker .components-circular-option-picker__custom-clear-wrapper { justify-content: flex-start; } .components-custom-gradient-picker .components-custom-gradient-picker__gradient-bar { box-sizing: border-box; } .kadence-color-picker-wrap .kadence-popover-color .components-popover__content { min-width: 300px; min-height: 320px; max-height: 60vh; } .kadence-color-picker-wrap .kadence-popover-tabs .components-tab-panel__tab-content { position: relative; } #accordion-section-kadence_customizer_sidebar_design, #accordion-section-kadence_customizer_cart_design, #accordion-section-kadence_customizer_product_layout_design, #accordion-section-kadence_customizer_course_layout_design, #accordion-section-kadence_customizer_lesson_layout_design, #accordion-section-kadence_customizer_course_archive_design, #accordion-section-kadence_customizer_header_popup_design, #accordion-section-kadence_customizer_llms_membership_archive_design, #accordion-section-woocommerce_product_catalog_design, #accordion-section-kadence_customizer_post_archive_design, #accordion-section-kadence_customizer_sfwd_courses_layout_design, #accordion-section-kadence_customizer_post_layout_design, #accordion-section-kadence_customizer_header_transparent_design, #accordion-section-woocommerce_store_notice_design, #accordion-section-kadence_customizer_scroll_up_design, li#accordion-section-kadence_customizer_courses_layout_design, #accordion-section-kadence_customizer_sfwd_groups_layout_design, #accordion-section-kadence_customizer_sfwd_essays_layout_design, #accordion-section-kadence_customizer_search_design, #accordion-section-kadence_customizer_sfwd_lesson_layout_design, #accordion-section-kadence_customizer_sfwd_topic_layout_design, #accordion-section-kadence_customizer_sfwd_grid_layout_design, li.accordion-section.control-section-design-hidden, #accordion-section-kadence_customizer_sfwd_quiz_layout_design, #accordion-section-kadence_customizer_general_404_design, #accordion-section-kadence_customizer_sfwd_courses_archive_layout_design, #accordion-section-kadence_customizer_tribe_events_layout_design, #accordion-section-kadence_customizer_courses_archive_layout_design { display: none !important; } .kadence-prevent-transition { transition: none !important; } .kadence-popover-color .components-circular-option-picker { position: relative; z-index: 10000000; } .kadence-popover-color .components-circular-option-picker .components-popover.components-custom-gradient-picker__color-picker-popover { top: 40px !important; left: 30px !important; bottom: auto !important; } .kadence-popover-color .components-circular-option-picker .components-popover.components-custom-gradient-picker__color-picker-popover > div { top: 100%; bottom: auto; } .kadence-popover-color .components-circular-option-picker .components-popover.components-custom-gradient-picker__color-picker-popover::before, .kadence-popover-color .components-circular-option-picker .components-popover.components-custom-gradient-picker__color-picker-popover::after { display: none; } .kadence-tiny-text .kadence-radio-container-control button.components-button.is-tertiary { font-size: 9px; } #customize-control-logo_layout .kadence-radio-container-control button.components-button.is-tertiary { font-size: 9px; } .kadence-typography-control .typography-button-wrap > button.components-button.kadence-typography-size-indicate { min-width: 46px; } .kadence-builder-is-active .wp-full-overlay.collapsed #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, .kadence-footer-builder-is-active .wp-full-overlay.collapsed #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { transform: translateY(100%) !important; overflow: hidden; } .kadence-builder-is-active .wp-full-overlay.collapsed #customize-preview, .kadence-footer-builder-is-active .wp-full-overlay.collapsed #customize-preview { bottom: 0 !important; } .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-drop-left_center, .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-drop-right_center { display: none; } .kadence-builder-areas.has-center-items .kadence-builder-drop-left_center, .kadence-builder-areas.has-center-items .kadence-builder-drop-right_center { display: flex; } .kadence-radio-icon-control.kadence-two-forced .components-button-group.kadence-radio-container-control .components-button.is-tertiary { margin: 0; } .kadence-radio-icon-control.kadence-two-forced .kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr; column-gap: 10px; row-gap: 10px; } .customize-control-kadence_borders_control button.components-button.reset.kadence-reset { margin-top: 5px; } .kadence-units .components-toolbar .components-button:before { display: none; } li#customize-control-kadence_color_palette .customize-control-description { text-align: right; margin-top: 10px; } .kadence-radio-icon-control.kadence-three-col.kadence-auto-height .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-height: 0; } @media (max-width: 1700px) { .kadence-tiny-text .kadence-radio-container-control button.components-button.is-tertiary { font-size: 7px; } } p.kt-box-shadow-title { text-align: center; margin-bottom: 0; } .kadence-boxshadow-control .kadence-responsive-controls-content input.components-text-control__input { border: 1px solid #e2e4e7; width: 50px; padding-left: 2px; } .kt-box-inset-settings { padding-top: 10px; } .kt-box-disable-settings { padding-left: 8px; padding-top: 10px; } #customize-control-google_subsets .kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 10px; } .kadence-sorter-title { overflow: hidden; } #customize-control-google_subsets .kadence-radio-container-control button.components-button.is-tertiary { margin: 0; font-size: 9px; } .kadence-popover-tabs .components-custom-gradient-picker__gradient-bar:not(.has-gradient) { opacity: 1; } .components-dropdown__content.components-custom-gradient-picker__color-picker-popover .components-popover__content > div { padding: 0; } .kadence-sorter-no-sorting .kadence-sorter-item { background: #fff; border: 0; line-height: 42px; } .kadence-sorter-no-sorting .kadence-sorter-item-panel-header { border-bottom: 0; } .kadence-sorter-drop:not(.kadence-sorter-no-sorting) .kadence-sorter-item { border-left: 3px solid #007cba; } .kadence-sorter-drop:not(.kadence-sorter-no-sorting) .kadence-move-icon { margin-left: -3px; margin-right: 5px; transform: rotate(90deg); cursor: grab; width: 18px; opacity: 0.7; } .kadence-sorter-drop:not(.kadence-sorter-no-sorting) .kadence-sorter-item-panel-header .kadence-sorter-visiblity { border-left: 1px solid #a0aec0; } .rtl .kadence-control-field button.components-button.kadence-reset { margin-right: -20px; margin-left: 0; } .kadence-color-picker-wrap > span + .color-button-wrap .components-button.kadence-color-icon-indicate { transform: scale(1.15); box-shadow: 0 0 0 1.5px #007cba; box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color); outline: 1px solid transparent; } .kadence-color-picker-wrap .components-popover.kadence-popover-color.is-from-left { left: 40px !important; } .kadence-color-picker-wrap .components-popover.kadence-popover-color { animation: kadence-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s; } .kadence-color-picker-wrap .components-popover.kadence-popover-color.is-from-right { left: 40px !important; } .kadence-color-picker-wrap .components-popover.kadence-popover-color.is-from-right .components-popover__content { right: auto; } .kadence-background-picker-wrap > span + .background-button-wrap .components-button.kadence-background-icon-indicate { transform: scale(1.15); box-shadow: 0 0 0 1.5px #007cba; box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color); outline: 1px solid transparent; } .kadence-background-picker-wrap .components-popover.kadence-popover-color.is-from-left { left: 40px !important; } .kadence-background-picker-wrap .components-popover.kadence-popover-color { animation: kadence-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s; } .kadence-background-picker-wrap .components-popover.kadence-popover-color.is-from-right { left: 40px !important; } .kadence-background-picker-wrap .components-popover.kadence-popover-color.is-from-right .components-popover__content { right: auto; } @keyframes kadence-animate__appear-animation { 0% { opacity: 0; } to { opacity: 1; } } .rtl .kadence-color-picker-wrap .components-popover.kadence-popover-color.is-from-right, .rtl .kadence-color-picker-wrap .components-popover.kadence-popover-color.is-from-left, .rtl .kadence-background-picker-wrap .components-popover.kadence-popover-color.is-from-left, .rtl .kadence-background-picker-wrap .components-popover.kadence-popover-color.is-from-right { left: auto !important; } .kadence-builder-areas { padding-left: 20px; } .kadence-builder-areas.popup-vertical-group { padding-left: 0; padding-top: 26px; } .kadence-builder-areas.popup-vertical-group button.components-button.kadence-row-actions { top: 0; opacity: 1; width: calc(100% - 20px); } .kadence-builder-areas button.components-button.kadence-row-actions { left: 0; } .kadence-builder-areas button.components-button.kadence-row-left-actions { position: absolute; left: 0; height: 100%; min-width: 0; width: 20px; padding: 0; color: #c8dbe4; box-shadow: none !important; background: #007cba; border-radius: 0; font-size: 10px; } .kadence-builder-areas button.components-button.kadence-row-left-actions:hover { color: white; } .kadence-builder-areas.popup-vertical-group button.components-button.kadence-row-left-actions { display: none; } .kadence-builder-areas button.components-button.kadence-row-left-actions .dashicon { width: 12px; height: 12px; font-size: 12px; margin: 0; } .kadence-background-picker-wrap .components-popover.kadence-popover-color.components-custom-gradient-picker__color-picker-popover .components-popover__content { left: 0; transform: none; } .kadence-color-picker-wrap .kadence-background-tabs .components-popover.components-custom-gradient-picker__color-picker-popover .components-popover__content { left: 0; transform: none; min-width: 240px; } .kadence-radio-icon-control.kadence-two-grid .kadence-radio-container-control { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 0.5rem; row-gap: 0.5rem; } .kadence-radio-icon-control.kadence-two-grid .kadence-radio-container-control button.components-button.is-tertiary { margin: 0; } .customize-control-title .disabled-element-wrapper, .kadence-control-field .disabled-element-wrapper { opacity: 0; } .kadence-font-pair-popover > .components-popover__content { padding: 0 12px 12px; } .components-button-group.kt-font-pair-group { min-width: 290px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; } .kadence-font-pair-wrap { margin-right: 0; margin-left: auto; } .components-button-group.kt-font-pair-group button.components-button.kt-font-pair-btn { height: auto; text-align: center; flex-direction: column; justify-content: center; } .components-button-group.kt-font-pair-group button.components-button.kt-font-pair-btn img { max-height: 40px; height: auto; width: auto; } .components-button-group.kt-font-pair-group button.components-button.kt-font-pair-btn span { font-size: 11px; font-weight: normal; } .components-button-group.kt-font-pair-group button.components-button.kt-font-pair-btn.state-confirm { background: rgba(0, 124, 186, 0.1); } #customize-theme-controls .customize-pane-child.accordion-section-content, #customize-theme-controls .customize-pane-child.accordion-sub-container { min-height: 100%; } .components-popover.kadence-customizer-popover:not(.components-animate__appear) { left: -5px !important; right: -5px !important; max-width: calc(100% + 20px); } .kadence-color-picker-wrap .kadence-popover-color:not(.components-animate__appear) .components-popover__content { min-height: 284px; } .kadence-typography-control .components-popover.kadence-popover-typography.kadence-customizer-popover:not(.components-animate__appear) > .components-popover__content { max-width: 100%; min-width: 100%; box-sizing: border-box; } .kadence-color-picker-wrap .kadence-popover-color.kadence-customizer-popover:not(.components-animate__appear) .components-popover__content { max-width: 100%; min-width: 100%; box-sizing: border-box; } .kadence-background-picker-wrap .kadence-popover-color.kadence-customizer-popover:not(.components-animate__appear) .components-popover__content { max-width: 100%; min-width: 100%; overflow: scroll !important; box-sizing: border-box; min-height: 330px; } .kadence-color-picker-wrap .kadence-popover-color.kadence-popover-color-gradient:not(.components-animate__appear) .components-popover__content { min-height: 330px; overflow: visible !important; } .kadence-customizer-popover:not(.components-animate__appear) .kadence-picker { max-width: 100%; margin-left: auto; margin-right: auto; } .kadence-customizer-popover:not(.components-animate__appear) .kadence-swatches-wrap { max-width: 300px; margin-left: auto; margin-right: auto; } .components-custom-gradient-picker__item { display: block; flex: 5 1 0%; max-height: 100%; max-width: 100%; min-height: 0px; min-width: 0px; } .components-custom-gradient-picker__item .kadence-controls-content { gap: 12px; } .components-custom-gradient-picker__item .kadence-controls-content .components-base-control { margin-bottom: 0; flex: 10 0 0; } .components-custom-gradient-picker__item .kadence-control-toggle-advanced.only-icon { flex: 0; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 600; font-style: normal; text-transform: uppercase; height: 30px; line-height: 1.2; border: 1px solid #cbd5e0; border-radius: 2px; background: transparent; color: #4a5568; padding: 4px; box-shadow: none; white-space: normal; } .components-custom-gradient-picker__item .kadence-control-toggle-advanced.only-icon svg { width: 20px; } .components-custom-gradient-picker__item .kadence-control-toggle-advanced.only-icon.is-primary { border-color: var(--wp-admin-theme-color, #00669b); background: var(--wp-admin-theme-color, #00669b); color: #fff; box-shadow: none; } .block-editor-block-inspector .components-custom-gradient-picker__item .kadence-select-large .components-select-control__input { height: 40px; min-height: 40px; } .kadence-gradient-position-control .kadence-gradient-position_header .kadence-gradient-position__label { margin: 0px 0px 8px; display: block; } .kadence-gradient-position-control .components-unit-control-wrapper { flex-grow: 1; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-dropdown { position: absolute; height: 16px; width: 16px; top: 16px; display: flex; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button { height: inherit; width: inherit; border-radius: 50%; padding: 0; box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) #fff, 0 0 2px 0 rgba(0, 0, 0, 0.25); outline: 2px solid transparent; position: static; top: auto; } .kadence-gradient-control .components-custom-gradient-picker__ui-line .components-base-control { margin-bottom: 0; } .kadence-gradient-control .components-custom-gradient-picker__ui-line .components-base-control .components-base-control__field { margin-bottom: 0; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar { border-radius: 2px; width: 100%; height: 48px; margin-bottom: 16px; padding-right: 0; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__markers-container { position: relative; width: calc(100% - 48px); margin-left: auto; margin-right: auto; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-dropdown { position: absolute; height: 16px; width: 16px; top: 16px; display: flex; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown { position: relative; height: inherit; width: inherit; min-width: 16px; border-radius: 50%; background: #fff; padding: 2px; color: #111; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point-dropdown svg { height: 100%; width: 100%; } .kadence-gradient-control .components-angle-picker-control .components-input-control__container .components-input-control__input { height: 32px; padding-left: 8px; padding-right: 8px; } .kadence-pop-gradient-color-picker { width: 280px; max-width: 100%; } .components-popover.components-dropdown__content.components-color-palette__custom-color-dropdown-content.kadence-pop-color-popover { z-index: 10000000; animation: kadence-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s; } .components-popover.components-dropdown__content.components-color-palette__custom-color-dropdown-content.kadence-pop-color-popover .components-popover__content { min-height: 0; } .wrap-components-custom-gradient-picker { position: relative; z-index: 11; } .components-dropdown__content.components-color-palette__custom-color-dropdown-content .kadence-picker > div:first-child { padding-bottom: 25% !important; } .kadence-background-picker-wrap .kadence-popover-color .components-popover__content > .kadence-pop-gradient-color-picker { min-height: 0; } .kadence-background-picker-wrap .components-popover.kadence-popover-color > .components-popover__content { overflow: visible; } .kadence-sorter-item-panel-content .components-form-toggle { display: flex; } .control-section-kadence_section_pro h3 { margin: 0 0 8px 0; padding: 1px 0; border: 0; position: relative; } .control-section-kadence_section_pro h3 a { background: #fff; display: block; padding: 11px 10px 12px 14px; text-decoration: none; border-left: 4px solid #fff; transition: background-color ease-in-out, 0.15s border-color ease-in-out; } .control-section-kadence_section_pro h3 a:after { content: "\f345"; position: absolute; top: 11px; right: 10px; z-index: 1; float: right; border: none; background: 0 0; font: normal 20px/1 dashicons; speak: none; display: block; padding: 0; text-indent: 0; text-align: center; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .control-section-kadence_section_pro h3 a:hover { background: #f6f7f7; border-left-color: transparent; } #customize-theme-controls .accordion-section-title button.accordion-trigger { max-height: fit-content; } react/class-kadence-control-background.php 0000644 00000003243 15151531427 0014651 0 ustar 00 <?php /** * The Background customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Background * * @access public */ class Kadence_Control_Background extends WP_Customize_Media_Control { /** * Control type * * @var string */ public $type = 'kadence_background_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array( 'attachments' => array( 'desktop' => array(), 'tablet' => array(), 'mobile' => array(), ), ); /** * Additional arguments passed to JS. * * @var string */ public $mime_type = 'image'; /** * Send to JS. */ public function to_json() { parent::to_json(); $value = $this->value(); if ( $value && is_array( $value ) ) { foreach ( array( 'desktop', 'tablet', 'mobile' ) as $device ) { if ( isset( $value[ $device ] ) && isset( $value[ $device ]['image'] ) && isset( $value[ $device ]['image']['url'] ) && ! empty( $value[ $device ]['image']['url'] ) ) { $attachment_id = attachment_url_to_postid( $value[ $device ]['image']['url'] ); $this->input_attrs['attachments'][ $device ] = wp_prepare_attachment_for_js( $attachment_id ); } } } $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Background' ); react/src/row-layout/row-layout-component.js 0000644 00000031625 15151531427 0015246 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class RowLayoutComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.onFooterUpdate = this.onFooterUpdate.bind( this ); this.linkColumns(); let value = this.props.control.setting.get(); let defaultParams = { desktop: { 'column5': { 'equal': { tooltip: __( 'Equal Width Columns', 'kadence' ), icon: 'fivecol', }, }, 'column4': { 'equal': { tooltip: __( 'Equal Width Columns', 'kadence' ), icon: 'fourcol', }, 'left-forty': { tooltip: __( 'Left Heavy 40/20/20/20', 'kadence' ), icon: 'lfourforty', }, 'right-forty': { tooltip: __( 'Right Heavy 20/20/20/40', 'kadence' ), icon: 'rfourforty', }, }, 'column3': { 'equal': { tooltip: __( 'Equal Width Columns', 'kadence' ), icon: 'threecol', }, 'left-half': { tooltip: __( 'Left Heavy 50/25/25', 'kadence' ), icon: 'lefthalf', }, 'right-half': { tooltip: __( 'Right Heavy 25/25/50', 'kadence' ), icon: 'righthalf', }, 'center-half': { tooltip: __( 'Center Heavy 25/50/25', 'kadence' ), icon: 'centerhalf', }, 'center-wide': { tooltip: __( 'Wide Center 20/60/20', 'kadence' ), icon: 'widecenter', }, }, 'column2': { 'equal': { tooltip: __( 'Equal Width Columns', 'kadence' ), icon: 'twocol', }, 'left-golden': { tooltip: __( 'Left Heavy 66/33', 'kadence' ), icon: 'twoleftgolden', }, 'right-golden': { tooltip: __( 'Right Heavy 33/66', 'kadence' ), icon: 'tworightgolden', }, }, 'column1': { 'row': { tooltip: __( 'Equal Width Columns', 'kadence' ), icon: 'row', }, } }, mobile: { 'column5': { 'equal': { tooltip: __( 'Equal Width Columns', 'kadence' ), icon: 'fivecol', }, 'row': { tooltip: __( 'Collapse to Rows', 'kadence' ), icon: 'collapserowfive', }, }, 'column4': { 'equal': { tooltip: __( 'Equal Width Columns', 'kadence' ), icon: 'fourcol', }, 'two-grid': { tooltip: __( 'Two Column Grid', 'kadence' ), icon: 'grid', }, 'row': { tooltip: __( 'Collapse to Rows', 'kadence' ), icon: 'collapserowfour', }, }, 'column3': { 'equal': { tooltip: __( 'Equal Width Columns', 'kadence' ), icon: 'threecol', }, 'left-half': { tooltip: __( 'Left Heavy 50/25/25', 'kadence' ), icon: 'lefthalf', }, 'right-half': { tooltip: __( 'Right Heavy 25/25/50', 'kadence' ), icon: 'righthalf', }, 'center-half': { tooltip: __( 'Center Heavy 25/50/25', 'kadence' ), icon: 'centerhalf', }, 'center-wide': { tooltip: __( 'Wide Center 20/60/20', 'kadence' ), icon: 'widecenter', }, 'first-row': { tooltip: __( 'First Row, Next Columns 100 - 50/50', 'kadence' ), icon: 'firstrow', }, 'last-row': { tooltip: __( 'Last Row, Previous Columns 50/50 - 100', 'kadence' ), icon: 'lastrow', }, 'row': { tooltip: __( 'Collapse to Rows', 'kadence' ), icon: 'collapserowthree', }, }, 'column2': { 'equal': { tooltip: __( 'Equal Width Columns', 'kadence' ), icon: 'twocol', }, 'left-golden': { tooltip: __( 'Left Heavy 66/33', 'kadence' ), icon: 'twoleftgolden', }, 'right-golden': { tooltip: __( 'Right Heavy 33/66', 'kadence' ), icon: 'tworightgolden', }, 'row': { tooltip: __( 'Collapse to Rows', 'kadence' ), icon: 'collapserow', }, }, 'column1': { 'row': { tooltip: __( 'Single Row', 'kadence' ), icon: 'row', }, } }, responsive: true, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let responsiveDefault = { 'mobile': 'row', 'tablet': '', 'desktop': 'equal' }; let nonResponsiveDefault = 'equal'; let baseDefault; if ( this.controlParams.responsive ) { baseDefault = responsiveDefault; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; } else { baseDefault = nonResponsiveDefault; this.defaultValue = this.props.control.params.default ? this.props.control.params.default : baseDefault; } if ( this.controlParams.responsive ) { value = value ? { ...JSON.parse( JSON.stringify( this.defaultValue ) ), ...value } : JSON.parse( JSON.stringify( this.defaultValue ) ); } else { value = value ? value : this.defaultValue; } let columns = 0; if ( this.controlParams.footer ) { columns = parseInt( this.props.customizer.control( 'footer_' + this.controlParams.footer + '_columns' ).setting.get(), 10 ); } this.state = { currentDevice: 'desktop', columns: columns, value: value, }; } render() { const responsiveControlLabel = ( <Fragment> { this.state.currentDevice !== 'desktop' && ( <Tooltip text={ __( 'Reset Device Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.value[this.state.currentDevice] === this.defaultValue[this.state.currentDevice] ) } onClick={ () => { let value = this.state.value; value[this.state.currentDevice] = this.defaultValue[this.state.currentDevice]; this.setState( value ); this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> ) } { this.props.control.params.label && this.props.control.params.label } </Fragment> ); const controlLabel = ( <Fragment> <Tooltip text={ __( 'Reset Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.value === this.defaultValue ) } onClick={ () => { let value = this.defaultValue; this.setState( { value: this.defaultValue } ); this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { this.props.control.params.label && this.props.control.params.label } </Fragment> ); let controlMap = {} if ( this.state.currentDevice !== 'desktop' ) { controlMap = this.controlParams.mobile['column' + this.state.columns ]; } else { controlMap = this.controlParams.desktop['column' + this.state.columns ]; } return ( <div className="kadence-control-field kadence-radio-icon-control kadence-row-layout-control"> { this.controlParams.responsive && ( <ResponsiveControl onChange={ ( currentDevice) => this.setState( { currentDevice } ) } controlLabel={ responsiveControlLabel } > <ButtonGroup className="kadence-radio-container-control"> { Object.keys( controlMap ).map( ( item ) => { return ( <Fragment> { controlMap[ item ].tooltip && ( <Tooltip text={ controlMap[ item ].tooltip }> <Button isTertiary className={ ( item === this.state.value[this.state.currentDevice] ? 'active-radio ' : '' ) + 'kadence-btn-item-' + item } onClick={ () => { let value = this.state.value; value[ this.state.currentDevice ] = item; this.setState( value ); this.updateValues( value ); } } > { controlMap[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ controlMap[ item ].icon ] } </span> ) } { controlMap[ item ].dashicon && ( <span className="kadence-radio-icon kadence-radio-dashicon"> <Dashicon icon={ controlMap[ item ].dashicon } /> </span> ) } { controlMap[ item ].name && ( controlMap[ item ].name ) } </Button> </Tooltip> ) } { ! controlMap[ item ].tooltip && ( <Button isTertiary className={ ( item === this.state.value[this.state.currentDevice] ? 'active-radio ' : '' ) + 'kadence-btn-item-' + item } onClick={ () => { let value = this.state.value; value[ this.state.currentDevice ] = item; this.setState( value ); this.updateValues( value ); } } > { controlMap[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ controlMap[ item ].icon ] } </span> ) } { controlMap[ item ].dashicon && ( <span className="kadence-radio-icon kadence-radio-dashicon"> <Dashicon icon={ controlMap[ item ].dashicon } /> </span> ) } { controlMap[ item ].name && ( controlMap[ item ].name ) } </Button> ) } </Fragment> ); } )} </ButtonGroup> </ResponsiveControl> ) } { ! this.controlParams.responsive && ( <Fragment> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <ButtonGroup className="kadence-radio-container-control"> { Object.keys( controlMap ).map( ( item ) => { return ( <Fragment> { controlMap[ item ].tooltip && ( <Tooltip text={ controlMap[ item ].tooltip }> <Button isTertiary className={ ( item === this.state.value ? 'active-radio ' : '' ) + 'kadence-btn-item-' + item } onClick={ () => { let value = this.state.value; value = item; this.setState( { value: item }); this.updateValues( value ); } } > { controlMap[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ controlMap[ item ].icon ] } </span> ) } { controlMap[ item ].name && ( controlMap[ item ].name ) } </Button> </Tooltip> ) } { ! controlMap[ item ].tooltip && ( <Button isTertiary className={ ( item === this.state.value ? 'active-radio ' : '' ) + 'kadence-btn-item-' + item } onClick={ () => { let value = this.state.value; value = item; this.setState( { value: item }); this.updateValues( value ); } } > { controlMap[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ controlMap[ item ].icon ] } </span> ) } { controlMap[ item ].name && ( controlMap[ item ].name ) } </Button> ) } </Fragment> ); } )} </ButtonGroup> </Fragment> ) } </div> ); } onFooterUpdate() { const columns = parseInt( this.props.customizer.control( 'footer_' + this.controlParams.footer + '_columns' ).setting.get(), 10 ); if ( this.state.columns !== columns ) { this.setState( { columns: columns } ); let value = this.state.value; if ( columns === 1 ) { value.desktop = 'row'; } else { value.desktop = 'equal'; } value.tablet = ''; value.mobile = 'row'; this.setState( value ); this.updateValues( value ); } } linkColumns() { let self = this; document.addEventListener( 'kadenceUpdateFooterColumns', function( e ) { if ( e.detail === self.controlParams.footer ) { setTimeout(function(){ self.onFooterUpdate(); }, 200); } } ); } updateValues( value ) { if ( undefined !== this.controlParams.footer && this.controlParams.footer ) { let event = new CustomEvent( 'kadenceUpdateFooterColumns', { 'detail': this.controlParams.footer, } ); document.dispatchEvent( event ); } if ( this.controlParams.responsive ) { this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag } ); } else { this.props.control.setting.set( value ); } } } RowLayoutComponent.propTypes = { control: PropTypes.object.isRequired }; export default RowLayoutComponent; react/src/row-layout/control.js 0000644 00000001001 15151531427 0012565 0 ustar 00 import { createRoot } from '@wordpress/element'; import RowLayoutComponent from './row-layout-component'; export const RowControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <RowLayoutComponent control={control} customizer={ wp.customize }/> ); // ReactDOM.render( // <RowLayoutComponent control={control} customizer={ wp.customize }/>, // control.container[0] // ); } } ); react/src/common/color-picker-fields.js 0000644 00000012515 15151531427 0014124 0 ustar 00 import color from 'react-color/lib/helpers/color' import { EditableInput } from 'react-color/lib/components/common' const { Component, Fragment } = wp.element; const { Dashicon, } = wp.components; class PickerFields extends Component { constructor(props) { super( props ); this.toggleViews = this.toggleViews.bind( this ); this.handleChange = this.handleChange.bind( this ); this.state = { view: 'rgb', }; } toggleViews() { if ( this.state.view === 'hsl' ) { this.setState({ view: 'rgb' }) } else if (this.state.view === 'rgb') { this.setState({ view: 'hsl' }) } } handleChange(data, e) { if (data.hex) { color.isValidHex(data.hex) && this.props.onChange({ hex: data.hex, source: 'hex', }, e) } else if (data.r || data.g || data.b) { this.props.onChange({ r: data.r || this.props.rgb.r, g: data.g || this.props.rgb.g, b: data.b || this.props.rgb.b, a: this.props.rgb.a, source: 'rgb', }, e) } else if (data.a) { if (data.a < 0) { data.a = 0 } else if (data.a > 1) { data.a = 1 } this.props.onChange({ h: this.props.hsl.h, s: this.props.hsl.s, l: this.props.hsl.l, a: Math.round(data.a * 100) / 100, source: 'rgb', }, e) } else if (data.h || data.s || data.l) { // Remove any occurances of '%'. if (typeof(data.s) === 'string') { data.s = data.s.replace('%', '') } if (typeof(data.l) === 'string') { data.l = data.l.replace('%', '') } this.props.onChange({ h: data.h || this.props.hsl.h || 0, s: Number((data.s && data.s / 100) || this.props.hsl.s || 0.0 ), l: Number((data.l && data.l / 100) || this.props.hsl.l || 0.0 ), a: Math.round(data.a * 100) / 100 || this.props.rgb.a || 1, source: 'hsl', }, e) } } render() { const styles = { fields: { display: 'flex', paddingTop: '4px', }, single: { flex: '1', paddingLeft: '6px', }, alpha: { flex: '1', paddingLeft: '6px', }, double: { flex: '2', }, input: { width: '100%', padding: '4px 10% 3px', border: 'none', borderRadius: '2px', boxShadow: 'rgb(218, 218, 218) 0px 0px 0px 1px inset', fontSize: '11px', }, label: { display: 'block', textAlign: 'center', fontSize: '11px', color: '#222', paddingTop: '3px', paddingBottom: '4px', textTransform: 'capitalize', }, toggle: { width: '32px', textAlign: 'right', position: 'relative', }, } return ( <div style={ styles.fields } className="flexbox-fix"> <div style={ styles.double }> <EditableInput style={{ input: styles.input, label: styles.label }} label="hex" value={ this.props.hex.replace('#', '') } onChange={ this.handleChange } /> </div> { this.state.view === 'rgb' && ( <Fragment> <div style={ styles.single }> <EditableInput style={{ input: styles.input, label: styles.label }} label="r" value={ this.props.rgb.r } onChange={ this.handleChange } dragLabel="true" dragMax="255" /> </div> <div style={ styles.single }> <EditableInput style={{ input: styles.input, label: styles.label }} label="g" value={ this.props.rgb.g } onChange={ this.handleChange } dragLabel="true" dragMax="255" /> </div> <div style={ styles.single }> <EditableInput style={{ input: styles.input, label: styles.label }} label="b" value={ this.props.rgb.b } onChange={ this.handleChange } dragLabel="true" dragMax="255" /> </div> <div style={ styles.alpha }> <EditableInput style={{ input: styles.input, label: styles.label }} label="a" value={ this.props.rgb.a } arrowOffset={ 0.01 } onChange={ this.handleChange } /> </div> </Fragment> ) } { this.state.view === 'hsl' && ( <Fragment> <div style={ styles.single }> <EditableInput style={{ input: styles.input, label: styles.label }} label="h" value={ Math.round(this.props.hsl.h) } onChange={ this.handleChange } dragLabel="true" dragMax="359" /> </div> <div style={ styles.single }> <EditableInput style={{ input: styles.input, label: styles.label }} label="s" value={ `${ Math.round( this.props.hsl.s * 100 ) }` } onChange={ this.handleChange } /> </div> <div style={ styles.single }> <EditableInput style={{ input: styles.input, label: styles.label }} label="l" value={ `${ Math.round(this.props.hsl.l * 100) }` } onChange={ this.handleChange } /> </div> <div style={ styles.alpha }> <EditableInput style={{ input: styles.input, label: styles.label }} label="a" value={ this.props.hsl.a } arrowOffset={ 0.01 } onChange={ this.handleChange } /> </div> </Fragment> ) } <div style={ styles.toggle }> <div className="toggle-icons" style={ styles.icon } onClick={ this.toggleViews } ref={ (icon) => this.icon = icon }> <Dashicon icon="arrow-up-alt2" /> <Dashicon icon="arrow-down-alt2" /> </div> </div> </div> ); } } export default PickerFields react/src/common/responsive.js 0000644 00000007364 15151531427 0012472 0 ustar 00 import PropTypes from "prop-types"; import Icons from "./icons"; import { __ } from "@wordpress/i18n"; const { Component, Fragment } = wp.element; const { Button, Dashicon, Tooltip, ButtonGroup, Icon } = wp.components; class ResponsiveControl extends Component { constructor(props) { super(props); this.state = { view: undefined !== this.props.deviceSize ? this.props.deviceSize : "desktop", }; this.linkResponsiveButtons(); } render() { let { view } = this.state, deviceMap = { desktop: { tooltip: __("Desktop", "kadence"), icon: <Icon icon={Icons.desktop} />, }, tablet: { tooltip: __("Tablet", "kadence"), icon: <Icon icon={Icons.tablet} />, }, mobile: { tooltip: __("Mobile", "kadence"), icon: <Icon icon={Icons.smartphone} />, }, }; return ( <Fragment> <div className={"kadence-responsive-control-bar"}> {this.props.controlLabel && ( <span className="customize-control-title"> {this.props.controlLabel} </span> )} {this.props.advancedControls && ( <div className="advanced-controls"> <ButtonGroup> <Tooltip text={__("Clamp Font Size", "kadence")} > <Button isTertiary onClick={() => { this.props.onAdvancedChange(); }} isPressed={this.props.advanced} > <Dashicon icon="admin-settings" /> </Button> </Tooltip> </ButtonGroup> </div> )} {!this.props.hideResponsive && ( <div className="floating-controls"> {this.props.tooltip && ( <ButtonGroup> {Object.keys(deviceMap).map((device) => { return ( <Tooltip text={deviceMap[device].tooltip} > <Button isTertiary className={ (device === view ? "active-device " : "") + device } onClick={() => { let event = new CustomEvent( "kadenceChangedRepsonsivePreview", { detail: device, } ); document.dispatchEvent( event ); }} > {deviceMap[device].icon} </Button> </Tooltip> ); })} </ButtonGroup> )} {!this.props.tooltip && ( <ButtonGroup> {Object.keys(deviceMap).map((device) => { return ( <Button isTertiary className={ (device === view ? "active-device " : "") + device } onClick={() => { let event = new CustomEvent( "kadenceChangedRepsonsivePreview", { detail: device, } ); document.dispatchEvent( event ); }} > {deviceMap[device].icon} </Button> ); })} </ButtonGroup> )} </div> )} </div> <div className="kadence-responsive-controls-content"> {this.props.children} </div> </Fragment> ); } changeViewType(device) { this.setState({ view: device }); wp.customize.previewedDevice(device); this.props.onChange(device); } linkResponsiveButtons() { let self = this; document.addEventListener( "kadenceChangedRepsonsivePreview", function (e) { self.changeViewType(e.detail); } ); } } ResponsiveControl.propTypes = { onChange: PropTypes.func, controlLabel: PropTypes.string, }; ResponsiveControl.defaultProps = { tooltip: true, }; export default ResponsiveControl; react/src/common/font-loader.js 0000644 00000003762 15151531427 0012505 0 ustar 00 if ( kadencegooglefonts === undefined ) { var kadencegooglefonts = []; } const { Component, } = wp.element; import PropTypes from "prop-types"; import WebFont from "webfontloader"; const statuses = { inactive: 'inactive', active: 'active', loading: 'loading', }; const noop = () => {}; class KadenceWebfontLoader extends Component { constructor(props) { super( props ); this.handleLoading = this.handleLoading.bind( this ); this.handleActive = this.handleActive.bind( this ); this.addFont = this.addFont.bind( this ); this.handleInactive = this.handleInactive.bind( this ); this.loadFonts = this.loadFonts.bind( this ); this.state = { status: undefined, }; } addFont( font ) { if ( ! kadencegooglefonts.includes( font ) ) { kadencegooglefonts.push( font ); } }; handleLoading() { this.setState( { status: statuses.loading } ); }; handleActive() { this.setState( { status: statuses.active } ); }; handleInactive() { this.setState( { status: statuses.inactive } ); }; loadFonts() { //if ( ! this.state.fonts.includes( this.props.config.google.families[ 0 ] ) ) { if ( ! kadencegooglefonts.includes( this.props.config.google.families[ 0 ] ) ) { WebFont.load( { ...this.props.config, loading: this.handleLoading, active: this.handleActive, inactive: this.handleInactive, } ); this.addFont( this.props.config.google.families[ 0 ] ); } } componentDidMount() { this.loadFonts(); } componentDidUpdate( prevProps, prevState ) { const { onStatus, config } = this.props; if ( prevState.status !== this.state.status ) { onStatus( this.state.status ); } if ( prevProps.config !== config ) { this.loadFonts(); } } render() { const { children } = this.props; return children || null; } } KadenceWebfontLoader.propTypes = { config: PropTypes.object.isRequired, children: PropTypes.element, onStatus: PropTypes.func.isRequired, }; KadenceWebfontLoader.defaultProps = { onStatus: noop, }; export default KadenceWebfontLoader; react/src/common/color.js 0000644 00000045347 15151531427 0011416 0 ustar 00 import PropTypes from "prop-types"; import SwatchesControl from "./swatches"; import KadenceColorPicker from "./color-picker"; import Icons from "./icons"; import { __ } from "@wordpress/i18n"; const { Component, Fragment } = wp.element; const { Button, Popover, Dashicon, ColorIndicator, Tooltip, Icon, TabPanel, GradientPicker, __experimentalGradientPicker, } = wp.components; import KadenceGradientPicker from "../gradient-control/index.js"; class ColorControl extends Component { constructor(props) { super(props); this.onChangeState = this.onChangeState.bind(this); this.onChangeComplete = this.onChangeComplete.bind(this); this.onChangeGradientComplete = this.onChangeGradientComplete.bind(this); this.state = { isVisible: false, refresh: false, stateColor: this.props.color, color: this.props.color, isPalette: this.props.color && this.props.color.includes("palette") && !this.props.color.includes("gradient") ? true : false, palette: this.props.presetColors && this.props.presetColors ? this.props.presetColors : [], activePalette: this.props.presetColors && this.props.presetColors.active ? this.props.presetColors.active : "palette", supportGradient: undefined === GradientPicker && undefined === __experimentalGradientPicker ? false : true, showSyncMessage: true, }; } render() { // Helper function to check if we should show sync message const shouldShowSyncMessage = () => { return ( this.props.paletteName === "palette10" && this.props.color === "#FfFfFf" && this.state.showSyncMessage === true ); }; const shouldShowResyncMessage = () => { return ( this.props.paletteName === "palette10" && this.props.color !== "#FfFfFf" && this.state.showSyncMessage === false ); }; const toggleVisible = () => { if (this.props.usePalette) { const updateColors = JSON.parse( this.props.customizer .control("kadence_color_palette") .setting.get() ); const active = updateColors && updateColors.active ? updateColors.active : "palette"; this.setState({ palette: updateColors, activePalette: active }); } if (this.state.refresh === true) { this.setState({ refresh: false }); } else { this.setState({ refresh: true }); } this.setState({ isVisible: true }); }; const toggleClose = () => { if (this.state.isVisible === true) { this.setState({ isVisible: false }); } }; const position = this.props.position ? this.props.position : "bottom right"; const showingGradient = this.props.allowGradient && this.state.supportGradient ? true : false; const syncMessageContent = () => { return ( <div className="kadence-sync-message" style={{ padding: "16px", textAlign: "center" }} > <p> {__( "This color is currently linked as the compliment to your accent color.", "kadence" )} </p> <Button onClick={() => this.setState({ showSyncMessage: false }) } variant="secondary" isSmall > {__("Unlink Color", "kadence")} </Button> </div> ); }; const resyncMessageContent = () => { return ( <div className="kadence-sync-message" style={{ padding: "16px", textAlign: "center" }} > <Button onClick={() => { this.setState({ showSyncMessage: true }); this.onChangeState({ hex: "#FfFfFf" }, ""); this.props.onChangeComplete({ hex: "#FfFfFf" }, ""); }} variant="secondary" isSmall > {__("Link Color", "kadence")} </Button> </div> ); }; const paletteIndexRegex = this.state.color?.match(/\d+$/)?.[0] - 1; const paletteIndex = this.state.isPalette ? paletteIndexRegex : undefined; return ( <div className={"kadence-color-picker-wrap " + this.props.className} > {this.props.colorDefault && this.props.color && this.props.color !== this.props.colorDefault && ( <Tooltip text={__("Clear")}> <span className="tooltip-clear"> <Button className="components-color-palette__clear" type="button" onClick={() => { this.setState({ color: this.props.colorDefault, isPalette: "", }); this.props.onChangeComplete("", ""); }} isSmall > <Dashicon icon="redo" /> </Button> </span> </Tooltip> )} {showingGradient && ( <Fragment> {this.state.isVisible && ( <Popover position={position} inline={true} anchor={ undefined !== this.props?.controlRef?.current ? this.props.controlRef.current : undefined } className="kadence-popover-color kadence-popover-color-gradient kadence-customizer-popover" onClose={toggleClose} > {shouldShowSyncMessage() ? ( syncMessageContent() ) : ( <TabPanel className="kadence-popover-tabs kadence-background-tabs" activeClass="active-tab" initialTabName={ this.state.color && this.state.color.includes( "gradient" ) ? "gradient" : "color" } tabs={[ { name: "color", title: __("Color", "kadence"), className: "kadence-color-background", }, { name: "gradient", title: __( "Gradient", "kadence" ), className: "kadence-gradient-background", }, ]} > {(tab) => { let tabout; if (tab.name) { if ("gradient" === tab.name) { tabout = ( <Fragment> <KadenceGradientPicker value={ this.state .color && this.state.color.includes( "gradient" ) ? this .state .color : "" } onChange={( gradient ) => this.onChangeGradientComplete( gradient ) } activePalette={ this.state .palette && this.state .palette[ this .state .activePalette ] ? this .state .palette[ this .state .activePalette ] : [] } /> </Fragment> ); } else { tabout = ( <Fragment> {this.state .refresh && ( <Fragment> <KadenceColorPicker color={ this .state .isPalette && this .state .palette .palette && this .state .palette .palette[ paletteIndex ] ? this .state .palette .palette[ paletteIndex ] ?.color : this .state .color } onChange={( color ) => this.onChangeState( color, "" ) } onChangeComplete={( color ) => this.onChangeComplete( color, "" ) } /> {this.props .usePalette && ( <SwatchesControl colors={ this .state .palette && this .state .palette[ this .state .activePalette ] ? this .state .palette[ this .state .activePalette ] : [] } isPalette={ this .state .isPalette ? this .state .color : "" } onClick={( color, palette ) => this.onChangeComplete( color, palette ) } /> )} </Fragment> )} {!this.state .refresh && ( <Fragment> <KadenceColorPicker //presetColors={ [] } color={ this .state .isPalette && this .state .palette[ this .state .activePalette ] && this .state .palette[ this .state .activePalette ][ paletteIndex ] ? this .state .palette[ this .state .activePalette ][ paletteIndex ] ?.color : this .state .color } onChange={( color ) => this.onChangeState( color, "" ) } onChangeComplete={( color ) => this.onChangeComplete( color, "" ) } //width={ 300 } //styles={ styleing } /> {this.props .usePalette && ( <SwatchesControl colors={ this .state .palette && this .state .palette[ this .state .activePalette ] ? this .state .palette[ this .state .activePalette ] : [] } isPalette={ this .state .isPalette ? this .state .color : "" } onClick={( color, palette ) => this.onChangeComplete( color, palette ) } /> )} </Fragment> )} </Fragment> ); } } return ( <div> {tabout} {shouldShowResyncMessage() ? resyncMessageContent() : ""} </div> ); }} </TabPanel> )} </Popover> )} </Fragment> )} {!showingGradient && ( <Fragment> {this.state.isVisible && this.state.refresh && ( <Popover position="top right" inline={true} anchor={ undefined !== this.props?.controlRef?.current ? this.props.controlRef.current : undefined } className="kadence-popover-color kadence-customizer-popover" onClose={toggleClose} > {shouldShowSyncMessage() ? ( syncMessageContent() ) : ( <Fragment> <KadenceColorPicker color={ this.state.isPalette && this.state.palette.palette && this.state.palette.palette[ paletteIndex ] ? this.state.palette .palette[ paletteIndex ]?.color : this.state.color } onChange={(color) => this.onChangeState(color, "") } onChangeComplete={(color) => this.onChangeComplete(color, "") } /> {this.props.usePalette && ( <SwatchesControl colors={ this.state.palette && this.state.palette[ this.state.activePalette ] ? this.state.palette[ this.state .activePalette ] : [] } isPalette={ this.state.isPalette ? this.state.color : "" } onClick={(color, palette) => this.onChangeComplete( color, palette ) } /> )} {shouldShowResyncMessage() ? resyncMessageContent() : ""} </Fragment> )} </Popover> )} {this.state.isVisible && !this.state.refresh && ( <Popover position={position} inline={true} anchor={ undefined !== this.props?.controlRef?.current ? this.props.controlRef.current : undefined } className="kadence-popover-color kadence-customizer-popover" onClose={toggleClose} > {shouldShowSyncMessage() ? ( syncMessageContent() ) : ( <Fragment> <KadenceColorPicker //presetColors={ [] } color={ this.state.isPalette && this.state.palette[ this.state.activePalette ] && this.state.palette[ this.state.activePalette ][paletteIndex] ? this.state.palette[ this.state .activePalette ][paletteIndex]?.color : this.state.color } onChange={(color) => this.onChangeState(color, "") } onChangeComplete={(color) => this.onChangeComplete(color, "") } //width={ 300 } //styles={ styleing } /> {this.props.usePalette && ( <SwatchesControl colors={ this.state.palette && this.state.palette[ this.state.activePalette ] ? this.state.palette[ this.state .activePalette ] : [] } isPalette={ this.state.isPalette ? this.state.color : "" } onClick={(color, palette) => this.onChangeComplete( color, palette ) } /> )} {shouldShowResyncMessage() ? resyncMessageContent() : ""} </Fragment> )} </Popover> )} </Fragment> )} <Tooltip text={ this.props.tooltip ? this.props.tooltip : __("Select Color", "kadence") } > <div className="color-button-wrap"> <Button className={"kadence-color-icon-indicate"} onClick={() => { this.state.isVisible ? toggleClose() : toggleVisible(); }} disabled={this.props.disabled} > <ColorIndicator className="kadence-advanced-color-indicate" colorValue={ this.state.isPalette ? "var(--global-" + this.props.color + ")" : this.props.color } /> {this.state.isPalette && ( <Icon className="dashicon" icon={Icons.globe} /> )} </Button> </div> </Tooltip> </div> ); } onChangeState(color, palette) { let newColor; if (palette) { newColor = palette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { newColor = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { newColor = color.hex; } this.setState({ color: newColor, isPalette: palette ? true : false }); if (undefined !== this.props.onChange) { this.props.onChange(color, palette); } } onChangeGradientComplete(gradient) { let newColor; if (undefined === gradient) { newColor = ""; } else { newColor = gradient; } this.setState({ color: newColor, isPalette: false }); this.props.onChangeComplete(newColor, ""); } onChangeComplete(color, palette) { let newColor; if (palette) { newColor = palette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { newColor = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { newColor = color.hex; } this.setState({ color: newColor, isPalette: palette ? true : false }); this.props.onChangeComplete(color, palette); } } ColorControl.propTypes = { color: PropTypes.string, usePalette: PropTypes.bool, palette: PropTypes.string, presetColors: PropTypes.array, onChangeComplete: PropTypes.func, onChange: PropTypes.func, customizer: PropTypes.object, }; export default ColorControl; react/src/common/capitalize-first.js 0000644 00000000411 15151531430 0013523 0 ustar 00 /** * function to return string with capital letter. * @param {string} string the word string. * @returns {string} with capital letter. */ export default function capitalizeFirstLetter( string ) { return string.charAt( 0 ).toUpperCase() + string.slice( 1 ); } react/src/common/range.js 0000644 00000003627 15151531430 0011361 0 ustar 00 const { RangeControl } = wp.components; const { useInstanceId } = wp.compose; /** * Build the Measure controls * @returns {object} Measure settings. */ export default function KadenceRange({ label, onChange, value = "", className = "", step = 1, max = 100, min = 0, beforeIcon = "", help = "", }) { const onChangInput = (event) => { if (event.target.value === "") { onChange(undefined); return; } const newValue = Number(event.target.value); if (newValue === "") { onChange(undefined); return; } if (min < -0.1) { if (newValue > max) { onChange(max); } else if (newValue < min && newValue !== "-") { onChange(min); } else { onChange(newValue); } } else { if (newValue > max) { onChange(max); } else if (newValue < -0.1) { onChange(min); } else { onChange(newValue); } } }; const id = useInstanceId(KadenceRange, "inspector-kadence-range"); return [ onChange && ( <div className={`components-base-control kadence-range-control${ className ? " " + className : "" }`} > {label && ( <label htmlFor={id} className="components-base-control__label" > {label} </label> )} <div className={"kadence-range-control-inner"}> <RangeControl className={"kadence-range-control-range"} beforeIcon={beforeIcon} value={value} onChange={(newVal) => onChange(newVal)} min={min} max={max} step={step} help={help} withInputField={false} /> <div className="components-base-control kt-range-number-input"> <div className="components-base-control__field"> <input value={value} onChange={onChangInput} min={min} max={max} id={id} step={step} type="number" className="components-text-control__input" /> </div> </div> </div> </div> ), ]; } react/src/common/icons.js 0000644 00000376067 15151531430 0011413 0 ustar 00 const Icons = { smartphone: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"> <path fill="none" d="M0 0H20V20H0z"></path> <path d="M6 2h8c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1H6c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm7 12V4H7v10h6zM8 5h4l-4 5V5z"></path> </svg>, desktop: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"> <path fill="none" d="M0 0H20V20H0z"></path> <path d="M3 2h14c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1h-5v2h2c.55 0 1 .45 1 1v1H5v-1c0-.55.45-1 1-1h2v-2H3c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm13 9V4H4v7h12zM5 5h9L5 9V5z"></path> </svg>, tablet: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"> <path fill="none" d="M0 0H20V20H0z"></path> <path d="M4 2h12c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1H4c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm11 14V4H5v12h10zM6 5h6l-6 5V5z"></path> </svg>, globe: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path fill="none" d="M0 0H20V20H0z"></path> <path fillRule="nonzero" d="M10 1a9 9 0 10.001 18.001A9 9 0 0010 1zm3.46 11.95c0 1.47-.8 3.3-4.06 4.7.3-4.17-2.52-3.69-3.2-5A3.25 3.25 0 018 10.1c-1.552-.266-3-.96-4.18-2 .05.47.28.904.64 1.21a4.18 4.18 0 01-1.94-1.5 7.94 7.94 0 017.25-5.63c-.84 1.38-1.5 4.13 0 5.57C8.23 8 7.26 6 6.41 6.79c-1.13 1.06.33 2.51 3.42 3.08 3.29.59 3.66 1.58 3.63 3.08zm1.34-4c-.32-1.11.62-2.23 1.69-3.14a7.27 7.27 0 01.84 6.68c-.77-1.89-2.17-2.32-2.53-3.57v.03z" ></path> </svg>, generic: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"> <path fill="none" d="M0 0H20V20H0z"></path> <path d="M18 12h-2.18c-.17.7-.44 1.35-.81 1.93l1.54 1.54-2.1 2.1-1.54-1.54c-.58.36-1.23.63-1.91.79V19H8v-2.18c-.68-.16-1.33-.43-1.91-.79l-1.54 1.54-2.12-2.12 1.54-1.54c-.36-.58-.63-1.23-.79-1.91H1V9.03h2.17c.16-.7.44-1.35.8-1.94L2.43 5.55l2.1-2.1 1.54 1.54c.58-.37 1.24-.64 1.93-.81V2h3v2.18c.68.16 1.33.43 1.91.79l1.54-1.54 2.12 2.12-1.54 1.54c.36.59.64 1.24.8 1.94H18V12zm-8.5 1.5c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z"></path> </svg>, logo: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M24.23 9.074a.793.793 0 10-.001-1.585.793.793 0 00.001 1.585M26.336 7.551a.915.915 0 100-1.83.915.915 0 000 1.83M27.524 22.051h-5.055a.701.701 0 01-.577-1.1l2.586-3.743a.701.701 0 011.162.012l2.47 3.743a.702.702 0 01-.586 1.088m3.077-.962l-3.594-5.936v-3.315h.088a.941.941 0 000-1.884h-4.189a.942.942 0 000 1.884h.087v3.315l-3.594 5.936a1.901 1.901 0 001.703 2.749h7.796a1.902 1.902 0 001.703-2.749"></path> <path d="M35.058.79l.109.004.109.007.108.01.107.012.106.015.105.017.105.02.103.023.103.025.102.027.1.03.1.033.098.034.098.037.096.04.095.041.094.044.092.046.092.048.089.051.089.052.087.055.086.056.084.059.083.06.082.062.079.065.079.066.076.068.075.069.073.072.072.073.069.075.068.076.066.079.065.079.062.082.06.083.059.084.056.086.055.087.052.089.051.089.048.092.046.092.044.094.041.095.04.096.037.098.034.098.033.1.03.1.027.102.025.103.023.103.02.105.017.105.015.106.012.107.01.108.007.109.004.109.001.11v19.896l-.001.11-.004.109-.007.109-.01.108-.012.107-.015.106-.017.105-.02.105-.023.103-.025.103-.027.102-.03.1-.033.1-.034.098-.037.098-.04.096-.041.095-.044.094-.046.092-.048.092-.051.089-.052.089-.055.087-.056.086-.059.084-.06.083-.062.082-.065.079-.066.079-.068.076-.069.075-.072.073-.073.072-.075.069-.076.068-.079.066-.079.065-.082.062-.083.06-.084.059-.086.056-.087.055-.089.052-.089.051-.092.048-.092.046-.094.044-.095.041-.096.04-.098.037-.098.034-.1.033-.1.03-.102.027-.103.025-.103.023-.105.02-.105.017-.106.015-.107.012-.108.01-.109.007-.109.004-.11.001H15.052l-.11-.001-.109-.004-.109-.007-.108-.01-.107-.012-.106-.015-.105-.017-.105-.02-.103-.023-.103-.025-.102-.027-.1-.03-.1-.033-.098-.034-.098-.037-.096-.04-.095-.041-.094-.044-.092-.046-.092-.048-.089-.051-.089-.052-.087-.055-.086-.056-.084-.059-.083-.06-.082-.062-.079-.065-.079-.066-.076-.068-.075-.069-.073-.072-.072-.073-.069-.075-.068-.076-.066-.079-.065-.079-.062-.082-.06-.083-.059-.084-.056-.086-.055-.087-.052-.089-.051-.089-.048-.092-.046-.092-.044-.094-.041-.095-.04-.096-.037-.098-.034-.098-.033-.1-.03-.1-.027-.102-.025-.103-.023-.103-.02-.105-.017-.105-.015-.106-.012-.107-.01-.108-.007-.109-.004-.109-.001-.11V5.052l.001-.11.004-.109.007-.109.01-.108.012-.107.015-.106.017-.105.02-.105.023-.103.025-.103.027-.102.03-.1.033-.1.034-.098.037-.098.04-.096.041-.095.044-.094.046-.092.048-.092.051-.089.052-.089.055-.087.056-.086.059-.084.06-.083.062-.082.065-.079.066-.079.068-.076.069-.075.072-.073.073-.072.075-.069.076-.068.079-.066.079-.065.082-.062.083-.06.084-.059.086-.056.087-.055.089-.052.089-.051.092-.048.092-.046.094-.044.095-.041.096-.04.098-.037.098-.034.1-.033.1-.03.102-.027.103-.025.103-.023.105-.02.105-.017.106-.015.107-.012.108-.01.109-.007.109-.004.11-.001h19.896l.11.001zM15.061 2.289l-.081.001-.071.002-.071.005-.07.006-.069.008-.069.01-.068.011-.068.013-.067.014-.066.017-.065.017-.065.02-.065.021-.063.022-.063.024-.062.025-.062.027-.06.028-.06.03-.059.031-.058.033-.058.034-.056.035-.056.037-.055.038-.054.039-.053.041-.051.041-.051.043-.05.045-.049.045-.047.047-.047.047-.045.049-.045.05-.043.051-.041.051-.041.053-.039.054-.038.055-.037.056-.035.056-.034.058-.033.058-.031.059-.03.06-.028.06-.027.062-.025.062-.024.063-.022.063-.021.065-.02.065-.017.065-.017.066-.014.067-.013.068-.011.068-.01.069-.008.069-.006.07-.005.071-.002.071-.001.081v19.878l.001.081.002.071.005.071.006.07.008.069.01.069.011.068.013.068.014.067.017.066.017.065.02.065.021.065.022.063.024.063.025.062.027.062.028.06.03.06.031.059.033.058.034.058.035.056.037.056.038.055.039.054.041.053.042.051.042.051.045.05.045.049.047.047.047.047.049.045.05.045.051.043.051.041.053.041.054.039.055.038.056.037.056.035.058.034.058.033.059.031.06.03.06.028.062.027.062.025.063.024.063.022.065.021.065.02.065.017.066.017.067.014.068.013.068.011.069.01.069.008.07.006.071.005.071.002.081.001h19.878l.081-.001.071-.002.071-.005.07-.006.069-.008.069-.01.068-.011.068-.013.067-.014.066-.017.065-.017.065-.02.065-.021.063-.022.063-.024.062-.025.062-.027.06-.028.06-.03.059-.031.058-.033.058-.034.056-.035.056-.037.055-.038.054-.039.053-.041.051-.042.051-.042.05-.045.049-.045.047-.047.047-.047.045-.049.045-.05.042-.051.042-.051.041-.053.039-.054.038-.055.037-.056.035-.056.034-.058.033-.058.031-.059.03-.06.028-.06.027-.062.025-.062.024-.063.022-.063.021-.065.02-.065.017-.065.017-.066.014-.067.013-.068.011-.068.01-.069.008-.069.006-.07.005-.071.002-.071.001-.081V5.061l-.001-.081-.002-.071-.005-.071-.006-.07-.008-.069-.01-.069-.011-.068-.013-.068-.014-.067-.017-.066-.017-.065-.02-.065-.021-.065-.022-.063-.024-.063-.025-.062-.027-.062-.028-.06-.03-.06-.031-.059-.033-.058-.034-.058-.035-.056-.037-.056-.038-.055-.039-.054-.041-.053-.041-.051-.043-.051-.045-.05-.045-.049-.047-.047-.047-.047-.049-.045-.05-.045-.051-.042-.051-.042-.053-.041-.054-.039-.055-.038-.056-.037-.056-.035-.058-.034-.058-.033-.059-.031-.06-.03-.06-.028-.062-.027-.062-.025-.063-.024-.063-.022-.065-.021-.065-.02-.065-.017-.066-.017-.067-.014-.068-.013-.068-.011-.069-.01-.069-.008-.07-.006-.071-.005-.071-.002-.081-.001H15.061z"></path> </svg>, logoTitleTag: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M9.984 10.805a.56.56 0 100-1.122.56.56 0 000 1.122M11.475 9.727a.648.648 0 100-1.295.648.648 0 000 1.295M12.316 19.991H8.737c-.4 0-.636-.45-.408-.779l1.831-2.649a.496.496 0 01.822.009l1.748 2.649a.496.496 0 01-.414.77m2.178-.681l-2.544-4.202v-2.346h.062a.667.667 0 000-1.333H9.047a.667.667 0 100 1.333h.061v2.346L6.565 19.31a1.346 1.346 0 001.205 1.946h5.518c1 0 1.651-1.051 1.206-1.946"></path> <path d="M17.649 4.942l.077.003.077.005.076.006.076.009.075.011.075.012.074.014.073.016.072.018.072.019.072.022.07.022.07.025.069.026.068.028.067.029.067.032.065.032.065.034.063.036.063.037.062.038.06.04.06.042.059.043.057.044.057.045.055.047.054.048.053.049.052.051.051.052.049.053.048.054.047.055.045.057.045.057.042.059.042.06.04.06.038.062.037.063.036.064.034.064.033.066.031.066.029.067.028.068.026.069.025.07.023.071.021.071.019.072.018.072.016.074.014.074.013.074.01.075.009.076.007.076.005.077.002.078.001.078v14.082l-.001.078-.002.078-.005.077-.007.076-.009.076-.01.075-.013.074-.014.074-.016.074-.018.072-.019.072-.021.071-.023.071-.025.07-.026.069-.028.068-.029.067-.031.066-.033.066-.034.064-.036.064-.037.063-.038.062-.04.06-.042.06-.042.059-.045.057-.045.057-.047.055-.048.054-.049.053-.051.052-.052.051-.053.049-.054.048-.055.047-.057.045-.057.044-.059.043-.06.042-.06.04-.062.038-.063.037-.063.036-.065.034-.065.032-.067.032-.067.029-.068.028-.069.026-.07.025-.07.022-.072.022-.072.019-.072.018-.073.016-.074.014-.075.012-.075.011-.076.009-.076.006-.077.005-.077.003-.078.001H3.488l-.078-.001-.077-.003-.077-.005-.077-.006-.075-.009-.076-.011-.074-.012-.074-.014-.073-.016-.073-.018-.072-.019-.071-.022-.071-.022-.069-.025-.069-.026-.068-.028-.068-.029-.066-.032-.066-.032-.064-.034-.064-.036-.063-.037-.061-.038-.061-.04-.06-.042-.058-.043-.058-.044-.056-.045-.056-.047-.054-.048-.053-.049-.052-.051-.05-.052-.05-.053-.048-.054-.047-.055-.045-.057-.044-.057-.043-.059-.041-.06-.04-.06-.039-.062-.037-.063-.036-.064-.034-.064-.032-.066-.031-.066-.03-.067-.028-.068-.026-.069-.024-.07-.023-.071-.022-.071-.019-.072-.018-.072-.016-.074-.014-.074-.012-.074-.011-.075-.008-.076-.007-.076-.005-.077-.003-.078-.001-.078V7.959l.001-.078.003-.078.005-.077.007-.076.008-.076.011-.075.012-.074.014-.074.016-.074.018-.072.019-.072.022-.071.023-.071.024-.07.026-.069.028-.068.03-.067.031-.066.032-.066.034-.064.036-.064.037-.063.039-.062.04-.06.041-.06.043-.059.044-.057.045-.057.047-.055.048-.054.05-.053.05-.052.052-.051.053-.049.054-.048.056-.047.056-.045.058-.044.058-.043.06-.042.061-.04.061-.038.063-.037.064-.036.064-.034.066-.032.066-.032.068-.029.068-.028.069-.026.069-.025.071-.022.071-.022.072-.019.073-.018.073-.016.074-.014.074-.012.076-.011.075-.009.077-.006.077-.005.077-.003.078-.001h14.083l.078.001zM3.497 6.441h-.049l-.039.002-.039.002-.039.004-.038.004-.038.005-.037.007-.037.007-.037.008-.036.009-.036.009-.035.011-.036.011-.034.013-.035.013-.034.014-.033.014-.034.016-.032.016-.033.017-.032.018-.031.019-.032.019-.03.02-.03.021-.03.022-.029.022-.028.023-.029.024-.027.024-.027.025-.026.026-.026.026-.025.027-.024.027-.024.028-.023.029-.022.029-.022.03-.02.03-.021.03-.019.031-.019.032-.018.032-.017.032-.016.033-.016.033-.014.034-.014.034-.013.034-.013.035-.011.035-.011.036-.009.036-.009.036-.008.037-.007.037-.006.037-.006.038-.004.038-.003.038-.003.039-.001.04-.001.049v14.064l.001.049.001.04.003.039.003.038.004.038.006.038.006.037.007.037.008.037.009.036.009.036.011.036.011.035.013.035.013.034.014.034.014.034.016.033.016.033.017.032.018.032.019.032.019.031.021.03.02.03.022.03.022.029.023.029.024.028.024.027.025.027.026.026.026.026.027.025.028.024.028.024.028.023.029.022.03.022.03.021.03.02.032.019.031.019.032.018.033.017.032.016.034.016.033.014.034.014.035.013.034.013.036.011.035.011.036.009.036.009.037.008.037.007.037.007.038.005.038.004.039.004.039.002.039.002H17.61l.04-.002.039-.002.038-.004.038-.004.038-.005.038-.007.037-.007.036-.008.036-.009.036-.009.036-.011.035-.011.035-.013.034-.013.034-.014.034-.014.033-.016.033-.016.032-.017.032-.018.032-.019.031-.019.03-.02.031-.021.029-.022.029-.022.029-.023.028-.024.027-.024.027-.025.026-.026.026-.026.025-.027.024-.027.024-.028.023-.029.022-.029.022-.03.021-.03.02-.03.019-.031.019-.032.018-.032.017-.032.016-.033.016-.033.015-.034.014-.034.013-.034.012-.035.011-.035.011-.036.01-.036.009-.036.007-.037.008-.037.006-.037.005-.038.004-.038.004-.038.002-.039.002-.04V7.919l-.002-.04-.002-.039-.004-.038-.004-.038-.005-.038-.006-.037-.008-.037-.007-.037-.009-.036-.01-.036-.011-.036-.011-.035-.012-.035-.013-.034-.014-.034-.015-.034-.016-.033-.016-.033-.017-.032-.018-.032-.019-.032-.019-.031-.02-.03-.021-.03-.022-.03-.022-.029-.023-.029-.024-.028-.024-.027-.025-.027-.026-.026-.026-.026-.027-.025-.027-.024-.028-.024-.029-.023-.029-.022-.029-.022-.031-.021-.03-.02-.031-.019-.032-.019-.032-.018-.032-.017-.033-.016-.033-.016-.034-.014-.034-.014-.034-.013-.035-.013-.035-.011-.036-.011-.036-.009-.036-.009-.036-.008-.037-.007-.038-.007-.038-.005-.038-.004-.038-.004-.039-.002-.04-.002H3.497z"></path> <path d="M27.867 8.104V9.47h-2.146v5.749h-1.602V9.47h-2.146V8.104h5.894z"></path> <path d="M28.893 8.104H30.495V15.219H28.893z"></path> <path d="M37.415 8.104V9.47H35.27v5.749h-1.602V9.47h-2.146V8.104h5.893zM43.196 13.844v1.375h-4.754V8.104h1.602v5.74h3.152zM44.223 15.219V8.104h4.805v1.345h-3.204v1.397h2.844v1.314h-2.844v1.714h3.44v1.345h-5.041z"></path> <path d="M25.779 17.216v.881h-1.385v3.713H23.36v-3.713h-1.386v-.881h3.805zM28.975 21.81a11.73 11.73 0 00-.163-.491c-.059-.168-.118-.336-.175-.504h-1.79c-.058.168-.116.336-.176.504-.06.168-.114.332-.162.491h-1.074c.172-.495.336-.953.49-1.373.155-.419.306-.815.454-1.186.148-.371.294-.724.438-1.057.143-.334.293-.66.447-.978h.988a37.492 37.492 0 011.339 3.221c.155.42.318.878.491 1.373h-1.107zm-1.24-3.554a6.44 6.44 0 01-.099.272l-.153.398-.189.497c-.068.181-.138.371-.209.57h1.306a26.56 26.56 0 00-.394-1.067c-.06-.15-.112-.283-.156-.398a17.567 17.567 0 00-.106-.272zM32.753 18.011c-.481 0-.83.134-1.044.401-.214.268-.321.633-.321 1.097 0 .226.026.43.079.614.053.183.133.341.239.474.106.132.238.235.398.308.159.073.344.109.556.109.115 0 .214-.002.295-.006.082-.005.154-.014.216-.027v-1.598h1.034v2.274a3.832 3.832 0 01-.597.156 5.256 5.256 0 01-1.014.083c-.345 0-.657-.053-.938-.159a1.961 1.961 0 01-.719-.464 2.073 2.073 0 01-.461-.749 2.953 2.953 0 01-.162-1.015c0-.384.059-.724.179-1.021.119-.296.283-.546.49-.752.208-.205.452-.361.733-.467.28-.106.58-.159.898-.159a3.606 3.606 0 011.037.142 2.132 2.132 0 01.488.209l-.299.829a2.586 2.586 0 00-.487-.196 2.077 2.077 0 00-.6-.083zM38.235 20.921v.889h-3.069v-4.594H36.2v3.705h2.035z"></path> <path d="M38.898 17.216H39.932V21.810000000000002H38.898z"></path> <path d="M44.076 21.81a23.18 23.18 0 00-.961-1.558 15.8 15.8 0 00-1.101-1.452v3.01h-1.021v-4.594h.842c.146.146.307.325.484.537a23.033 23.033 0 011.087 1.428c.181.259.352.507.511.746v-2.711h1.027v4.594h-.868zM46.005 21.81v-4.594h3.102v.868h-2.068v.902h1.836v.848h-1.836v1.107h2.221v.869h-3.255z"></path> </svg>, logoTitle: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M10.005 10.805a.56.56 0 100-1.122.56.56 0 000 1.122M11.496 9.727a.648.648 0 100-1.295.648.648 0 000 1.295M12.337 19.991H8.759a.497.497 0 01-.409-.779l1.831-2.649a.496.496 0 01.822.009l1.748 2.649a.496.496 0 01-.414.77m2.178-.681l-2.544-4.202v-2.346h.062a.667.667 0 000-1.333H9.068a.667.667 0 100 1.333h.062v2.346L6.586 19.31a1.346 1.346 0 001.205 1.946h5.518c1 0 1.651-1.051 1.206-1.946"></path> <path d="M17.67 4.942l.077.003.077.005.076.006.076.009.075.011.075.012.074.014.073.016.073.018.072.019.071.022.07.022.07.025.069.026.068.028.067.029.067.032.065.032.065.034.063.036.063.037.062.038.061.04.059.042.059.043.057.044.057.045.055.047.054.048.053.049.052.051.051.052.049.053.048.054.047.055.046.057.044.057.042.059.042.06.04.06.038.062.037.063.036.064.034.064.033.066.031.066.029.067.028.068.026.069.025.07.023.071.021.071.019.072.018.072.016.074.014.074.013.074.01.075.009.076.007.076.005.077.003.078.001.078v14.082l-.001.078-.003.078-.005.077-.007.076-.009.076-.01.075-.013.074-.014.074-.016.074-.018.072-.019.072-.021.071-.023.071-.025.07-.026.069-.028.068-.029.067-.031.066-.033.066-.034.064-.036.064-.037.063-.038.062-.04.06-.042.06-.042.059-.044.057-.046.057-.047.055-.048.054-.049.053-.051.052-.052.051-.053.049-.054.048-.055.047-.057.045-.057.044-.059.043-.059.042-.061.04-.062.038-.063.037-.063.036-.065.034-.065.032-.067.032-.067.029-.068.028-.069.026-.07.025-.07.022-.071.022-.072.019-.073.018-.073.016-.074.014-.075.012-.075.011-.076.009-.076.006-.077.005-.077.003-.078.001H3.509l-.078-.001-.077-.003-.077-.005-.077-.006-.075-.009-.076-.011-.074-.012-.074-.014-.073-.016-.073-.018-.072-.019-.071-.022-.071-.022-.069-.025-.069-.026-.068-.028-.068-.029-.066-.032-.066-.032-.064-.034-.064-.036-.063-.037-.061-.038-.061-.04-.06-.042-.058-.043-.058-.044-.056-.045-.056-.047-.054-.048-.053-.049-.052-.051-.05-.052-.05-.053-.048-.054-.047-.055-.045-.057-.044-.057-.043-.059-.041-.06-.04-.06-.039-.062-.037-.063-.036-.064-.034-.064-.032-.066-.031-.066-.03-.067-.028-.068-.026-.069-.024-.07-.023-.071-.021-.071-.02-.072-.018-.072-.016-.074-.014-.074-.012-.074-.011-.075-.008-.076-.007-.076-.005-.077-.003-.078-.001-.078V7.959l.001-.078.003-.078.005-.077.007-.076.008-.076.011-.075.012-.074.014-.074.016-.074.018-.072.02-.072.021-.071.023-.071.024-.07.026-.069.028-.068.03-.067.031-.066.032-.066.034-.064.036-.064.037-.063.039-.062.04-.06.041-.06.043-.059.044-.057.045-.057.047-.055.048-.054.05-.053.05-.052.052-.051.053-.049.054-.048.056-.047.056-.045.058-.044.058-.043.06-.042.061-.04.061-.038.063-.037.064-.036.064-.034.066-.032.066-.032.068-.029.068-.028.069-.026.069-.025.071-.022.071-.022.072-.019.073-.018.073-.016.074-.014.074-.012.076-.011.075-.009.077-.006.077-.005.077-.003.078-.001h14.083l.078.001zM3.518 6.441h-.049l-.039.002-.039.002-.039.004-.038.004-.038.005-.037.007-.037.007-.037.008-.036.009-.036.009-.035.011-.035.011-.035.013-.035.013-.034.014-.033.014-.034.016-.032.016-.033.017-.032.018-.031.019-.031.019-.031.02-.03.021-.03.022-.029.022-.028.023-.028.024-.028.024-.027.025-.026.026-.026.026-.025.027-.024.027-.024.028-.023.029-.022.029-.022.03-.02.03-.021.03-.019.031-.019.032-.018.032-.017.032-.016.033-.015.033-.015.034-.014.034-.013.034-.012.035-.012.035-.01.036-.01.036-.009.036-.008.037-.007.037-.006.037-.006.038-.004.038-.003.038-.003.039-.001.04-.001.049v14.064l.001.049.001.04.003.039.003.038.004.038.006.038.006.037.007.037.008.037.009.036.01.036.01.036.012.035.012.035.013.034.014.034.015.034.015.033.016.033.017.032.018.032.019.032.019.031.021.03.02.03.022.03.022.029.023.029.024.028.024.027.025.027.026.026.026.026.027.025.028.024.028.024.028.023.029.022.03.022.03.021.031.02.031.019.031.019.032.018.033.017.032.016.034.016.033.014.034.014.035.013.035.013.035.011.035.011.036.009.036.009.037.008.037.007.037.007.038.005.038.004.039.004.039.002.039.002h14.163l.039-.002.039-.002.038-.004.039-.004.037-.005.038-.007.037-.007.036-.008.036-.009.036-.009.036-.011.035-.011.035-.013.034-.013.034-.014.034-.014.033-.016.033-.016.032-.017.032-.018.032-.019.031-.019.031-.02.03-.021.029-.022.029-.022.029-.023.028-.024.027-.024.027-.025.027-.026.025-.026.025-.027.024-.027.024-.028.023-.029.022-.029.022-.03.021-.03.02-.03.02-.031.018-.032.018-.032.017-.032.017-.033.015-.033.015-.034.014-.034.013-.034.012-.035.011-.035.011-.036.01-.036.009-.036.008-.037.007-.037.006-.037.005-.038.005-.038.003-.038.002-.039.002-.04.001-.049V7.968l-.001-.049-.002-.04-.002-.039-.003-.038-.005-.038-.005-.038-.006-.037-.007-.037-.008-.037-.009-.036-.01-.036-.011-.036-.011-.035-.012-.035-.013-.034-.014-.034-.015-.034-.015-.033-.017-.033-.017-.032-.018-.032-.018-.032-.02-.031-.02-.03-.021-.03-.022-.03-.022-.029-.023-.029-.024-.028-.024-.027-.025-.027-.025-.026-.027-.026-.027-.025-.027-.024-.028-.024-.029-.023-.029-.022-.029-.022-.03-.021-.031-.02-.031-.019-.032-.019-.032-.018-.032-.017-.033-.016-.033-.016-.034-.014-.034-.014-.034-.013-.035-.013-.035-.011-.036-.011-.036-.009-.036-.009-.036-.008-.037-.007-.038-.007-.037-.005-.039-.004-.038-.004-.039-.002-.039-.002H3.518z"></path> <path d="M28.058 11.442v1.366h-2.146v5.75H24.31v-5.75h-2.145v-1.366h5.893z"></path> <path d="M29.085 11.442H30.687V18.557000000000002H29.085z"></path> <path d="M37.607 11.442v1.366h-2.146v5.75h-1.602v-5.75h-2.146v-1.366h5.894zM43.387 17.182v1.376h-4.754v-7.116h1.602v5.74h3.152zM44.414 18.558v-7.116h4.805v1.345h-3.203v1.397h2.844v1.314h-2.844v1.715h3.439v1.345h-5.041z"></path> </svg>, titleLogo: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M39.066 10.805a.56.56 0 10-.001-1.121.56.56 0 00.001 1.121M40.557 9.727a.647.647 0 100-1.295.647.647 0 000 1.295M41.398 19.991h-3.579c-.4 0-.636-.45-.408-.779l1.83-2.649a.497.497 0 01.823.009l1.748 2.649a.496.496 0 01-.414.77m2.177-.681l-2.543-4.202v-2.346h.061a.667.667 0 000-1.333h-2.965a.666.666 0 100 1.333h.062v2.346l-2.544 4.202a1.347 1.347 0 001.206 1.946h5.518c1 0 1.651-1.051 1.205-1.946"></path> <path d="M46.73 4.942l.077.003.077.005.077.006.075.009.076.011.074.012.074.014.073.016.073.018.072.019.071.022.071.022.069.025.069.026.068.028.068.029.066.032.066.032.064.034.064.036.063.037.061.038.061.04.06.042.058.043.058.044.056.045.056.047.054.048.053.049.052.051.05.052.05.053.048.054.047.055.045.057.044.057.043.059.041.06.04.06.039.062.037.063.036.064.034.064.032.066.031.066.03.067.028.068.026.069.024.07.023.071.021.071.02.072.018.072.016.074.014.074.012.074.011.075.008.076.007.076.005.077.003.078.001.078v14.082l-.001.078-.003.078-.005.077-.007.076-.008.076-.011.075-.012.074-.014.074-.016.074-.018.072-.02.072-.021.071-.023.071-.024.07-.026.069-.028.068-.03.067-.031.066-.032.066-.034.064-.036.064-.037.063-.039.062-.04.06-.041.06-.043.059-.044.057-.045.057-.047.055-.048.054-.05.053-.05.052-.052.051-.053.049-.054.048-.056.047-.056.045-.058.044-.058.043-.06.042-.061.04-.061.038-.063.037-.064.036-.064.034-.066.032-.066.032-.068.029-.068.028-.069.026-.069.025-.071.022-.071.022-.072.019-.073.018-.073.016-.074.014-.074.012-.076.011-.075.009-.077.006-.077.005-.077.003-.078.001H32.569l-.078-.001-.077-.003-.077-.005-.076-.006-.076-.009-.075-.011-.075-.012-.074-.014-.073-.016-.073-.018-.071-.019-.072-.022-.07-.022-.07-.025-.069-.026-.068-.028-.067-.029-.067-.032-.065-.032-.065-.034-.063-.036-.063-.037-.062-.038-.06-.04-.06-.042-.059-.043-.057-.044-.057-.045-.055-.047-.054-.048-.053-.049-.052-.051-.051-.052-.049-.053-.048-.054-.047-.055-.045-.057-.045-.057-.042-.059-.042-.06-.04-.06-.038-.062-.037-.063-.036-.064-.034-.064-.033-.066-.031-.066-.029-.067-.028-.068-.026-.069-.025-.07-.023-.071-.021-.071-.019-.072-.018-.072-.016-.074-.014-.074-.013-.074-.01-.075-.009-.076-.007-.076-.005-.077-.002-.078-.001-.078V7.959l.001-.078.002-.078.005-.077.007-.076.009-.076.01-.075.013-.074.014-.074.016-.074.018-.072.019-.072.021-.071.023-.071.025-.07.026-.069.028-.068.029-.067.031-.066.033-.066.034-.064.036-.064.037-.063.038-.062.04-.06.042-.06.042-.059.045-.057.045-.057.047-.055.048-.054.049-.053.051-.052.052-.051.053-.049.054-.048.055-.047.057-.045.057-.044.059-.043.06-.042.06-.04.062-.038.063-.037.063-.036.065-.034.065-.032.067-.032.067-.029.068-.028.069-.026.07-.025.07-.022.072-.022.071-.019.073-.018.073-.016.074-.014.075-.012.075-.011.076-.009.076-.006.077-.005.077-.003.078-.001h14.083l.078.001zM32.579 6.441h-.05l-.039.002-.039.002-.038.004-.038.004-.038.005-.038.007-.037.007-.036.008-.036.009-.036.009-.036.011-.035.011-.035.013-.034.013-.034.014-.034.014-.033.016-.033.016-.032.017-.032.018-.032.019-.031.019-.031.02-.03.021-.029.022-.029.022-.029.023-.028.024-.027.024-.027.025-.026.026-.026.026-.025.027-.024.027-.024.028-.023.029-.022.029-.022.03-.021.03-.02.03-.019.031-.019.032-.018.032-.017.032-.016.033-.016.033-.015.034-.014.034-.013.034-.012.035-.011.035-.011.036-.01.036-.009.036-.008.037-.007.037-.006.037-.005.038-.004.038-.004.038-.002.039-.002.04V22.081l.002.04.002.039.004.038.004.038.005.038.006.037.007.037.008.037.009.036.01.036.011.036.011.035.012.035.013.034.014.034.015.034.016.033.016.033.017.032.018.032.019.032.019.031.02.03.021.03.022.03.022.029.023.029.024.028.024.027.025.027.026.026.026.026.027.025.027.024.028.024.029.023.029.022.029.022.03.021.031.02.031.019.032.019.032.018.032.017.033.016.033.016.034.014.034.014.034.013.035.013.035.011.036.011.036.009.036.009.036.008.037.007.038.007.038.005.038.004.038.004.039.002.039.002h14.163l.039-.002.039-.002.039-.004.038-.004.038-.005.037-.007.037-.007.037-.008.036-.009.036-.009.035-.011.036-.011.034-.013.035-.013.034-.014.033-.014.034-.016.032-.016.033-.017.032-.018.031-.019.031-.019.031-.02.03-.021.03-.022.029-.022.028-.023.028-.024.028-.024.027-.025.026-.026.026-.026.025-.027.024-.027.024-.028.023-.029.022-.029.022-.03.02-.03.021-.03.019-.031.019-.032.018-.032.017-.032.016-.033.016-.033.014-.034.014-.034.013-.034.013-.035.011-.035.011-.036.009-.036.009-.036.008-.037.007-.037.006-.037.006-.038.004-.038.003-.038.003-.039.001-.04.001-.049V7.968l-.001-.049-.001-.04-.003-.039-.003-.038-.004-.038-.006-.038-.006-.037-.007-.037-.008-.037-.009-.036-.009-.036-.011-.036-.011-.035-.013-.035-.013-.034-.014-.034-.014-.034-.016-.033-.016-.033-.017-.032-.018-.032-.019-.032-.019-.031-.021-.03-.02-.03-.022-.03-.022-.029-.023-.029-.024-.028-.024-.027-.025-.027-.026-.026-.026-.026-.027-.025-.028-.024-.028-.024-.028-.023-.029-.022-.03-.022-.03-.021-.031-.02-.031-.019-.031-.019-.032-.018-.033-.017-.032-.016-.034-.016-.033-.014-.034-.014-.035-.013-.034-.013-.036-.011-.035-.011-.036-.009-.036-.009-.037-.008-.037-.007-.037-.007-.038-.005-.038-.004-.039-.004-.039-.002-.039-.002H32.579z"></path> <path d="M6.37 11.442v1.366H4.224v5.75H2.622v-5.75H.476v-1.366H6.37z"></path> <path d="M7.396 11.442H8.998V18.557000000000002H7.396z"></path> <path d="M15.918 11.442v1.366h-2.146v5.75h-1.601v-5.75h-2.146v-1.366h5.893zM21.699 17.182v1.376h-4.754v-7.116h1.602v5.74h3.152zM22.725 18.558v-7.116h4.805v1.345h-3.203v1.397h2.844v1.314h-2.844v1.715h3.44v1.345h-5.042z"></path> </svg>, titleTagLogo: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M39.066 10.805a.56.56 0 10-.001-1.121.56.56 0 00.001 1.121M40.557 9.727a.647.647 0 100-1.295.647.647 0 000 1.295M41.398 19.991h-3.579c-.4 0-.636-.45-.408-.779l1.83-2.649a.497.497 0 01.823.009l1.748 2.649a.496.496 0 01-.414.77m2.177-.681l-2.543-4.202v-2.346h.061a.667.667 0 000-1.333h-2.965a.666.666 0 100 1.333h.062v2.346l-2.544 4.202a1.347 1.347 0 001.206 1.946h5.518c1 0 1.651-1.051 1.205-1.946"></path> <path d="M46.73 4.942l.077.003.077.005.077.006.075.009.076.011.074.012.074.014.073.016.073.018.072.019.071.022.071.022.069.025.069.026.068.028.068.029.066.032.066.032.064.034.064.036.063.037.061.038.061.04.06.042.058.043.058.044.056.045.056.047.054.048.053.049.052.051.05.052.05.053.048.054.047.055.045.057.044.057.043.059.041.06.04.06.039.062.037.063.036.064.034.064.032.066.031.066.03.067.028.068.026.069.024.07.023.071.021.071.02.072.018.072.016.074.014.074.012.074.011.075.008.076.007.076.005.077.003.078.001.078v14.082l-.001.078-.003.078-.005.077-.007.076-.008.076-.011.075-.012.074-.014.074-.016.074-.018.072-.02.072-.021.071-.023.071-.024.07-.026.069-.028.068-.03.067-.031.066-.032.066-.034.064-.036.064-.037.063-.039.062-.04.06-.041.06-.043.059-.044.057-.045.057-.047.055-.048.054-.05.053-.05.052-.052.051-.053.049-.054.048-.056.047-.056.045-.058.044-.058.043-.06.042-.061.04-.061.038-.063.037-.064.036-.064.034-.066.032-.066.032-.068.029-.068.028-.069.026-.069.025-.071.022-.071.022-.072.019-.073.018-.073.016-.074.014-.074.012-.076.011-.075.009-.077.006-.077.005-.077.003-.078.001H32.569l-.078-.001-.077-.003-.077-.005-.076-.006-.076-.009-.075-.011-.075-.012-.074-.014-.073-.016-.073-.018-.071-.019-.072-.022-.07-.022-.07-.025-.069-.026-.068-.028-.067-.029-.067-.032-.065-.032-.065-.034-.063-.036-.063-.037-.062-.038-.06-.04-.06-.042-.059-.043-.057-.044-.057-.045-.055-.047-.054-.048-.053-.049-.052-.051-.051-.052-.049-.053-.048-.054-.047-.055-.045-.057-.045-.057-.042-.059-.042-.06-.04-.06-.038-.062-.037-.063-.036-.064-.034-.064-.033-.066-.031-.066-.029-.067-.028-.068-.026-.069-.025-.07-.023-.071-.021-.071-.019-.072-.018-.072-.016-.074-.014-.074-.013-.074-.01-.075-.009-.076-.007-.076-.005-.077-.002-.078-.001-.078V7.959l.001-.078.002-.078.005-.077.007-.076.009-.076.01-.075.013-.074.014-.074.016-.074.018-.072.019-.072.021-.071.023-.071.025-.07.026-.069.028-.068.029-.067.031-.066.033-.066.034-.064.036-.064.037-.063.038-.062.04-.06.042-.06.042-.059.045-.057.045-.057.047-.055.048-.054.049-.053.051-.052.052-.051.053-.049.054-.048.055-.047.057-.045.057-.044.059-.043.06-.042.06-.04.062-.038.063-.037.063-.036.065-.034.065-.032.067-.032.067-.029.068-.028.069-.026.07-.025.07-.022.072-.022.071-.019.073-.018.073-.016.074-.014.075-.012.075-.011.076-.009.076-.006.077-.005.077-.003.078-.001h14.083l.078.001zM32.579 6.441h-.05l-.039.002-.039.002-.038.004-.038.004-.038.005-.038.007-.037.007-.036.008-.036.009-.036.009-.036.011-.035.011-.035.013-.034.013-.034.014-.034.014-.033.016-.033.016-.032.017-.032.018-.032.019-.031.019-.031.02-.03.021-.029.022-.029.022-.029.023-.028.024-.027.024-.027.025-.026.026-.026.026-.025.027-.024.027-.024.028-.023.029-.022.029-.022.03-.021.03-.02.03-.019.031-.019.032-.018.032-.017.032-.016.033-.016.033-.015.034-.014.034-.013.034-.012.035-.011.035-.011.036-.01.036-.009.036-.008.037-.007.037-.006.037-.005.038-.004.038-.004.038-.002.039-.002.04V22.081l.002.04.002.039.004.038.004.038.005.038.006.037.007.037.008.037.009.036.01.036.011.036.011.035.012.035.013.034.014.034.015.034.016.033.016.033.017.032.018.032.019.032.019.031.02.03.021.03.022.03.022.029.023.029.024.028.024.027.025.027.026.026.026.026.027.025.027.024.028.024.029.023.029.022.029.022.03.021.031.02.031.019.032.019.032.018.032.017.033.016.033.016.034.014.034.014.034.013.035.013.035.011.036.011.036.009.036.009.036.008.037.007.038.007.038.005.038.004.038.004.039.002.039.002h14.163l.039-.002.039-.002.039-.004.038-.004.038-.005.037-.007.037-.007.037-.008.036-.009.036-.009.035-.011.036-.011.034-.013.035-.013.034-.014.033-.014.034-.016.032-.016.033-.017.032-.018.031-.019.031-.019.031-.02.03-.021.03-.022.029-.022.028-.023.028-.024.028-.024.027-.025.026-.026.026-.026.025-.027.024-.027.024-.028.023-.029.022-.029.022-.03.02-.03.021-.03.019-.031.019-.032.018-.032.017-.032.016-.033.016-.033.014-.034.014-.034.013-.034.013-.035.011-.035.011-.036.009-.036.009-.036.008-.037.007-.037.006-.037.006-.038.004-.038.003-.038.003-.039.001-.04.001-.049V7.968l-.001-.049-.001-.04-.003-.039-.003-.038-.004-.038-.006-.038-.006-.037-.007-.037-.008-.037-.009-.036-.009-.036-.011-.036-.011-.035-.013-.035-.013-.034-.014-.034-.014-.034-.016-.033-.016-.033-.017-.032-.018-.032-.019-.032-.019-.031-.021-.03-.02-.03-.022-.03-.022-.029-.023-.029-.024-.028-.024-.027-.025-.027-.026-.026-.026-.026-.027-.025-.028-.024-.028-.024-.028-.023-.029-.022-.03-.022-.03-.021-.031-.02-.031-.019-.031-.019-.032-.018-.033-.017-.032-.016-.034-.016-.033-.014-.034-.014-.035-.013-.034-.013-.036-.011-.035-.011-.036-.009-.036-.009-.037-.008-.037-.007-.037-.007-.038-.005-.038-.004-.039-.004-.039-.002-.039-.002H32.579z"></path> <path d="M6.37 8.104V9.47H4.224v5.749H2.622V9.47H.476V8.104H6.37z"></path> <path d="M7.396 8.104H8.998V15.219H7.396z"></path> <path d="M15.918 8.104V9.47h-2.146v5.749h-1.601V9.47h-2.146V8.104h5.893zM21.699 13.844v1.375h-4.754V8.104h1.602v5.74h3.152zM22.725 15.219V8.104h4.805v1.345h-3.203v1.397h2.844v1.314h-2.844v1.714h3.44v1.345h-5.042z"></path> <path d="M4.282 17.216v.881H2.897v3.713H1.863v-3.713H.477v-.881h3.805zM7.477 21.81a10.389 10.389 0 00-.162-.491c-.06-.168-.118-.336-.176-.504h-1.79c-.057.168-.116.336-.175.504-.06.168-.114.332-.163.491H3.937a85.2 85.2 0 01.491-1.373c.155-.419.306-.815.454-1.186.148-.371.294-.724.438-1.057.143-.334.292-.66.447-.978h.988a37.492 37.492 0 011.339 3.221c.155.42.318.878.49 1.373H7.477zm-1.239-3.554a5.468 5.468 0 01-.1.272l-.152.398a56.25 56.25 0 00-.398 1.067h1.306a26.56 26.56 0 00-.394-1.067c-.06-.15-.112-.283-.156-.398l-.106-.272zM11.256 18.011c-.482 0-.83.134-1.044.401-.214.268-.322.633-.322 1.097 0 .226.027.43.08.614.053.183.133.341.239.474.106.132.238.235.397.308.159.073.345.109.557.109.115 0 .213-.002.295-.006.082-.005.154-.014.216-.027v-1.598h1.034v2.274a3.832 3.832 0 01-.597.156 5.256 5.256 0 01-1.014.083c-.345 0-.658-.053-.938-.159a1.953 1.953 0 01-1.18-1.213 2.953 2.953 0 01-.163-1.015c0-.384.06-.724.179-1.021a2.21 2.21 0 01.491-.752c.208-.205.452-.361.733-.467.28-.106.58-.159.898-.159a3.594 3.594 0 011.037.142 2.132 2.132 0 01.487.209l-.298.829a2.614 2.614 0 00-.487-.196 2.077 2.077 0 00-.6-.083zM16.738 20.921v.889h-3.069v-4.594h1.034v3.705h2.035z"></path> <path d="M17.401 17.216H18.435V21.810000000000002H17.401z"></path> <path d="M22.579 21.81a23.197 23.197 0 00-.962-1.558 15.615 15.615 0 00-1.1-1.452v3.01h-1.021v-4.594h.842c.146.146.307.325.484.537.177.212.357.438.54.679.183.241.366.491.547.749.181.259.351.507.51.746v-2.711h1.028v4.594h-.868zM24.508 21.81v-4.594h3.102v.868h-2.068v.902h1.836v.848h-1.836v1.107h2.22v.869h-3.254z"></path> </svg>, topLogoTitleTag: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M24.55 5.112a.463.463 0 100-.925.463.463 0 000 .925M25.78 4.223a.536.536 0 10-.001-1.071.536.536 0 00.001 1.071M26.474 12.691h-2.952a.41.41 0 01-.337-.642l1.51-2.186a.41.41 0 01.679.007l1.442 2.186a.41.41 0 01-.342.635m1.797-.562l-2.099-3.466V6.726h.051a.55.55 0 100-1.099h-2.446a.55.55 0 100 1.099h.051v1.937l-2.099 3.466a1.11 1.11 0 00.994 1.606h4.554a1.11 1.11 0 00.994-1.606"></path> <path d="M30.874.274l.064.003.063.004.063.005.063.007.062.009.061.01.061.012.061.013.06.015.059.016.059.017.058.019.058.021.057.021.056.023.055.024.055.026.054.027.053.028.053.029.052.031.051.032.05.033.049.034.048.035.048.037.046.037.046.039.045.04.043.04.043.042.042.043.041.044.039.044.039.046.038.046.036.048.035.048.034.05.033.05.032.051.031.051.029.053.028.053.027.054.026.055.024.056.023.056.022.057.02.057.019.058.017.059.016.059.015.06.013.061.012.061.01.061.009.062.007.063.006.063.004.063.002.064.001.064v11.62l-.001.064-.002.064-.004.064-.006.063-.007.062-.009.062-.01.062-.012.061-.013.06-.015.06-.016.06-.017.058-.019.058-.02.058-.022.057-.023.056-.024.056-.026.054-.027.054-.028.054-.029.052-.031.052-.032.051-.033.05-.034.049-.035.049-.036.047-.038.047-.039.045-.039.045-.041.044-.042.043-.043.041-.043.041-.045.04-.046.038-.046.038-.048.036-.048.036-.049.034-.05.033-.051.031-.052.031-.053.029-.053.029-.054.026-.055.026-.055.024-.056.023-.057.022-.058.02-.058.019-.059.018-.059.016-.06.014-.061.014-.061.011-.061.01-.062.009-.063.007-.063.006-.063.004-.064.002-.064.001H19.19l-.064-.001-.064-.002-.063-.004-.063-.006-.063-.007-.062-.009-.061-.01-.061-.011-.061-.014-.06-.014-.059-.016-.059-.018-.058-.019-.058-.02-.057-.022-.056-.023-.055-.024-.055-.026-.054-.026-.053-.029-.053-.029-.052-.031-.051-.031-.05-.033-.049-.034-.048-.036-.048-.036-.046-.038-.046-.038-.045-.04-.043-.041-.043-.041-.042-.043-.041-.044-.039-.045-.039-.045-.038-.047-.036-.047-.035-.049-.034-.049-.033-.05-.032-.051-.031-.052-.029-.052-.028-.054-.027-.054-.026-.054-.024-.056-.023-.056-.022-.057-.02-.058-.019-.058-.017-.058-.016-.06-.015-.06-.013-.06-.012-.061-.01-.062-.009-.062-.007-.062-.006-.063-.004-.064-.002-.064-.001-.064V2.763l.001-.064.002-.064.004-.063.006-.063.007-.063.009-.062.01-.061.012-.061.013-.061.015-.06.016-.059.017-.059.019-.058.02-.057.022-.057.023-.056.024-.056.026-.055.027-.054.028-.053.029-.053.031-.051.032-.051.033-.05.034-.05.035-.048.036-.048.038-.046.039-.046.039-.044.041-.044.042-.043.043-.042.043-.04.045-.04.046-.039.046-.037.048-.037.048-.035.049-.034.05-.033.051-.032.052-.031.053-.029.053-.028.054-.027.055-.026.055-.024.056-.023.057-.021.058-.021.058-.019.059-.017.059-.016.06-.015.061-.013.061-.012.061-.01.062-.009.063-.007.063-.005.063-.004.064-.003.064-.001h11.62l.064.001zM19.2 1.773l-.036.001-.026.001-.025.001-.026.003-.024.003-.025.003-.024.004-.024.005-.024.005-.024.006-.023.006-.023.007-.023.007-.023.008-.022.009-.022.009-.022.009-.022.01-.021.011-.021.011-.021.012-.02.012-.021.013-.02.013-.019.013-.02.015-.019.014-.018.015-.019.016-.018.016-.017.016-.018.017-.016.017-.017.018-.016.017-.015.019-.015.019-.015.019-.014.019-.013.02-.014.02-.012.02-.012.02-.012.021-.011.021-.011.022-.01.021-.01.022-.009.022-.008.023-.008.022-.008.023-.006.023-.007.023-.005.024-.006.024-.004.024-.004.024-.004.025-.003.025-.002.025-.001.025-.001.026-.001.036v11.601l.001.035.001.026.001.026.002.025.003.025.004.024.004.025.004.024.006.024.005.023.007.023.006.023.008.023.008.023.008.022.009.022.01.022.01.022.011.021.011.021.012.021.012.021.012.02.014.02.013.02.014.019.015.019.015.019.015.018.016.018.017.018.016.017.018.017.017.016.018.016.019.015.018.015.019.015.02.014.019.014.02.013.021.013.02.012.021.011.021.012.021.01.022.01.022.01.022.009.022.008.023.008.023.008.023.007.023.006.024.006.024.005.024.005.024.004.025.003.024.003.026.002.025.002.026.001H30.836l.026-.001.025-.002.026-.002.024-.003.025-.003.024-.004.024-.005.024-.005.024-.006.023-.006.023-.007.023-.008.023-.008.022-.008.022-.009.022-.01.022-.01.021-.01.021-.012.021-.011.02-.012.021-.013.02-.013.019-.014.02-.014.019-.015.018-.015.019-.015.018-.016.017-.016.018-.017.016-.017.017-.018.016-.018.015-.018.015-.019.015-.019.014-.019.013-.02.014-.02.012-.02.012-.021.012-.021.011-.021.011-.021.01-.022.01-.022.009-.022.008-.022.008-.023.008-.023.006-.023.007-.023.005-.023.006-.024.004-.024.004-.025.004-.024.003-.025.002-.025.001-.026.001-.026.001-.035V2.773l-.001-.036-.001-.026-.001-.025-.002-.025-.003-.025-.004-.025-.004-.024-.004-.024-.006-.024-.005-.023-.007-.024-.006-.023-.008-.023-.008-.022-.008-.023-.009-.022-.01-.022-.01-.021-.011-.022-.011-.021-.012-.021-.012-.02-.012-.02-.014-.02-.013-.02-.014-.019-.015-.019-.015-.019-.015-.019-.016-.017-.017-.018-.016-.017-.018-.017-.017-.016-.018-.016-.019-.016-.018-.015-.019-.014-.02-.015-.019-.013-.02-.013-.021-.013-.02-.012-.021-.012-.021-.011-.021-.011-.022-.01-.022-.009-.022-.009-.022-.009-.023-.008-.023-.007-.023-.007-.023-.006-.024-.006-.024-.005-.024-.005-.024-.004-.025-.003-.024-.003-.026-.003-.025-.001-.026-.001-.036-.001H19.2z"></path> <path d="M18.613 18.217v1.125h-1.768v4.738h-1.32v-4.738h-1.768v-1.125h4.856z"></path> <path d="M19.459 18.217H20.779V24.08H19.459z"></path> <path d="M26.48 18.217v1.125h-1.768v4.738h-1.319v-4.738h-1.768v-1.125h4.855zM31.243 22.946v1.134h-3.917v-5.863h1.32v4.729h2.597zM32.089 24.08v-5.863h3.96v1.108h-2.64v1.151h2.343v1.083h-2.343v1.413h2.834v1.108h-4.154z"></path> <path d="M16.893 25.725v.726h-1.142v3.059h-.852v-3.059h-1.141v-.726h3.135zM19.526 29.51a9.526 9.526 0 00-.134-.404c-.049-.139-.098-.277-.145-.415h-1.475l-.144.415c-.05.138-.094.273-.134.404h-.885c.142-.408.277-.785.404-1.131a40.258 40.258 0 01.735-1.849c.118-.275.241-.543.368-.805h.814a28.892 28.892 0 01.729 1.677c.122.305.247.631.375.977.127.346.262.723.404 1.131h-.912zm-1.022-2.928a4.547 4.547 0 01-.082.224l-.125.328a36.184 36.184 0 00-.328.879h1.076c-.058-.164-.115-.32-.169-.469-.055-.15-.107-.286-.156-.41a26.237 26.237 0 01-.128-.328 28.526 28.526 0 00-.088-.224zM22.639 26.38c-.397 0-.684.11-.86.331-.177.22-.265.521-.265.904 0 .185.022.354.065.505.044.151.11.281.197.39.087.11.197.194.328.254s.284.09.459.09c.094 0 .175-.001.243-.005.067-.004.126-.011.177-.022v-1.316h.852v1.873c-.102.04-.266.083-.491.129a4.369 4.369 0 01-.836.068 2.18 2.18 0 01-.773-.131 1.623 1.623 0 01-.593-.383 1.71 1.71 0 01-.379-.617 2.426 2.426 0 01-.134-.835c0-.317.049-.598.147-.842.099-.244.234-.45.405-.62.171-.169.372-.297.603-.385.231-.087.478-.131.74-.131a2.957 2.957 0 01.855.118 1.804 1.804 0 01.402.172l-.246.683a2.274 2.274 0 00-.402-.162 1.725 1.725 0 00-.494-.068zM27.156 28.778v.732h-2.529v-3.785h.852v3.053h1.677z"></path> <path d="M27.702 25.725H28.554000000000002V29.51H27.702z"></path> <path d="M31.968 29.51a19.313 19.313 0 00-.792-1.284 13.158 13.158 0 00-.906-1.196v2.48h-.842v-3.785h.694c.12.12.253.267.399.442.146.175.294.361.445.56.151.198.301.404.451.617.149.213.289.418.42.615v-2.234h.847v3.785h-.716zM33.558 29.51v-3.785h2.556v.715H34.41v.743h1.513v.699H34.41v.912h1.83v.716h-2.682z"></path> </svg>, topLogoTitle: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M24.455 6.271a.561.561 0 100-1.123.561.561 0 000 1.123M25.946 5.193a.648.648 0 10-.001-1.295.648.648 0 00.001 1.295M26.787 15.456h-3.579a.496.496 0 01-.408-.778l1.83-2.65a.497.497 0 01.823.009l1.748 2.649a.496.496 0 01-.414.77m2.178-.681l-2.544-4.201V8.227h.062a.666.666 0 100-1.333h-2.966a.667.667 0 000 1.333h.062v2.347l-2.543 4.201a1.347 1.347 0 001.205 1.947h5.518c1 0 1.651-1.052 1.206-1.947"></path> <path d="M32.119.407l.078.003.077.005.076.007.076.009.075.01.074.012.074.015.074.016.072.017.072.02.071.021.071.023.07.024.069.027.068.028.067.029.066.031.066.033.064.034.064.035.063.037.062.039.06.04.06.041.059.043.057.044.057.046.055.047.054.048.053.049.052.051.051.051.049.053.048.055.047.055.045.056.044.058.043.059.042.059.04.061.038.062.037.062.036.064.034.065.032.065.032.067.029.067.028.068.026.069.025.07.022.07.022.071.019.072.018.073.016.073.014.074.012.075.011.075.009.076.006.076.005.077.003.077.001.078v14.083l-.001.078-.003.077-.005.077-.006.076-.009.076-.011.075-.012.075-.014.074-.016.073-.018.073-.019.072-.022.071-.022.07-.025.07-.026.069-.028.068-.029.067-.032.067-.032.065-.034.065-.036.064-.037.062-.038.062-.04.061-.042.059-.043.059-.044.058-.045.056-.047.055-.048.055-.049.053-.051.051-.052.051-.053.049-.054.049-.055.046-.057.046-.057.044-.059.043-.06.041-.06.04-.062.039-.063.037-.064.035-.064.034-.066.033-.066.031-.067.029-.068.028-.069.027-.07.024-.071.023-.071.021-.072.02-.072.017-.074.016-.074.015-.074.012-.075.011-.076.008-.076.007-.077.005-.078.003-.078.001H17.959l-.078-.001-.078-.003-.077-.005-.076-.007-.076-.008-.075-.011-.074-.012-.074-.015-.074-.016-.072-.017-.072-.02-.071-.021-.071-.023-.07-.024-.069-.027-.068-.028-.067-.029-.066-.031-.066-.033-.064-.034-.064-.035-.063-.037-.062-.039-.06-.04-.06-.041-.059-.043-.057-.044-.057-.046-.055-.046-.054-.049-.053-.049-.052-.051-.051-.051-.049-.053-.048-.055-.047-.055-.045-.056-.044-.058-.043-.059-.042-.059-.04-.061-.038-.062-.037-.062-.036-.064-.034-.065-.032-.065-.032-.067-.029-.067-.028-.068-.026-.069-.025-.07-.022-.07-.022-.071-.019-.072-.018-.073-.016-.073-.014-.074-.012-.075-.011-.075-.009-.076-.006-.076-.005-.077-.003-.077-.001-.078V3.424l.001-.078.003-.077.005-.077.006-.076.009-.076.011-.075.012-.075.014-.074.016-.073.018-.073.019-.072.022-.071.022-.07.025-.07.026-.069.028-.068.029-.067.032-.067.032-.065.034-.065.036-.064.037-.062.038-.062.04-.061.042-.059.043-.059.044-.058.045-.056.047-.055.048-.055.049-.053.051-.051.052-.051.053-.049.054-.048.055-.047.057-.046.057-.044.059-.043.06-.041.06-.04.062-.039.063-.037.064-.035.064-.034.066-.033.066-.031.067-.029.068-.028.069-.027.07-.024.071-.023.071-.021.072-.02.072-.017.074-.016.074-.015.074-.012.075-.01.076-.009.076-.007.077-.005.078-.003.078-.001h14.082l.078.001zM17.968 1.906l-.049.001-.04.001-.039.003-.038.003-.038.005-.038.005-.037.006-.037.007-.037.008-.036.009-.036.01-.036.01-.035.012-.035.012-.034.013-.034.014-.034.015-.033.015-.033.017-.032.017-.032.018-.032.018-.031.02-.03.02-.03.021-.03.021-.029.023-.029.023-.028.023-.027.025-.027.025-.026.025-.026.027-.025.026-.024.028-.024.028-.023.028-.022.029-.022.03-.021.03-.02.031-.019.031-.019.031-.018.032-.017.033-.016.033-.016.033-.014.034-.014.034-.013.034-.013.035-.011.035-.011.035-.009.036-.009.037-.008.036-.007.037-.007.038-.005.037-.004.038-.004.039-.002.039-.002.039v14.163l.002.039.002.039.004.039.004.038.005.037.007.038.007.037.008.036.009.037.009.036.011.035.011.035.013.035.013.034.014.034.014.034.016.033.016.033.017.033.018.032.019.031.019.031.02.031.021.03.022.03.022.029.023.028.024.028.024.028.025.027.026.026.026.025.027.025.027.025.028.023.029.023.029.023.03.021.03.021.03.02.031.02.032.018.032.018.032.017.033.017.033.015.034.015.034.014.034.013.035.012.035.012.036.01.036.01.036.009.037.008.037.007.037.006.038.005.038.005.038.003.039.003.04.001.049.001h14.064l.049-.001.04-.001.039-.003.038-.003.038-.005.038-.005.037-.006.037-.007.037-.008.036-.009.036-.01.036-.01.035-.012.035-.012.034-.013.034-.014.034-.015.033-.015.033-.017.032-.017.032-.018.032-.018.031-.02.03-.02.03-.021.03-.021.029-.023.029-.023.028-.023.027-.025.027-.025.026-.025.026-.027.025-.026.024-.028.024-.028.023-.028.022-.029.022-.03.021-.03.02-.031.019-.031.019-.031.018-.032.017-.033.016-.033.016-.033.014-.034.014-.034.013-.034.013-.035.011-.035.011-.035.009-.036.009-.037.008-.036.007-.037.007-.038.005-.037.004-.038.004-.039.002-.039.002-.039V3.384l-.002-.039-.002-.039-.004-.039-.004-.038-.005-.037-.007-.038-.007-.037-.008-.036-.009-.037-.009-.036-.011-.035-.011-.035-.013-.035-.013-.034-.014-.034-.014-.034-.016-.033-.016-.033-.017-.033-.018-.032-.019-.031-.019-.031-.02-.031-.021-.03-.022-.029-.022-.03-.023-.028-.024-.028-.024-.028-.025-.026-.026-.027-.026-.025-.027-.025-.027-.025-.028-.023-.029-.023-.029-.023-.03-.021-.03-.021-.03-.02-.031-.02-.032-.018-.032-.018-.032-.017-.033-.017-.033-.015-.034-.015-.034-.014-.034-.013-.035-.012-.035-.012-.036-.01-.036-.01-.036-.009-.037-.008-.037-.007-.037-.006-.038-.005-.038-.005-.038-.003-.039-.003-.04-.001-.049-.001H17.968z"></path> <path d="M17.248 22.408v1.366h-2.146v5.75h-1.601v-5.75h-2.146v-1.366h5.893z"></path> <path d="M18.275 22.408H19.877V29.523000000000003H18.275z"></path> <path d="M26.797 22.408v1.366h-2.146v5.75h-1.602v-5.75h-2.146v-1.366h5.894zM32.577 28.148v1.376h-4.753v-7.116h1.601v5.74h3.152zM33.604 29.524v-7.116h4.805v1.345h-3.203v1.397h2.844v1.314h-2.844v1.715h3.439v1.345h-5.041z"></path> </svg>, topTitleLogo: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M24.455 15.239a.561.561 0 100-1.123.561.561 0 000 1.123M25.946 14.161a.648.648 0 10-.001-1.295.648.648 0 00.001 1.295M26.787 24.424h-3.579a.496.496 0 01-.408-.778l1.83-2.65a.497.497 0 01.823.009l1.748 2.649a.496.496 0 01-.414.77m2.178-.681l-2.544-4.201v-2.347h.062a.666.666 0 100-1.333h-2.966a.667.667 0 000 1.333h.062v2.347l-2.543 4.201a1.347 1.347 0 001.205 1.947h5.518c1 0 1.651-1.052 1.206-1.947"></path> <path d="M32.119 9.375l.078.003.077.005.076.007.076.009.075.01.074.012.074.015.074.016.072.017.072.02.071.021.071.023.07.024.069.027.068.028.067.029.066.031.066.033.064.034.064.035.063.037.062.039.06.04.06.041.059.043.057.044.057.046.055.047.054.048.053.049.052.051.051.051.049.053.048.055.047.055.045.056.044.058.043.059.042.059.04.061.038.062.037.062.036.064.034.065.032.065.032.067.029.067.028.068.026.069.025.07.022.07.022.071.019.072.018.073.016.073.014.074.012.075.011.075.009.076.006.076.005.077.003.077.001.078v14.083l-.001.078-.003.077-.005.077-.006.076-.009.076-.011.075-.012.075-.014.074-.016.073-.018.073-.019.072-.022.071-.022.07-.025.07-.026.069-.028.068-.029.067-.032.067-.032.065-.034.065-.036.064-.037.062-.038.062-.04.061-.042.059-.043.059-.044.058-.045.056-.047.055-.048.055-.049.053-.051.051-.052.051-.053.049-.054.049-.055.046-.057.046-.057.044-.059.043-.06.041-.06.04-.062.039-.063.037-.064.035-.064.034-.066.033-.066.031-.067.029-.068.028-.069.027-.07.024-.071.023-.071.021-.072.02-.072.017-.074.016-.074.015-.074.012-.075.011-.076.008-.076.007-.077.005-.078.003-.078.001H17.959l-.078-.001-.078-.003-.077-.005-.076-.007-.076-.008-.075-.011-.074-.012-.074-.015-.074-.016-.072-.017-.072-.02-.071-.021-.071-.023-.07-.024-.069-.027-.068-.028-.067-.029-.066-.031-.066-.033-.064-.034-.064-.035-.063-.037-.062-.039-.06-.04-.06-.041-.059-.043-.057-.044-.057-.046-.055-.046-.054-.049-.053-.049-.052-.051-.051-.051-.049-.053-.048-.055-.047-.055-.045-.056-.044-.058-.043-.059-.042-.059-.04-.061-.038-.062-.037-.062-.036-.064-.034-.065-.032-.065-.032-.067-.029-.067-.028-.068-.026-.069-.025-.07-.022-.07-.022-.071-.019-.072-.018-.073-.016-.073-.014-.074-.012-.075-.011-.075-.009-.076-.006-.076-.005-.077-.003-.077-.001-.078V12.392l.001-.078.003-.077.005-.077.006-.076.009-.076.011-.075.012-.075.014-.074.016-.073.018-.073.019-.072.022-.071.022-.07.025-.07.026-.069.028-.068.029-.067.032-.067.032-.065.034-.065.036-.064.037-.062.038-.062.04-.061.042-.059.043-.059.044-.058.045-.056.047-.055.048-.055.049-.053.051-.051.052-.051.053-.049.054-.048.055-.047.057-.046.057-.044.059-.043.06-.041.06-.04.062-.039.063-.037.064-.035.064-.034.066-.033.066-.031.067-.029.068-.028.069-.027.07-.024.071-.023.071-.021.072-.02.072-.017.074-.016.074-.015.074-.012.075-.01.076-.009.076-.007.077-.005.078-.003.078-.001h14.082l.078.001zm-14.151 1.499l-.049.001-.04.001-.039.003-.038.003-.038.005-.038.005-.037.006-.037.007-.037.008-.036.009-.036.01-.036.01-.035.012-.035.012-.034.013-.034.014-.034.015-.033.015-.033.017-.032.017-.032.018-.032.018-.031.02-.03.02-.03.021-.03.021-.029.023-.029.023-.028.023-.027.025-.027.025-.026.025-.026.027-.025.026-.024.028-.024.028-.023.028-.022.029-.022.03-.021.03-.02.031-.019.031-.019.031-.018.032-.017.033-.016.033-.016.033-.014.034-.014.034-.013.034-.013.035-.011.035-.011.035-.009.036-.009.037-.008.036-.007.037-.007.038-.005.037-.004.038-.004.039-.002.039-.002.039V26.515l.002.039.002.039.004.039.004.038.005.037.007.038.007.037.008.036.009.037.009.036.011.035.011.035.013.035.013.034.014.034.014.034.016.033.016.033.017.033.018.032.019.031.019.031.02.031.021.03.022.03.022.029.023.028.024.028.024.028.025.026.026.027.026.025.027.025.027.025.028.023.029.023.029.023.03.021.03.021.03.02.031.02.032.018.032.018.032.017.033.017.033.015.034.015.034.014.034.013.035.012.035.012.036.01.036.01.036.009.037.008.037.007.037.006.038.005.038.005.038.003.039.003.04.001.049.001h14.064l.049-.001.04-.001.039-.003.038-.003.038-.005.038-.005.037-.006.037-.007.037-.008.036-.009.036-.01.036-.01.035-.012.035-.012.034-.013.034-.014.034-.015.033-.015.033-.017.032-.017.032-.018.032-.018.031-.02.03-.02.03-.021.03-.021.029-.023.029-.023.028-.023.027-.025.027-.025.026-.025.026-.027.025-.026.024-.028.024-.028.023-.028.022-.029.022-.03.021-.03.02-.031.019-.031.019-.031.018-.032.017-.033.016-.033.016-.033.014-.034.014-.034.013-.034.013-.035.011-.035.011-.035.009-.036.009-.037.008-.036.007-.037.007-.038.005-.037.004-.038.004-.039.002-.039.002-.039V12.352l-.002-.039-.002-.039-.004-.039-.004-.038-.005-.037-.007-.038-.007-.037-.008-.036-.009-.037-.009-.036-.011-.035-.011-.035-.013-.035-.013-.034-.014-.034-.014-.034-.016-.033-.016-.033-.017-.033-.018-.032-.019-.031-.019-.031-.02-.031-.021-.03-.022-.03-.022-.029-.023-.028-.024-.028-.024-.028-.025-.026-.026-.027-.026-.025-.027-.025-.027-.025-.028-.023-.029-.023-.029-.023-.03-.021-.03-.021-.03-.02-.031-.02-.032-.018-.032-.018-.032-.017-.033-.017-.033-.015-.034-.015-.034-.014-.034-.013-.035-.012-.035-.012-.036-.01-.036-.01-.036-.009-.037-.008-.037-.007-.037-.006-.038-.005-.038-.005-.038-.003-.039-.003-.04-.001-.049-.001H17.968z"></path> <path d="M17.248.447v1.365h-2.146v5.75h-1.601v-5.75h-2.146V.447h5.893z"></path> <path d="M18.275 0.447H19.877V7.562H18.275z"></path> <path d="M26.797.447v1.365h-2.146v5.75h-1.602v-5.75h-2.146V.447h5.894zM32.577 6.186v1.376h-4.753V.447h1.601v5.739h3.152zM33.604 7.562V.447h4.805v1.345h-3.203v1.396h2.844v1.314h-2.844v1.715h3.439v1.345h-5.041z"></path> </svg>, topTitleTagLogo: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M24.55 18.025a.463.463 0 100-.925.463.463 0 000 .925M25.78 17.135a.535.535 0 100-1.07.535.535 0 000 1.07M26.474 25.604h-2.952a.41.41 0 01-.337-.643l1.51-2.186a.41.41 0 01.679.008l1.442 2.185a.41.41 0 01-.342.636m1.797-.562l-2.099-3.467v-1.936h.051a.55.55 0 100-1.1h-2.446a.55.55 0 100 1.1h.051v1.936l-2.099 3.467a1.11 1.11 0 00.994 1.606h4.554a1.11 1.11 0 00.994-1.606"></path> <path d="M30.874 13.187l.064.002.063.004.063.006.063.007.062.009.061.01.061.012.061.013.06.014.059.017.059.017.058.019.058.02.057.022.056.023.055.024.055.026.054.027.053.028.053.029.052.031.051.032.05.033.049.034.048.035.048.036.046.038.046.039.045.039.043.041.043.042.042.042.041.044.039.045.039.046.038.046.036.048.035.048.034.049.033.05.032.051.031.052.029.053.028.053.027.054.026.055.024.055.023.056.022.057.02.058.019.058.017.059.016.059.015.06.013.06.012.061.01.062.009.062.007.063.006.063.004.063.002.064.001.064v11.62l-.001.064-.002.064-.004.063-.006.063-.007.063-.009.062-.01.061-.012.061-.013.061-.015.06-.016.059-.017.059-.019.058-.02.058-.022.056-.023.057-.024.055-.026.055-.027.054-.028.053-.029.053-.031.052-.032.05-.033.051-.034.049-.035.048-.036.048-.038.046-.039.046-.039.045-.041.043-.042.043-.043.042-.043.041-.045.039-.046.039-.046.037-.048.037-.048.035-.049.034-.05.033-.051.032-.052.031-.053.029-.053.028-.054.027-.055.026-.055.024-.056.023-.057.022-.058.02-.058.019-.059.017-.059.016-.06.015-.061.013-.061.012-.061.01-.062.009-.063.007-.063.006-.063.004-.064.002-.064.001H19.19l-.064-.001-.064-.002-.063-.004-.063-.006-.063-.007-.062-.009-.061-.01-.061-.012-.061-.013-.06-.015-.059-.016-.059-.017-.058-.019-.058-.02-.057-.022-.056-.023-.055-.024-.055-.026-.054-.027-.053-.028-.053-.029-.052-.031-.051-.032-.05-.033-.049-.034-.048-.035-.048-.037-.046-.037-.046-.039-.045-.039-.043-.041-.043-.042-.042-.043-.041-.043-.039-.045-.039-.046-.038-.046-.036-.048-.035-.048-.034-.049-.033-.051-.032-.05-.031-.052-.029-.053-.028-.053-.027-.054-.026-.055-.024-.055-.023-.057-.022-.056-.02-.058-.019-.058-.017-.059-.016-.059-.015-.06-.013-.061-.012-.061-.01-.061-.009-.062-.007-.063-.006-.063-.004-.063-.002-.064-.001-.064v-11.62l.001-.064.002-.064.004-.063.006-.063.007-.063.009-.062.01-.062.012-.061.013-.06.015-.06.016-.059.017-.059.019-.058.02-.058.022-.057.023-.056.024-.055.026-.055.027-.054.028-.053.029-.053.031-.052.032-.051.033-.05.034-.049.035-.048.036-.048.038-.046.039-.046.039-.045.041-.044.042-.042.043-.042.043-.041.045-.039.046-.039.046-.038.048-.036.048-.035.049-.034.05-.033.051-.032.052-.031.053-.029.053-.028.054-.027.055-.026.055-.024.056-.023.057-.022.058-.02.058-.019.059-.017.059-.017.06-.014.061-.013.061-.012.061-.01.062-.009.063-.007.063-.006.063-.004.064-.002.064-.001h11.62l.064.001zM19.2 14.686h-.036l-.026.001-.025.002-.026.002-.024.003-.025.004-.024.004-.024.004-.024.005-.024.006-.023.007-.023.006-.023.008-.023.008-.022.008-.022.009-.022.01-.022.01-.021.011-.021.011-.021.011-.02.013-.021.012-.02.013-.019.014-.02.014-.019.015-.018.015-.019.015-.018.016-.017.017-.018.016-.016.018-.017.017-.016.018-.015.018-.015.019-.015.019-.014.02-.014.019-.013.02-.012.02-.012.021-.012.021-.011.021-.011.021-.01.022-.01.022-.009.022-.008.022-.008.023-.008.023-.006.023-.007.023-.005.024-.006.023-.004.025-.004.024-.004.024-.003.025-.002.025-.001.026-.001.026-.001.035v11.601l.001.036.001.026.001.025.002.026.003.024.004.025.004.024.004.024.006.024.005.024.007.023.006.023.008.023.008.022.008.023.009.022.01.022.01.021.011.022.011.021.012.021.012.02.012.021.013.02.014.019.014.02.015.019.015.018.015.019.016.018.017.017.016.017.018.017.017.017.018.016.019.015.018.015.019.015.02.014.019.013.02.014.021.012.02.012.021.012.021.011.021.011.022.01.022.01.022.009.022.008.023.008.023.007.023.007.023.007.024.005.024.006.024.004.024.004.025.004.024.003.026.002.025.001.026.001.036.001h11.6l.036-.001.026-.001.025-.001.026-.002.024-.003.025-.004.024-.004.024-.004.024-.006.024-.005.023-.007.023-.007.023-.007.023-.008.022-.008.022-.009.022-.01.022-.01.021-.011.021-.011.021-.012.02-.012.021-.012.02-.014.019-.013.02-.014.019-.015.018-.015.019-.015.018-.016.017-.017.018-.017.016-.017.017-.017.016-.018.015-.019.015-.018.015-.019.014-.02.014-.019.013-.02.012-.021.012-.02.012-.021.011-.021.011-.022.01-.021.01-.022.009-.022.008-.023.008-.022.008-.023.006-.023.007-.023.005-.024.006-.024.004-.024.004-.024.004-.025.003-.024.002-.026.001-.025.001-.026.001-.036V15.685l-.001-.035-.001-.026-.001-.026-.002-.025-.003-.025-.004-.024-.004-.024-.004-.025-.006-.023-.005-.024-.007-.023-.006-.023-.008-.023-.008-.023-.008-.022-.009-.022-.01-.022-.01-.022-.011-.021-.011-.021-.012-.021-.012-.021-.012-.02-.013-.02-.014-.019-.014-.02-.015-.019-.015-.019-.015-.018-.016-.018-.017-.017-.016-.018-.018-.016-.017-.017-.018-.016-.019-.015-.018-.015-.019-.015-.02-.014-.019-.014-.02-.013-.021-.012-.02-.013-.021-.011-.021-.011-.021-.011-.022-.01-.022-.01-.022-.009-.022-.008-.023-.008-.023-.008-.023-.006-.023-.007-.024-.006-.024-.005-.024-.004-.024-.004-.025-.004-.024-.003-.026-.002-.025-.002-.026-.001H19.2z"></path> <path d="M18.613.297v1.125h-1.768v4.737h-1.32V1.422h-1.768V.297h4.856z"></path> <path d="M19.459 0.297H20.779V6.16H19.459z"></path> <path d="M26.48.297v1.125h-1.768v4.737h-1.319V1.422h-1.768V.297h4.855zM31.243 5.026v1.133h-3.917V.297h1.32v4.729h2.597zM32.089 6.159V.297h3.96v1.108h-2.64v1.15h2.343v1.083h-2.343v1.413h2.834v1.108h-4.154z"></path> <path d="M16.893 7.804v.726h-1.142v3.059h-.852V8.53h-1.141v-.726h3.135zM19.526 11.589a9.526 9.526 0 00-.134-.404 34.118 34.118 0 01-.145-.415h-1.475c-.047.138-.095.277-.144.415-.05.138-.094.273-.134.404h-.885c.142-.408.277-.784.404-1.13.128-.346.252-.672.374-.978.122-.306.242-.596.361-.871.118-.275.241-.544.368-.806h.814a28.966 28.966 0 01.729 1.677c.122.306.247.632.375.978.127.346.262.722.404 1.13h-.912zm-1.022-2.927a4.96 4.96 0 01-.082.224l-.125.327a45.295 45.295 0 00-.328.88h1.076l-.169-.47a19.504 19.504 0 00-.156-.41 34.949 34.949 0 01-.128-.327l-.088-.224zM22.639 8.459c-.397 0-.684.111-.86.331-.177.22-.265.522-.265.904 0 .186.022.354.065.505.044.151.11.281.197.391a.886.886 0 00.328.254c.131.06.284.09.459.09.094 0 .175-.002.243-.006.067-.003.126-.011.177-.021V9.59h.852v1.874a3.3 3.3 0 01-.491.128 4.29 4.29 0 01-.836.068c-.284 0-.542-.043-.773-.131a1.621 1.621 0 01-.593-.382 1.718 1.718 0 01-.379-.617 2.432 2.432 0 01-.134-.836c0-.317.049-.597.147-.841.099-.244.234-.451.405-.62.171-.17.372-.298.603-.385.231-.088.478-.131.74-.131a2.963 2.963 0 01.855.117 1.681 1.681 0 01.402.172l-.246.683a2.2 2.2 0 00-.402-.161 1.69 1.69 0 00-.494-.069zM27.156 10.857v.732h-2.529V7.804h.852v3.053h1.677z"></path> <path d="M27.702 7.804H28.554000000000002V11.589H27.702z"></path> <path d="M31.968 11.589a19.04 19.04 0 00-.792-1.283 13.173 13.173 0 00-.906-1.197v2.48h-.842V7.804h.694c.12.12.253.268.399.442.146.175.294.362.445.56.151.199.301.405.451.618.149.213.289.417.42.614V7.804h.847v3.785h-.716zM33.558 11.589V7.804h2.556v.716H34.41v.742h1.513v.7H34.41v.912h1.83v.715h-2.682z"></path> </svg>, topTitleLogoTag: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 50 30" > <path d="M24.55 12.52a.463.463 0 100-.925.463.463 0 000 .925M25.78 11.63a.535.535 0 100-1.07.535.535 0 000 1.07M26.474 20.099h-2.952a.41.41 0 01-.337-.643l1.51-2.185a.41.41 0 01.679.007l1.442 2.186a.41.41 0 01-.342.635m1.797-.562l-2.099-3.467v-1.936h.051a.55.55 0 100-1.1h-2.446a.55.55 0 000 1.1h.051v1.936l-2.099 3.467a1.11 1.11 0 00.994 1.606h4.554a1.11 1.11 0 00.994-1.606"></path> <path d="M30.874 7.682l.064.002.063.004.063.006.063.007.062.009.061.01.061.012.061.013.06.015.059.016.059.017.058.019.058.02.057.022.056.023.055.024.055.026.054.027.053.028.053.029.052.031.051.032.05.033.049.034.048.035.048.037.046.037.046.039.045.039.043.041.043.042.042.043.041.043.039.045.039.046.038.046.036.048.035.048.034.049.033.051.032.05.031.052.029.053.028.053.027.054.026.055.024.055.023.057.022.056.02.058.019.058.017.059.016.059.015.06.013.061.012.061.01.061.009.062.007.063.006.063.004.063.002.064.001.064v11.62l-.001.064-.002.064-.004.063-.006.063-.007.063-.009.062-.01.062-.012.061-.013.06-.015.06-.016.059-.017.059-.019.058-.02.058-.022.057-.023.056-.024.055-.026.055-.027.054-.028.053-.029.053-.031.052-.032.051-.033.05-.034.049-.035.048-.036.048-.038.046-.039.046-.039.045-.041.044-.042.042-.043.042-.043.041-.045.039-.046.039-.046.038-.048.036-.048.035-.049.034-.05.033-.051.032-.052.031-.053.029-.053.028-.054.027-.055.026-.055.024-.056.023-.057.022-.058.02-.058.019-.059.017-.059.017-.06.014-.061.013-.061.012-.061.01-.062.009-.063.007-.063.006-.063.004-.064.002-.064.001H19.19l-.064-.001-.064-.002-.063-.004-.063-.006-.063-.007-.062-.009-.061-.01-.061-.012-.061-.013-.06-.014-.059-.017-.059-.017-.058-.019-.058-.02-.057-.022-.056-.023-.055-.024-.055-.026-.054-.027-.053-.028-.053-.029-.052-.031-.051-.032-.05-.033-.049-.034-.048-.035-.048-.036-.046-.038-.046-.039-.045-.039-.043-.041-.043-.042-.042-.042-.041-.044-.039-.045-.039-.046-.038-.046-.036-.048-.035-.048-.034-.049-.033-.05-.032-.051-.031-.052-.029-.053-.028-.053-.027-.054-.026-.055-.024-.055-.023-.056-.022-.057-.02-.058-.019-.058-.017-.059-.016-.059-.015-.06-.013-.06-.012-.061-.01-.062-.009-.062-.007-.063-.006-.063-.004-.063-.002-.064-.001-.064v-11.62l.001-.064.002-.064.004-.063.006-.063.007-.063.009-.062.01-.061.012-.061.013-.061.015-.06.016-.059.017-.059.019-.058.02-.058.022-.056.023-.057.024-.055.026-.055.027-.054.028-.053.029-.053.031-.052.032-.05.033-.051.034-.049.035-.048.036-.048.038-.046.039-.046.039-.045.041-.043.042-.043.043-.042.043-.041.045-.039.046-.039.046-.037.048-.037.048-.035.049-.034.05-.033.051-.032.052-.031.053-.029.053-.028.054-.027.055-.026.055-.024.056-.023.057-.022.058-.02.058-.019.059-.017.059-.016.06-.015.061-.013.061-.012.061-.01.062-.009.063-.007.063-.006.063-.004.064-.002.064-.001h11.62l.064.001zM19.2 9.181l-.036.001-.026.001-.025.001-.026.003-.024.002-.025.004-.024.004-.024.004-.024.006-.024.005-.023.007-.023.007-.023.007-.023.008-.022.008-.022.009-.022.01-.022.01-.021.011-.021.011-.021.012-.02.012-.021.012-.02.014-.019.013-.02.014-.019.015-.018.015-.019.016-.018.015-.017.017-.018.017-.016.017-.017.017-.016.018-.015.019-.015.018-.015.019-.014.02-.013.019-.014.02-.012.021-.012.02-.012.021-.011.021-.011.022-.01.021-.01.022-.009.022-.008.023-.008.022-.008.023-.006.023-.007.023-.005.024-.006.024-.004.024-.004.024-.004.025-.003.024-.002.026-.001.025-.001.026-.001.036v11.601l.001.035.001.026.001.026.002.025.003.025.004.024.004.024.004.025.006.023.005.024.007.023.006.023.008.023.008.023.008.022.009.022.01.022.01.022.011.021.011.021.012.021.012.021.012.02.014.02.013.019.014.02.015.019.015.019.015.018.016.018.017.017.016.018.018.016.017.017.018.016.019.015.018.015.019.015.02.014.019.014.02.013.021.012.02.013.021.011.021.011.021.011.022.01.022.01.022.009.022.008.023.008.023.008.023.006.023.007.024.006.024.005.024.004.024.004.025.004.024.003.026.002.025.002.026.001H30.836l.026-.001.025-.002.026-.002.024-.003.025-.004.024-.004.024-.004.024-.005.024-.006.023-.007.023-.006.023-.008.023-.008.022-.008.022-.009.022-.01.022-.01.021-.011.021-.011.021-.011.02-.013.021-.012.02-.013.019-.014.02-.014.019-.015.018-.015.019-.015.018-.016.017-.017.018-.016.016-.018.017-.017.016-.018.015-.018.015-.019.015-.019.014-.02.013-.019.014-.02.012-.02.012-.021.012-.021.011-.021.011-.021.01-.022.01-.022.009-.022.008-.022.008-.023.008-.023.006-.023.007-.023.005-.024.006-.023.004-.025.004-.024.004-.024.003-.025.002-.025.001-.026.001-.026.001-.035V10.181l-.001-.036-.001-.026-.001-.025-.002-.026-.003-.024-.004-.025-.004-.024-.004-.024-.006-.024-.005-.024-.007-.023-.006-.023-.008-.023-.008-.022-.008-.023-.009-.022-.01-.022-.01-.021-.011-.022-.011-.021-.012-.021-.012-.02-.012-.021-.014-.02-.013-.019-.014-.02-.015-.019-.015-.018-.015-.019-.016-.018-.017-.017-.016-.017-.018-.017-.017-.017-.018-.015-.019-.016-.018-.015-.019-.015-.02-.014-.019-.013-.02-.014-.021-.012-.02-.012-.021-.012-.021-.011-.021-.011-.022-.01-.022-.01-.022-.009-.022-.008-.023-.008-.023-.007-.023-.007-.023-.007-.024-.005-.024-.006-.024-.004-.024-.004-.025-.004-.024-.002-.026-.003-.025-.001-.026-.001-.036-.001H19.2z"></path> <path d="M18.613.297v1.125h-1.768v4.737h-1.32V1.422h-1.768V.297h4.856z"></path> <path d="M19.459 0.297H20.779V6.16H19.459z"></path> <path d="M26.48.297v1.125h-1.768v4.737h-1.319V1.422h-1.768V.297h4.855zM31.243 5.026v1.133h-3.917V.297h1.32v4.729h2.597zM32.089 6.159V.297h3.96v1.108h-2.64v1.15h2.343v1.083h-2.343v1.413h2.834v1.108h-4.154z"></path> <path d="M16.893 25.935v.726h-1.142v3.059h-.852v-3.059h-1.141v-.726h3.135zM19.526 29.72a9.526 9.526 0 00-.134-.404c-.049-.139-.098-.277-.145-.416h-1.475a34.18 34.18 0 01-.144.416c-.05.138-.094.273-.134.404h-.885c.142-.408.277-.785.404-1.131a33.985 33.985 0 01.735-1.849c.118-.275.241-.543.368-.805h.814a28.892 28.892 0 01.729 1.676c.122.306.247.632.375.978.127.346.262.723.404 1.131h-.912zm-1.022-2.928a4.547 4.547 0 01-.082.224l-.125.328a44.432 44.432 0 00-.328.879h1.076l-.169-.47a19.3 19.3 0 00-.156-.409 26.237 26.237 0 01-.128-.328 28.526 28.526 0 00-.088-.224zM22.639 26.59c-.397 0-.684.11-.86.33-.177.221-.265.522-.265.904 0 .186.022.355.065.506.044.151.11.281.197.39a.886.886 0 00.328.254c.131.06.284.09.459.09.094 0 .175-.001.243-.005.067-.004.126-.011.177-.022v-1.316h.852v1.873c-.102.04-.266.083-.491.129a4.369 4.369 0 01-.836.068 2.18 2.18 0 01-.773-.131 1.623 1.623 0 01-.593-.383 1.71 1.71 0 01-.379-.617 2.428 2.428 0 01-.134-.836c0-.316.049-.597.147-.841.099-.244.234-.45.405-.62.171-.169.372-.297.603-.385.231-.087.478-.131.74-.131a2.957 2.957 0 01.855.118 1.69 1.69 0 01.402.172l-.246.682a2.353 2.353 0 00-.402-.161 1.725 1.725 0 00-.494-.068zM27.156 28.988v.732h-2.529v-3.785h.852v3.053h1.677z"></path> <path d="M27.702 25.935H28.554000000000002V29.72H27.702z"></path> <path d="M31.968 29.72a19.059 19.059 0 00-.792-1.284 13.158 13.158 0 00-.906-1.196v2.48h-.842v-3.785h.694c.12.12.253.267.399.442.146.175.294.361.445.56.151.198.301.404.451.617.149.213.289.418.42.615v-2.234h.847v3.785h-.716zM33.558 29.72v-3.785h2.556v.715H34.41v.743h1.513v.699H34.41v.912h1.83v.716h-2.682z"></path> </svg>, px: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <g fillRule="nonzero"> <path d="M2.896 6.603h1.419v.92h.027c.21-.394.504-.677.88-.848a2.926 2.926 0 011.223-.256c.534 0 1.001.094 1.399.283.399.188.73.447.993.775.263.329.46.712.591 1.15.132.438.197.907.197 1.407 0 .455-.059.898-.177 1.327a3.455 3.455 0 01-.539 1.137 2.699 2.699 0 01-.913.789c-.368.197-.802.295-1.302.295-.219 0-.438-.019-.657-.059a2.855 2.855 0 01-.631-.19 2.51 2.51 0 01-.558-.336 1.823 1.823 0 01-.427-.479h-.027v3.391H2.896V6.603zm5.231 3.404c0-.306-.039-.604-.118-.894a2.418 2.418 0 00-.355-.768 1.829 1.829 0 00-.592-.539 1.603 1.603 0 00-.814-.204c-.631 0-1.107.219-1.427.657-.319.438-.479 1.021-.479 1.748 0 .342.041.66.125.953.083.294.208.546.374.756.167.21.366.377.598.499.232.123.502.184.809.184.341 0 .63-.07.867-.21.237-.14.432-.322.585-.545a2.21 2.21 0 00.328-.763 3.86 3.86 0 00.099-.874zM12.714 9.823l-2.353-3.22h1.814l1.42 2.09 1.485-2.09h1.735l-2.313 3.141 2.602 3.654h-1.801l-1.721-2.51-1.67 2.51h-1.761l2.563-3.575z"></path> </g> </svg>, em: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <g fillRule="nonzero"> <path d="M6.248 9.402a2.401 2.401 0 00-.152-.683 1.704 1.704 0 00-.867-.967 1.56 1.56 0 00-.69-.151c-.263 0-.502.046-.716.138a1.633 1.633 0 00-.552.381 1.886 1.886 0 00-.368.572 2.002 2.002 0 00-.152.71h3.497zm-3.497.986c0 .263.038.517.112.762.075.245.186.46.335.644.149.184.338.331.565.44.228.11.5.165.815.165.438 0 .791-.095 1.058-.283.268-.188.467-.471.598-.848h1.42a2.824 2.824 0 01-1.104 1.716 2.99 2.99 0 01-.914.446c-.337.101-.69.152-1.058.152-.534 0-1.007-.088-1.419-.263a2.95 2.95 0 01-1.045-.736 3.12 3.12 0 01-.644-1.131 4.577 4.577 0 01-.217-1.445c0-.482.077-.94.23-1.374.153-.434.372-.815.657-1.143a3.13 3.13 0 011.032-.782c.403-.193.859-.29 1.367-.29a3.04 3.04 0 011.439.336c.425.223.778.519 1.058.887.281.368.484.791.611 1.268.127.478.16.971.099 1.479H2.751zM8.889 6.602h1.42v.947h.039c.114-.167.237-.32.368-.46a2.022 2.022 0 01.999-.585c.211-.057.451-.086.723-.086.412 0 .795.092 1.15.276.355.184.607.469.756.855a3.01 3.01 0 01.881-.828c.333-.202.749-.303 1.248-.303.719 0 1.277.176 1.676.526.399.351.598.938.598 1.761v4.693h-1.498v-3.97c0-.271-.009-.519-.027-.742a1.512 1.512 0 00-.151-.579.856.856 0 00-.374-.374c-.167-.088-.395-.132-.684-.132-.508 0-.876.158-1.104.473-.228.316-.342.763-.342 1.341v3.983h-1.498V9.034c0-.473-.085-.83-.256-1.071-.171-.241-.484-.362-.94-.362-.193 0-.379.04-.559.119a1.385 1.385 0 00-.473.341 1.703 1.703 0 00-.328.552 2.084 2.084 0 00-.125.75v4.035H8.889V6.602z"></path> </g> </svg>, percent: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path fillRule="nonzero" d="M5.689 7.831c0 .246.017.476.053.69.035.215.092.401.17.559.079.158.182.283.309.375a.775.775 0 00.467.138.803.803 0 00.473-.138.978.978 0 00.315-.375 2.11 2.11 0 00.178-.559c.039-.214.059-.444.059-.69 0-.219-.015-.433-.046-.644a1.995 1.995 0 00-.164-.565 1.076 1.076 0 00-.316-.401.794.794 0 00-.499-.151.797.797 0 00-.5.151 1.02 1.02 0 00-.308.401 1.992 1.992 0 00-.152.565 5.253 5.253 0 00-.039.644zm1.012 2.616c-.394 0-.732-.07-1.012-.21a1.899 1.899 0 01-.684-.566 2.316 2.316 0 01-.381-.828 4.148 4.148 0 01-.118-1.012c0-.35.042-.685.125-1.005.083-.32.215-.598.394-.835.18-.236.408-.425.684-.565.276-.14.606-.21.992-.21s.716.07.992.21c.276.14.504.329.684.565.179.237.311.515.394.835.083.32.125.655.125 1.005 0 .36-.039.697-.118 1.012a2.3 2.3 0 01-.382.828 1.887 1.887 0 01-.683.566c-.28.14-.618.21-1.012.21zm5.586 1.722c0 .245.017.475.053.69.035.214.092.401.17.558.079.158.182.283.309.375a.775.775 0 00.467.138.803.803 0 00.473-.138.978.978 0 00.315-.375c.079-.157.138-.344.178-.558.039-.215.059-.445.059-.69 0-.219-.015-.434-.046-.644a1.992 1.992 0 00-.164-.566 1.065 1.065 0 00-.316-.4.795.795 0 00-.499-.152.798.798 0 00-.5.152 1.01 1.01 0 00-.308.4 1.99 1.99 0 00-.152.566c-.026.21-.039.425-.039.644zm1.012 2.615c-.394 0-.732-.07-1.012-.21a1.885 1.885 0 01-.683-.565 2.317 2.317 0 01-.382-.828 4.16 4.16 0 01-.118-1.012c0-.351.042-.686.125-1.006.083-.32.215-.598.394-.834.18-.237.408-.425.684-.566.276-.14.606-.21.992-.21s.716.07.992.21c.276.141.504.329.684.566.179.236.311.514.394.834.083.32.125.655.125 1.006 0 .359-.039.696-.118 1.012a2.332 2.332 0 01-.381.828 1.897 1.897 0 01-.684.565c-.28.14-.618.21-1.012.21zm-1.341-9.7h.999l-5.086 9.832H6.846l5.112-9.832z" ></path> </svg>, rem: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <g fillRule="nonzero"> <path d="M.731 7.079H1.94v1.13h.023c.038-.158.111-.313.22-.463.11-.151.241-.289.396-.413.154-.124.326-.224.514-.3.189-.075.381-.113.577-.113.151 0 .254.004.311.012l.175.022v1.244a5.951 5.951 0 00-.277-.04 2.393 2.393 0 00-.277-.017 1.424 1.424 0 00-1.119.514c-.143.17-.256.379-.339.628a2.712 2.712 0 00-.125.859v2.781H.731V7.079zM8.519 9.486a2.057 2.057 0 00-.13-.587 1.534 1.534 0 00-.294-.492 1.433 1.433 0 00-.452-.339 1.327 1.327 0 00-.593-.13c-.226 0-.432.039-.616.118-.185.08-.343.189-.475.328-.132.14-.238.304-.317.492a1.727 1.727 0 00-.13.61h3.007zm-3.007.848c0 .226.032.445.096.656.064.211.161.395.289.554.128.158.29.284.486.378.196.095.429.142.701.142.376 0 .68-.081.91-.243.229-.162.401-.405.514-.73h1.221a2.422 2.422 0 01-.95 1.476 2.597 2.597 0 01-.785.384c-.291.087-.594.13-.91.13-.46 0-.867-.075-1.221-.226a2.535 2.535 0 01-.899-.633 2.69 2.69 0 01-.554-.972 3.964 3.964 0 01-.186-1.244c0-.414.066-.808.198-1.181.131-.373.32-.701.565-.983.245-.283.54-.507.887-.673A2.692 2.692 0 017.05 6.92c.459 0 .872.096 1.237.289.366.192.669.446.91.763.242.316.417.68.526 1.09.109.411.138.835.085 1.272H5.512zM10.791 7.079h1.221v.813h.034c.098-.143.203-.275.317-.395a1.722 1.722 0 01.859-.503c.18-.049.388-.074.621-.074.355 0 .684.079.989.238.306.158.522.403.65.734.219-.301.471-.538.758-.712.286-.173.644-.26 1.074-.26.618 0 1.098.151 1.441.452.343.302.514.807.514 1.515v4.036h-1.288V9.509c0-.234-.008-.447-.023-.639a1.292 1.292 0 00-.13-.497.737.737 0 00-.322-.322c-.143-.076-.339-.113-.588-.113-.437 0-.754.135-.95.407-.195.271-.293.655-.293 1.153v3.425h-1.289V9.17c0-.407-.074-.714-.221-.921-.146-.208-.416-.311-.808-.311a1.192 1.192 0 00-.887.395 1.48 1.48 0 00-.283.475 1.815 1.815 0 00-.107.644v3.471h-1.289V7.079z"></path> </g> </svg>, vh: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <g fillRule="nonzero"> <path d="M3.271 6.603H4.9l1.722 5.218h.026l1.656-5.218h1.551l-2.431 6.795H5.742L3.271 6.603zM10.762 4.014h1.499v3.483h.026c.184-.307.458-.563.821-.769a2.425 2.425 0 011.216-.309c.745 0 1.332.193 1.761.578.43.386.644.964.644 1.735v4.666h-1.498V9.127c-.017-.535-.131-.923-.342-1.164-.21-.241-.538-.361-.985-.361-.254 0-.482.046-.684.138a1.484 1.484 0 00-.512.381c-.141.162-.25.353-.329.572a2.035 2.035 0 00-.118.696v4.009h-1.499V4.014z"></path> </g> </svg>, vw: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <g fillRule="nonzero"> <path d="M1.621 6.603h1.63l1.722 5.218h.026l1.656-5.218h1.551l-2.432 6.795H4.092L1.621 6.603zM8.495 6.603h1.59l1.328 5.073h.026l1.275-5.073h1.512l1.222 5.073h.026l1.38-5.073h1.525l-2.129 6.795h-1.538L13.45 8.351h-.026l-1.249 5.047h-1.577L8.495 6.603z"></path> </g> </svg>, none: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path d="M17.401 4.69L15.31 2.599 2.599 15.31l2.091 2.091L17.401 4.69z"></path> <path d="M4.69 2.599L2.599 4.69 15.31 17.401l2.091-2.091L4.69 2.599z"></path> </svg>, solid: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path d="M18.988 11.478V8.522H1.012v2.956h17.976z"></path> </svg>, dashed: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path d="M12.512 11.478V8.522H7.488v2.956h5.024zM14.004 8.522v2.956h4.984V8.522h-4.984zM1.012 8.522v2.956H6.05V8.522H1.012z"></path> </svg>, dotted: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <circle cx="2.503" cy="10" r="1.487"></circle> <circle cx="17.486" cy="10" r="1.487"></circle> <circle cx="12.447" cy="10" r="1.487"></circle> <circle cx="7.455" cy="10" r="1.487"></circle> </svg>, double: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path d="M1.02 6.561v2.957h17.968V6.561H1.02zM1.012 10.586v2.956H18.98v-2.956H1.012z"></path> </svg>, lowercase: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <g fillRule="nonzero"> <path d="M9.1 13.181c0 .184.024.315.072.394.048.079.142.118.283.118h.157a.953.953 0 00.211-.026v1.038a3.222 3.222 0 01-.204.06 3.035 3.035 0 01-.743.111c-.306 0-.561-.061-.762-.184-.202-.122-.333-.337-.394-.644-.298.289-.664.5-1.098.631a4.303 4.303 0 01-1.255.197c-.307 0-.6-.041-.881-.125a2.302 2.302 0 01-.742-.368 1.764 1.764 0 01-.513-.617 1.904 1.904 0 01-.19-.874c0-.421.076-.763.23-1.026.153-.262.354-.468.604-.617.25-.149.53-.257.841-.322.311-.066.625-.116.94-.152.272-.052.53-.089.776-.111a3.6 3.6 0 00.65-.112c.189-.053.337-.134.447-.243.11-.11.164-.274.164-.493a.765.765 0 00-.138-.473.931.931 0 00-.341-.283 1.5 1.5 0 00-.454-.131 3.61 3.61 0 00-.473-.033c-.421 0-.767.088-1.038.263-.272.175-.425.447-.46.815H3.29c.027-.438.132-.802.316-1.091.184-.289.418-.522.703-.697.285-.175.607-.298.966-.368s.727-.105 1.104-.105c.333 0 .662.035.986.105.324.07.615.184.874.342.258.158.466.361.624.611.158.25.237.554.237.914v3.496zm-1.499-1.893a1.822 1.822 0 01-.841.27 10.7 10.7 0 00-.999.138 3.18 3.18 0 00-.46.111c-.149.048-.28.114-.394.197a.874.874 0 00-.27.329c-.065.136-.098.3-.098.493 0 .166.048.307.144.42.097.114.213.204.349.27.136.066.285.112.447.138.162.026.309.039.44.039.166 0 .346-.022.539-.065.193-.044.374-.119.545-.224.171-.105.314-.239.427-.401.114-.162.171-.361.171-.598v-1.117zM10.756 5.308h1.498v3.47h.026c.106-.167.233-.316.382-.447.149-.132.313-.243.492-.335a2.62 2.62 0 01.566-.211c.197-.048.392-.072.584-.072.535 0 1.002.094 1.4.283.399.188.73.446.993.775.262.329.46.712.591 1.15.132.438.197.907.197 1.406 0 .456-.059.899-.177 1.328a3.475 3.475 0 01-.539 1.137 2.713 2.713 0 01-.914.789c-.368.197-.801.295-1.301.295-.228 0-.458-.015-.69-.046a2.614 2.614 0 01-.664-.177c-.21-.088-.4-.202-.571-.342a1.645 1.645 0 01-.427-.552h-.027v.933h-1.419V5.308zm5.231 5.993c0-.306-.04-.604-.118-.894a2.44 2.44 0 00-.355-.768 1.818 1.818 0 00-.592-.539 1.604 1.604 0 00-.815-.204c-.631 0-1.106.219-1.426.657-.32.438-.479 1.021-.479 1.748 0 .342.041.66.124.953.084.294.209.546.375.756.166.21.366.377.598.499.232.123.502.184.808.184.342 0 .631-.07.868-.21.236-.14.431-.322.585-.545a2.21 2.21 0 00.328-.763 3.86 3.86 0 00.099-.874z"></path> </g> </svg>, uppercase: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <g fillRule="nonzero"> <path d="M4.789 5.308h1.748l3.614 9.384H8.39l-.881-2.484H3.763l-.88 2.484H1.187l3.602-9.384zm-.579 5.651h2.866L5.669 6.924H5.63l-1.42 4.035zM12.688 9.238h2.681c.394 0 .723-.112.986-.335.263-.224.394-.546.394-.967 0-.473-.118-.806-.355-.998-.236-.193-.578-.29-1.025-.29h-2.681v2.59zm-1.643-3.93h4.561c.841 0 1.516.193 2.024.578.508.386.762.968.762 1.748 0 .473-.116.879-.348 1.216-.232.337-.563.598-.993.782v.026c.579.123 1.017.397 1.315.822.298.425.447.957.447 1.597 0 .368-.066.712-.197 1.031a2.11 2.11 0 01-.618.828c-.281.233-.64.417-1.078.553-.438.135-.959.203-1.564.203h-4.311V5.308zm1.643 8.044h2.905c.499 0 .887-.13 1.163-.388.276-.259.414-.624.414-1.098 0-.464-.138-.821-.414-1.071-.276-.25-.664-.374-1.163-.374h-2.905v2.931z"></path> </g> </svg>, capitalize: <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <g fillRule="nonzero"> <path d="M5.393 5.216h1.748l3.615 9.384H8.995l-.881-2.484H4.368L3.487 14.6H1.792l3.601-9.384zm-.578 5.651H7.68L6.274 6.832h-.04l-1.419 4.035zM11.479 5.216h1.498v3.47h.026c.105-.167.232-.316.381-.447a2.38 2.38 0 01.493-.335 2.62 2.62 0 01.566-.211c.197-.048.392-.072.584-.072.535 0 1.001.094 1.4.283.399.188.73.446.993.775.262.329.46.712.591 1.15.131.438.197.907.197 1.406 0 .456-.059.899-.177 1.328a3.475 3.475 0 01-.539 1.137 2.713 2.713 0 01-.914.789c-.368.197-.801.295-1.301.295-.228 0-.458-.015-.69-.046a2.614 2.614 0 01-.664-.177 2.278 2.278 0 01-.571-.342 1.66 1.66 0 01-.428-.552h-.026v.933h-1.419V5.216zm5.231 5.993c0-.306-.04-.604-.119-.894a2.416 2.416 0 00-.354-.768 1.818 1.818 0 00-.592-.539 1.604 1.604 0 00-.815-.204c-.631 0-1.106.219-1.426.657-.32.438-.48 1.021-.48 1.748 0 .342.042.66.125.953.084.294.208.546.375.756.166.21.366.377.598.499.232.123.502.184.808.184.342 0 .631-.07.868-.21.236-.14.431-.322.585-.545.153-.224.262-.478.328-.763a3.86 3.86 0 00.099-.874z"></path> </g> </svg>, menu: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M3 13h18a1 1 0 000-2H3a1 1 0 000 2zm0-6h18a1 1 0 000-2H3a1 1 0 000 2zm0 12h18a1 1 0 000-2H3a1 1 0 000 2z"></path> </svg>, menu2: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M24 21v2c0 .547-.453 1-1 1H1c-.547 0-1-.453-1-1v-2c0-.547.453-1 1-1h22c.547 0 1 .453 1 1zm0-8v2c0 .547-.453 1-1 1H1c-.547 0-1-.453-1-1v-2c0-.547.453-1 1-1h22c.547 0 1 .453 1 1zm0-8v2c0 .547-.453 1-1 1H1c-.547 0-1-.453-1-1V5c0-.547.453-1 1-1h22c.547 0 1 .453 1 1z"></path> </svg>, menu3: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M6 3a2 2 0 113.999-.001A2 2 0 016 3zm0 5a2 2 0 113.999-.001A2 2 0 016 8zm0 5a2 2 0 113.999-.001A2 2 0 016 13z"></path> </svg>, unlocked: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M5 12h14c.276 0 .525.111.707.293S20 12.724 20 13v7c0 .276-.111.525-.293.707S19.276 21 19 21H5c-.276 0-.525-.111-.707-.293S4 20.276 4 20v-7c0-.276.111-.525.293-.707S4.724 12 5 12zm3-2V7a3.988 3.988 0 011.169-2.831 3.983 3.983 0 012.821-1.174 3.985 3.985 0 012.652 1 4.052 4.052 0 011.28 2.209 1 1 0 101.958-.408 6.051 6.051 0 00-1.912-3.299A5.963 5.963 0 0011.995.995c-1.657.002-3.157.676-4.241 1.762S5.998 5.344 6 7v3H5a2.997 2.997 0 00-3 3v7a2.997 2.997 0 003 3h14a2.997 2.997 0 003-3v-7a2.997 2.997 0 00-3-3z"></path> </svg>, locked: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M5 12h14c.276 0 .525.111.707.293S20 12.724 20 13v7c0 .276-.111.525-.293.707S19.276 21 19 21H5c-.276 0-.525-.111-.707-.293S4 20.276 4 20v-7c0-.276.111-.525.293-.707S4.724 12 5 12zm13-2V7c0-1.657-.673-3.158-1.757-4.243S13.657 1 12 1s-3.158.673-4.243 1.757S6 5.343 6 7v3H5a2.997 2.997 0 00-3 3v7a2.997 2.997 0 003 3h14a2.997 2.997 0 003-3v-7a2.997 2.997 0 00-3-3zM8 10V7c0-1.105.447-2.103 1.172-2.828S10.895 3 12 3s2.103.447 2.828 1.172S16 5.895 16 7v3z"></path> </svg>, fullwidth: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#fff" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <path fill="#cdcdcd" d="M1.19 1.153H48.809999999999995V12.969000000000001H1.19z" ></path> <path fill="#ccc" fillRule="nonzero" d="M37.149 34.831H2.714c-.411 0-.749.433-.749.959s.338.959.749.959h34.435c.411 0 .749-.433.749-.959s-.338-.959-.749-.959zM47.038 30.979H2.924a.964.964 0 00-.959.959c0 .527.433.959.959.959h44.114a.963.963 0 00.959-.959.964.964 0 00-.959-.959z" ></path> <path fill="#cdcdcd" fillRule="nonzero" d="M47.038 27.128H2.924a.964.964 0 00-.959.959c0 .526.433.959.959.959h44.114a.964.964 0 00.959-.959.964.964 0 00-.959-.959zM47.038 23.277H2.924a.964.964 0 00-.959.959c0 .526.433.959.959.959h44.114a.964.964 0 00.959-.959.964.964 0 00-.959-.959z" ></path> <path fill="#ccc" fillRule="nonzero" d="M47.038 19.426H2.924a.964.964 0 00-.959.959c0 .526.433.959.959.959h44.114a.964.964 0 00.959-.959.964.964 0 00-.959-.959zM47.038 15.575H2.924a.964.964 0 00-.959.959c0 .526.433.959.959.959h44.114a.964.964 0 00.959-.959.964.964 0 00-.959-.959z" ></path> <path fill="none" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> </svg>, normal: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#fff" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <path fill="#cdcdcd" d="M7.49 3.877H42.521V13.879000000000001H7.49z" ></path> <path fill="#ccc" fillRule="nonzero" d="M34.237 34.498H8.049c-.313 0-.57.41-.57.908 0 .497.257.907.57.907h26.188c.313 0 .57-.41.57-.907 0-.498-.257-.908-.57-.908zM41.776 30.855H8.226c-.4 0-.729.409-.729.907 0 .498.329.907.729.907h33.55c.399 0 .729-.409.729-.907 0-.498-.33-.907-.729-.907z" ></path> <path fill="#cdcdcd" fillRule="nonzero" d="M41.776 27.211H8.226c-.4 0-.729.41-.729.908 0 .497.329.907.729.907h33.55c.399 0 .729-.41.729-.907 0-.498-.33-.908-.729-.908zM41.776 23.568H8.226c-.4 0-.729.41-.729.907 0 .498.329.908.729.908h33.55c.399 0 .729-.41.729-.908 0-.497-.33-.907-.729-.907z" ></path> <path fill="#ccc" fillRule="nonzero" d="M41.776 19.925H8.226c-.4 0-.729.409-.729.907 0 .498.329.907.729.907h33.55c.399 0 .729-.409.729-.907 0-.498-.33-.907-.729-.907zM41.776 16.281H8.226c-.4 0-.729.41-.729.907 0 .498.329.908.729.908h33.55c.399 0 .729-.41.729-.908 0-.497-.33-.907-.729-.907z" ></path> </svg>, narrow:<svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#fff" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <path fill="#cdcdcd" d="M12.511 3.877H37.497V13.879000000000001H12.511z" ></path> <path fill="#ccc" fillRule="nonzero" d="M31.588 34.498H12.91c-.223 0-.407.41-.407.908 0 .497.184.907.407.907h18.678c.224 0 .407-.41.407-.907 0-.498-.183-.908-.407-.908zM36.965 30.855H13.036c-.285 0-.52.409-.52.907 0 .498.235.907.52.907h23.929c.285 0 .52-.409.52-.907 0-.498-.235-.907-.52-.907z" ></path> <path fill="#cdcdcd" fillRule="nonzero" d="M36.965 27.211H13.036c-.285 0-.52.41-.52.908 0 .497.235.907.52.907h23.929c.285 0 .52-.41.52-.907 0-.498-.235-.908-.52-.908zM36.965 23.568H13.036c-.285 0-.52.41-.52.907 0 .498.235.908.52.908h23.929c.285 0 .52-.41.52-.908 0-.497-.235-.907-.52-.907z" ></path> <path fill="#ccc" fillRule="nonzero" d="M36.965 19.925H13.036c-.285 0-.52.409-.52.907 0 .498.235.907.52.907h23.929c.285 0 .52-.409.52-.907 0-.498-.235-.907-.52-.907zM36.965 16.281H13.036c-.285 0-.52.41-.52.907 0 .498.235.908.52.908h23.929c.285 0 .52-.41.52-.908 0-.497-.235-.907-.52-.907z" ></path> </svg>, rightsidebar: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#fff" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <path fill="#cdcdcd" d="M7.516 3.855H30.216V13.857000000000001H7.516z" ></path> <g fillRule="nonzero"> <path fill="#ccc" d="M7.874 34.421h16.987c.202 0 .369.409.369.907 0 .498-.167.907-.369.907H7.874c-.202 0-.369-.409-.369-.907 0-.498.167-.907.369-.907zM7.98 30.777h21.76c.26 0 .473.41.473.908 0 .497-.213.907-.473.907H7.98c-.26 0-.473-.41-.473-.907 0-.498.213-.908.473-.908z" ></path> <path fill="#cdcdcd" d="M7.98 27.134h21.76c.26 0 .473.41.473.907 0 .498-.213.907-.473.907H7.98c-.26 0-.473-.409-.473-.907 0-.497.213-.907.473-.907zM7.98 23.491h21.76c.26 0 .473.409.473.907 0 .498-.213.907-.473.907H7.98c-.26 0-.473-.409-.473-.907 0-.498.213-.907.473-.907z" ></path> <path fill="#ccc" d="M7.98 19.847h21.76c.26 0 .473.41.473.907 0 .498-.213.908-.473.908H7.98c-.26 0-.473-.41-.473-.908 0-.497.213-.907.473-.907zM7.98 16.204h21.76c.26 0 .473.409.473.907 0 .498-.213.907-.473.907H7.98c-.26 0-.473-.409-.473-.907 0-.498.213-.907.473-.907z" ></path> </g> <path fill="#e5e5e5" d="M32.602 3.892H42.492999999999995V36.143H32.602z" ></path> </svg>, leftsidebar:<svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#fff" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <path fill="#cdcdcd" d="M19.784 3.855H42.483999999999995V13.857000000000001H19.784z" ></path> <g fillRule="nonzero"> <path fill="#ccc" d="M37.131 34.421H20.145c-.203 0-.37.409-.37.907 0 .498.167.907.37.907h16.986c.202 0 .369-.409.369-.907 0-.498-.167-.907-.369-.907zM42.02 30.777H20.26c-.26 0-.473.41-.473.908 0 .497.213.907.473.907h21.76c.26 0 .473-.41.473-.907 0-.498-.213-.908-.473-.908z" ></path> <path fill="#cdcdcd" d="M42.02 27.134H20.26c-.26 0-.473.41-.473.907 0 .498.213.907.473.907h21.76c.26 0 .473-.409.473-.907 0-.497-.213-.907-.473-.907zM42.02 23.491H20.26c-.26 0-.473.409-.473.907 0 .498.213.907.473.907h21.76c.26 0 .473-.409.473-.907 0-.498-.213-.907-.473-.907z" ></path> <path fill="#ccc" d="M42.02 19.847H20.26c-.26 0-.473.41-.473.907 0 .498.213.908.473.908h21.76c.26 0 .473-.41.473-.908 0-.497-.213-.907-.473-.907zM42.02 16.204H20.26c-.26 0-.473.409-.473.907 0 .498.213.907.473.907h21.76c.26 0 .473-.409.473-.907 0-.498-.213-.907-.473-.907z" ></path> </g> <path fill="#e5e5e5" d="M7.507 3.892H17.398V36.143H7.507z"></path> </svg>, abovecontent: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#fff" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <path fill="#cdcdcd" d="M1.19 1.153H48.809999999999995V12.969000000000001H1.19z" ></path> <g fillRule="nonzero"> <path fill="#ccc" d="M34.26 34.831H8.054c-.312 0-.569.433-.569.959s.257.959.569.959H34.26c.313 0 .57-.433.57-.959s-.257-.959-.57-.959zM41.785 30.979H8.215c-.401 0-.73.433-.73.959 0 .527.329.959.73.959h33.57c.401 0 .73-.432.73-.959 0-.526-.329-.959-.73-.959z" ></path> <path fill="#cdcdcd" d="M41.785 27.128H8.215c-.401 0-.73.433-.73.959s.329.959.73.959h33.57c.401 0 .73-.433.73-.959s-.329-.959-.73-.959zM41.785 23.277H8.215c-.401 0-.73.433-.73.959s.329.959.73.959h33.57c.401 0 .73-.433.73-.959s-.329-.959-.73-.959z" ></path> <path fill="#ccc" d="M41.785 19.426H8.215c-.401 0-.73.433-.73.959s.329.959.73.959h33.57c.401 0 .73-.433.73-.959s-.329-.959-.73-.959zM41.785 15.575H8.215c-.401 0-.73.433-.73.959s.329.959.73.959h33.57c.401 0 .73-.433.73-.959s-.329-.959-.73-.959z" ></path> </g> <path fill="#fff" fillRule="nonzero" d="M38.103 6.869H11.897c-.312 0-.569.433-.569.959 0 .527.257.959.569.959h26.206c.312 0 .569-.432.569-.959 0-.526-.257-.959-.569-.959zM31.143 4.758H18.857c-.147 0-.267.269-.267.595 0 .327.12.595.267.595h12.286c.147 0 .267-.268.267-.595 0-.326-.12-.595-.267-.595z" ></path> <path fill="none" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> </svg>, incontent: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#fff" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <g fillRule="nonzero"> <path fill="#ccc" d="M34.26 32.335H8.054c-.312 0-.569.433-.569.959s.257.959.569.959H34.26c.313 0 .57-.433.57-.959s-.257-.959-.57-.959zM41.785 28.484H8.215c-.401 0-.73.433-.73.959s.329.959.73.959h33.57c.401 0 .73-.433.73-.959s-.329-.959-.73-.959z" ></path> <path fill="#cdcdcd" d="M41.785 24.632H8.215c-.401 0-.73.433-.73.959 0 .527.329.959.73.959h33.57c.401 0 .73-.432.73-.959 0-.526-.329-.959-.73-.959zM41.785 20.781H8.215c-.401 0-.73.433-.73.959s.329.959.73.959h33.57c.401 0 .73-.433.73-.959s-.329-.959-.73-.959z" ></path> <path fill="#ccc" d="M41.785 16.93H8.215c-.401 0-.73.433-.73.959s.329.959.73.959h33.57c.401 0 .73-.433.73-.959s-.329-.959-.73-.959zM41.785 13.079H8.215c-.401 0-.73.433-.73.959s.329.959.73.959h33.57c.401 0 .73-.433.73-.959s-.329-.959-.73-.959z" ></path> <path fill="#9a9a9a" d="M34.26 7.888H8.054c-.312 0-.569.433-.569.959s.257.959.569.959H34.26c.313 0 .57-.433.57-.959s-.257-.959-.57-.959zM19.303 5.747H7.736c-.138 0-.251.265-.251.586 0 .321.113.586.251.586h11.567c.138 0 .252-.265.252-.586 0-.321-.114-.586-.252-.586z" ></path> </g> <path fill="none" stroke="#9a9a9a" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> </svg>, search: <svg xmlns="http://www.w3.org/2000/svg" width="26" height="28" viewBox="0 0 26 28" > <path d="M18 13c0-3.859-3.141-7-7-7s-7 3.141-7 7 3.141 7 7 7 7-3.141 7-7zm8 13c0 1.094-.906 2-2 2a1.96 1.96 0 01-1.406-.594l-5.359-5.344a10.971 10.971 0 01-6.234 1.937c-6.078 0-11-4.922-11-11s4.922-11 11-11 11 4.922 11 11c0 2.219-.672 4.406-1.937 6.234l5.359 5.359c.359.359.578.875.578 1.406z"></path> </svg>, search2: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M16.041 15.856a.995.995 0 00-.186.186A6.97 6.97 0 0111 18c-1.933 0-3.682-.782-4.95-2.05S4 12.933 4 11s.782-3.682 2.05-4.95S9.067 4 11 4s3.682.782 4.95 2.05S18 9.067 18 11a6.971 6.971 0 01-1.959 4.856zm5.666 4.437l-3.675-3.675A8.967 8.967 0 0020 11c0-2.485-1.008-4.736-2.636-6.364S13.485 2 11 2 6.264 3.008 4.636 4.636 2 8.515 2 11s1.008 4.736 2.636 6.364S8.515 20 11 20a8.967 8.967 0 005.618-1.968l3.675 3.675a.999.999 0 101.414-1.414z"></path> </svg>, dot: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <circle cx="10" cy="10" r="4.942"></circle> </svg>, vline: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path fillRule="nonzero" d="M9.022 1.068H10.977V18.931H9.022z"></path> </svg>, slash: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path fillRule="nonzero" d="M6.115 18.935l5.804-17.87h1.966l-5.79 17.87h-1.98z" ></path> </svg>, dash: <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path fillRule="nonzero" d="M3.851 8.065H16.148V11.934H3.851z"></path> </svg>, drag: <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" > <path d="M13,8c0.6,0,1-0.4,1-1s-0.4-1-1-1s-1,0.4-1,1S12.4,8,13,8z M5,6C4.4,6,4,6.4,4,7s0.4,1,1,1s1-0.4,1-1S5.6,6,5,6z M5,10 c-0.6,0-1,0.4-1,1s0.4,1,1,1s1-0.4,1-1S5.6,10,5,10z M13,10c-0.6,0-1,0.4-1,1s0.4,1,1,1s1-0.4,1-1S13.6,10,13,10z M9,6 C8.4,6,8,6.4,8,7s0.4,1,1,1s1-0.4,1-1S9.6,6,9,6z M9,10c-0.6,0-1,0.4-1,1s0.4,1,1,1s1-0.4,1-1S9.6,10,9,10z" /> </svg> }; Icons.row = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="60.000" height="30.000" fill="#d5dadf" /> </svg>; Icons.collapserow = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="60.000" height="14.000" fill="#d5dadf" /> <rect x="0.000" y="16.000" width="60.000" height="14.000" fill="#d5dadf" /> </svg>; Icons.collapserowthree = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="60.000" height="9.000" fill="#d5dadf" /> <rect x="0.000" y="10.500" width="60.000" height="9.000" fill="#d5dadf" /> <rect x="0.000" y="21.000" width="60.000" height="9.000" fill="#d5dadf" /> </svg>; Icons.collapserowfour = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="60.000" height="6.000" fill="#d5dadf" /> <rect x="0.000" y="8.000" width="60.000" height="6.000" fill="#d5dadf" /> <rect x="0.000" y="16.000" width="60.000" height="6.000" fill="#d5dadf" /> <rect x="0.000" y="24.000" width="60.000" height="6.000" fill="#d5dadf" /> </svg>; Icons.collapserowfive = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="60.000" height="5.000" fill="#d5dadf" /> <rect x="0.000" y="6.000" width="60.000" height="5.000" fill="#d5dadf" /> <rect x="0.000" y="12.000" width="60.000" height="5.000" fill="#d5dadf" /> <rect x="0.000" y="18.000" width="60.000" height="5.000" fill="#d5dadf" /> <rect x="0.000" y="24.000" width="60.000" height="5.000" fill="#d5dadf" /> </svg>; Icons.collapserowsix = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="60.000" height="4.000" fill="#d5dadf" /> <rect x="0.000" y="5.000" width="60.000" height="4.000" fill="#d5dadf" /> <rect x="0.000" y="10.000" width="60.000" height="4.000" fill="#d5dadf" /> <rect x="0.000" y="15.000" width="60.000" height="4.000" fill="#d5dadf" /> <rect x="0.000" y="20.000" width="60.000" height="4.000" fill="#d5dadf" /> <rect x="0.000" y="25.000" width="60.000" height="4.000" fill="#d5dadf" /> </svg>; Icons.twocol = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="31.000" y="0.000" width="29.000" height="30.000" fill="#d5dadf" /> <rect x="0.000" y="0.000" width="29.000" height="30.000" fill="#d5dadf" /> </svg>; Icons.grid = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="31.000" y="0.000" width="29.000" height="14.000" fill="#d5dadf" /> <rect x="0.000" y="0.000" width="29.000" height="14.000" fill="#d5dadf" /> <rect x="31.000" y="16.000" width="29.000" height="14.000" fill="#d5dadf" /> <rect x="0.000" y="16.000" width="29.000" height="14.000" fill="#d5dadf" /> </svg>; Icons.threecol = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="18.500" height="30.000" fill="#d5dadf" /> <rect x="20.500" y="0.000" width="19.000" height="30.000" fill="#d5dadf" /> <rect x="41.500" y="0.000" width="18.500" height="30.000" fill="#d5dadf" /> </svg>; Icons.threegrid = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="18.500" height="14.000" fill="#d5dadf" /> <rect x="20.500" y="0.000" width="19.000" height="14.000" fill="#d5dadf" /> <rect x="41.500" y="0.000" width="18.500" height="14.000" fill="#d5dadf" /> <rect x="0.000" y="16.000" width="18.500" height="14.000" fill="#d5dadf" /> <rect x="20.500" y="16.000" width="19.000" height="14.000" fill="#d5dadf" /> <rect x="41.500" y="16.000" width="18.500" height="14.000" fill="#d5dadf" /> </svg>; Icons.lastrow = <svg viewBox='0 0 60 30' xmlns='http://www.w3.org/2000/svg' fillRule='evenodd' clipRule='evenodd' strokeLinejoin='round' strokeMiterlimit='1.414'> <rect x='31' width='29' height='14' fill='#d5dadf' /> <rect x='-0.024' width='29' height='14' fill='#d5dadf' /> <rect x='-0.024' y='16' width='60' height='14' fill='#d5dadf' /> </svg>; Icons.firstrow = <svg viewBox='0 0 60 30' xmlns='http://www.w3.org/2000/svg' fillRule='evenodd' clipRule='evenodd' strokeLinejoin='round' strokeMiterlimit='1.414'> <rect x='31' y='16' width='29' height='14' fill='#d5dadf' /> <rect x='-0.024' y='16' width='29' height='14' fill='#d5dadf' /> <rect x='-0.024' y='-0.003' width='60' height='14' fill='#d5dadf' /> </svg>; Icons.twoleftgolden = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="41.000" y="0.000" width="19.000" height="30.000" fill="#d5dadf" /> <rect x="0.000" y="0.000" width="39.000" height="30.000" fill="#d5dadf" /> </svg>; Icons.tworightgolden = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="21.000" y="0.000" width="39.000" height="30.000" fill="#d5dadf" /> <rect x="0.000" y="0.000" width="19.000" height="30.000" fill="#d5dadf" /> </svg>; Icons.lefthalf = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="29.000" height="30.000" fill="#d5dadf" /> <rect x="31" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> <rect x="46.500" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> </svg>; Icons.righthalf = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> <rect x="15.500" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> <rect x="31.000" y="0.000" width="29.000" height="30.000" fill="#d5dadf" /> </svg>; Icons.centerhalf = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> <rect x="15.500" y="0.000" width="29.000" height="30.000" fill="#d5dadf" /> <rect x="46.500" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> </svg>; Icons.widecenter = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="11.000" height="30.000" fill="#d5dadf" /> <rect x="13.000" y="0.000" width="34.000" height="30.000" fill="#d5dadf" /> <rect x="49.000" y="0.000" width="11.000" height="30.000" fill="#d5dadf" /> </svg>; Icons.exwidecenter = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="7.200" height="30.000" fill="#d5dadf" /> <rect x="9.200" y="0.000" width="41.600" height="30.000" fill="#d5dadf" /> <rect x="52.800" y="0.000" width="7.200" height="30.000" fill="#d5dadf" /> </svg>; Icons.fourcol = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> <rect x="15.500" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> <rect x="31.000" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> <rect x="46.500" y="0.000" width="13.500" height="30.000" fill="#d5dadf" /> </svg>; Icons.lfourforty = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="21.600" height="30.000" fill="#d5dadf" /> <rect x="23.600" y="0.000" width="10.800" height="30.000" fill="#d5dadf" /> <rect x="36.400" y="0.000" width="10.800" height="30.000" fill="#d5dadf" /> <rect x="49.200" y="0.000" width="10.800" height="30.000" fill="#d5dadf" /> </svg>; Icons.rfourforty = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="10.800" height="30.000" fill="#d5dadf" /> <rect x="12.800" y="0.000" width="10.800" height="30.000" fill="#d5dadf" /> <rect x="25.600" y="0.000" width="10.800" height="30.000" fill="#d5dadf" /> <rect x="38.400" y="0.000" width="21.600" height="30.000" fill="#d5dadf" /> </svg>; Icons.fivecol = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="10.400" height="30.000" fill="#d5dadf" /> <rect x="12.400" y="0.000" width="10.400" height="30.000" fill="#d5dadf" /> <rect x="24.800" y="0.000" width="10.400" height="30.000" fill="#d5dadf" /> <rect x="37.200" y="0.000" width="10.400" height="30.000" fill="#d5dadf" /> <rect x="49.600" y="0.000" width="10.400" height="30.000" fill="#d5dadf" /> </svg>; Icons.sixcol = <svg viewBox="0 0 60 30" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="0.000" y="0.000" width="8.350" height="30.000" fill="#d5dadf" /> <rect x="10.330" y="0.000" width="8.350" height="30.000" fill="#d5dadf" /> <rect x="20.660" y="0.000" width="8.350" height="30.000" fill="#d5dadf" /> <rect x="30.990" y="0.000" width="8.350" height="30.000" fill="#d5dadf" /> <rect x="41.320" y="0.000" width="8.350" height="30.000" fill="#d5dadf" /> <rect x="51.650" y="0.000" width="8.350" height="30.000" fill="#d5dadf" /> </svg>; Icons.aligntop = <svg width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill="currentColor" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <path d="M17.294,17.287l-14.588,0l0,-14.574l14.588,0c0,4.858 0,9.716 0,14.574Zm-13.738,-0.85l12.888,0l0,-12.874l-12.888,0c0,4.291 0,8.583 0,12.874Z" fillRule="nonzero" /> <rect x="4.489" y="4.545" width="11.022" height="2.512" /> </svg>; Icons.alignmiddle = <svg width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill="currentColor" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <path d="M17.294,17.287l-14.588,0l0,-14.574l14.588,0c0,4.858 0,9.716 0,14.574Zm-13.738,-0.85l12.888,0l0,-12.874l-12.888,0c0,4.291 0,8.583 0,12.874Z" fillRule="nonzero" /> <rect x="4.489" y="8.744" width="11.022" height="2.512" /> </svg>; Icons.alignbottom = <svg width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill="currentColor" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <path d="M17.294,17.287l-14.588,0l0,-14.574l14.588,0c0,4.858 0,9.716 0,14.574Zm-13.738,-0.85l12.888,0l0,-12.874l-12.888,0c0,4.291 0,8.583 0,12.874Z" fillRule="nonzero" /> <rect x="4.489" y="12.802" width="11.022" height="2.512" /> </svg>; Icons.outlinetop = <svg width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="2.714" y="5.492" width="1.048" height="9.017" fill="#555d66" /> <rect x="16.265" y="5.498" width="1.023" height="9.003" fill="#555d66" /> <rect x="5.518" y="2.186" width="8.964" height="2.482" fill="#272b2f" /> <rect x="5.487" y="16.261" width="9.026" height="1.037" fill="#555d66" /> </svg>; Icons.outlineright = <svg width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="2.714" y="5.492" width="1.046" height="9.017" fill="#555d66" /> <rect x="15.244" y="5.498" width="2.518" height="9.003" fill="#272b2f" /> <rect x="5.518" y="2.719" width="8.964" height="0.954" fill="#555d66" /> <rect x="5.487" y="16.308" width="9.026" height="0.99" fill="#555d66" /> </svg>; Icons.outlinebottom = <svg width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="2.714" y="5.492" width="1" height="9.017" fill="#555d66" /> <rect x="16.261" y="5.498" width="1.027" height="9.003" fill="#555d66" /> <rect x="5.518" y="2.719" width="8.964" height="0.968" fill="#555d66" /> <rect x="5.487" y="15.28" width="9.026" height="2.499" fill="#272b2f" /> </svg>; Icons.outlineleft = <svg width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" strokeLinejoin="round" strokeMiterlimit="1.414"> <rect x="2.202" y="5.492" width="2.503" height="9.017" fill="#272b2f" /> <rect x="16.276" y="5.498" width="1.012" height="9.003" fill="#555d66" /> <rect x="5.518" y="2.719" width="8.964" height="0.966" fill="#555d66" /> <rect x="5.487" y="16.303" width="9.026" height="0.995" fill="#555d66" /> </svg>; Icons.boxed = <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#CDCDCD" stroke="#9A9A9A" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <path fill="#fff" d="M12.185 4.013H37.816V35.987H12.185z"></path> <path fill="#CDCDCD" d="M14.224 6.006H35.783V14.636000000000001H14.224z" ></path> <path fill="#CCC" fillRule="nonzero" d="M30.684 32.428H14.568c-.192 0-.351.353-.351.783 0 .429.159.783.351.783h16.116c.194 0 .352-.354.352-.783 0-.43-.158-.783-.352-.783zM35.324 29.284H14.677c-.246 0-.449.353-.449.783 0 .43.203.782.449.782h20.647c.246 0 .449-.352.449-.782 0-.43-.203-.783-.449-.783z" ></path> <path fill="#CDCDCD" fillRule="nonzero" d="M35.324 26.14H14.677c-.246 0-.449.354-.449.784 0 .428.203.782.449.782h20.647c.246 0 .449-.354.449-.782 0-.43-.203-.784-.449-.784zM35.324 22.997H14.677c-.246 0-.449.353-.449.782 0 .43.203.784.449.784h20.647c.246 0 .449-.354.449-.784 0-.429-.203-.782-.449-.782z" ></path> <path fill="#CCC" fillRule="nonzero" d="M35.324 19.853H14.677c-.246 0-.449.353-.449.783 0 .43.203.783.449.783h20.647c.246 0 .449-.353.449-.783 0-.43-.203-.783-.449-.783zM35.324 16.709H14.677c-.246 0-.449.354-.449.783 0 .429.203.783.449.783h20.647c.246 0 .449-.354.449-.783 0-.429-.203-.783-.449-.783z" ></path> </svg>; Icons.gridUnboxed =<svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#fff" stroke="#9A9A9A" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <path fill="#CDCDCD" d="M4.555 4.68H22.976V11.581H4.555z"></path> <path fill="#CCC" fillRule="nonzero" d="M18.62 25.807H4.849c-.164 0-.3.283-.3.627 0 .343.136.626.3.626H18.62c.165 0 .3-.283.3-.626 0-.344-.135-.627-.3-.627zM22.584 23.294H4.942c-.21 0-.383.282-.383.626 0 .343.173.625.383.625h17.642c.21 0 .383-.282.383-.625 0-.344-.173-.626-.383-.626z" ></path> <path fill="#CDCDCD" fillRule="nonzero" d="M22.584 20.78H4.942c-.21 0-.383.282-.383.626 0 .343.173.626.383.626h17.642c.21 0 .383-.283.383-.626 0-.344-.173-.626-.383-.626zM22.584 18.266H4.942c-.21 0-.383.283-.383.626s.173.626.383.626h17.642c.21 0 .383-.283.383-.626s-.173-.626-.383-.626z" ></path> <path fill="#CCC" fillRule="nonzero" d="M22.584 15.753H4.942c-.21 0-.383.282-.383.625 0 .344.173.626.383.626h17.642c.21 0 .383-.282.383-.626 0-.343-.173-.625-.383-.625zM22.584 13.238H4.942c-.21 0-.383.283-.383.626 0 .344.173.627.383.627h17.642c.21 0 .383-.283.383-.627 0-.343-.173-.626-.383-.626z" ></path> <g> <path fill="#CDCDCD" d="M27.234 4.665H45.621V11.565999999999999H27.234z" ></path> <path fill="#CCC" fillRule="nonzero" d="M41.273 25.792H27.528c-.164 0-.3.283-.3.627 0 .343.136.626.3.626h13.745c.165 0 .299-.283.299-.626 0-.344-.134-.627-.299-.627zM45.23 23.279H27.621c-.21 0-.383.282-.383.626 0 .343.173.625.383.625H45.23c.209 0 .382-.282.382-.625 0-.344-.173-.626-.382-.626z" ></path> <path fill="#CDCDCD" fillRule="nonzero" d="M45.23 20.765H27.621c-.21 0-.383.283-.383.626s.173.626.383.626H45.23c.209 0 .382-.283.382-.626s-.173-.626-.382-.626zM45.23 18.251H27.621c-.21 0-.383.283-.383.626 0 .344.173.626.383.626H45.23c.209 0 .382-.282.382-.626 0-.343-.173-.626-.382-.626z" ></path> <path fill="#CCC" fillRule="nonzero" d="M45.23 15.738H27.621c-.21 0-.383.282-.383.625 0 .344.173.626.383.626H45.23c.209 0 .382-.282.382-.626 0-.343-.173-.625-.382-.625zM45.23 13.223H27.621c-.21 0-.383.283-.383.626 0 .344.173.627.383.627H45.23c.209 0 .382-.283.382-.627 0-.343-.173-.626-.382-.626z" ></path> </g> <g> <path fill="#CDCDCD" d="M4.555 30.385H22.976V37.286H4.555z"></path> <path fill="#CDCDCD" d="M27.234 30.37H45.621V37.271H27.234z"></path> </g> </svg>; Icons.gridBoxed = <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round" strokeMiterlimit="1.5" clipRule="evenodd" viewBox="0 0 50 40" > <path fill="#CDCDCD" stroke="#9A9A9A" strokeWidth="1" d="M49.007 2.918a1.9 1.9 0 00-1.898-1.898H2.891A1.9 1.9 0 00.993 2.918v34.164a1.9 1.9 0 001.898 1.898h44.218a1.9 1.9 0 001.898-1.898V2.918z" ></path> <path fill="#fff" d="M4.415 4.606H23.453V28.356H4.415z"></path> <path fill="#CDCDCD" d="M5.929 6.087H21.942999999999998V12.497H5.929z" ></path> <path fill="#CCC" fillRule="nonzero" d="M18.156 25.712H6.185c-.143 0-.261.263-.261.582 0 .318.118.581.261.581h11.971c.143 0 .261-.263.261-.581 0-.319-.118-.582-.261-.582zM21.602 23.377H6.266c-.183 0-.334.262-.334.581 0 .32.151.582.334.582h15.336c.182 0 .333-.262.333-.582 0-.319-.151-.581-.333-.581z" ></path> <path fill="#CDCDCD" fillRule="nonzero" d="M21.602 21.042H6.266c-.183 0-.334.263-.334.582 0 .318.151.581.334.581h15.336c.182 0 .333-.263.333-.581 0-.319-.151-.582-.333-.582zM21.602 18.707H6.266c-.183 0-.334.263-.334.581 0 .319.151.582.334.582h15.336c.182 0 .333-.263.333-.582 0-.318-.151-.581-.333-.581z" ></path> <path fill="#CCC" fillRule="nonzero" d="M21.602 16.372H6.266c-.183 0-.334.262-.334.581 0 .32.151.582.334.582h15.336c.182 0 .333-.262.333-.582 0-.319-.151-.581-.333-.581zM21.602 14.037H6.266c-.183 0-.334.262-.334.581 0 .319.151.582.334.582h15.336c.182 0 .333-.263.333-.582 0-.319-.151-.581-.333-.581z" ></path> <g> <path fill="#fff" d="M26.548 4.592H45.586V28.342H26.548z"></path> <path fill="#CDCDCD" d="M28.062 6.073H44.076V12.483H28.062z"></path> <path fill="#CCC" fillRule="nonzero" d="M40.289 25.698H28.318c-.143 0-.261.263-.261.582 0 .319.118.581.261.581h11.971c.143 0 .261-.262.261-.581 0-.319-.118-.582-.261-.582zM43.735 23.363H28.399c-.183 0-.333.262-.333.582 0 .319.15.581.333.581h15.336c.183 0 .333-.262.333-.581 0-.32-.15-.582-.333-.582z" ></path> <path fill="#CDCDCD" fillRule="nonzero" d="M43.735 21.028H28.399c-.183 0-.333.263-.333.582 0 .318.15.581.333.581h15.336c.183 0 .333-.263.333-.581 0-.319-.15-.582-.333-.582zM43.735 18.693H28.399c-.183 0-.333.263-.333.581 0 .32.15.582.333.582h15.336c.183 0 .333-.262.333-.582 0-.318-.15-.581-.333-.581z" ></path> <path fill="#CCC" fillRule="nonzero" d="M43.735 16.358H28.399c-.183 0-.333.262-.333.582 0 .319.15.581.333.581h15.336c.183 0 .333-.262.333-.581 0-.32-.15-.582-.333-.582zM43.735 14.023H28.399c-.183 0-.333.263-.333.581 0 .319.15.582.333.582h15.336c.183 0 .333-.263.333-.582 0-.318-.15-.581-.333-.581z" ></path> </g> <g> <path fill="#fff" d="M4.415 31.302H23.453V38.488H4.415z"></path> <path fill="#CDCDCD" d="M5.929 32.783H21.942999999999998V38.492000000000004H5.929z" ></path> <g> <path fill="#fff" d="M26.548 31.288H45.586V38.485H26.548z"></path> <path fill="#CDCDCD" d="M28.062 32.769H44.076V38.485H28.062z"></path> </g> </g> </svg>; Icons.shoppingBag = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M19 5H5l1.5-2h11zm2.794.392L18.8 1.4A1 1 0 0018 1H6a1 1 0 00-.8.4L2.206 5.392A.978.978 0 002 6v14a2.997 2.997 0 003 3h14a2.997 2.997 0 003-3V6a.997.997 0 00-.189-.585L21.8 5.4zM4 7h16v13c0 .276-.111.525-.293.707S19.276 21 19 21H5c-.276 0-.525-.111-.707-.293S4 20.276 4 20zm11 3c0 .829-.335 1.577-.879 2.121S12.829 13 12 13s-1.577-.335-2.121-.879S9 10.829 9 10a1 1 0 00-2 0c0 1.38.561 2.632 1.464 3.536S10.62 15 12 15s2.632-.561 3.536-1.464S17 11.38 17 10a1 1 0 00-2 0z"></path> </svg>; Icons.shoppingCart = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M11 21c0-.552-.225-1.053-.586-1.414a1.996 1.996 0 00-2.828 0 1.996 1.996 0 000 2.828 1.996 1.996 0 002.828 0c.361-.361.586-.862.586-1.414zm11 0c0-.552-.225-1.053-.586-1.414a1.996 1.996 0 00-2.828 0 1.996 1.996 0 000 2.828 1.996 1.996 0 002.828 0c.361-.361.586-.862.586-1.414zM7.221 7h14.57l-1.371 7.191A1 1 0 0119.4 15H9.666a1.016 1.016 0 01-.626-.203.99.99 0 01-.379-.603zM1 2h3.18l.848 4.239C5.136 6.676 5.53 7 6 7h1.221l-.4-2H6a1 1 0 00-.971 1.239L6.7 14.586A3.009 3.009 0 009.694 17H19.4a2.97 2.97 0 001.995-.727 3.02 3.02 0 00.985-1.683l1.602-8.402A1 1 0 0023 5H6.82L5.98.804A1 1 0 005 0H1a1 1 0 000 2z"></path> </svg>; Icons.sunAlt = <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M8 4a4 4 0 100 8 4 4 0 000-8zm0 9a1 1 0 011 1v1a1 1 0 01-2 0v-1a1 1 0 011-1zM8 3a1 1 0 01-1-1V1a1 1 0 012 0v1a1 1 0 01-1 1zm7 4a1 1 0 010 2h-1a1 1 0 010-2h1zM3 8a1 1 0 01-1 1H1a1 1 0 010-2h1a1 1 0 011 1zm9.95 3.536l.707.707a1 1 0 01-1.414 1.414l-.707-.707a1 1 0 011.414-1.414zm-9.9-7.072l-.707-.707a.999.999 0 111.414-1.414l.707.707A.999.999 0 113.05 4.464zm9.9 0a.999.999 0 11-1.414-1.414l.707-.707a.999.999 0 111.414 1.414l-.707.707zm-9.9 7.072a1 1 0 011.414 1.414l-.707.707a1 1 0 01-1.414-1.414l.707-.707z"></path> </svg>; Icons.sunrise = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M18 18c0-1.657-.673-3.158-1.757-4.243S13.657 12 12 12s-3.158.673-4.243 1.757S6 16.343 6 18a1 1 0 002 0c0-1.105.447-2.103 1.172-2.828S10.895 14 12 14s2.103.447 2.828 1.172S16 16.895 16 18a1 1 0 002 0zM3.513 10.927l1.42 1.42a.999.999 0 101.414-1.414l-1.42-1.42a.999.999 0 10-1.414 1.414zM1 19h2a1 1 0 000-2H1a1 1 0 000 2zm20 0h2a1 1 0 000-2h-2a1 1 0 000 2zm-1.933-6.653l1.42-1.42a.999.999 0 10-1.414-1.414l-1.42 1.42a.999.999 0 101.414 1.414zM23 21H1a1 1 0 000 2h22a1 1 0 000-2zM8.707 6.707L11 4.414V9a1 1 0 002 0V4.414l2.293 2.293a.999.999 0 101.414-1.414l-4-4a1.006 1.006 0 00-1.414 0l-4 4a.999.999 0 101.414 1.414z"></path> </svg>; Icons.sunset = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M18 18c0-1.657-.673-3.158-1.757-4.243S13.657 12 12 12s-3.158.673-4.243 1.757S6 16.343 6 18a1 1 0 002 0c0-1.105.447-2.103 1.172-2.828S10.895 14 12 14s2.103.447 2.828 1.172S16 16.895 16 18a1 1 0 002 0zM3.513 10.927l1.42 1.42a.999.999 0 101.414-1.414l-1.42-1.42a.999.999 0 10-1.414 1.414zM1 19h2a1 1 0 000-2H1a1 1 0 000 2zm20 0h2a1 1 0 000-2h-2a1 1 0 000 2zm-1.933-6.653l1.42-1.42a.999.999 0 10-1.414-1.414l-1.42 1.42a.999.999 0 101.414 1.414zM23 21H1a1 1 0 000 2h22a1 1 0 000-2zM15.293 4.293L13 6.586V2a1 1 0 00-2 0v4.586L8.707 4.293a.999.999 0 10-1.414 1.414l4 4a.998.998 0 001.414 0l4-4a.999.999 0 10-1.414-1.414z"></path> </svg>; Icons.moonAlt = <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M11.185 1.008A8.014 8.014 0 008.223 0 8.035 8.035 0 01.798 12.861a8.033 8.033 0 0013.328-.88 8.034 8.034 0 00-2.94-10.974z"></path> </svg>; Icons.sun = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M18 12c0-1.657-.673-3.158-1.757-4.243S13.657 6 12 6s-3.158.673-4.243 1.757S6 10.343 6 12s.673 3.158 1.757 4.243S10.343 18 12 18s3.158-.673 4.243-1.757S18 13.657 18 12zm-2 0c0 1.105-.447 2.103-1.172 2.828S13.105 16 12 16s-2.103-.447-2.828-1.172S8 13.105 8 12s.447-2.103 1.172-2.828S10.895 8 12 8s2.103.447 2.828 1.172S16 10.895 16 12zM11 1v2a1 1 0 002 0V1a1 1 0 00-2 0zm0 20v2a1 1 0 002 0v-2a1 1 0 00-2 0zM3.513 4.927l1.42 1.42a.999.999 0 101.414-1.414l-1.42-1.42a.999.999 0 10-1.414 1.414zm14.14 14.14l1.42 1.42a.999.999 0 101.414-1.414l-1.42-1.42a.999.999 0 10-1.414 1.414zM1 13h2a1 1 0 000-2H1a1 1 0 000 2zm20 0h2a1 1 0 000-2h-2a1 1 0 000 2zM4.927 20.487l1.42-1.42a.999.999 0 10-1.414-1.414l-1.42 1.42a.999.999 0 101.414 1.414zm14.14-14.14l1.42-1.42a.999.999 0 10-1.414-1.414l-1.42 1.42a.999.999 0 101.414 1.414z"></path> </svg>; Icons.moon = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M21.996 12.882a1 1 0 00-1.585-.9 6.11 6.11 0 01-3.188 1.162 5.948 5.948 0 01-3.95-1.158c-1.333-.985-2.139-2.415-2.367-3.935s.124-3.124 1.109-4.456a.998.998 0 00-.901-1.589 10.082 10.082 0 00-5.895 2.651 9.943 9.943 0 00-3.137 6.386c-.254 2.749.631 5.343 2.266 7.311s4.022 3.313 6.772 3.567 5.343-.631 7.311-2.266 3.313-4.022 3.567-6.772zm-2.429 1.792a7.988 7.988 0 01-2.416 3.441c-1.576 1.309-3.648 2.016-5.848 1.813s-4.108-1.278-5.417-2.854-2.016-3.648-1.813-5.848A7.932 7.932 0 016.58 6.12a8.058 8.058 0 012.731-1.672 8.008 8.008 0 002.772 9.146 7.94 7.94 0 005.272 1.545 8.083 8.083 0 002.21-.465z"></path> </svg>; Icons.checkbox = <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M0 0v16h16V0H0zm15 15H1V1h14v14z"></path> <path d="M2.5 8L4 6.5 6.5 9 12 3.5 13.5 5l-7 7z"></path> </svg>; Icons.checkbox_alt = <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M14 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 12.414L3.293 8.707l1.414-1.414L7 9.586l4.793-4.793 1.414 1.414L7 12.414z"></path> </svg>; Icons.check = <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M14 2.5L5.5 11 2 7.5.5 9l5 5 10-10z"></path> </svg>; Icons.shield_check = <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M13.739 3.061l-5.5-3a.497.497 0 00-.478 0l-5.5 3A.5.5 0 002 3.5v4c0 2.2.567 3.978 1.735 5.437.912 1.14 2.159 2.068 4.042 3.01a.502.502 0 00.448 0c1.883-.942 3.13-1.87 4.042-3.01 1.167-1.459 1.735-3.238 1.735-5.437v-4a.5.5 0 00-.261-.439zM6.5 11.296L3.704 8.5l.796-.795 2 2 5-5 .796.795-5.795 5.795z"></path> </svg>; Icons.disc = <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M5 8a3 3 0 116 0 3 3 0 01-6 0z"></path> </svg>; Icons.arrowUp = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M5.707 12.707L11 7.414V19a1 1 0 002 0V7.414l5.293 5.293a.999.999 0 101.414-1.414l-7-7A1.008 1.008 0 0012 4a.997.997 0 00-.707.293l-7 7a.999.999 0 101.414 1.414z"></path> </svg>; Icons.arrowUp2 = <svg xmlns="http://www.w3.org/2000/svg" width="26" height="28" viewBox="0 0 26 28" > <path d="M25.172 15.172c0 .531-.219 1.031-.578 1.406l-1.172 1.172c-.375.375-.891.594-1.422.594s-1.047-.219-1.406-.594L16 13.172v11C16 25.297 15.062 26 14 26h-2c-1.062 0-2-.703-2-1.828v-11L5.406 17.75a1.96 1.96 0 01-2.812 0l-1.172-1.172c-.375-.375-.594-.875-.594-1.406s.219-1.047.594-1.422L11.594 3.578C11.953 3.203 12.469 3 13 3s1.047.203 1.422.578L24.594 13.75c.359.375.578.891.578 1.422z"></path> </svg>; Icons.chevronUp = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M18.707 14.293l-6-6a.999.999 0 00-1.414 0l-6 6a.999.999 0 101.414 1.414L12 10.414l5.293 5.293a.999.999 0 101.414-1.414z"></path> </svg>; Icons.chevronUp2 = <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" > <path d="M26.297 20.797l-2.594 2.578a.99.99 0 01-1.406 0L14 15.078l-8.297 8.297a.99.99 0 01-1.406 0l-2.594-2.578a1.009 1.009 0 010-1.422L13.297 7.797a.99.99 0 011.406 0l11.594 11.578a1.009 1.009 0 010 1.422z"></path> </svg>; Icons.account = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M21 21v-2c0-1.38-.561-2.632-1.464-3.536S17.38 14 16 14H8c-1.38 0-2.632.561-3.536 1.464S3 17.62 3 19v2a1 1 0 002 0v-2c0-.829.335-1.577.879-2.121S7.171 16 8 16h8c.829 0 1.577.335 2.121.879S19 18.171 19 19v2a1 1 0 002 0zM17 7c0-1.38-.561-2.632-1.464-3.536S13.38 2 12 2s-2.632.561-3.536 1.464S7 5.62 7 7s.561 2.632 1.464 3.536S10.62 12 12 12s2.632-.561 3.536-1.464S17 8.38 17 7zm-2 0c0 .829-.335 1.577-.879 2.121S12.829 10 12 10s-1.577-.335-2.121-.879S9 7.829 9 7s.335-1.577.879-2.121S11.171 4 12 4s1.577.335 2.121.879S15 6.171 15 7z"></path> </svg>; Icons.account2 = <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" > <path d="M23.797 20.922c-.406-2.922-1.594-5.516-4.25-5.875-1.375 1.5-3.359 2.453-5.547 2.453s-4.172-.953-5.547-2.453c-2.656.359-3.844 2.953-4.25 5.875C6.375 23.985 9.953 26 14 26s7.625-2.016 9.797-5.078zM20 10c0-3.313-2.688-6-6-6s-6 2.688-6 6 2.688 6 6 6 6-2.688 6-6zm8 4c0 7.703-6.25 14-14 14-7.734 0-14-6.281-14-14C0 6.266 6.266 0 14 0s14 6.266 14 14z"></path> </svg>; Icons.account3 = <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" > <path d="M14 0c7.734 0 14 6.266 14 14 0 7.688-6.234 14-14 14-7.75 0-14-6.297-14-14C0 6.266 6.266 0 14 0zm9.672 21.109C25.125 19.109 26 16.656 26 14c0-6.609-5.391-12-12-12S2 7.391 2 14c0 2.656.875 5.109 2.328 7.109C4.89 18.312 6.25 16 9.109 16a6.979 6.979 0 009.782 0c2.859 0 4.219 2.312 4.781 5.109zM20 11c0-3.313-2.688-6-6-6s-6 2.688-6 6 2.688 6 6 6 6-2.688 6-6z"></path> </svg>; Icons.hours = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M14 8.5v7c0 .281-.219.5-.5.5h-5a.494.494 0 01-.5-.5v-1c0-.281.219-.5.5-.5H12V8.5c0-.281.219-.5.5-.5h1c.281 0 .5.219.5.5zm6.5 5.5c0-4.688-3.813-8.5-8.5-8.5S3.5 9.313 3.5 14s3.813 8.5 8.5 8.5 8.5-3.813 8.5-8.5zm3.5 0c0 6.625-5.375 12-12 12S0 20.625 0 14 5.375 2 12 2s12 5.375 12 12z"></path> </svg>; Icons.listFilter = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M8 7h13a1 1 0 000-2H8a1 1 0 000 2zm0 6h13a1 1 0 000-2H8a1 1 0 000 2zm0 6h13a1 1 0 000-2H8a1 1 0 000 2zM3 7a1 1 0 100-2 1 1 0 000 2zm0 6a1 1 0 100-2 1 1 0 000 2zm0 6a1 1 0 100-2 1 1 0 000 2z"></path> </svg>; Icons.listFilterAlt = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M6 12.984v-1.969h12v1.969H6zM3 6h18v2.016H3V6zm6.984 12v-2.016h4.031V18H9.984z"></path> </svg>; Icons.close = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M5.293 6.707L10.586 12l-5.293 5.293a.999.999 0 101.414 1.414L12 13.414l5.293 5.293a.999.999 0 101.414-1.414L13.414 12l5.293-5.293a.999.999 0 10-1.414-1.414L12 10.586 6.707 5.293a.999.999 0 10-1.414 1.414z"></path> </svg>; Icons.closeAlt = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M5 2a2.997 2.997 0 00-3 3v14a2.997 2.997 0 003 3h14a2.997 2.997 0 003-3V5a2.997 2.997 0 00-3-3zm0 2h14c.276 0 .525.111.707.293S20 4.724 20 5v14c0 .276-.111.525-.293.707S19.276 20 19 20H5c-.276 0-.525-.111-.707-.293S4 19.276 4 19V5c0-.276.111-.525.293-.707S4.724 4 5 4zm9.293 4.293L12 10.586 9.707 8.293a.999.999 0 10-1.414 1.414L10.586 12l-2.293 2.293a.999.999 0 101.414 1.414L12 13.414l2.293 2.293a.999.999 0 101.414-1.414L13.414 12l2.293-2.293a.999.999 0 10-1.414-1.414z"></path> </svg>; Icons.closeAlt2 = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M23 12c0-3.037-1.232-5.789-3.222-7.778S15.037 1 12 1 6.211 2.232 4.222 4.222 1 8.963 1 12s1.232 5.789 3.222 7.778S8.963 23 12 23s5.789-1.232 7.778-3.222S23 15.037 23 12zm-2 0c0 2.486-1.006 4.734-2.636 6.364S14.486 21 12 21s-4.734-1.006-6.364-2.636S3 14.486 3 12s1.006-4.734 2.636-6.364S9.514 3 12 3s4.734 1.006 6.364 2.636S21 9.514 21 12zM8.293 9.707L10.586 12l-2.293 2.293a.999.999 0 101.414 1.414L12 13.414l2.293 2.293a.999.999 0 101.414-1.414L13.414 12l2.293-2.293a.999.999 0 10-1.414-1.414L12 10.586 9.707 8.293a.999.999 0 10-1.414 1.414z"></path> </svg>; Icons.logoArrow = <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 512 422" > <path d="M308.49 149.956L163.298 411.9H8.257L230.97 10.1l77.52 139.856zM236.216 323.65l48.916 88.25h-97.831l48.915-88.25zm10.445-18.843l98.861-178.356L503.743 411.9H306.022l-59.361-107.093z"></path> </svg>; Icons.logoCircle = <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 512 512" > <path d="M256 21c129.7 0 235 105.3 235 235S385.7 491 256 491 21 385.7 21 256 126.3 21 256 21zm0 302.025c18.213 0 33 14.775 33 32.975 0 18.2-14.787 32.975-33 32.975S223 374.2 223 356c0-18.2 14.787-32.975 33-32.975zm0-100c18.213 0 33 14.775 33 32.975 0 18.2-14.787 32.975-33 32.975S223 274.2 223 256c0-18.2 14.787-32.975 33-32.975zm0-100c18.213 0 33 14.775 33 32.975 0 18.2-14.787 32.975-33 32.975S223 174.2 223 156c0-18.2 14.787-32.975 33-32.975z"></path> </svg>; Icons.logoLine = <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 512 212" > <path d="M135.03 150.093l-56.671 46.61a5.974 5.974 0 01-7.627 0l-60.439-49.709c-2.029-1.668-2.812-4.473-1.953-6.996.858-2.522 3.17-4.21 5.766-4.21h2.369l15.299 12.582h-.229l43.001 35.366 43-35.366h-.171l15.298-12.582h4.772l15.298 12.582h-.228l43 35.366 43-35.366h-.17l15.298-12.582h4.772l15.298 12.582h-.228l43 35.366 43-35.366h-.171l15.298-12.582h4.772l15.299 12.582h-.229l43 35.366 43.001-35.366h-.171l15.298-12.582h2.312c2.596 0 4.908 1.688 5.766 4.21.859 2.523.076 5.328-1.953 6.996l-60.439 49.709a5.974 5.974 0 01-7.627 0l-56.671-46.61-56.671 46.61a5.975 5.975 0 01-7.628 0L256 150.093l-56.671 46.61a5.975 5.975 0 01-7.628 0l-56.671-46.61zm0-121.866l-56.671 46.61a5.974 5.974 0 01-7.627 0L10.293 25.128c-2.029-1.668-2.812-4.474-1.953-6.996.858-2.522 3.17-4.211 5.766-4.211h2.369l15.299 12.582h-.229l43.001 35.366 43-35.366h-.171l15.298-12.582h4.772l15.298 12.582h-.228l43 35.366 43-35.366h-.17l15.298-12.582h4.772l15.298 12.582h-.228l43 35.366 43-35.366h-.171l15.298-12.582h4.772l15.299 12.582h-.229l43 35.366 43.001-35.366h-.171l15.298-12.582h2.312c2.596 0 4.908 1.689 5.766 4.211.859 2.522.076 5.328-1.953 6.996l-60.439 49.709a5.974 5.974 0 01-7.627 0l-56.671-46.61-56.671 46.61a5.975 5.975 0 01-7.628 0L256 28.227l-56.671 46.61a5.975 5.975 0 01-7.628 0l-56.671-46.61z"></path> </svg>; export default Icons; react/src/common/swatches.js 0000644 00000004337 15151531430 0012105 0 ustar 00 import PropTypes from "prop-types"; import Icons from "./icons"; import { __ } from "@wordpress/i18n"; const { Component, Fragment } = wp.element; const { Button, Popover, Dashicon, ColorIndicator, Tooltip, Icon } = wp.components; // /** // * WordPress dependencies // */ // import { site, Icon } from '@wordpress/icons'; export const SwatchesControl = ({ colors, isPalette, onClick = () => {}, circleSize, circleSpacing, }) => { const handleClick = (color, swatch) => { onClick( { hex: color, }, swatch ); }; return ( <div style={{ paddingBottom: "15px", }} className="kadence-swatches-wrap" > {colors.map((colorObjOrString) => { const c = typeof colorObjOrString === "string" ? { color: colorObjOrString } : colorObjOrString; const key = `${c.color}${c.slug || ""}`; return ( <div key={key} style={{ width: circleSize, height: circleSize, marginBottom: 0, transform: "scale(1)", transition: "100ms transform ease", }} className="kadence-swatche-item-wrap" > <Button className={`kadence-swatch-item ${ isPalette === c.slug ? "swatch-active" : "swatch-inactive" }`} style={{ height: "100%", width: "100%", border: "1px solid rgb(218, 218, 218)", borderRadius: "50%", color: c.slug === "palette10" ? "var(--global-palette10)" : `${c.color}`, boxShadow: `inset 0 0 0 ${circleSize / 2}px`, transition: "100ms box-shadow ease", }} onClick={() => handleClick(c.color, c.slug)} tabIndex={0} > {/* <Icon className="dashicon" icon={ site } /> */} <Icon className="dashicon" icon={Icons.globe} /> </Button> </div> ); })} </div> ); }; SwatchesControl.defaultProps = { circleSize: 26, circleSpacing: 15, }; SwatchesControl.propTypes = { colors: PropTypes.arrayOf( PropTypes.oneOfType([ PropTypes.string, PropTypes.shape({ color: PropTypes.string, slug: PropTypes.string, name: PropTypes.string, }), ]) ).isRequired, isPalette: PropTypes.string, }; export default SwatchesControl; react/src/common/color-picker.js 0000644 00000005300 15151531430 0012644 0 ustar 00 import { CustomPicker } from 'react-color' import { EditableInput, Hue, Saturation, Alpha, Checkboard } from 'react-color/lib/components/common' import { ChromePointerCircle } from 'react-color/lib/components/chrome/ChromePointerCircle' import { ChromePointer } from 'react-color/lib/components/chrome/ChromePointer' import PickerFields from './color-picker-fields' export const KadenceColorPicker = ({ rgb, hex, hsv, hsl, onChange, renderers }) => { const styles = { picker: { width: 300, position: 'relative', marginBottom: 10, }, hue: { height: 10, position: 'relative', marginBottom: '8px', }, Hue: { radius: '2px', }, alpha: { height: '10px', position: 'relative', }, Alpha: { radius: '2px', }, input: { height: 34, border: `1px solid ${ hex }`, paddingLeft: 10, }, body: { padding: '10px 0', }, controls: { display: 'flex', }, color: { width: '30px', height: '30px', position: 'relative', marginTop: '3px', marginLeft: '10px', borderRadius: '50%', overflow: 'hidden', }, activeColor: { position: 'absolute', left:0, right:0, top:0, bottom:0, borderRadius: '50%', background: `rgba(${ rgb.r },${ rgb.g },${ rgb.b },${ rgb.a })`, boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)', }, swatch: { width: 54, height: 38, background: hex, }, sliders: { padding: '4px 0', flex: '1', }, saturation: { width: '100%', paddingBottom: '40%', position: 'relative', overflow: 'hidden', }, Saturation: { radius: '2px 2px 0 0', shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)', }, } return ( <div style={ styles.picker } className={ 'kadence-picker' }> <div style={ styles.saturation }> <Saturation style={ styles.Saturation } hsl={ hsl } hsv={ hsv } pointer={ ChromePointerCircle } onChange={ onChange } /> </div> <div style={ styles.body }> <div style={ styles.controls } className="flexbox-fix"> <div style={ styles.sliders }> <div style={ styles.hue }> <Hue style={ styles.Hue } hsl={ hsl } onChange={ onChange } pointer={ ChromePointer } /> </div> <div style={ styles.alpha }> <Alpha style={ styles.Alpha } rgb={ rgb } hsl={ hsl } renderers={ renderers } pointer={ ChromePointer } onChange={ onChange } /> </div> </div> <div style={ styles.color }> <Checkboard /> <div style={ styles.activeColor } /> </div> </div> </div> <PickerFields rgb={ rgb } hsl={ hsl } hex={ hex } onChange={ onChange } /> </div> ) } export default CustomPicker(KadenceColorPicker) react/src/title/title-component.js 0000644 00000001411 15151531430 0013224 0 ustar 00 import PropTypes from 'prop-types'; import { __ } from '@wordpress/i18n'; const { Component } = wp.element; const { ToggleControl } = wp.components; class TitleComponent extends Component { constructor(props) { super( props ); } render() { return ( <div className="kadence-control-field kadence-title-control"> { this.props.control.params.label && ( <span class="customize-control-title"> { this.props.control.params.label } </span> ) } { this.props.control.params.description && ( <span class="customize-control-description"> { this.props.control.params.description } </span> ) } </div> ); } } TitleComponent.propTypes = { control: PropTypes.object.isRequired }; export default TitleComponent; react/src/title/control.js 0000644 00000000677 15151531430 0011600 0 ustar 00 import { createRoot } from '@wordpress/element'; import TitleComponent from './title-component.js'; export const TitleControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <TitleComponent control={control} /> ); // ReactDOM.render( // <TitleComponent control={control} />, // control.container[0] // ); } } ); react/src/radio-icon/control.js 0000644 00000000722 15151531430 0012472 0 ustar 00 import { createRoot } from '@wordpress/element'; import RadioIconComponent from './radio-icon-component.js'; export const RadioIconControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <RadioIconComponent control={control}/> ); // ReactDOM.render( // <RadioIconComponent control={control}/>, // control.container[0] // ); } } ); react/src/radio-icon/radio-icon-component.js 0000644 00000023666 15151531430 0015052 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class RadioIconComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); let value = this.props.control.setting.get(); let defaultParams = { layout: { standard: { tooltip: __( 'Background Fullwidth, Content Contained', 'kadence' ), name: __( 'Standard', 'kadence' ), icon: '', }, fullwidth: { tooltip: __( 'Background & Content Fullwidth', 'kadence' ), name: __( 'Fullwidth', 'kadence' ), icon: '', }, contained: { tooltip: __( 'Background & Content Contained', 'kadence' ), name: __( 'Contained', 'kadence' ), icon: '', }, }, responsive: true, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let responsiveDefault = { 'mobile': '', 'tablet': '', 'desktop': 'standard' }; let nonResponsiveDefault = 'standard'; let baseDefault; if ( this.controlParams.responsive ) { baseDefault = responsiveDefault; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; } else { baseDefault = nonResponsiveDefault; this.defaultValue = this.props.control.params.default ? this.props.control.params.default : baseDefault; } if ( this.controlParams.responsive ) { value = value ? { ...JSON.parse( JSON.stringify( this.defaultValue ) ), ...value } : JSON.parse( JSON.stringify( this.defaultValue ) ); } else { value = value ? value : this.defaultValue; } this.state = { currentDevice: 'desktop', value: value, }; } render() { const responsiveControlLabel = ( <Fragment> { this.state.currentDevice !== 'desktop' && ( <Tooltip text={ __( 'Reset Device Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.value[this.state.currentDevice] === this.defaultValue[this.state.currentDevice] ) } onClick={ () => { let value = this.state.value; value[this.state.currentDevice] = this.defaultValue[this.state.currentDevice]; this.setState( value ); this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> ) } { this.props.control.params.label && this.props.control.params.label } </Fragment> ); const controlLabel = ( <Fragment> <Tooltip text={ __( 'Reset Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.value === this.defaultValue ) } onClick={ () => { let value = this.defaultValue; this.setState( { value: this.defaultValue } ); this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { this.props.control.params.label && this.props.control.params.label } </Fragment> ); return ( <div className={ `kadence-control-field kadence-radio-icon-control${ this.controlParams.class ? ' ' + this.controlParams.class : '' }` }> { this.controlParams.responsive && ( <ResponsiveControl onChange={ ( currentDevice) => this.setState( { currentDevice } ) } controlLabel={ responsiveControlLabel } > <ButtonGroup className="kadence-radio-container-control"> { Object.keys( this.controlParams.layout ).map( ( item ) => { return ( <Fragment> { this.controlParams.layout[ item ].tooltip && ( <Tooltip text={ this.controlParams.layout[ item ].tooltip }> <Button isTertiary className={ ( item === this.state.value[this.state.currentDevice] ? 'active-radio ' : '' ) + 'kt-ratio-' + item + ( this.controlParams.layout[ item ].icon && this.controlParams.layout[ item ].name ? ' btn-flex-col' : '' ) } onClick={ () => { let value = this.state.value; value[ this.state.currentDevice ] = item; this.setState( value ); this.updateValues( value ); } } > { this.controlParams.layout[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ this.controlParams.layout[ item ].icon ] } </span> ) } { this.controlParams.layout[ item ].dashicon && ( <span className="kadence-radio-icon kadence-radio-dashicon"> <Dashicon icon={ this.controlParams.layout[ item ].dashicon } /> </span> ) } { this.controlParams.layout[ item ].name && ( this.controlParams.layout[ item ].name ) } </Button> </Tooltip> ) } { ! this.controlParams.layout[ item ].tooltip && ( <Button isTertiary className={ ( item === this.state.value[this.state.currentDevice] ? 'active-radio ' : '' ) + 'kt-radio-' + item + ( this.controlParams.layout[ item ].icon && this.controlParams.layout[ item ].name ? ' btn-flex-col' : '' ) } onClick={ () => { let value = this.state.value; value[ this.state.currentDevice ] = item; this.setState( value ); this.updateValues( value ); } } > { this.controlParams.layout[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ this.controlParams.layout[ item ].icon ] } </span> ) } { this.controlParams.layout[ item ].dashicon && ( <span className="kadence-radio-icon kadence-radio-dashicon"> <Dashicon icon={ this.controlParams.layout[ item ].dashicon } /> </span> ) } { this.controlParams.layout[ item ].name && ( this.controlParams.layout[ item ].name ) } </Button> ) } </Fragment> ); } )} </ButtonGroup> </ResponsiveControl> ) } { ! this.controlParams.responsive && ( <Fragment> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <ButtonGroup className="kadence-radio-container-control"> { Object.keys( this.controlParams.layout ).map( ( item ) => { return ( <Fragment> { this.controlParams.layout[ item ].tooltip && ( <Tooltip text={ this.controlParams.layout[ item ].tooltip }> <Button isTertiary className={ ( item === this.state.value ? 'active-radio ' : '' ) + 'kt-radio-' + item + ( this.controlParams.layout[ item ].icon && this.controlParams.layout[ item ].name ? ' btn-flex-col' : '' ) } onClick={ () => { let value = this.state.value; value = item; this.setState( { value: item }); this.updateValues( value ); } } > { this.controlParams.layout[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ this.controlParams.layout[ item ].icon ] } </span> ) } { this.controlParams.layout[ item ].dashicon && ( <span className="kadence-radio-icon kadence-radio-dashicon"> <Dashicon icon={ this.controlParams.layout[ item ].dashicon } /> </span> ) } { this.controlParams.layout[ item ].name && ( this.controlParams.layout[ item ].name ) } </Button> </Tooltip> ) } { ! this.controlParams.layout[ item ].tooltip && ( <Button isTertiary className={ ( item === this.state.value ? 'active-radio ' : '' ) + 'kt-radio-' + item + ( this.controlParams.layout[ item ].icon && this.controlParams.layout[ item ].name ? ' btn-flex-col' : '' ) } onClick={ () => { let value = this.state.value; value = item; this.setState( { value: item }); this.updateValues( value ); } } > { this.controlParams.layout[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ this.controlParams.layout[ item ].icon ] } </span> ) } { this.controlParams.layout[ item ].dashicon && ( <span className="kadence-radio-icon kadence-radio-dashicon"> <Dashicon icon={ this.controlParams.layout[ item ].dashicon } /> </span> ) } { this.controlParams.layout[ item ].name && ( this.controlParams.layout[ item ].name ) } </Button> ) } </Fragment> ); } )} </ButtonGroup> </Fragment> ) } </div> ); } updateValues( value ) { if ( this.controlParams.footer ) { let event = new CustomEvent( 'kadenceUpdateFooterColumns', { 'detail': this.controlParams.footer, } ); document.dispatchEvent( event ); } if ( this.controlParams.responsive ) { this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag } ); } else { this.props.control.setting.set( value ); } } } RadioIconComponent.propTypes = { control: PropTypes.object.isRequired }; export default RadioIconComponent; react/src/contact/icons.js 0000644 00000014576 15151531430 0011550 0 ustar 00 const ContactIcons = { email: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M15 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM5.831 9.773l-3 2.182a.559.559 0 01-.785-.124.563.563 0 01.124-.786l3-2.182a.563.563 0 01.662.91zm8.124 2.058a.563.563 0 01-.785.124l-3-2.182a.563.563 0 01.662-.91l3 2.182a.563.563 0 01.124.786zm-.124-6.876l-5.5 4a.562.562 0 01-.662 0l-5.5-4a.563.563 0 01.662-.91L8 7.804l5.169-3.759a.563.563 0 01.662.91z"></path> </svg>, emailAlt: <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" > <path d="M28 11.094V23.5c0 1.375-1.125 2.5-2.5 2.5h-23A2.507 2.507 0 010 23.5V11.094c.469.516 1 .969 1.578 1.359 2.594 1.766 5.219 3.531 7.766 5.391 1.313.969 2.938 2.156 4.641 2.156h.031c1.703 0 3.328-1.188 4.641-2.156 2.547-1.844 5.172-3.625 7.781-5.391a9.278 9.278 0 001.563-1.359zM28 6.5c0 1.75-1.297 3.328-2.672 4.281-2.438 1.687-4.891 3.375-7.313 5.078-1.016.703-2.734 2.141-4 2.141h-.031c-1.266 0-2.984-1.437-4-2.141-2.422-1.703-4.875-3.391-7.297-5.078-1.109-.75-2.688-2.516-2.688-3.938 0-1.531.828-2.844 2.5-2.844h23c1.359 0 2.5 1.125 2.5 2.5z"></path> </svg>, emailAlt2: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M3 7.921l8.427 5.899c.34.235.795.246 1.147 0L21 7.921V18c0 .272-.11.521-.295.705S20.272 19 20 19H4c-.272 0-.521-.11-.705-.295S3 18.272 3 18zM1 5.983V18c0 .828.34 1.579.88 2.12S3.172 21 4 21h16c.828 0 1.579-.34 2.12-.88S23 18.828 23 18V6.012v-.03a2.995 2.995 0 00-.88-2.102A2.998 2.998 0 0020 3H4c-.828 0-1.579.34-2.12.88A2.995 2.995 0 001 5.983zm19.894-.429L12 11.779 3.106 5.554a.999.999 0 01.188-.259A.994.994 0 014 5h16a1.016 1.016 0 01.893.554z"></path> </svg>, phone:<svg xmlns="http://www.w3.org/2000/svg" width="12" height="28" viewBox="0 0 12 28" > <path d="M7.25 22c0-.688-.562-1.25-1.25-1.25s-1.25.562-1.25 1.25.562 1.25 1.25 1.25 1.25-.562 1.25-1.25zm3.25-2.5v-11c0-.266-.234-.5-.5-.5H2c-.266 0-.5.234-.5.5v11c0 .266.234.5.5.5h8c.266 0 .5-.234.5-.5zm-3-13.25A.246.246 0 007.25 6h-2.5c-.141 0-.25.109-.25.25s.109.25.25.25h2.5c.141 0 .25-.109.25-.25zM12 6v16c0 1.094-.906 2-2 2H2c-1.094 0-2-.906-2-2V6c0-1.094.906-2 2-2h8c1.094 0 2 .906 2 2z"></path> </svg>, phoneAlt:<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M7 1a2.997 2.997 0 00-3 3v16a2.997 2.997 0 003 3h10a2.997 2.997 0 003-3V4a2.997 2.997 0 00-3-3zm0 2h10c.276 0 .525.111.707.293S18 3.724 18 4v16c0 .276-.111.525-.293.707S17.276 21 17 21H7c-.276 0-.525-.111-.707-.293S6 20.276 6 20V4c0-.276.111-.525.293-.707S6.724 3 7 3zm5 16a1 1 0 100-2 1 1 0 000 2z"></path> </svg>, phoneAlt2: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M20 18.641c0-.078 0-.172-.031-.25-.094-.281-2.375-1.437-2.812-1.687-.297-.172-.656-.516-1.016-.516-.688 0-1.703 2.047-2.312 2.047-.313 0-.703-.281-.984-.438-2.063-1.156-3.484-2.578-4.641-4.641-.156-.281-.438-.672-.438-.984 0-.609 2.047-1.625 2.047-2.312 0-.359-.344-.719-.516-1.016-.25-.438-1.406-2.719-1.687-2.812-.078-.031-.172-.031-.25-.031-.406 0-1.203.187-1.578.344-1.031.469-1.781 2.438-1.781 3.516 0 1.047.422 2 .781 2.969 1.25 3.422 4.969 7.141 8.391 8.391.969.359 1.922.781 2.969.781 1.078 0 3.047-.75 3.516-1.781.156-.375.344-1.172.344-1.578zM24 6.5v15c0 2.484-2.016 4.5-4.5 4.5h-15A4.502 4.502 0 010 21.5v-15C0 4.016 2.016 2 4.5 2h15C21.984 2 24 4.016 24 6.5z"></path> </svg>, hours: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M14 8.5v7c0 .281-.219.5-.5.5h-5a.494.494 0 01-.5-.5v-1c0-.281.219-.5.5-.5H12V8.5c0-.281.219-.5.5-.5h1c.281 0 .5.219.5.5zm6.5 5.5c0-4.688-3.813-8.5-8.5-8.5S3.5 9.313 3.5 14s3.813 8.5 8.5 8.5 8.5-3.813 8.5-8.5zm3.5 0c0 6.625-5.375 12-12 12S0 20.625 0 14 5.375 2 12 2s12 5.375 12 12z"></path> </svg>, hoursAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M23 12c0-3.037-1.232-5.789-3.222-7.778S15.037 1 12 1 6.211 2.232 4.222 4.222 1 8.963 1 12s1.232 5.789 3.222 7.778S8.963 23 12 23s5.789-1.232 7.778-3.222S23 15.037 23 12zm-2 0c0 2.486-1.006 4.734-2.636 6.364S14.486 21 12 21s-4.734-1.006-6.364-2.636S3 14.486 3 12s1.006-4.734 2.636-6.364S9.514 3 12 3s4.734 1.006 6.364 2.636S21 9.514 21 12zM11 6v6a1 1 0 00.553.894l4 2a1 1 0 00.895-1.789L13 11.382V6a1 1 0 00-2 0z"></path> </svg>, hoursAlt2: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M8 0a8 8 0 100 16A8 8 0 008 0zm2.293 11.707L7 8.414V4h2v3.586l2.707 2.707-1.414 1.414z"></path> </svg>, location: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="28" viewBox="0 0 16 28" > <path d="M12 10c0-2.203-1.797-4-4-4s-4 1.797-4 4 1.797 4 4 4 4-1.797 4-4zm4 0c0 .953-.109 1.937-.516 2.797L9.796 24.891C9.468 25.579 8.749 26 7.999 26s-1.469-.422-1.781-1.109L.515 12.797C.109 11.938-.001 10.953-.001 10c0-4.422 3.578-8 8-8s8 3.578 8 8z"></path> </svg>, locationAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M22 10c0-2.761-1.12-5.263-2.929-7.071S14.761 0 12 0 6.737 1.12 4.929 2.929 2 7.239 2 10c0 .569.053 1.128.15 1.676.274 1.548.899 3.004 1.682 4.32 2.732 4.591 7.613 7.836 7.613 7.836.331.217.765.229 1.109 0 0 0 4.882-3.245 7.613-7.836.783-1.316 1.408-2.772 1.682-4.32A9.506 9.506 0 0022 10zm-2 0c0 .444-.041.887-.119 1.328-.221 1.25-.737 2.478-1.432 3.646-1.912 3.214-5.036 5.747-6.369 6.74-1.398-.916-4.588-3.477-6.53-6.74-.695-1.168-1.211-2.396-1.432-3.646A7.713 7.713 0 014 10c0-2.209.894-4.208 2.343-5.657S9.791 2 12 2s4.208.894 5.657 2.343S20 7.791 20 10zm-4 0c0-1.104-.449-2.106-1.172-2.828a3.994 3.994 0 00-5.656 0 3.994 3.994 0 000 5.656 3.994 3.994 0 005.656 0A3.994 3.994 0 0016 10zm-2 0c0 .553-.223 1.051-.586 1.414S12.553 12 12 12s-1.051-.223-1.414-.586S10 10.553 10 10s.223-1.051.586-1.414S11.447 8 12 8s1.051.223 1.414.586S14 9.447 14 10z"></path> </svg>, locationAlt2: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M8 0a5 5 0 00-5 5c0 5 5 9 5 9s5-4 5-9a5 5 0 00-5-5zm0 8a3 3 0 110-6 3 3 0 010 6zm4.285 2.9a16.57 16.57 0 01-.682.988l.108.052c.76.38 1.101.806 1.101 1.059s-.34.679-1.101 1.059c-.957.479-2.31.753-3.712.753s-2.754-.275-3.712-.753c-.76-.38-1.101-.806-1.101-1.059s.34-.679 1.101-1.059l.108-.052c-.231-.31-.461-.64-.682-.988-1.061.541-1.715 1.282-1.715 2.1 0 1.657 2.686 3 6 3s6-1.343 6-3c0-.817-.654-1.558-1.715-2.1z"></path> </svg>, }; export default ContactIcons; react/src/contact/item-component.js 0000644 00000016403 15151531430 0013362 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ContactIcons from './icons.js'; import FontIconPicker from '@fonticonpicker/react-fonticonpicker'; import { __ } from '@wordpress/i18n'; const { MediaUpload } = wp.blockEditor; const { ButtonGroup, Dashicon, Tooltip, TextControl, Button, TabPanel, RangeControl, Placeholder } = wp.components; const { Component, Fragment } = wp.element; class ItemComponent extends Component { constructor() { super( ...arguments ); this.state = { open: false, }; } render() { return ( <div className="kadence-sorter-item" data-id={ this.props.item.id } key={ this.props.item.id }> <div className="kadence-sorter-item-panel-header"> <Tooltip text={ __( 'Toggle Item Visibility', 'kadence' ) }> <Button className={ `kadence-sorter-visiblity ${ ( this.props.item.enabled ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.props.toggleEnabled( ( this.props.item.enabled ? false : true ), this.props.index ); } } > { ContactIcons[this.props.item.id] } </Button> </Tooltip> <span className="kadence-sorter-title"> { ( undefined !== this.props.item.label && '' !== this.props.item.label ? this.props.item.label : __( 'Contact Item', 'kadence' ) ) } </span> <Tooltip text={ __( 'Expand Item Controls', 'kadence' ) }> <Button className="kadence-sorter-item-expand" onClick={ () => { this.setState( { open: ( this.state.open ? false : true ) } ) } } > <Dashicon icon={ ( this.state.open ? 'arrow-up-alt2' : 'arrow-down-alt2' ) }/> </Button> </Tooltip> </div> { this.state.open && ( <div className="kadence-sorter-item-panel-content"> <TabPanel className="sortable-style-tabs kadence-contact-type" activeClass="active-tab" initialTabName={ ( undefined !== this.props.item.source ? this.props.item.source : 'icon' ) } onSelect={ ( value ) => this.props.onChangeSource( value, this.props.index ) } tabs={ [ { name: 'icon', title: __( 'Icon', 'kadence' ), }, { name: 'image', title: __( 'Image', 'kadence' ), }, ] }> { ( tab ) => { let tabout; if ( tab.name ) { if ( 'image' === tab.name ) { tabout = ( <Fragment> { ! this.props.item.url && ( <div className="attachment-media-view"> <MediaUpload onSelect={ ( imageData ) => { this.props.onChangeURL( imageData.url, this.props.index ); this.props.onChangeAttachment( imageData.id, this.props.index ); } } allowedTypes={ ['image'] } render={ ( { open } ) => ( <Button className="button-add-media" isSecondary onClick={ open }> { __( 'Add Image', 'kadence' )} </Button> ) } /> </div> ) } { this.props.item.url && ( <div className="contact-custom-image"> <div className="kadence-Contact-image"> <img className="kadence-Contact-image-preview" src={ this.props.item.url } /> </div> <Button className='remove-image' isDestructive onClick={ () => { this.props.onChangeURL( '', this.props.index ); this.props.onChangeAttachment( '', this.props.index ); } } > { __( 'Remove Image', 'kadence' ) } <Dashicon icon='no'/> </Button> </div> ) } <RangeControl label={ __( 'Max Width (px)', 'kadence' ) } value={ ( undefined !== this.props.item.width ? this.props.item.width : 24 ) } onChange={ ( value ) => { this.props.onChangeWidth( value, this.props.index ); } } step={ 1 } min={ 2 } max={ 100 } /> </Fragment> ); } else { tabout = ( <Fragment> <ButtonGroup className="kadence-radio-container-control"> <Button isTertiary className={ ( this.props.item.id === ( undefined !== this.props.item.icon ? this.props.item.icon : this.props.item.id ) ? 'active-radio ' : '' ) + 'svg-icon-' + this.props.item.id } onClick={ () => { this.props.onChangeIcon( this.props.item.id, this.props.index ); } } > <span className="kadence-radio-icon"> { ContactIcons[this.props.item.id] } </span> </Button> { ContactIcons[ this.props.item.id + 'Alt' ] && ( <Button isTertiary className={ ( this.props.item.id + 'Alt' === ( undefined !== this.props.item.icon ? this.props.item.icon : this.props.item.id ) ? 'active-radio ' : '' ) + 'svg-icon-' + this.props.item.id + 'Alt' } onClick={ () => { this.props.onChangeIcon( this.props.item.id + 'Alt', this.props.index ); } } > <span className="kadence-radio-icon"> { ContactIcons[ this.props.item.id + 'Alt' ] } </span> </Button> ) } { ContactIcons[ this.props.item.id + 'Alt2' ] && ( <Button isTertiary className={ ( this.props.item.id + 'Alt2' === ( undefined !== this.props.item.icon ? this.props.item.icon : this.props.item.id ) ? 'active-radio ' : '' ) + 'svg-icon-' + this.props.item.id + 'Alt2' } onClick={ () => { this.props.onChangeIcon( this.props.item.id + 'Alt2', this.props.index ); } } > <span className="kadence-radio-icon"> { ContactIcons[ this.props.item.id + 'Alt2' ] } </span> </Button> )} </ButtonGroup> </Fragment> ); } } return <div>{ tabout }</div>; } } </TabPanel> <TextControl label={ __( 'Item Label', 'kadence' ) } value={ this.props.item.label ? this.props.item.label : '' } onChange={ ( value ) => { this.props.onChangeLabel( value, this.props.index ); } } /> <TextControl label={ __( 'Item Link', 'kadence' ) } value={ this.props.item.link ? this.props.item.link : '' } onChange={ ( value ) => { this.props.onChangeLink( value, this.props.index ); } } /> <Button className="kadence-sorter-item-remove" isDestructive onClick={ () => { this.props.removeItem( this.props.index ); } } > { __( 'Remove Item', 'kadence' ) } <Dashicon icon="no-alt"/> </Button> </div> ) } </div> ); } } export default ItemComponent; react/src/contact/contact-component.js 0000644 00000025273 15151531430 0014064 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { ReactSortable } from "react-sortablejs"; import uniqueId from 'lodash/uniqueId'; import ItemComponent from './item-component'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Popover, Button, SelectControl } = wp.components; const { Component, Fragment } = wp.element; class ContactComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.onDragEnd = this.onDragEnd.bind( this ); this.onDragStart = this.onDragStart.bind( this ); this.onDragStop = this.onDragStop.bind( this ); this.removeItem = this.removeItem.bind( this ); this.saveArrayUpdate = this.saveArrayUpdate.bind( this ); this.toggleEnableItem = this.toggleEnableItem.bind( this ); this.onChangeIcon = this.onChangeIcon.bind( this ); this.onChangeLabel = this.onChangeLabel.bind( this ); this.onChangeLink = this.onChangeLink.bind( this ); this.onChangeURL = this.onChangeURL.bind( this ); this.onChangeAttachment = this.onChangeAttachment.bind( this ); this.onChangeWidth = this.onChangeWidth.bind( this ); this.onChangeSource = this.onChangeSource.bind( this ); this.addItem = this.addItem.bind( this ); let value = this.props.control.setting.get(); let baseDefault = { 'items': [ { 'id': 'phone', 'enabled': true, 'source': 'icon', 'url': '', 'imageid': '', 'width': 24, 'link': '', 'icon': 'mobile', 'label': '444-546-8765', }, { 'id': 'hours', 'enabled': true, 'source': 'icon', 'url': '', 'imageid': '', 'width': 24, 'link': '', 'icon': 'hours', 'label': 'Mon - Fri: 8AM - 5PM', } ], }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...this.defaultValue, ...value } : this.defaultValue; let defaultParams = { 'group' : 'contact_item_group', 'options': [ { value: 'phone', label: __( 'Phone', 'kadence' ), content: __( '444-546-8765', 'kadence' ) }, { value: 'hours', label: __( 'Hours', 'kadence' ), content: __( 'Mon - Fri: 8AM - 5PM', 'kadence' ) }, { value: 'email', label: __( 'Email', 'kadence' ), content: __( 'example@example.com', 'kadence' ) }, { value: 'location', label: __( 'Address', 'kadence' ), content: __( '4560 example street', 'kadence' ) }, ], }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let availibleContactOptions = []; this.controlParams.options.map( ( option ) => { if ( ! value.items.some( obj => obj.id === option.value ) ) { availibleContactOptions.push( option ); } } ); this.state = { value: value, isVisible: false, control: ( undefined !== availibleContactOptions[0] && undefined !== availibleContactOptions[0].value ? availibleContactOptions[0].value : '' ), }; } onDragStart() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.add( 'kadence-dragging-dropzones' ); } } onDragStop() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.remove( 'kadence-dragging-dropzones' ); } } saveArrayUpdate( value, index ) { let updateState = this.state.value; let items = updateState.items; const newItems = items.map( ( item, thisIndex ) => { if ( index === thisIndex ) { item = { ...item, ...value }; } return item; } ); updateState.items = newItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } toggleEnableItem( value, itemIndex ) { this.saveArrayUpdate( { enabled: value }, itemIndex ); } onChangeLabel( value, itemIndex ) { this.saveArrayUpdate( { label: value }, itemIndex ); } onChangeLink( value, itemIndex ) { this.saveArrayUpdate( { link: value }, itemIndex ); } onChangeIcon( value, itemIndex ) { this.saveArrayUpdate( { icon: value }, itemIndex ); } onChangeURL( value, itemIndex ) { this.saveArrayUpdate( { url: value }, itemIndex ); } onChangeAttachment( value, itemIndex ) { this.saveArrayUpdate( { imageid: value }, itemIndex ); } onChangeWidth( value, itemIndex ) { this.saveArrayUpdate( { width: value }, itemIndex ); } onChangeSource( value, itemIndex ) { this.saveArrayUpdate( { source: value }, itemIndex ); } removeItem( itemIndex ) { let updateState = this.state.value; let update = updateState.items; let updateItems = []; { update.length > 0 && ( update.map( ( old, index ) => { if ( itemIndex !== index ) { updateItems.push( old ); } } ) ) }; updateState.items = updateItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } addItem() { const itemControl = this.state.control; this.setState( { isVisible: false } ); if ( itemControl ) { let updateState = this.state.value; let update = updateState.items; const itemLabel = this.controlParams.options.filter(function(o){return o.value === itemControl;} ); let newItem = { 'id': itemControl, 'enabled': true, 'source': 'icon', 'url': '', 'imageid': '', 'width': 24, 'link': '', 'icon': itemControl, 'label': itemLabel[0].content, }; update.push( newItem ); updateState.items = update; let availibleContactOptions = []; this.controlParams.options.map( ( option ) => { if ( ! update.some( obj => obj.id === option.value ) ) { availibleContactOptions.push( option ); } } ); this.setState( { control: ( undefined !== availibleContactOptions[0] && undefined !== availibleContactOptions[0].value ? availibleContactOptions[0].value : '' ) } ); this.setState( { value: updateState } ); this.updateValues( updateState ); } } onDragEnd( items ) { let updateState = this.state.value; let update = updateState.items; let updateItems = []; { items.length > 0 && ( items.map( ( item ) => { update.filter( obj => { if ( obj.id === item.id ) { updateItems.push( obj ); } } ) } ) ) }; if ( ! this.arraysEqual( update, updateItems ) ) { update.items = updateItems; updateState.items = updateItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } } arraysEqual( a, b ) { if (a === b) return true; if (a == null || b == null) return false; if (a.length != b.length) return false; for (var i = 0; i < a.length; ++i) { if (a[i] !== b[i]) return false; } return true; } render() { const currentList = ( typeof this.state.value != "undefined" && this.state.value.items != null && this.state.value.items.length != null && this.state.value.items.length > 0 ? this.state.value.items : [] ); let theItems = []; { currentList.length > 0 && ( currentList.map( ( item ) => { theItems.push( { id: item.id, } ) } ) ) }; const availibleContactOptions = []; this.controlParams.options.map( ( option ) => { if ( ! theItems.some( obj => obj.id === option.value ) ) { availibleContactOptions.push( option ); } } ) const toggleClose = () => { if ( this.state.isVisible === true ) { this.setState( { isVisible: false } ); } }; return ( <div className="kadence-control-field kadence-sorter-items"> <div className="kadence-sorter-row"> <ReactSortable animation={100} onStart={ () => this.onDragStop() } onEnd={ () => this.onDragStop() } group={ this.controlParams.group } className={ `kadence-sorter-drop kadence-sorter-sortable-panel kadence-sorter-drop-${ this.controlParams.group } kadence-sorter-drop-social_item_group` } handle={ '.kadence-sorter-item-panel-header' } list={ theItems } setList={ ( newState ) => this.onDragEnd( newState ) } > { currentList.length > 0 && ( currentList.map( ( item, index ) => { return <ItemComponent removeItem={ ( remove ) => this.removeItem( remove ) } toggleEnabled={ ( enable, itemIndex ) => this.toggleEnableItem( enable, itemIndex ) } onChangeLabel={ ( label, itemIndex ) => this.onChangeLabel( label, itemIndex ) } onChangeLink={ ( link, itemIndex ) => this.onChangeLink( link, itemIndex ) } onChangeSource={ ( source, itemIndex ) => this.onChangeSource( source, itemIndex ) } onChangeWidth={ ( width, itemIndex ) => this.onChangeWidth( width, itemIndex ) } onChangeURL={ ( url, itemIndex ) => this.onChangeURL( url, itemIndex ) } onChangeAttachment={ ( imageid, itemIndex ) => this.onChangeAttachment( imageid, itemIndex ) } onChangeIcon={ ( icon, itemIndex ) => this.onChangeIcon( icon, itemIndex ) } key={ item.id } index={ index } item={ item } controlParams={ this.controlParams } />; } ) ) } </ReactSortable> </div> { undefined !== availibleContactOptions[0] && undefined !== availibleContactOptions[0].value && ( <div className="kadence-contact-add-area kadence-social-add-area"> { this.state.isVisible && ( <Popover position="top right" className="kadence-popover-color kadence-popover-contact kadence-customizer-popover" onClose={ toggleClose }> <div className="kadence-popover-contact-list kadence-popover-social-list"> <ButtonGroup className="kadence-radio-container-control"> { availibleContactOptions.map( ( item, index ) => { return ( <Fragment> <Button isTertiary className={ 'contact-radio-btn' } onClick={ () => { this.setState( { control: availibleContactOptions[index].value } ); this.state.control = availibleContactOptions[index].value; this.addItem(); } } > { availibleContactOptions[index].label && ( availibleContactOptions[index].label ) } </Button> </Fragment> ); } ) } </ButtonGroup> </div> </Popover> ) } <Button className="kadence-sorter-add-item" isPrimary onClick={ () => { this.setState( { isVisible: true } ); } } > { __( 'Add Contact', 'kadence' ) } <Dashicon icon="plus"/> </Button> </div> ) } </div> ); } updateValues( value ) { this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag } ); } } ContactComponent.propTypes = { control: PropTypes.object.isRequired, }; export default ContactComponent; react/src/contact/control.js 0000644 00000000672 15151531430 0012105 0 ustar 00 import { createRoot } from '@wordpress/element'; import ContactComponent from './contact-component.js'; export const ContactControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <ContactComponent control={ control } /> ); // ReactDOM.render( <ContactComponent control={ control } />, control.container[0] ); } } ); react/src/measure/measure-component.js 0000644 00000043336 15151531430 0014100 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { RangeControl, Dashicon, Tooltip, Button, Toolbar, TextControl, ToolbarGroup } = wp.components; const { Component, Fragment } = wp.element; class MeasureComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.getUnitButtons = this.getUnitButtons.bind( this ); this.createLevelControlToolbar = this.createLevelControlToolbar.bind( this ); this.createResponsiveLevelControlToolbar = this.createResponsiveLevelControlToolbar.bind( this ); this.getResponsiveUnitButtons = this.getResponsiveUnitButtons.bind( this ); let value = this.props.control.setting.get(); let baseDefault = { 'unit': { 'desktop': 'px' }, 'size': { 'desktop': [ 0, 0, 0, 0 ] }, 'locked': { 'desktop': true } }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...this.defaultValue, ...value } : this.defaultValue; let defaultParams = { min: { px: '0', em: '0', rem: '0', }, max: { px: '120', em: '12', rem: '12', }, step: { px: '1', em: '0.01', rem: '0.01', }, units: ['px', 'em', 'rem' ], responsive: true, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; this.state = { currentDevice: 'desktop', size: value.size, unit: value.unit, locked: value.locked }; } render() { const responsiveControlLabel = ( <Fragment> { this.controlParams.responsive && ( <Fragment> <Tooltip text={ __( 'Reset Device Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.size[this.state.currentDevice] === this.defaultValue.size[this.state.currentDevice] ) && ( this.state.unit[this.state.currentDevice] === this.defaultValue.unit[this.state.currentDevice] ) } onClick={ () => { let value = this.state.size; value[this.state.currentDevice] = this.defaultValue.size[this.state.currentDevice]; let svalue = this.state.unit; svalue[this.state.currentDevice] = this.defaultValue.unit[this.state.currentDevice]; let lvalue = this.state.unit; lvalue[this.state.currentDevice] = this.defaultValue.locked[this.state.currentDevice]; this.setState( { size: value, unit: svalue, locked: lvalue } ); this.updateValues( { size: value, unit: svalue, locked: lvalue } ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { this.props.control.params.label && this.props.control.params.label } </Fragment> ) } </Fragment> ); const controlLabel = ( <Fragment> <Tooltip text={ __( 'Reset Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.size === this.defaultValue.size ) && ( this.state.unit === this.defaultValue.unit ) } onClick={ () => { let value = this.state.size; value = this.defaultValue.size; let svalue = this.state.unit; svalue = this.defaultValue.unit; let lvalue = this.state.locked; lvalue = this.defaultValue.locked; this.setState( { size: value, unit: svalue, locked: lvalue } ); this.updateValues( { size: value, unit: svalue, locked: lvalue } ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { this.props.control.params.label && this.props.control.params.label } </Fragment> ); return ( <div className="kadence-control-field kadence-range-control"> { this.controlParams.responsive && ( <ResponsiveControl onChange={ ( currentDevice) => this.setState( { currentDevice } ) } controlLabel={ responsiveControlLabel } > { this.state.locked[this.state.currentDevice] && ( <RangeControl initialPosition={ ( this.state.size[this.state.currentDevice] && this.state.size[this.state.currentDevice][0] ? this.state.size[this.state.currentDevice][0] : '' ) } value={ ( this.state.size[this.state.currentDevice] && this.state.size[this.state.currentDevice][0] ? this.state.size[this.state.currentDevice][0] : '' ) } onChange={ (val) => { let value = this.state.size; value[ this.state.currentDevice ] = [ val, val, val, val ]; this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit[this.state.currentDevice]]} max={this.controlParams.max[this.state.unit[this.state.currentDevice]]} step={this.controlParams.step[this.state.unit[this.state.currentDevice]]} /> ) } { ! this.state.locked[this.state.currentDevice] && ( <Fragment> <TextControl label={ __( 'Top', 'kadence' ) } hideLabelFromVision={ true } type="number" className="measure-inputs" value={( this.state.size[this.state.currentDevice] && this.state.size[this.state.currentDevice][0] ? this.state.size[this.state.currentDevice][0] : '' )} onChange={ (val) => { let value = this.state.size; if ( undefined === value[ this.state.currentDevice ] ) { value[ this.state.currentDevice ] = [ 0, 0, 0, 0 ]; } value[ this.state.currentDevice ][0] = val; this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit[this.state.currentDevice]]} max={this.controlParams.max[this.state.unit[this.state.currentDevice]]} step={this.controlParams.step[this.state.unit[this.state.currentDevice]]} /> <TextControl label={ __( 'Right', 'kadence' ) } hideLabelFromVision={ true } type="number" className="measure-inputs" value={( this.state.size[this.state.currentDevice] && this.state.size[this.state.currentDevice][1] ? this.state.size[this.state.currentDevice][1] : '' )} onChange={ (val) => { let value = this.state.size; if ( undefined === value[ this.state.currentDevice ] ) { value[ this.state.currentDevice ] = [ 0, 0, 0, 0 ]; } value[ this.state.currentDevice ][1] = val; this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit[this.state.currentDevice]]} max={this.controlParams.max[this.state.unit[this.state.currentDevice]]} step={this.controlParams.step[this.state.unit[this.state.currentDevice]]} /> <TextControl label={ __( 'Bottom', 'kadence' ) } hideLabelFromVision={ true } type="number" className="measure-inputs" value={( this.state.size[this.state.currentDevice] && this.state.size[this.state.currentDevice][2] ? this.state.size[this.state.currentDevice][2] : '' )} onChange={ (val) => { let value = this.state.size; if ( undefined === value[ this.state.currentDevice ] ) { value[ this.state.currentDevice ] = [ 0, 0, 0, 0 ]; } value[ this.state.currentDevice ][2] = val; this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit[this.state.currentDevice]]} max={this.controlParams.max[this.state.unit[this.state.currentDevice]]} step={this.controlParams.step[this.state.unit[this.state.currentDevice]]} /> <TextControl label={ __( 'Left', 'kadence' ) } hideLabelFromVision={ true } type="number" className="measure-inputs" value={( this.state.size[this.state.currentDevice] && this.state.size[this.state.currentDevice][3] ? this.state.size[this.state.currentDevice][3] : '' )} onChange={ (val) => { let value = this.state.size; if ( undefined === value[ this.state.currentDevice ] ) { value[ this.state.currentDevice ] = [ 0, 0, 0, 0 ]; } value[ this.state.currentDevice ][3] = val; this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit[this.state.currentDevice]]} max={this.controlParams.max[this.state.unit[this.state.currentDevice]]} step={this.controlParams.step[this.state.unit[this.state.currentDevice]]} /> </Fragment> ) } <div className="kadence-units kadence-locked"> { this.getResponsiveLockedButtons() } </div> { this.controlParams.units && ( <div className="kadence-units"> { this.getResponsiveUnitButtons() } </div> ) } </ResponsiveControl> ) } { ! this.controlParams.responsive && ( <Fragment> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <div className="kadence-responsive-controls-content"> { this.state.locked && ( <RangeControl initialPosition={ this.state.size[0] } value={this.state.size[0]} onChange={ (val) => { let value = this.state.size; value = [ val, val, val, val ]; this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit]} max={this.controlParams.max[this.state.unit]} step={this.controlParams.step[this.state.unit]} /> ) } { ! this.state.locked && ( <Fragment> <div className="measure-input-wrap"> <input value={this.state.size[0]} onChange={ ( event ) => { const val = ( '' !== event.target.value ? Number( event.target.value ) : '' ); let value = this.state.size; value[0] = val; if ( val !== '' ) { if ( '' === value[1] ) { value[1] = 0; } if ( '' === value[2] ) { value[2] = 0; } if ( '' === value[3] ) { value[3] = 0; } } this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit]} max={this.controlParams.max[this.state.unit]} step={this.controlParams.step[this.state.unit]} type="number" className="measure-inputs" /> <small>{ __( 'Top', 'kadence' ) }</small> </div> <div className="measure-input-wrap"> <input value={this.state.size[1]} onChange={ ( event ) => { const val = ( '' !== event.target.value ? Number( event.target.value ) : '' ); let value = this.state.size; value[1] = val; if ( val !== '' ) { if ( '' === value[0] ) { value[0] = 0; } if ( '' === value[2] ) { value[2] = 0; } if ( '' === value[3] ) { value[3] = 0; } } this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit]} max={this.controlParams.max[this.state.unit]} step={this.controlParams.step[this.state.unit]} type="number" className="measure-inputs" /> <small>{ __( 'Right', 'kadence' ) }</small> </div> <div className="measure-input-wrap"> <input value={this.state.size[2]} onChange={ ( event ) => { const val = ( '' !== event.target.value ? Number( event.target.value ) : '' ); let value = this.state.size; value[2] = val; if ( val !== '' ) { if ( '' === value[0] ) { value[0] = 0; } if ( '' === value[1] ) { value[1] = 0; } if ( '' === value[3] ) { value[3] = 0; } } this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit]} max={this.controlParams.max[this.state.unit]} step={this.controlParams.step[this.state.unit]} type="number" className="measure-inputs" /> <small>{ __( 'Bottom', 'kadence' ) }</small> </div> <div className="measure-input-wrap"> <input value={this.state.size[3]} onChange={ ( event ) => { const val = ( '' !== event.target.value ? Number( event.target.value ) : '' ); let value = this.state.size; value[3] = val; if ( val !== '' ) { if ( '' === value[0] ) { value[0] = 0; } if ( '' === value[1] ) { value[1] = 0; } if ( '' === value[2] ) { value[2] = 0; } } this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit]} max={this.controlParams.max[this.state.unit]} step={this.controlParams.step[this.state.unit]} type="number" className="measure-inputs" /> <small>{ __( 'Left', 'kadence' ) }</small> </div> </Fragment> ) } <div className="kadence-units kadence-locked"> { this.getLockedButtons() } </div> { this.controlParams.units && ( <div className="kadence-units"> { this.getUnitButtons() } </div> ) } </div> </Fragment> ) } </div> ); } getLockedButtons() { const { locked } = this.state; if ( locked ) { return ( <Button className="is-single" onClick={ () => { let value = this.state.locked; value = false; this.setState( { locked: value } ); this.updateValues( { locked: value } ); } } isSmall >{ Icons['locked'] }</Button> ); } return ( <Button className="is-single" isSmall onClick={ () => { let value = this.state.locked; value = true; this.setState( { locked: value } ); this.updateValues( { locked: value } ); } } >{ Icons['unlocked'] }</Button> ); } getUnitButtons() { let self = this; const { units } = this.controlParams; if ( units.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ ( '%' === self.state.unit ? Icons.percent : Icons[ self.state.unit ] ) }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ ( '%' === self.state.unit ? Icons.percent : Icons[ self.state.unit ] ) } label={ __( 'Unit', 'kadence' ) } controls={ units.map( (unit) => this.createLevelControlToolbar( unit ) ) } /> } createLevelControlToolbar( unit ) { return [ { icon: ( unit === '%' ? Icons.percent : Icons[ unit ] ), isActive: this.state.unit === unit, onClick: () => { let value = this.state.unit; value = unit; this.setState( { unit: value } ); this.updateValues( { unit: value } ); }, } ]; }; createResponsiveLevelControlToolbar( unit ) { return [ { icon: ( unit === '%' ? Icons.percent : Icons[ unit ] ), isActive: this.state.unit[this.state.currentDevice] === unit, onClick: () => { let value = this.state.unit; value[ this.state.currentDevice ] = unit; this.setState( { unit: value } ); this.updateValues( { unit: value } ); }, } ]; }; getResponsiveLockedButtons() { let self = this; const { locked } = this.state; if ( locked[ self.state.currentDevice ] ) { return ( <Button className="is-single" isSmall onClick={ () => { let value = this.state.locked; value[ this.state.currentDevice ] = false; this.setState( { locked: value } ); this.updateValues( { locked: value } ); } } >{ Icons['locked'] }</Button> ); } return ( <Button className="is-single" isSmall onClick={ () => { let value = this.state.locked; value[ this.state.currentDevice ] = true; this.setState( { locked: value } ); this.updateValues( { locked: value } ); } } >{ Icons['unlocked'] }</Button> ); } getResponsiveUnitButtons() { let self = this; const { units } = this.controlParams; if ( units.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ ( '%' === self.state.unit[ self.state.currentDevice ] ? Icons.percent : Icons[ self.state.unit[ self.state.currentDevice ] ] ) }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ ( '%' === self.state.unit[ self.state.currentDevice ] ? Icons.percent : Icons[ self.state.unit[ self.state.currentDevice ] ] ) } label={ __( 'Unit', 'kadence' ) } controls={ units.map( (unit) => this.createResponsiveLevelControlToolbar( unit ) ) } /> } updateValues( value ) { this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag } ); } } MeasureComponent.propTypes = { control: PropTypes.object.isRequired }; export default MeasureComponent; react/src/measure/control.js 0000644 00000000704 15151531430 0012107 0 ustar 00 import { createRoot } from '@wordpress/element'; import MeasureComponent from './measure-component'; export const MeasureControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <MeasureComponent control={control}/> ); // ReactDOM.render( // <MeasureComponent control={control}/>, // control.container[0] // ); } } ); react/src/gradient-control/constants.js 0000644 00000003461 15151531430 0014260 0 ustar 00 /** * WordPress dependencies */ import { __ } from '@wordpress/i18n'; export const DEFAULT_GRADIENT = 'linear-gradient(135deg, rgb(6, 147, 227) 0%, rgb(20, 39, 109) 100%)'; export const DEFAULT_LINEAR_GRADIENT_ANGLE = 180; export const HORIZONTAL_GRADIENT_ORIENTATION = { type: 'angular', value: 90, }; export const DEFAULT_RADIAL_GRADIENT_POSITION = 'center center'; export const RADIAL_GRADIENT_ORIENTATION = [ { type: 'shape', value: 'ellipse', at: { type: 'position', value: { x: { type: 'position-keyword', value: 'center' }, y: { type: 'position-keyword', value: 'center' } } } } ]; export const DEFAULT_RADIAL_GRADIENT_SHAPE = 'ellipse'; export const GRADIENT_OPTIONS = [ { value: 'linear-gradient', label: __( 'Linear', 'kadence-blocks' ) }, { value: 'radial-gradient', label: __( 'Radial', 'kadence-blocks' ) }, ]; export const GRADIENT_POSITION_OPTIONS = [ { value: 'center top', label: __( 'Center Top', 'kadence-blocks' ) }, { value: 'center center', label: __( 'Center Center', 'kadence-blocks' ) }, { value: 'center bottom', label: __( 'Center Bottom', 'kadence-blocks' ) }, { value: 'left top', label: __( 'Left Top', 'kadence-blocks' ) }, { value: 'left center', label: __( 'Left Center', 'kadence-blocks' ) }, { value: 'left bottom', label: __( 'Left Bottom', 'kadence-blocks' ) }, { value: 'right top', label: __( 'Right Top', 'kadence-blocks' ) }, { value: 'right center', label: __( 'Right Center', 'kadence-blocks' ) }, { value: 'right bottom', label: __( 'Right Bottom', 'kadence-blocks' ) }, ]; export const DIRECTIONAL_ORIENTATION_ANGLE_MAP = { top: 0, 'top right': 45, 'right top': 45, right: 90, 'right bottom': 135, 'bottom right': 135, bottom: 180, 'bottom left': 225, 'left bottom': 225, left: 270, 'top left': 315, 'left top': 315, }; react/src/gradient-control/parser.js 0000644 00000026772 15151531430 0013552 0 ustar 00 // Copyright (c) 2014 Rafael Caricio. All rights reserved. // Use of this source code is governed by (The MIT License). var GradientParser = (GradientParser || {}); GradientParser.stringify = (function() { var visitor = { 'visit_linear-gradient': function(node) { return visitor.visit_gradient(node); }, 'visit_repeating-linear-gradient': function(node) { return visitor.visit_gradient(node); }, 'visit_radial-gradient': function(node) { return visitor.visit_gradient(node); }, 'visit_repeating-radial-gradient': function(node) { return visitor.visit_gradient(node); }, 'visit_gradient': function(node) { var orientation = visitor.visit(node.orientation); if (orientation) { orientation += ', '; } return node.type + '(' + orientation + visitor.visit(node.colorStops) + ')'; }, 'visit_shape': function(node) { var result = node.value, at = visitor.visit(node.at), style = visitor.visit(node.style); if (style) { result += ' ' + style; } if (at) { result += ' at ' + at; } return result; }, 'visit_default-radial': function(node) { var result = '', at = visitor.visit(node.at); if (at) { result += at; } return result; }, 'visit_extent-keyword': function(node) { var result = node.value, at = visitor.visit(node.at); if (at) { result += ' at ' + at; } return result; }, 'visit_position-keyword': function(node) { return node.value; }, 'visit_position': function(node) { return visitor.visit(node.value.x) + ' ' + visitor.visit(node.value.y); }, 'visit_%': function(node) { return node.value + '%'; }, 'visit_em': function(node) { return node.value + 'em'; }, 'visit_px': function(node) { return node.value + 'px'; }, 'visit_literal': function(node) { return visitor.visit_color(node.value, node); }, 'visit_hex': function(node) { return visitor.visit_color('#' + node.value, node); }, 'visit_rgb': function(node) { return visitor.visit_color('rgb(' + node.value.join(', ') + ')', node); }, 'visit_rgba': function(node) { return visitor.visit_color('rgba(' + node.value.join(', ') + ')', node); }, 'visit_color': function(resultColor, node) { var result = resultColor, length = visitor.visit(node.length); if (length) { result += ' ' + length; } return result; }, 'visit_angular': function(node) { return node.value + 'deg'; }, 'visit_directional': function(node) { return 'to ' + node.value; }, 'visit_array': function(elements) { var result = '', size = elements.length; elements.forEach(function(element, i) { result += visitor.visit(element); if (i < size - 1) { result += ', '; } }); return result; }, 'visit': function(element) { if (!element) { return ''; } var result = ''; if (element instanceof Array) { return visitor.visit_array(element, result); } else if (element.type) { var nodeVisitor = visitor['visit_' + element.type]; if (nodeVisitor) { return nodeVisitor(element); } else { throw Error('Missing visitor visit_' + element.type); } } else { throw Error('Invalid node.'); } } }; return function(root) { return visitor.visit(root); }; })(); // Copyright (c) 2014 Rafael Caricio. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. var GradientParser = (GradientParser || {}); GradientParser.parse = (function() { var tokens = { linearGradient: /^(\-(webkit|o|ms|moz)\-)?(linear\-gradient)/i, repeatingLinearGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-linear\-gradient)/i, radialGradient: /^(\-(webkit|o|ms|moz)\-)?(radial\-gradient)/i, repeatingRadialGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-radial\-gradient)/i, sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|left|right|top|bottom)/i, extentKeywords: /^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/, positionKeywords: /^(left|center|right|top|bottom)/i, pixelValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/, percentageValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/, emValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/, angleValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/, startCall: /^\(/, endCall: /^\)/, comma: /^,/, hexColor: /^\#([0-9a-fA-F]+)/, literalColor: /^([a-zA-Z]+)/, rgbColor: /^rgb/i, rgbaColor: /^rgba/i, varColor: /^var/i, number: /^(([0-9]*\.[0-9]+)|([0-9]+\.?))/, variable: /var\(([a-zA-Z-0-9_#,\s]+)\)/ }; var input = ''; function error(msg) { var err = new Error(input + ': ' + msg); err.source = input; throw err; } function getAST() { var ast = matchListDefinitions(); if (input.length > 0) { error('Invalid input not EOF'); } return ast; } function matchListDefinitions() { return matchListing(matchDefinition); } function matchDefinition() { return matchGradient( 'linear-gradient', tokens.linearGradient, matchLinearOrientation) || matchGradient( 'repeating-linear-gradient', tokens.repeatingLinearGradient, matchLinearOrientation) || matchGradient( 'radial-gradient', tokens.radialGradient, matchListRadialOrientations) || matchGradient( 'repeating-radial-gradient', tokens.repeatingRadialGradient, matchListRadialOrientations); } function matchGradient(gradientType, pattern, orientationMatcher) { return matchCall(pattern, function(captures) { var orientation = orientationMatcher(); if (orientation) { if (!scan(tokens.comma)) { error('Missing comma before color stops'); } } return { type: gradientType, orientation: orientation, colorStops: matchListing(matchColorStop) }; }); } function matchCall(pattern, callback) { var captures = scan(pattern); if (captures) { if (!scan(tokens.startCall)) { error('Missing ('); } var result = callback(captures); if (!scan(tokens.endCall)) { error('Missing )'); } return result; } } function matchLinearOrientation() { return matchSideOrCorner() || matchAngle(); } function matchSideOrCorner() { return match('directional', tokens.sideOrCorner, 1); } function matchAngle() { return match('angular', tokens.angleValue, 1); } function matchListRadialOrientations() { var radialOrientations, radialOrientation = matchRadialOrientation(), lookaheadCache; if (radialOrientation) { radialOrientations = []; radialOrientations.push(radialOrientation); lookaheadCache = input; if (scan(tokens.comma)) { radialOrientation = matchRadialOrientation(); if (radialOrientation) { radialOrientations.push(radialOrientation); } else { input = lookaheadCache; } } } return radialOrientations; } function matchRadialOrientation() { var radialType = matchCircle() || matchEllipse(); if (radialType) { radialType.at = matchAtPosition(); } else { var extent = matchExtentKeyword(); if (extent) { radialType = extent; var positionAt = matchAtPosition(); if (positionAt) { radialType.at = positionAt; } } else { var defaultPosition = matchPositioning(); if (defaultPosition) { radialType = { type: 'default-radial', at: defaultPosition }; } } } return radialType; } function matchCircle() { var circle = match('shape', /^(circle)/i, 0); if (circle) { circle.style = matchLength() || matchExtentKeyword(); } return circle; } function matchEllipse() { var ellipse = match('shape', /^(ellipse)/i, 0); if (ellipse) { ellipse.style = matchDistance() || matchExtentKeyword(); } return ellipse; } function matchExtentKeyword() { return match('extent-keyword', tokens.extentKeywords, 1); } function matchAtPosition() { if (match('position', /^at/, 0)) { var positioning = matchPositioning(); if (!positioning) { error('Missing positioning value'); } return positioning; } } function matchPositioning() { var location = matchCoordinates(); if (location.x || location.y) { return { type: 'position', value: location }; } } function matchCoordinates() { return { x: matchDistance(), y: matchDistance() }; } function matchListing(matcher) { var captures = matcher(), result = []; if (captures) { result.push(captures); while (scan(tokens.comma)) { captures = matcher(); if (captures) { result.push(captures); } else { error('One extra comma'); } } } return result; } function matchColorStop() { var color = matchColor(); if (!color) { error('Expected color definition'); } color.length = matchDistance(); return color; } function matchColor() { return matchHexColor() || matchRGBAColor() || matchRGBColor() || matchVARColor() || matchLiteralColor(); } function matchLiteralColor() { return match('literal', tokens.literalColor, 0); } function matchVARColor() { return match('literal', tokens.variable, 0); } function matchHexColor() { return match('hex', tokens.hexColor, 1); } function matchRGBColor() { return matchCall(tokens.rgbColor, function() { return { type: 'rgb', value: matchListing(matchNumber) }; }); } function matchRGBAColor() { return matchCall(tokens.rgbaColor, function() { return { type: 'rgba', value: matchListing(matchNumber) }; }); } function matchNumber() { return scan(tokens.number)[1]; } function matchDistance() { return match('%', tokens.percentageValue, 1) || matchPositionKeyword() || matchLength(); } function matchPositionKeyword() { return match('position-keyword', tokens.positionKeywords, 1); } function matchLength() { return match('px', tokens.pixelValue, 1) || match('em', tokens.emValue, 1); } function match(type, pattern, captureIndex) { var captures = scan(pattern); if (captures) { return { type: type, value: captures[captureIndex] }; } } function scan(regexp) { var captures, blankCaptures; blankCaptures = /^[\n\r\t\s]+/.exec(input); if (blankCaptures) { consume(blankCaptures[0].length); } captures = regexp.exec(input); if (captures) { consume(captures[0].length); } return captures; } function consume(size) { input = input.substr(size); } return function(code) { input = code.toString(); return getAST(); }; })(); exports.parse = GradientParser.parse; exports.stringify = GradientParser.stringify; react/src/gradient-control/serializer.js 0000644 00000003156 15151531430 0014416 0 ustar 00 export function serializeGradientColor( { type, value } ) { if ( type === 'literal' ) { return value; } if ( type === 'hex' ) { return `#${ value }`; } return `${ type }(${ value.join( ',' ) })`; } export function serializeGradientPosition( position ) { if ( ! position ) { return ''; } const { value, type } = position; return `${ value }${ type }`; } export function serializeGradientColorStop( { type, value, length } ) { return `${ serializeGradientColor( { type, value, } ) } ${ serializeGradientPosition( length ) }`; } export function serializeGradientOrientation( type, orientation ) { if ( 'radial-gradient' === type ) { if ( ! orientation || ! orientation[0] || orientation[0].type !== 'shape' ) { return; } if ( '%' === orientation[0].at.value.x.type ) { return `${ orientation[0].value } at ${ orientation[0].at.value.x.value }% ${ orientation[0].at.value.y.value }%`; } return `${ orientation[0].value } at ${ orientation[0].at.value.x.value } ${ orientation[0].at.value.y.value }`; } if ( ! orientation || orientation.type !== 'angular' ) { return; } return `${ orientation.value }deg`; } export function serializeGradient( { type, orientation, colorStops } ) { const serializedOrientation = serializeGradientOrientation( type, orientation ); const serializedColorStops = colorStops .sort( ( colorStop1, colorStop2 ) => { return ( ( colorStop1?.length?.value ?? 0 ) - ( colorStop2?.length?.value ?? 0 ) ); } ) .map( serializeGradientColorStop ); return `${ type }(${ [ serializedOrientation, ...serializedColorStops ] .filter( Boolean ) .join( ',' ) })`; } react/src/gradient-control/gradient-bar/constants.js 0000644 00000000675 15151531430 0016623 0 ustar 00 export const GRADIENT_MARKERS_WIDTH = 16; export const INSERT_POINT_WIDTH = 16; export const MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT = 10; export const MINIMUM_DISTANCE_BETWEEN_POINTS = 0; export const MINIMUM_SIGNIFICANT_MOVE = 5; export const KEYBOARD_CONTROL_POINT_VARIATION = MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT; export const MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_MARKER = ( INSERT_POINT_WIDTH + GRADIENT_MARKERS_WIDTH ) / 2; react/src/gradient-control/gradient-bar/control-points.js 0000644 00000053526 15151531430 0017604 0 ustar 00 /** * External dependencies */ import classnames from "classnames"; import { colord } from "colord"; import { map } from "lodash"; /** * WordPress dependencies */ import { useSetting } from "@wordpress/block-editor"; import { useInstanceId, useMergeRefs } from "@wordpress/compose"; import { useEffect, useRef, useState, useMemo } from "@wordpress/element"; import { __, sprintf } from "@wordpress/i18n"; import { plus } from "@wordpress/icons"; const globeIcon = ( <svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" strokeLinejoin="round" strokeMiterlimit="2" clipRule="evenodd" viewBox="0 0 20 20" > <path fill="none" d="M0 0H20V20H0z"></path> <path fillRule="nonzero" d="M10 1a9 9 0 10.001 18.001A9 9 0 0010 1zm3.46 11.95c0 1.47-.8 3.3-4.06 4.7.3-4.17-2.52-3.69-3.2-5A3.25 3.25 0 018 10.1c-1.552-.266-3-.96-4.18-2 .05.47.28.904.64 1.21a4.18 4.18 0 01-1.94-1.5 7.94 7.94 0 017.25-5.63c-.84 1.38-1.5 4.13 0 5.57C8.23 8 7.26 6 6.41 6.79c-1.13 1.06.33 2.51 3.42 3.08 3.29.59 3.66 1.58 3.63 3.08zm1.34-4c-.32-1.11.62-2.23 1.69-3.14a7.27 7.27 0 01.84 6.68c-.77-1.89-2.17-2.32-2.53-3.57v.03z" ></path> </svg> ); /** * Internal dependencies */ // import { HStack } from '../../h-stack'; // import { ColorPicker } from '../../color-picker'; // import { VisuallyHidden } from '../../visually-hidden'; import ColorPicker from "../../common/color-picker"; import { __experimentalHStack as HStack, Button, VisuallyHidden, Popover, Dashicon, Tooltip, Icon, } from "@wordpress/components"; import { addControlPoint, clampPercent, removeControlPoint, updateControlPointColor, updateControlPointColorByPosition, updateControlPointPosition, getHorizontalRelativeGradientPosition, } from "./utils"; import { MINIMUM_SIGNIFICANT_MOVE, KEYBOARD_CONTROL_POINT_VARIATION, } from "./constants"; function useObservableState(initialState, onStateChange) { const [state, setState] = useState(initialState); return [ state, (value) => { setState(value); if (onStateChange) { onStateChange(value); } }, ]; } function CustomDropdown(props) { const { renderContent, renderToggle, className, contentClassName, expandOnMobile, headerTitle, focusOnMount, position, popoverProps, onClose, onToggle, style, popoverRef, } = props; // Use internal state instead of a ref to make sure that the component // re-renders when the popover's anchor updates. const [fallbackPopoverAnchor, setFallbackPopoverAnchor] = useState(null); const containerRef = useRef(); const [isOpen, setIsOpen] = useObservableState(false, onToggle); useEffect( () => () => { if (onToggle && isOpen) { onToggle(false); } }, [onToggle, isOpen] ); function toggle() { setIsOpen(!isOpen); } /** * Closes the popover when focus leaves it unless the toggle was pressed or * focus has moved to a separate dialog. The former is to let the toggle * handle closing the popover and the latter is to preserve presence in * case a dialog has opened, allowing focus to return when it's dismissed. */ function closeIfFocusOutside() { const { ownerDocument } = containerRef.current; const dialog = ownerDocument.activeElement.closest('[role="dialog"]'); if ( !containerRef.current.contains(ownerDocument.activeElement) && (!dialog || dialog.contains(containerRef.current)) ) { close(); } } function close() { if (onClose) { onClose(); } setIsOpen(false); } const args = { isOpen, onToggle: toggle, onClose: close }; const popoverPropsHaveAnchor = !!popoverProps?.anchor || // Note: `anchorRef`, `getAnchorRect` and `anchorRect` are deprecated and // be removed from `Popover` from WordPress 6.3 !!popoverProps?.anchorRef || !!popoverProps?.getAnchorRect || !!popoverProps?.anchorRect; return ( <div className={classnames("components-dropdown", className)} ref={useMergeRefs([setFallbackPopoverAnchor, containerRef])} // Some UAs focus the closest focusable parent when the toggle is // clicked. Making this div focusable ensures such UAs will focus // it and `closeIfFocusOutside` can tell if the toggle was clicked. tabIndex="-1" style={style} > {renderToggle(args)} {isOpen && ( <Popover position={position} onClose={close} onFocusOutside={closeIfFocusOutside} expandOnMobile={expandOnMobile} headerTitle={headerTitle} focusOnMount={focusOnMount} // This value is used to ensure that the dropdowns // align with the editor header by default. offset={13} anchorRef={ !popoverPropsHaveAnchor ? popoverRef.current : undefined } anchor={ !popoverPropsHaveAnchor ? fallbackPopoverAnchor : undefined } {...popoverProps} className={classnames( "components-dropdown__content", popoverProps ? popoverProps.className : undefined, contentClassName )} > {renderContent(args)} </Popover> )} </div> ); } function CustomColorPickerDropdown({ isRenderedInSidebar, popoverProps: receivedPopoverProps, ...props }) { const popoverProps = useMemo( () => ({ shift: true, ...(isRenderedInSidebar ? { // When in the sidebar: open to the left (stacking), // leaving the same gap as the parent popover. placement: "left-start", offset: 34, } : { // Default behavior: open below the anchor placement: "bottom", offset: 8, }), ...receivedPopoverProps, }), [isRenderedInSidebar, receivedPopoverProps] ); return ( <CustomDropdown contentClassName="components-color-palette__custom-color-dropdown-content kadence-pop-color-popover" popoverProps={popoverProps} {...props} /> ); } function ControlPointButton({ isOpen, position, color, ...additionalProps }) { const instanceId = useInstanceId(ControlPointButton); const descriptionId = `components-custom-gradient-picker__control-point-button-description-${instanceId}`; return ( <> <Button aria-label={sprintf( // translators: %1$s: gradient position e.g: 70, %2$s: gradient color code e.g: rgb(52,121,151). __( "Gradient control point at position %1$s%% with color code %2$s." ), position, color )} aria-describedby={descriptionId} aria-haspopup="true" aria-expanded={isOpen} className={classnames( "components-custom-gradient-picker__control-point-button", { "is-active": isOpen, } )} {...additionalProps} /> <VisuallyHidden id={descriptionId}> {__( "Use your left or right arrow keys or drag and drop with the mouse to change the gradient position. Press the button to change the color or remove the control point." )} </VisuallyHidden> </> ); } function GradientColorPickerDropdown({ popoverRef, isRenderedInSidebar, className, ...props }) { // Open the popover below the gradient control/insertion point const popoverProps = useMemo( () => ({ placement: "bottom", offset: 8, flip: false, }), [] ); const mergedClassName = classnames( "components-custom-gradient-picker__control-point-dropdown", className ); return ( <CustomColorPickerDropdown isRenderedInSidebar={isRenderedInSidebar} popoverRef={popoverRef} popoverProps={popoverProps} className={mergedClassName} {...props} /> ); } function getReadableColor(value, colors) { if (!value) { return ""; } if (!colors) { return value; } if (value.startsWith("var(--global-")) { let slug = value.replace("var(--global-", ""); slug = slug.substring(0, 9); slug = slug.replace(",", ""); const found = colors.find((option) => option.slug === slug); if (found) { return found.color; } } return value; } function ControlPoints({ disableRemove, gradientPickerDomRef, ignoreMarkerPosition, value: controlPoints, onChange, onStartControlPointChange, onStopControlPointChange, isRenderedInSidebar, popoverRef, activePalette, }) { const controlPointMoveState = useRef(); const onMouseMove = (event) => { const relativePosition = getHorizontalRelativeGradientPosition( event.clientX, gradientPickerDomRef.current ); const { initialPosition, index, significantMoveHappened } = controlPointMoveState.current; if ( !significantMoveHappened && Math.abs(initialPosition - relativePosition) >= MINIMUM_SIGNIFICANT_MOVE ) { controlPointMoveState.current.significantMoveHappened = true; } onChange( updateControlPointPosition(controlPoints, index, relativePosition) ); }; const cleanEventListeners = () => { if ( window && window.removeEventListener && controlPointMoveState.current && controlPointMoveState.current.listenersActivated ) { window.removeEventListener("mousemove", onMouseMove); window.removeEventListener("mouseup", cleanEventListeners); onStopControlPointChange(); controlPointMoveState.current.listenersActivated = false; } }; // Adding `cleanEventListeners` to the dependency array below requires the function itself to be wrapped in a `useCallback` // This memoization would prevent the event listeners from being properly cleaned. // Instead, we'll pass a ref to the function in our `useEffect` so `cleanEventListeners` itself is no longer a dependency. const cleanEventListenersRef = useRef(); cleanEventListenersRef.current = cleanEventListeners; useEffect(() => { return () => { cleanEventListenersRef.current(); }; }, []); const disableCustomColors = false; const colors = activePalette ? activePalette : useSetting("color.palette"); return controlPoints.map((point, index) => { const initialPosition = point?.position; const pointColor = getReadableColor(point.color, colors); return ( ignoreMarkerPosition !== initialPosition && ( <GradientColorPickerDropdown isRenderedInSidebar={isRenderedInSidebar} key={index} popoverRef={popoverRef} onClose={onStopControlPointChange} renderToggle={({ isOpen, onToggle }) => ( <ControlPointButton key={index} onClick={() => { if ( controlPointMoveState.current && controlPointMoveState.current .significantMoveHappened ) { return; } if (isOpen) { onStopControlPointChange(); } else { onStartControlPointChange(); } onToggle(); }} onMouseDown={() => { if (window && window.addEventListener) { controlPointMoveState.current = { initialPosition, index, significantMoveHappened: false, listenersActivated: true, }; onStartControlPointChange(); window.addEventListener( "mousemove", onMouseMove ); window.addEventListener( "mouseup", cleanEventListeners ); } }} onKeyDown={(event) => { if (event.code === "ArrowLeft") { // Stop propagation of the key press event to avoid focus moving // to another editor area. event.stopPropagation(); onChange( updateControlPointPosition( controlPoints, index, clampPercent( point.position - KEYBOARD_CONTROL_POINT_VARIATION ) ) ); } else if (event.code === "ArrowRight") { // Stop propagation of the key press event to avoid focus moving // to another editor area. event.stopPropagation(); onChange( updateControlPointPosition( controlPoints, index, clampPercent( point.position + KEYBOARD_CONTROL_POINT_VARIATION ) ) ); } }} isOpen={isOpen} position={point.position} color={point.color} /> )} renderContent={({ onClose }) => ( <div className="kadence-pop-gradient-color-picker"> <HStack className="components-custom-gradient-picker__remove-control-point-wrapper" alignment="center" > <Button onClick={() => { onClose(); }} variant="link" > {__("Close Color Picker", "kadence")} </Button> </HStack> {!disableCustomColors && ( <ColorPicker color={pointColor} onChange={(color) => { onChange( updateControlPointColor( controlPoints, index, colord(color.rgb).toRgbString() ) ); }} onChangeComplete={(color) => { onChange( updateControlPointColor( controlPoints, index, colord(color.rgb).toRgbString() ) ); }} /> )} {colors && ( <> <div style={{ paddingTop: "15px", paddingBottom: "15px", }} className="kadence-swatches-wrap" > {map( colors, ({ color, slug, name }) => { const key = `${color}${ slug || "" }`; const palette = slug.replace( "theme-", "" ); const isActive = slug.startsWith( "palette" ) && pointColor === color; return ( <div key={key} style={{ width: 26, height: 26, marginBottom: 0, transform: "scale(1)", transition: "100ms transform ease", }} className="kadence-swatche-item-wrap" > <Button className={`kadence-swatch-item ${ isActive ? "swatch-active" : "swatch-inactive" }`} style={{ height: "100%", width: "100%", border: "1px solid rgb(218, 218, 218)", borderRadius: "50%", color: slug === "palette10" ? "var(--global-palette10)" : `${color}`, boxShadow: `inset 0 0 0 ${ 26 / 2 }px`, transition: "100ms box-shadow ease", }} onClick={() => { if ( slug.startsWith( "palette" ) ) { onChange( updateControlPointColor( controlPoints, index, "var(--global-" + palette + "," + color + ")" ) ); } else { onChange( updateControlPointColor( controlPoints, index, colord( color ).toRgbString() ) ); } }} tabIndex={0} > <Icon className="dashicon" icon={globeIcon} /> </Button> </div> ); } )} </div> </> )} {!disableRemove && controlPoints.length > 2 && ( <HStack className="components-custom-gradient-picker__remove-control-point-wrapper" alignment="center" > <Button onClick={() => { onChange( removeControlPoint( controlPoints, index ) ); onClose(); }} variant="link" > {__("Remove Control Point", "kadence")} </Button> </HStack> )} </div> )} style={{ left: `${point.position}%`, transform: "translateX( -50% )", }} /> ) ); }); } function InsertPoint({ value: controlPoints, onChange, onOpenInserter, onCloseInserter, insertPosition, isRenderedInSidebar, activePalette, popoverRef, }) { const [alreadyInsertedPoint, setAlreadyInsertedPoint] = useState(false); const disableCustomColors = false; const colors = activePalette ? activePalette : useSetting("color.palette"); const [tempColor, setTempColor] = useState(""); const pointColor = getReadableColor(tempColor, colors); return ( <GradientColorPickerDropdown isRenderedInSidebar={isRenderedInSidebar} popoverRef={popoverRef} className="components-custom-gradient-picker__inserter" onClose={() => { onCloseInserter(); }} renderToggle={({ isOpen, onToggle }) => ( <Button aria-expanded={isOpen} aria-haspopup="true" onClick={() => { if (isOpen) { onCloseInserter(); } else { setAlreadyInsertedPoint(false); onOpenInserter(); } onToggle(); }} className="components-custom-gradient-picker__insert-point-dropdown" icon={plus} /> )} renderContent={() => ( <div className="kadence-pop-gradient-color-picker"> <HStack className="components-custom-gradient-picker__remove-control-point-wrapper" alignment="center" > <Button onClick={() => { onCloseInserter(); }} variant="link" > {__("Close Color Picker", "kadence")} </Button> </HStack> {!disableCustomColors && ( <ColorPicker color={pointColor} onChange={(color) => { setTempColor(colord(color.rgb).toRgbString()); if (!alreadyInsertedPoint) { onChange( addControlPoint( controlPoints, insertPosition, colord(color.rgb).toRgbString() ) ); setAlreadyInsertedPoint(true); } else { onChange( updateControlPointColorByPosition( controlPoints, insertPosition, colord(color.rgb).toRgbString() ) ); } }} onChangeComplete={(color) => { setTempColor(colord(color.rgb).toRgbString()); if (!alreadyInsertedPoint) { onChange( addControlPoint( controlPoints, insertPosition, colord(color.rgb).toRgbString() ) ); setAlreadyInsertedPoint(true); } else { onChange( updateControlPointColorByPosition( controlPoints, insertPosition, colord(color.rgb).toRgbString() ) ); } }} /> )} {colors && ( <div style={{ paddingTop: "15px", paddingBottom: "15px", }} className="kadence-swatches-wrap" > {map(colors, ({ color, slug, name }) => { const key = `${color}${slug || ""}`; const palette = slug.replace("theme-", ""); const isActive = slug.startsWith("palette") && pointColor === color; return ( <div key={key} style={{ width: 26, height: 26, marginBottom: 0, transform: "scale(1)", transition: "100ms transform ease", }} className="kadence-swatche-item-wrap" > <Button className={`kadence-swatch-item ${ isActive ? "swatch-active" : "swatch-inactive" }`} style={{ height: "100%", width: "100%", border: "1px solid rgb(218, 218, 218)", borderRadius: "50%", color: slug === "palette10" ? "var(--global-palette10)" : `${color}`, boxShadow: `inset 0 0 0 ${ 26 / 2 }px`, transition: "100ms box-shadow ease", }} onClick={() => { setTempColor( colord(color).toRgbString() ); if (!alreadyInsertedPoint) { if ( slug.startsWith( "palette" ) ) { onChange( addControlPoint( controlPoints, insertPosition, "var(--global-" + palette + "," + color + ")" ) ); } else { onChange( addControlPoint( controlPoints, insertPosition, colord( color ).toRgbString() ) ); } setAlreadyInsertedPoint( true ); } else { if ( slug.startsWith( "palette" ) ) { onChange( updateControlPointColorByPosition( controlPoints, insertPosition, "var(--global-" + palette + "," + color + ")" ) ); } else { onChange( updateControlPointColorByPosition( controlPoints, insertPosition, colord( color ).toRgbString() ) ); } } }} tabIndex={0} > <Icon className="dashicon" icon={globeIcon} /> </Button> </div> ); })} </div> )} </div> )} style={ insertPosition !== null ? { left: `${insertPosition}%`, transform: "translateX( -50% )", } : undefined } /> ); } ControlPoints.InsertPoint = InsertPoint; export default ControlPoints; react/src/gradient-control/gradient-bar/utils.js 0000644 00000013074 15151531430 0015744 0 ustar 00 /** * Internal dependencies */ import { MINIMUM_DISTANCE_BETWEEN_POINTS } from './constants'; /** * Control point for the gradient bar. * * @typedef {Object} ControlPoint * @property {string} color Color of the control point. * @property {number} position Integer position of the control point as a percentage. */ /** * Color as parsed from the gradient by gradient-parser. * * @typedef {Object} Color * @property {string} r Red component. * @property {string} g Green component. * @property {string} b Green component. * @property {string} [a] Optional alpha component. */ /** * Clamps a number between 0 and 100. * * @param {number} value Value to clamp. * * @return {number} Value clamped between 0 and 100. */ export function clampPercent( value ) { return Math.max( 0, Math.min( 100, value ) ); } /** * Check if a control point is overlapping with another. * * @param {ControlPoint[]} value Array of control points. * @param {number} initialIndex Index of the position to test. * @param {number} newPosition New position of the control point. * @param {number} minDistance Distance considered to be overlapping. * * @return {boolean} True if the point is overlapping. */ export function isOverlapping( value, initialIndex, newPosition, minDistance = MINIMUM_DISTANCE_BETWEEN_POINTS ) { const initialPosition = value[ initialIndex ].position; const minPosition = Math.min( initialPosition, newPosition ); const maxPosition = Math.max( initialPosition, newPosition ); return value.some( ( { position }, index ) => { return ( index !== initialIndex && ( Math.abs( position - newPosition ) < minDistance || ( minPosition < position && position < maxPosition ) ) ); } ); } /** * Adds a control point from an array and returns the new array. * * @param {ControlPoint[]} points Array of control points. * @param {number} position Position to insert the new point. * @param {Color} color Color to update the control point at index. * * @return {ControlPoint[]} New array of control points. */ export function addControlPoint( points, position, color ) { const nextIndex = points.findIndex( ( point ) => point.position > position ); const newPoint = { color, position }; const newPoints = points.slice(); newPoints.splice( nextIndex - 1, 0, newPoint ); return newPoints; } /** * Removes a control point from an array and returns the new array. * * @param {ControlPoint[]} points Array of control points. * @param {number} index Index to remove. * * @return {ControlPoint[]} New array of control points. */ export function removeControlPoint( points, index ) { return points.filter( ( point, pointIndex ) => { return pointIndex !== index; } ); } /** * Updates a control point from an array and returns the new array. * * @param {ControlPoint[]} points Array of control points. * @param {number} index Index to update. * @param {ControlPoint[]} newPoint New control point to replace the index. * * @return {ControlPoint[]} New array of control points. */ export function updateControlPoint( points, index, newPoint ) { const newValue = points.slice(); newValue[ index ] = newPoint; return newValue; } /** * Updates the position of a control point from an array and returns the new array. * * @param {ControlPoint[]} points Array of control points. * @param {number} index Index to update. * @param {number} newPosition Position to move the control point at index. * * @return {ControlPoint[]} New array of control points. */ export function updateControlPointPosition( points, index, newPosition ) { if ( isOverlapping( points, index, newPosition ) ) { return points; } const newPoint = { ...points[ index ], position: newPosition, }; return updateControlPoint( points, index, newPoint ); } /** * Updates the position of a control point from an array and returns the new array. * * @param {ControlPoint[]} points Array of control points. * @param {number} index Index to update. * @param {Color} newColor Color to update the control point at index. * * @return {ControlPoint[]} New array of control points. */ export function updateControlPointColor( points, index, newColor ) { const newPoint = { ...points[ index ], color: newColor, }; return updateControlPoint( points, index, newPoint ); } /** * Updates the position of a control point from an array and returns the new array. * * @param {ControlPoint[]} points Array of control points. * @param {number} position Position of the color stop. * @param {string} newColor Color to update the control point at index. * * @return {ControlPoint[]} New array of control points. */ export function updateControlPointColorByPosition( points, position, newColor ) { const index = points.findIndex( ( point ) => point.position === position ); return updateControlPointColor( points, index, newColor ); } /** * Gets the horizontal coordinate when dragging a control point with the mouse. * * @param {number} mouseXCoordinate Horizontal coordinate of the mouse position. * @param {Element} containerElement Container for the gradient picker. * * @return {number} Whole number percentage from the left. */ export function getHorizontalRelativeGradientPosition( mouseXCoordinate, containerElement ) { if ( ! containerElement ) { return; } const { x, width } = containerElement.getBoundingClientRect(); const absolutePositionValue = mouseXCoordinate - x; return Math.round( clampPercent( ( absolutePositionValue * 100 ) / width ) ); } react/src/gradient-control/gradient-bar/index.js 0000644 00000010670 15151531430 0015712 0 ustar 00 /** * External dependencies */ import { some } from 'lodash'; import classnames from 'classnames'; /** * WordPress dependencies */ import { useRef, useReducer } from '@wordpress/element'; /** * Internal dependencies */ import ControlPoints from './control-points'; import { getHorizontalRelativeGradientPosition } from './utils'; import { MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT } from './constants'; function customGradientBarReducer( state, action ) { switch ( action.type ) { case 'MOVE_INSERTER': if ( state.id === 'IDLE' || state.id === 'MOVING_INSERTER' ) { return { id: 'MOVING_INSERTER', insertPosition: action.insertPosition, }; } break; case 'STOP_INSERTER_MOVE': if ( state.id === 'MOVING_INSERTER' ) { return { id: 'IDLE', }; } break; case 'OPEN_INSERTER': if ( state.id === 'MOVING_INSERTER' ) { return { id: 'INSERTING_CONTROL_POINT', insertPosition: state.insertPosition, }; } break; case 'CLOSE_INSERTER': if ( state.id === 'INSERTING_CONTROL_POINT' ) { return { id: 'IDLE', }; } break; case 'START_CONTROL_CHANGE': if ( state.id === 'IDLE' ) { return { id: 'MOVING_CONTROL_POINT', }; } break; case 'STOP_CONTROL_CHANGE': if ( state.id === 'MOVING_CONTROL_POINT' ) { return { id: 'IDLE', }; } break; } return state; } const customGradientBarReducerInitialState = { id: 'IDLE' }; export default function CustomGradientBar( { background, hasGradient, value: controlPoints, onChange, disableInserter = false, isRenderedInSidebar, activePalette, } ) { const gradientMarkersContainerDomRef = useRef(); const [ gradientBarState, gradientBarStateDispatch ] = useReducer( customGradientBarReducer, customGradientBarReducerInitialState ); const popoverRef = useRef(); const onMouseEnterAndMove = ( event ) => { const insertPosition = getHorizontalRelativeGradientPosition( event.clientX, gradientMarkersContainerDomRef.current ); // If the insert point is close to an existing control point don't show it. if ( some( controlPoints, ( { position } ) => { return ( Math.abs( insertPosition - position ) < MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT ); } ) ) { if ( gradientBarState.id === 'MOVING_INSERTER' ) { gradientBarStateDispatch( { type: 'STOP_INSERTER_MOVE' } ); } return; } gradientBarStateDispatch( { type: 'MOVE_INSERTER', insertPosition } ); }; const onMouseLeave = () => { gradientBarStateDispatch( { type: 'STOP_INSERTER_MOVE' } ); }; const isMovingInserter = gradientBarState.id === 'MOVING_INSERTER'; const isInsertingControlPoint = gradientBarState.id === 'INSERTING_CONTROL_POINT'; return ( <div ref={ popoverRef } className={ classnames( 'components-custom-gradient-picker__gradient-bar', { 'has-gradient': hasGradient } ) } onMouseEnter={ onMouseEnterAndMove } onMouseMove={ onMouseEnterAndMove } style={ { background } } onMouseLeave={ onMouseLeave } > <div ref={ gradientMarkersContainerDomRef } className="components-custom-gradient-picker__markers-container" > { ! disableInserter && ( isMovingInserter || isInsertingControlPoint ) && ( <ControlPoints.InsertPoint isRenderedInSidebar={ isRenderedInSidebar } insertPosition={ gradientBarState.insertPosition } value={ controlPoints } onChange={ onChange } activePalette={ activePalette } popoverRef={ popoverRef } onOpenInserter={ () => { gradientBarStateDispatch( { type: 'OPEN_INSERTER', } ); } } onCloseInserter={ () => { gradientBarStateDispatch( { type: 'CLOSE_INSERTER', } ); } } /> ) } <ControlPoints isRenderedInSidebar={ isRenderedInSidebar } activePalette={ activePalette } disableRemove={ disableInserter } gradientPickerDomRef={ gradientMarkersContainerDomRef } ignoreMarkerPosition={ isInsertingControlPoint ? gradientBarState.insertPosition : undefined } value={ controlPoints } onChange={ onChange } popoverRef={ popoverRef } onStartControlPointChange={ () => { gradientBarStateDispatch( { type: 'START_CONTROL_CHANGE', } ); } } onStopControlPointChange={ () => { gradientBarStateDispatch( { type: 'STOP_CONTROL_CHANGE', } ); } } /> </div> </div> ); } react/src/gradient-control/utils.js 0000644 00000005247 15151531430 0013410 0 ustar 00 /** * External dependencies */ import gradientParser from './parser'; import { colord, extend } from 'colord'; /** * Internal dependencies */ import { DEFAULT_GRADIENT, HORIZONTAL_GRADIENT_ORIENTATION, DIRECTIONAL_ORIENTATION_ANGLE_MAP, } from './constants'; import { serializeGradient } from './serializer'; export function getLinearGradientRepresentation( gradientAST ) { return serializeGradient( { type: 'linear-gradient', orientation: HORIZONTAL_GRADIENT_ORIENTATION, colorStops: gradientAST.colorStops, } ); } function hasUnsupportedLength( item ) { return item.length === undefined || item.length.type !== '%'; } export function getGradientAstWithDefault( value ) { // gradientAST will contain the gradient AST as parsed by gradient-parser npm module. // More information of its structure available at https://www.npmjs.com/package/gradient-parser#ast. let gradientAST; try { gradientAST = gradientParser.parse( value )[ 0 ]; gradientAST.value = value; } catch ( error ) { gradientAST = gradientParser.parse( DEFAULT_GRADIENT )[ 0 ]; gradientAST.value = DEFAULT_GRADIENT; } if ( gradientAST.orientation?.type === 'directional' ) { gradientAST.orientation.type = 'angular'; gradientAST.orientation.value = DIRECTIONAL_ORIENTATION_ANGLE_MAP[ gradientAST.orientation.value ].toString(); } if ( gradientAST.colorStops.some( hasUnsupportedLength ) ) { const { colorStops } = gradientAST; const step = 100 / ( colorStops.length - 1 ); colorStops.forEach( ( stop, index ) => { stop.length = { value: step * index, type: '%', }; } ); gradientAST.value = serializeGradient( gradientAST ); } return gradientAST; } export function getGradientAstWithControlPoints( gradientAST, newControlPoints ) { return { ...gradientAST, colorStops: newControlPoints.map( ( { position, color } ) => { if ( color.startsWith( 'var(' ) ) { return { length: { type: '%', value: position?.toString(), }, type: 'literal', value: color, }; } const { r, g, b, a } = colord( color ).toRgb(); return { length: { type: '%', value: position?.toString(), }, type: a < 1 ? 'rgba' : 'rgb', value: a < 1 ? [ r, g, b, a ] : [ r, g, b ], }; } ), }; } export function getStopCssColor( colorStop ) { switch ( colorStop.type ) { case 'hex': return `#${ colorStop.value }`; case 'literal': return colorStop.value; case 'rgb': case 'rgba': return `${ colorStop.type }(${ colorStop.value.join( ',' ) })`; default: // Should be unreachable if passing an AST from gradient-parser. // See https://github.com/rafaelcaricio/gradient-parser#ast. return 'transparent'; } } react/src/gradient-control/index.js 0000644 00000027111 15151531430 0013351 0 ustar 00 /** * External dependencies */ import classnames from 'classnames'; //import './editor.scss'; /** * WordPress dependencies */ import { __ } from '@wordpress/i18n'; import { AnglePickerControl, Flex, FlexItem,__experimentalUnitControl as UnitControl, SelectControl, Button } from '@wordpress/components'; /** * Internal dependencies */ import { settings } from '@wordpress/icons'; import CustomGradientBar from './gradient-bar'; import { getGradientAstWithDefault, getLinearGradientRepresentation, getGradientAstWithControlPoints, getStopCssColor, } from './utils'; import { serializeGradient } from './serializer'; import { DEFAULT_LINEAR_GRADIENT_ANGLE, HORIZONTAL_GRADIENT_ORIENTATION, GRADIENT_OPTIONS, RADIAL_GRADIENT_ORIENTATION, DEFAULT_GRADIENT, DEFAULT_RADIAL_GRADIENT_POSITION, GRADIENT_POSITION_OPTIONS, DEFAULT_RADIAL_GRADIENT_SHAPE, } from './constants'; // import { // AccessoryWrapper, // SelectWrapper, // } from './styles/custom-gradient-picker-styles'; const GradientAnglePicker = ( { gradientAST, hasGradient, onChange } ) => { const angle = gradientAST?.orientation?.value ?? DEFAULT_LINEAR_GRADIENT_ANGLE; const onAngleChange = ( newAngle ) => { onChange( serializeGradient( { ...gradientAST, orientation: { type: 'angular', value: newAngle, }, } ) ); }; return ( <AnglePickerControl __nextHasNoMarginBottom onChange={ onAngleChange } labelPosition="top" value={ hasGradient ? angle : '' } /> ); }; const GradientTypePicker = ( { gradientAST, hasGradient, onChange } ) => { const { type } = gradientAST; const onSetLinearGradient = () => { onChange( serializeGradient( { ...gradientAST, ...( { orientation: HORIZONTAL_GRADIENT_ORIENTATION } ), type: 'linear-gradient', } ) ); }; const onSetRadialGradient = () => { onChange( serializeGradient( { ...gradientAST, ...( { orientation: RADIAL_GRADIENT_ORIENTATION, }), type: 'radial-gradient', } ) ); }; const handleOnChange = ( next ) => { if ( next === 'linear-gradient' ) { onSetLinearGradient(); } if ( next === 'radial-gradient' ) { onSetRadialGradient(); } }; return ( <SelectControl className="components-custom-gradient-picker__type-picker kadence-select-large" label={ __( 'Type' ) } labelPosition="top" onChange={ handleOnChange } options={ GRADIENT_OPTIONS } //size="__unstable-large" value={ hasGradient && type } /> ); }; const GradientPositionPicker = ( { gradientAST, hasGradient, onChange } ) => { let position = DEFAULT_RADIAL_GRADIENT_POSITION; let positionLeft = '50%'; let positionTop = '50%'; let positionType = 'position-keyword'; if ( gradientAST?.orientation && gradientAST?.orientation[0]?.at?.value?.x?.value ) { positionType = gradientAST.orientation[0].at.value.x.type; if ( positionType !== 'position-keyword' ) { position = gradientAST.orientation[0].at.value.x.value + '% ' + gradientAST.orientation[0].at.value.y.value + '%'; positionLeft = gradientAST.orientation[0].at.value.x.value + '%'; positionTop = gradientAST.orientation[0].at.value.y.value + '%'; } else { position = gradientAST.orientation[0].at.value.x.value + ' ' + gradientAST.orientation[0].at.value.y.value; } } const onPositionChange = ( newPosition ) => { const positionArray = newPosition.split( ' ' ); onChange( serializeGradient( { ...gradientAST, orientation: [ { type: 'shape', value: gradientAST.orientation[0].value, at: { type: 'position', value: { x: { type: 'position-keyword', value: ( undefined !== positionArray[0] && positionArray[0] ? positionArray[0] : 'center' ) }, y: { type: 'position-keyword', value: ( undefined !== positionArray[1] && positionArray[1] ? positionArray[1] : 'center' ) } } } } ], } ) ); }; const onLeftPositionChange = ( left ) => { onChange( serializeGradient( { ...gradientAST, orientation: [ { type: 'shape', value: gradientAST.orientation[0].value, at: { type: 'position', value: { x: { type: '%', value: parseInt( left, 10 ), }, y: gradientAST.orientation[0].at.value.y, } } } ], } ) ); }; const onTopPositionChange = ( top ) => { onChange( serializeGradient( { ...gradientAST, orientation: [ { type: 'shape', value: gradientAST.orientation[0].value, at: { type: 'position', value: { x: gradientAST.orientation[0].at.value.x, y: { type: '%', value: parseInt( top, 10 ), } } } } ], } ) ); }; const onPositionTypeChange = ( type ) => { const positionArray = position.split( ' ' ); let positionX = '%' === type ? 50 : 'center'; let positionY = '%' === type ? 50 : 'center'; if ( positionArray[0] ) { switch ( positionArray[ 0 ] ) { case 'left': positionX = 0; break; case 'right': positionX = '100'; break; case 'center': positionX = 50; break; case 0: positionY = 'left'; break; case 100: positionY = 'right'; break; case 50: positionY = 'center'; break; } } if ( positionArray[1] ) { switch ( positionArray[ 1 ] ) { case 'top': positionY = 0; break; case 'bottom': positionY = 100; break; case 'center': positionY = 50; break; case 0: positionY = 'top'; break; case 100: positionY = 'bottom'; break; case 50: positionY = 'center'; break; } } onChange( serializeGradient( { ...gradientAST, orientation: [ { type: 'shape', value: gradientAST.orientation[0].value, at: { type: 'position', value: { x: { type: type, value: positionX }, y: { type: type, value: positionY } } } } ], } ) ); }; if ( ! hasGradient ) { return; } return ( <div className={ `components-base-control kadence-gradient-position-control` }> <Flex justify="space-between" className={ 'kadence-gradient-position_header' } > <FlexItem> <label className="kadence-gradient-position__label">{ __( 'Position', 'kadence-blocks' ) }</label> </FlexItem> </Flex> { positionType === 'position-keyword' && ( <div className={ 'kadence-controls-content' }> <SelectControl className="components-custom-gradient-picker__position-picker" // label={ __( 'Position', 'kadence-blocks' ) } // labelPosition="top" onChange={ onPositionChange } options={ GRADIENT_POSITION_OPTIONS } value={ position } /> <Button className={'kadence-control-toggle-advanced only-icon'} label={ __( 'Set custom position', 'kadence-blocks' ) } icon={ settings } onClick={ () => onPositionTypeChange( '%' ) } isPressed={ false } isTertiary={ true } /> </div> ) } { positionType !== 'position-keyword' && ( <div className={ 'kadence-controls-content' }> <UnitControl labelPosition="left" label={ __( 'Left', 'kadence-blocks' ) } max={ 100 } min={ 0 } units={ [ { value: '%', label: '%' } ] } value={ positionLeft } onChange={ onLeftPositionChange } /> <UnitControl labelPosition="left" label={ __( 'Top', 'kadence-blocks' ) } max={ 100 } min={ 0 } value={ positionTop } units={ [ { value: '%', label: '%' } ] } onChange={ onTopPositionChange } /> <Button className={'kadence-control-toggle-advanced only-icon'} label={ __( 'Set standard position', 'kadence-blocks' ) } icon={ settings } onClick={ () => onPositionTypeChange( 'position-keyword' ) } isPrimary={true} isPressed={ true } /> </div> ) } </div> ); }; const GradientShapePicker = ( { gradientAST, hasGradient, onChange } ) => { let shape = DEFAULT_RADIAL_GRADIENT_SHAPE; if ( gradientAST?.orientation && gradientAST?.orientation[0]?.type === 'shape' && gradientAST?.orientation[0]?.value ) { shape = gradientAST.orientation[0].value; } const onShapeChange = ( newShape ) => { onChange( serializeGradient( { ...gradientAST, orientation: [ { type: 'shape', value: newShape, at: gradientAST.orientation[0].at, } ], } ) ); }; return ( <SelectControl className="components-custom-gradient-picker__shape-picker kadence-select-large" label={ __( 'Shape', 'kadence-blocks' ) } labelPosition="top" onChange={ onShapeChange } options={ [ { value: 'ellipse', label: __( 'Ellipse', 'kadence-blocks' ) }, { value: 'circle', label: __( 'Circle', 'kadence-blocks' ) }, ] } value={ hasGradient && shape } /> ); }; export default function CustomGradientPicker( { value, onChange, isRenderedInSidebar = false, activePalette = [], } ) { const gradientAST = getGradientAstWithDefault( value ); // On radial gradients the bar should display a linear gradient. // On radial gradients the bar represents a slice of the gradient from the center until the outside. // On liner gradients the bar represents the color stops from left to right independently of the angle. const background = getLinearGradientRepresentation( gradientAST ); const hasGradient = gradientAST.value !== DEFAULT_GRADIENT; // Control points color option may be hex from presets, custom colors will be rgb. // The position should always be a percentage. const controlPoints = gradientAST.colorStops.map( ( colorStop ) => ( { color: getStopCssColor( colorStop ), position: parseInt( colorStop.length.value ), } ) ); return ( <div className={ 'components-base-control components-custom-gradient-picker kadence-gradient-control' }> <div className='wrap-components-custom-gradient-picker'> <CustomGradientBar isRenderedInSidebar={isRenderedInSidebar} background={ background } hasGradient={ hasGradient } value={ controlPoints } activePalette={ activePalette } onChange={ ( newControlPoints ) => { onChange( serializeGradient( getGradientAstWithControlPoints( gradientAST, newControlPoints ) ) ); } } /> </div> <Flex gap={ 3 } className="components-custom-gradient-picker__ui-line" > <div className='components-custom-gradient-picker__item components-custom-gradient-picker-type'> <GradientTypePicker gradientAST={ gradientAST } hasGradient={ hasGradient } onChange={ onChange } /> </div> { gradientAST.type === 'linear-gradient' && ( <div className='components-custom-gradient-picker__item components-custom-gradient-picker-angle'> <GradientAnglePicker gradientAST={ gradientAST } hasGradient={ hasGradient } onChange={ onChange } /> </div> ) } { gradientAST.type === 'radial-gradient' && ( <div className='components-custom-gradient-picker__item components-custom-gradient-picker-shape'> <GradientShapePicker gradientAST={ gradientAST } hasGradient={ hasGradient } onChange={ onChange } /> </div> ) } </Flex> { gradientAST.type === 'radial-gradient' && ( <Flex gap={ 3 } className="components-custom-gradient-picker__ui-line" > <div className='components-custom-gradient-picker__item components-custom-gradient-picker-position'> <GradientPositionPicker gradientAST={ gradientAST } hasGradient={ hasGradient } onChange={ onChange } /> </div> </Flex> ) } </div> ); } react/src/gradient-control/editor.scss 0000644 00000013125 15151531430 0014067 0 ustar 00 .components-custom-gradient-picker__item { display: block; flex:5 1 0%; max-height: 100%; max-width: 100%; min-height: 0px; min-width: 0px; .kadence-controls-content { gap: 12px; } .kadence-controls-content .components-base-control { margin-bottom: 0; flex: 10 0 0; } .kadence-control-toggle-advanced.only-icon { flex: 0; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 600; font-style: normal; text-transform: uppercase; height: 30px; line-height: 1.2; border: 1px solid #CBD5E0; border-radius: 2px; background: transparent; color: #4A5568; padding: 4px; box-shadow: none; white-space: normal; svg { width: 20px; } &.is-primary { border-color: var(--wp-admin-theme-color, #00669b); background: var(--wp-admin-theme-color, #00669b); color: #fff; box-shadow: none; } } } .block-editor-block-inspector .components-custom-gradient-picker__item .kadence-select-large .components-select-control__input { height: 40px; min-height: 40px; } .kadence-gradient-position-control .kadence-gradient-position_header .kadence-gradient-position__label { margin: 0px 0px 8px; display:block; } .kadence-gradient-position-control .components-unit-control-wrapper { flex-grow: 1; } // .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button { // border-radius: 50%; // width: 30px; // height: 30px; // bottom: 100%; // top: auto; // margin-left: -15px; // } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-dropdown { position: absolute; height: 16px; width: 16px; top: 16px; display: flex; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button { height: inherit; width: inherit; border-radius: 50%; padding: 0; box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) #fff,0 0 2px 0 rgba(0, 0, 0, 0.25); outline: 2px solid transparent; position: static; top: auto; } // $grid-unit-20: 20px; // $grid-unit-60: 40px; // $radius-block-ui: 4px; // $grid-unit-15: 15px; // $grid-unit-30: 30px; // $grid-unit-10: 10px; // $border-width-tab: 1px; // $components-custom-gradient-picker__padding: $grid-unit-20; // 48px container, 16px handles inside, that leaves 32px padding, half of which is 1Ã¥6. // .components-custom-gradient-picker { // &:not(.is-next-has-no-margin) { // margin-top: $grid-unit-15; // margin-bottom: $grid-unit-30; // } // } // .components-custom-gradient-picker__gradient-bar:not(.has-gradient) { // opacity: 0.4; // } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar:not(.has-gradient) { opacity: 0.4; } .kadence-select-no-margin-after { } .kadence-gradient-control { .components-custom-gradient-picker__ui-line .components-base-control { margin-bottom: 0; } .components-custom-gradient-picker__ui-line .components-base-control .components-base-control__field { margin-bottom: 0; } } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar { border-radius: 2px; width: 100%; height: 48px; margin-bottom: 16px; padding-right: 0; .components-custom-gradient-picker__markers-container { position: relative; width: calc(100% - 48px); margin-left: auto; margin-right: auto; } .components-custom-gradient-picker__control-point-dropdown { position: absolute; height: 16px; width: 16px; top: 16px; display: flex; } .components-custom-gradient-picker__insert-point-dropdown { position: relative; // Same size as the .components-custom-gradient-picker__control-point-dropdown parent height: inherit; width: inherit; min-width: 16px; border-radius: 50%; background: #fff; padding: 2px; color: #111; svg { height: 100%; width: 100%; } } } .kadence-gradient-control .components-angle-picker-control .components-input-control__container .components-input-control__input { height: 32px; padding-left: 8px; padding-right: 8px; } // .components-custom-gradient-picker__control-point-button { // // Same size as the .components-custom-gradient-picker__control-point-dropdown parent // height: inherit; // width: inherit; // border-radius: 50%; // padding: 0; // // Shadow and stroke. // box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) #fff, 0 0 4px 0 rgba(#000, 0.25); // // Windows High Contrast mode will show this outline, but not the box-shadow. // outline: 2px solid transparent; // &:focus, // &.is-active { // box-shadow: inset 0 0 0 calc(var(--wp-admin-border-width-focus) * 2) #fff, 0 0 4px 0 rgba(#000, 0.25); // // Windows High Contrast mode will show this outline, but not the box-shadow. // outline: $border-width-tab solid transparent; // } // } // } // .components-custom-gradient-picker__remove-control-point-wrapper { // padding-bottom: $grid-unit-10; // } // .components-custom-gradient-picker__inserter { // /*rtl:ignore*/ // direction: ltr; // } // .components-custom-gradient-picker__liner-gradient-indicator { // display: inline-block; // flex: 0 auto; // width: 20px; // height: 20px; // } // .components-custom-gradient-picker .components-custom-gradient-picker__toolbar { // border: none; // // Work-around to target the inner button containers rendered by <ToolbarGroup /> // > div + div { // margin-left: 1px; // } // button { // &.is-pressed { // > svg { // background: #fff; // border: 1px solid #565656; // border-radius: 2px; // } // } // } // } react/src/typography/typography-component.js 0000644 00000135062 15151531430 0015410 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from "prop-types"; import classnames from "classnames"; import ResponsiveControl from "../common/responsive.js"; import ColorControl from "../common/color.js"; import Icons from "../common/icons.js"; import capitalizeFirstLetter from "../common/capitalize-first.js"; import KadenceWebfontLoader from "../common/font-loader.js"; import FontPairModal from "./font-pair"; import TypographyAdvancedPopover from "./typography-advanced-popover"; import map from "lodash/map"; import { __ } from "@wordpress/i18n"; import { ButtonGroup, Popover, Dashicon, Toolbar, Tooltip, Button, TextControl, TabPanel, RangeControl, SelectControl, } from "@wordpress/components"; /** * WordPress dependencies */ import { createRef, Component, Fragment } from "@wordpress/element"; class TypographyComponent extends Component { constructor() { super(...arguments); this.updateValues = this.updateValues.bind(this); this.getSizeUnitSelect = this.getSizeUnitSelect.bind(this); this.getUnitSelect = this.getUnitSelect.bind(this); this.setTypographyOptions = this.setTypographyOptions.bind(this); this.maybesScroll = this.maybesScroll.bind(this); this.onColorChange = this.onColorChange.bind(this); this.remoteUpdate = this.remoteUpdate.bind(this); this.linkRemoteUpdate = this.linkRemoteUpdate.bind(this); let value = this.props.control.setting.get(); let baseDefault; let familyBaseDefault = { family: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"', google: false, fallback: "", }; let allBaseDefault = { size: { desktop: 18, }, sizeType: "px", lineHeight: { desktop: 1.65, }, lineType: "-", letterSpacing: { desktop: "", }, spacingType: "em", family: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"', google: false, style: "normal", weight: "regular", variant: "regular", color: "palette4", transform: "", fallback: "", }; let noColorBaseDefault = { size: { desktop: 18, }, sizeType: "px", lineHeight: { desktop: 1.65, }, lineType: "-", letterSpacing: { desktop: "", }, spacingType: "em", family: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"', google: false, style: "normal", weight: "regular", variant: "regular", transform: "", fallback: "", }; let sizeBaseDefault = { size: { desktop: 18, }, sizeType: "px", lineHeight: { desktop: 1.65, }, lineType: "-", letterSpacing: { desktop: "", }, spacingType: "em", color: "palette4", transform: "", }; let defaultParams = { min: { px: "0", em: "0", rem: "0", "-": "0", }, max: { px: "200", em: "16", rem: "16", "-": "16", }, step: { px: "1", em: "0.001", rem: "0.001", "-": "0.001", }, sizeUnits: ["px", "em", "rem"], lineUnits: ["-", "px", "em", "rem"], spacingUnits: ["px", "em", "rem"], canInherit: true, transform: ["none", "capitalize", "uppercase", "lowercase"], id: "kadence-general-font", options: "all", }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; if ("family" === this.controlParams.options) { baseDefault = familyBaseDefault; } else if ("size" === this.controlParams.options) { baseDefault = sizeBaseDefault; } else if ("no-color" === this.controlParams.options) { baseDefault = noColorBaseDefault; } else { baseDefault = allBaseDefault; } this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default, } : baseDefault; value = value ? { ...JSON.parse(JSON.stringify(this.defaultValue)), ...value, } : JSON.parse(JSON.stringify(this.defaultValue)); this.state = { currentDevice: "desktop", isVisible: false, isPreviewVisible: false, openTab: "size", typographyOptions: [], typographyVariants: [], activeFont: [], value: value, fontVars: kadenceCustomizerControlsData.gfontvars ? kadenceCustomizerControlsData.gfontvars : [], customFontVars: kadenceCustomizerControlsData.cfontvars ? kadenceCustomizerControlsData.cfontvars : [], advanced: false, minFontSize: "", maxFontSize: "", fontSizeUnit: "px", minScreenSize: "", maxScreenSize: "", screenSizeUnit: "px", }; this.linkRemoteUpdate(); this.anchorNodeRef = createRef(); } componentDidMount() { let base_font; let heading_font; const fontsarray = Object.keys(this.state.fontVars).map((name) => { return { label: name, value: name, google: true, group: "Google Font", }; }); let customFonts = false; if (this.state.customFontVars) { customFonts = Object.keys(this.state.customFontVars).map((name) => { return { label: name, value: name, google: false, group: "Custom Font", variants: "custom", }; }); } const inheritFont = [ { label: "Inherit", value: "inherit", google: false }, { label: "Inherit Heading Font Family", value: "var(--global-heading-font-family, inherit)", google: false, }, { label: "Inherit Body Font Family", value: "var(--global-body-font-family, inherit)", google: false, }, ]; let systemFonts = [ { label: "System Default", value: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"', google: false, variants: "systemstack", }, { label: "Arial, Helvetica, sans-serif", value: "Arial, Helvetica, sans-serif", google: false, group: "System Fonts", }, { label: '"Arial Black", Gadget, sans-serif', value: '"Arial Black", Gadget, sans-serif', google: false, group: "System Fonts", }, { label: "Helvetica, sans-serif", value: "Helvetica, sans-serif", google: false, group: "System Fonts", }, { label: '"Comic Sans MS", cursive, sans-serif', value: '"Comic Sans MS", cursive, sans-serif', google: false, group: "System Fonts", }, { label: "Impact, Charcoal, sans-serif", value: "Impact, Charcoal, sans-serif", google: false, group: "System Fonts", }, { label: '"Lucida Sans Unicode", "Lucida Grande", sans-serif', value: '"Lucida Sans Unicode", "Lucida Grande", sans-serif', google: false, group: "System Fonts", }, { label: "Tahoma, Geneva, sans-serif", value: "Tahoma, Geneva, sans-serif", google: false, group: "System Fonts", }, { label: '"Trebuchet MS", Helvetica, sans-serif', value: '"Trebuchet MS", Helvetica, sans-serif', google: false, group: "System Fonts", }, { label: "Verdana, Geneva, sans-serif", value: "Verdana, Geneva, sans-serif", google: false, group: "System Fonts", }, { label: "Georgia, serif", value: "Georgia, serif", google: false, group: "System Fonts", }, { label: '"Palatino Linotype", "Book Antiqua", Palatino, serif', value: '"Palatino Linotype", "Book Antiqua", Palatino, serif', google: false, group: "System Fonts", }, { label: '"Times New Roman", Times, serif', value: '"Times New Roman", Times, serif', google: false, group: "System Fonts", }, { label: "Courier, monospace", value: "Courier, monospace", google: false, group: "System Fonts", }, { label: '"Lucida Console", Monaco, monospace', value: '"Lucida Console", Monaco, monospace', google: false, group: "System Fonts", }, ]; if (customFonts) { systemFonts = customFonts.concat(systemFonts); } let typographyOptions = systemFonts.concat(fontsarray); if (this.controlParams.canInherit) { base_font = this.props.customizer .control("base_font") .setting.get(); typographyOptions = inheritFont.concat(typographyOptions); } if (this.controlParams.headingInherit) { heading_font = this.props.customizer .control("heading_font") .setting.get(); } this.setState({ typographyOptions: typographyOptions }); const standardVariants = [ { value: "regular", label: "Regular", weight: "regular", style: "normal", }, { value: "italic", label: "Regular Italic", weight: "regular", style: "italic", }, { value: "700", label: "Bold 700", weight: "700", style: "normal" }, { value: "700italic", label: "Bold 700 Italic", weight: "700", style: "italic", }, ]; const systemVariants = [ { value: "100", label: "Thin 100", weight: "100", style: "normal" }, { value: "100italic", label: "Thin 100 Italic", weight: "100", style: "italic", }, { value: "200", label: "Extra-Light 200", weight: "200", style: "normal", }, { value: "200italic", label: "Extra-Light 200 Italic", weight: "200", style: "italic", }, { value: "300", label: "Light 300", weight: "300", style: "normal", }, { value: "300italic", label: "Light 300 Italic", weight: "300", style: "italic", }, { value: "regular", label: "Regular", weight: "regular", style: "normal", }, { value: "italic", label: "Regular Italic", weight: "regular", style: "italic", }, { value: "500", label: "Medium 500", weight: "500", style: "normal", }, { value: "500italic", label: "Medium 500 Italic", weight: "500", style: "italic", }, { value: "600", label: "Semi-Bold 600", weight: "600", style: "normal", }, { value: "600italic", label: "Semi-Bold 600 Italic", weight: "600", style: "italic", }, { value: "700", label: "Bold 700", weight: "700", style: "normal" }, { value: "700italic", label: "Bold 700 Italic", weight: "700", style: "italic", }, { value: "800", label: "Extra-Bold 800", weight: "800", style: "normal", }, { value: "800italic", label: "Extra-Bold 800 Italic", weight: "800", style: "italic", }, { value: "900", label: "Ultra-Bold 900", weight: "900", style: "normal", }, { value: "900italic", label: "Ultra-Bold 900 Italic", weight: "900", style: "italic", }, ]; let activeFont = typographyOptions ? typographyOptions.filter( ({ value }) => value === this.state.value.family ) : [{ label: "Inherit", value: "inherit", google: false }]; if ( "inherit" === this.state.value.family && this.controlParams.headingInherit && undefined !== heading_font.family ) { activeFont = typographyOptions ? typographyOptions.filter( ({ value }) => value === heading_font.family ) : activeFont; } else if ( "inherit" === this.state.value.family && undefined !== base_font.family ) { activeFont = typographyOptions ? typographyOptions.filter( ({ value }) => value === base_font.family ) : activeFont; } let fontStandardVariants = standardVariants; if (activeFont && activeFont[0]) { if ( undefined !== activeFont[0].variants && "systemstack" === activeFont[0].variants ) { fontStandardVariants = systemVariants; } if ( undefined !== activeFont[0].variants && "custom" === activeFont[0].variants && this.state.customFontVars && undefined !== this.state.customFontVars[activeFont[0].value] ) { fontStandardVariants = this.state.customFontVars[ activeFont[0].value ].v.map((opt) => ({ label: capitalizeFirstLetter(opt), value: opt, })); } if (activeFont[0].google && activeFont[0].value) { fontStandardVariants = this.state.fontVars[ activeFont[0].value ].v.map((opt) => ({ label: capitalizeFirstLetter(opt), value: opt, })); } } this.setState({ typographyVariants: fontStandardVariants }); this.setState({ activeFont: activeFont }); } setTypographyOptions(typographyOptions) { let base_font; let heading_font; const standardVariants = [ { value: "regular", label: "Regular", weight: "regular", style: "normal", }, { value: "italic", label: "Regular Italic", weight: "regular", style: "italic", }, { value: "700", label: "Bold 700", weight: "700", style: "normal" }, { value: "700italic", label: "Bold 700 Italic", weight: "700", style: "italic", }, ]; const systemVariants = [ { value: "100", label: "Thin 100", weight: "100", style: "normal" }, { value: "100italic", label: "Thin 100 Italic", weight: "100", style: "italic", }, { value: "200", label: "Extra-Light 200", weight: "200", style: "normal", }, { value: "200italic", label: "Extra-Light 200 Italic", weight: "200", style: "italic", }, { value: "300", label: "Light 300", weight: "300", style: "normal", }, { value: "300italic", label: "Light 300 Italic", weight: "300", style: "italic", }, { value: "regular", label: "Regular", weight: "regular", style: "normal", }, { value: "italic", label: "Regular Italic", weight: "regular", style: "italic", }, { value: "500", label: "Medium 500", weight: "500", style: "normal", }, { value: "500italic", label: "Medium 500 Italic", weight: "500", style: "italic", }, { value: "600", label: "Semi-Bold 600", weight: "600", style: "normal", }, { value: "600italic", label: "Semi-Bold 600 Italic", weight: "600", style: "italic", }, { value: "700", label: "Bold 700", weight: "700", style: "normal" }, { value: "700italic", label: "Bold 700 Italic", weight: "700", style: "italic", }, { value: "800", label: "Extra-Bold 800", weight: "800", style: "normal", }, { value: "800italic", label: "Extra-Bold 800 Italic", weight: "800", style: "italic", }, { value: "900", label: "Ultra-Bold 900", weight: "900", style: "normal", }, { value: "900italic", label: "Ultra-Bold 900 Italic", weight: "900", style: "italic", }, ]; if (this.controlParams.canInherit) { base_font = this.props.customizer .control("base_font") .setting.get(); } if (this.controlParams.headingInherit) { heading_font = this.props.customizer .control("heading_font") .setting.get(); } let activeFont = typographyOptions ? typographyOptions.filter( ({ value }) => value === this.state.value.family ) : [{ label: "Inherit", value: "inherit", google: false }]; if ( "inherit" === this.state.value.family && this.controlParams.headingInherit && undefined !== heading_font.family && "inherit" !== heading_font.family ) { activeFont = typographyOptions ? typographyOptions.filter( ({ value }) => value === heading_font.family ) : activeFont; } else if ( "inherit" === this.state.value.family && undefined !== base_font.family ) { activeFont = typographyOptions ? typographyOptions.filter( ({ value }) => value === base_font.family ) : activeFont; } let fontStandardVariants = standardVariants; if (activeFont && activeFont[0]) { if ( undefined !== activeFont[0].variants && "systemstack" === activeFont[0].variants ) { fontStandardVariants = systemVariants; } if ( undefined !== activeFont[0].variants && "custom" === activeFont[0].variants && this.state.customFontVars && undefined !== this.state.customFontVars[activeFont[0].value] ) { fontStandardVariants = this.state.customFontVars[ activeFont[0].value ].v.map((opt) => ({ label: capitalizeFirstLetter(opt), value: opt, })); } if (activeFont[0].google && activeFont[0].value) { fontStandardVariants = this.state.fontVars[ activeFont[0].value ].v.map((opt) => ({ label: capitalizeFirstLetter(opt), value: opt, })); } } this.setState({ typographyVariants: fontStandardVariants }); this.setState({ activeFont: activeFont }); } maybesScroll(tab) { let self = this; if ("font" === tab) { setTimeout(function () { var myElement = document.getElementById( self.controlParams.id + "-active-font" ); if (myElement) { var topPos = myElement.offsetTop - 50; document.getElementById(self.controlParams.id).scrollTop = topPos; } }, 100); } else if ("style" === tab) { setTimeout(function () { var myElement = document.getElementById( self.controlParams.id + "-active-style" ); if (myElement) { var topPos = myElement.offsetTop - 50; document.getElementById( self.controlParams.id + "-style" ).scrollTop = topPos; } }, 100); } } onColorChange(color, isPalette) { let value = this.state.value; if (isPalette) { value.color = isPalette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value.color = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { value.color = color.hex; } this.updateValues(value); } render() { const { typographyOptions } = this.state; let deviceIndex = this.state.currentDevice; let currentFamily; let fontVar = this.controlParams.headingInherit ? "var(--global-heading-font)" : "var(--global-base-font)"; let currentSize; let currentLineHeight; let currentLetterSpacing; var placeholderLineHeight = this.controlParams.headingInherit ? 1.5 : 1.4; var placeholderSize = this.controlParams.id === "base_font" || (this.controlParams.canInherit && !this.controlParams.headingInherit) ? 17 : ""; if ( "all" === this.controlParams.options || "no-color" === this.controlParams.options || "family" === this.controlParams.options ) { currentFamily = this.state.value.family && "inherit" !== this.state.value.family ? this.state.value.family : fontVar; } if ( "all" === this.controlParams.options || "no-color" === this.controlParams.options || "size" === this.controlParams.options ) { // Size if (undefined === this.state.value.size[deviceIndex]) { let largerDevice = this.state.currentDevice === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value.size[largerDevice] && this.state.value.size[largerDevice] ) { currentSize = this.state.value.size[largerDevice]; } else if ( "tablet" === largerDevice && undefined !== this.state.value.size["desktop"] && this.state.value.size["desktop"] ) { currentSize = this.state.value.size["desktop"]; } } else if ("" === this.state.value.size[deviceIndex]) { let largerDevice = this.state.currentDevice === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value.size[largerDevice] && this.state.value.size[largerDevice] ) { currentSize = this.state.value.size[largerDevice]; } else if ( "tablet" === largerDevice && undefined !== this.state.value.size["desktop"] && this.state.value.size["desktop"] ) { currentSize = this.state.value.size["desktop"]; } } else if ("" !== this.state.value.size[deviceIndex]) { currentSize = this.state.value.size[deviceIndex]; } // Height if (undefined === this.state.value.lineHeight[deviceIndex]) { let largerDevice = this.state.currentDevice === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value.lineHeight[largerDevice] && this.state.value.lineHeight[largerDevice] ) { currentLineHeight = this.state.value.lineHeight[largerDevice]; } else if ( "tablet" === largerDevice && undefined !== this.state.value.lineHeight["desktop"] && this.state.value.lineHeight["desktop"] ) { currentLineHeight = this.state.value.lineHeight["desktop"]; } } else if ("" === this.state.value.lineHeight[deviceIndex]) { let largerDevice = this.state.currentDevice === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value.lineHeight[largerDevice] && this.state.value.lineHeight[largerDevice] ) { currentLineHeight = this.state.value.lineHeight[largerDevice]; } else if ( "tablet" === largerDevice && undefined !== this.state.value.lineHeight["desktop"] && this.state.value.lineHeight["desktop"] ) { currentLineHeight = this.state.value.lineHeight["desktop"]; } } else if ("" !== this.state.value.lineHeight[deviceIndex]) { currentLineHeight = this.state.value.lineHeight[deviceIndex]; } // Spacing if (undefined === this.state.value.letterSpacing[deviceIndex]) { let largerDevice = this.state.currentDevice === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value.letterSpacing[largerDevice] && this.state.value.letterSpacing[largerDevice] ) { currentLetterSpacing = this.state.value.letterSpacing[largerDevice]; } else if ( "tablet" === largerDevice && undefined !== this.state.value.letterSpacing["desktop"] && this.state.value.letterSpacing["desktop"] ) { currentLetterSpacing = this.state.value.letterSpacing["desktop"]; } } else if ("" === this.state.value.letterSpacing[deviceIndex]) { let largerDevice = this.state.currentDevice === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value.letterSpacing[largerDevice] && this.state.value.letterSpacing[largerDevice] ) { currentLetterSpacing = this.state.value.letterSpacing[largerDevice]; } else if ( "tablet" === largerDevice && undefined !== this.state.value.letterSpacing["desktop"] && this.state.value.letterSpacing["desktop"] ) { currentLetterSpacing = this.state.value.letterSpacing["desktop"]; } } else if ("" !== this.state.value.letterSpacing[deviceIndex]) { currentLetterSpacing = this.state.value.letterSpacing[deviceIndex]; } } const fontFamilyTab = ( <Fragment> <div className="kadence-font-family-search"> <TextControl type="text" value={this.state.search} placeholder={__("Search")} autocomplete="off" onChange={(value) => this.setState({ search: value })} /> {undefined !== this.state.search && "" !== this.state.search && ( <Button className="kadence-clear-search" onClick={() => { this.setState({ search: "" }); }} > <Dashicon icon="no" /> </Button> )} </div> <div className="kadence-font-family-list-wrapper"> <ButtonGroup id={this.controlParams.id} className="kadence-font-family-list" aria-label={__("Font Family List")} > {map( typographyOptions, ({ label, value, google, group }, index) => { if ( !this.state.search || (label && label .toLowerCase() .includes( this.state.search.toLowerCase() )) ) { return ( <Button key={index} id={ value === this.state.value.family ? this.controlParams.id + "-active-font" : undefined } className={ (value === this.state.value.family ? "active-radio " : "") + "kadence-font-family-choice" } onClick={() => onTypoFontChange(value, google) } > {label} </Button> ); } } )} </ButtonGroup> </div> </Fragment> ); const fontStyleTab = ( <Fragment> <div className="kadence-font-variant-list-wrapper"> <ButtonGroup id={this.controlParams.id + "-style"} className="kadence-font-variant-list" aria-label={__("Font Style List")} > {map( this.state.typographyVariants, ({ label, value }, index) => { return ( <Button key={index} id={ value === this.state.value.variant ? this.controlParams.id + "-active-style" : undefined } className={ (value === this.state.value.variant ? "active-radio " : "") + "kadence-font-variant-choice" } style={{ fontFamily: this.state.value.family, fontWeight: value === "italic" || value === "regular" ? "normal" : value.replace( /[^0-9]/g, "" ), fontStyle: value.includes("italic") ? "italic" : "regular", }} onClick={() => onVariantFontChange(value) } > {label} </Button> ); } )} </ButtonGroup> </div> </Fragment> ); const fontSizeTab = ( <Fragment> <div class="kadence-range-control"> <ResponsiveControl deviceSize={deviceIndex} onChange={(currentDevice) => { this.setState({ currentDevice }); }} controlLabel={__("Font Size", "kadence")} tooltip={false} advancedControls={true} advanced={this.state.value.clamped} onAdvancedChange={() => { let value = this.state.value; value.clamped = value?.clamped ? !value.clamped : true; this.updateValues(value); }} > {!this.state.value?.clamped && ( <> <RangeControl allowReset={true} initialPosition={placeholderSize} value={currentSize} onChange={(val) => { if (val >= 0) { let value = this.state.value; value.size[ this.state.currentDevice ] = val; this.updateValues(value); } else { let value = this.state.value; value.size[ this.state.currentDevice ] = ""; this.updateValues(value); } }} min={ this.controlParams.min[ this.state.value.sizeType ] } max={ this.controlParams.max[ this.state.value.sizeType ] } step={ this.controlParams.step[ this.state.value.sizeType ] } /> {this.controlParams.sizeUnits && ( <div className="kadence-select-units"> {this.getSizeUnitSelect()} </div> )} </> )} {this.state.value?.clamped && ( <Button variant="secondary" className="kadence-advanced-control-button" onClick={() => { this.setState({ advanced: true }); }} style={{ padding: "5px 10px" }} > {__("Clamp Settings", "kadence")} </Button> )} </ResponsiveControl> </div> <div class="kadence-range-control"> <ResponsiveControl deviceSize={deviceIndex} onChange={(currentDevice) => this.setState({ currentDevice }) } controlLabel={__("Line Height", "kadence")} tooltip={false} > <RangeControl allowReset={true} initialPosition={placeholderLineHeight} value={currentLineHeight} onChange={(val) => { if (typeof val !== "undefined" && val !== "") { let value = this.state.value; value.lineHeight[this.state.currentDevice] = val; this.updateValues(value); } else { let value = this.state.value; value.lineHeight[this.state.currentDevice] = ""; this.updateValues(value); } }} min={ this.controlParams.min[ this.state.value.lineType ] } max={ this.controlParams.max[ this.state.value.lineType ] } step={ this.controlParams.step[ this.state.value.lineType ] } /> {this.controlParams.lineUnits && ( <div className="kadence-select-units"> {this.getUnitSelect("lineUnits", "lineType")} </div> )} </ResponsiveControl> </div> <div class="kadence-range-control"> <ResponsiveControl deviceSize={deviceIndex} onChange={(currentDevice) => this.setState({ currentDevice }) } controlLabel={__("Letter Spacing", "kadence")} tooltip={false} > <RangeControl allowReset={true} value={currentLetterSpacing} initialPosition={""} onChange={(val) => { if (typeof val !== "undefined" && val !== "") { let value = this.state.value; value.letterSpacing[ this.state.currentDevice ] = val; this.updateValues(value); } else { let value = this.state.value; value.letterSpacing[ this.state.currentDevice ] = ""; this.updateValues(value); } }} min={-4} max={ this.controlParams.max[ this.state.value.spacingType ] } step={ this.controlParams.step[ this.state.value.spacingType ] } /> {this.controlParams.spacingUnits && ( <div className="kadence-select-units"> {this.getUnitSelect( "spacingUnits", "spacingType" )} </div> )} </ResponsiveControl> </div> <div class="kadence-range-control kadence-transform-controls"> <span className="customize-control-title"> {__("Transform")} </span> <ButtonGroup className="kadence-radio-container-control kadence-radio-icon-container-control"> {this.controlParams.transform.map((item) => { return ( <Fragment> <Button isTertiary className={ (item === this.state.value.transform ? "active-radio " : "") + item } onClick={() => { let value = this.state.value; if ( item === this.state.value.transform ) { value.transform = ""; } else { value.transform = item; } this.updateValues(value); }} > {Icons[item]} </Button> </Fragment> ); })} </ButtonGroup> </div> </Fragment> ); const controlLabel = ( <Fragment> {this.props.control.params.label && ( <span className="customize-control-title"> <Tooltip text={__("Reset Values", "kadence")}> <Button className="reset kadence-reset" onClick={() => { this.updateValues(JSON.parse(JSON.stringify(this.defaultValue))); }} > <Dashicon icon="image-rotate" /> </Button> </Tooltip> {this.props.control.params.label} {"base_font" === this.controlParams.id && ( <FontPairModal control={this.props.control} customizer={this.props.customizer} /> )} </span> )} </Fragment> ); const onTypoFontChange = (selected, isGoogle) => { let value = this.state.value; let variant; let weight; let style; let fallback; if (isGoogle) { if ("family" === this.controlParams.options) { variant = this.state.fontVars[selected].v; } else { if ( this.state.fontVars[selected].v.includes(value.variant) ) { variant = value.variant; } else if ( !this.state.fontVars[selected].v.includes("regular") ) { variant = this.state.fontVars[selected].v[0]; } else { variant = "regular"; } if (variant === "regular" || variant === "italic") { weight = "normal"; } else { weight = variant.replace(/[^0-9]/g, ""); } if (variant.includes("italic")) { style = "italic"; } else { style = "normal"; } } fallback = this.state.fontVars[selected].c && this.state.fontVars[selected].c[0] ? this.state.fontVars[selected].c[0] : ""; } else { variant = "regular"; weight = "400"; style = "normal"; fallback = ""; } value.variant = variant; value.family = selected; value.google = isGoogle ? true : false; value.fallback = fallback; if ("family" !== this.controlParams.options) { value.weight = weight; value.style = style; } this.updateValues(value); }; const onVariantFontChange = (variant) => { let value = this.state.value; let weight; let style; if (variant === "regular" || variant === "italic") { weight = "normal"; } else { weight = variant.replace(/[^0-9]/g, ""); } if (variant.includes("italic")) { style = "italic"; } else { style = "normal"; } value.variant = variant; value.weight = weight; value.style = style; this.updateValues(value); }; const toggleVisible = (tab) => { this.setTypographyOptions(this.state.typographyOptions); this.setState({ openTab: tab }); this.setState({ isVisible: true }); this.maybesScroll(tab); }; const toggleClose = () => { if (this.state.isVisible === true) { this.setState({ isVisible: false }); } }; const toggleCloseAdvanced = () => { this.setState({ advanced: false }); }; const toggleVisiblePreview = () => { this.setState({ isPreviewVisible: true }); }; const toggleClosePreview = () => { if (this.state.isPreviewVisible === true) { this.setState({ isPreviewVisible: false }); } }; const configVariants = { google: { families: [ this.state.value.family + ":" + (this.state.value.google && this.state.fontVars[this.state.value.family] && this.state.fontVars[this.state.value.family].v ? this.state.fontVars[ this.state.value.family ].v.toString() : ""), ], }, classes: false, events: false, }; let fontFamilyLabel = capitalizeFirstLetter(this.state.value.family); if ( this.state.value.family === '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"' ) { fontFamilyLabel = __("System Default", "kadence"); } if ( this.state.value.family === "var(--global-heading-font-family, inherit)" ) { fontFamilyLabel = __("Inherit Heading", "kadence"); } if ( this.state.value.family === "var(--global-body-font-family, inherit)" ) { fontFamilyLabel = __("Inherit Body", "kadence"); } return ( <div ref={this.anchorNodeRef} className="kadence-control-field kadence-typography-control-wrap" > <div className="kadence-typography-control"> {controlLabel} <div className="kadence-typography-controls"> {this.state.isVisible && "family" === this.controlParams.options && ( <Popover position="top right" inline={true} className="kadence-popover-color kadence-popover-typography kadence-customizer-popover" onClose={toggleClose} > <div className="kadence-popover-typography-single-item"> {fontFamilyTab} </div> </Popover> )} {this.state.isVisible && ("all" === this.controlParams.options || "no-color" === this.controlParams.options) && ( <Popover position="top left" inline={true} className="kadence-popover-color kadence-popover-typography kadence-customizer-popover" onClose={toggleClose} > <> <TabPanel className="kadence-popover-tabs kadence-typography-tabs kadence-background-tabs" activeClass="active-tab" initialTabName={this.state.openTab} onSelect={(value) => this.maybesScroll(value) } tabs={[ { name: "font", title: __( "Font", "kadence" ), className: "kadence-font-typography", }, { name: "style", title: __( "Style", "kadence" ), className: "kadence-style-typography", }, { name: "size", title: __( "Size", "kadence" ), className: "kadence-size-typography", }, ]} > {(tab) => { let tabout; if (tab.name) { if ("style" === tab.name) { tabout = fontStyleTab; } else if ( "font" === tab.name ) { tabout = fontFamilyTab; } else { tabout = fontSizeTab; } } return <div>{tabout}</div>; }} </TabPanel> <TypographyAdvancedPopover isVisible={this.state.advanced} onClose={toggleCloseAdvanced} value={this.state.value} onValueChange={(key, val) => { let value = this.state.value; value[key] = val; this.updateValues(value); }} /> </> </Popover> )} {"all" === this.controlParams.options && ( <ColorControl key={this.state.value.color} presetColors={this.state.colorPalette} color={ undefined !== this.state.value.color && this.state.value.color ? this.state.value.color : "" } usePalette={true} onChangeComplete={(color, isPalette) => this.onColorChange(color, isPalette) } customizer={this.props.customizer} controlRef={this.anchorNodeRef} /> )} {("all" === this.controlParams.options || "family" === this.controlParams.options || "no-color" === this.controlParams.options) && ( <Tooltip text={ this.controlParams.tooltip ? this.controlParams.tooltip : __("Select Font", "kadence") } > <div className="typography-button-wrap"> <Button className={ "kadence-typography-family-indicate" } onClick={() => { this.state.isVisible ? toggleClose() : toggleVisible("font"); }} > {fontFamilyLabel} </Button> </div> </Tooltip> )} {("all" === this.controlParams.options || "no-color" === this.controlParams.options) && ( <Tooltip text={ this.controlParams.tooltip ? this.controlParams.tooltip : __("Select Style", "kadence") } > <div className="typography-button-wrap"> <Button className={ "kadence-typography-style-indicate" } onClick={() => { this.state.isVisible ? toggleClose() : toggleVisible("style"); }} > {this.state.value.variant ? this.state.value.variant : __("inherit", "kadence")} </Button> </div> </Tooltip> )} {("all" === this.controlParams.options || "size" === this.controlParams.options || "no-color" === this.controlParams.options) && ( <Tooltip text={ this.controlParams.tooltip ? this.controlParams.tooltip : __("Select Size", "kadence") } > <div className="typography-button-wrap"> <Button className={ "kadence-typography-size-indicate" } onClick={() => { this.state.isVisible ? toggleClose() : toggleVisible("size"); }} > {this.state.value?.clamped ? __("Clamp", "kadence") : currentSize ? currentSize + this.state.value.sizeType : __("inherit", "kadence")} </Button> </div> </Tooltip> )} {("all" === this.controlParams.options || "family" === this.controlParams.options || "no-color" === this.controlParams.options) && ( <Tooltip text={__("Show Preview Text", "kadence")}> <div className="typography-button-wrap"> <Button className={ "kadence-typography-preview-indicate" } onClick={() => { this.state.isPreviewVisible ? toggleClosePreview() : toggleVisiblePreview(); }} > {this.state.isPreviewVisible ? ( <Dashicon icon="arrow-up" /> ) : ( <Dashicon icon="arrow-down" /> )} </Button> </div> </Tooltip> )} </div> </div> {this.state.value.google && ( <KadenceWebfontLoader config={configVariants} ></KadenceWebfontLoader> )} {this.state.isPreviewVisible && ( <div className="kadence-preview-font" style={{ fontFamily: currentFamily, fontWeight: "all" === this.controlParams.options || "no-color" === this.controlParams.options ? this.state.value.weight : "bold", fontStyle: "all" === this.controlParams.options || "no-color" === this.controlParams.options ? this.state.value.style : undefined, fontSize: "all" === this.controlParams.options || "no-color" === this.controlParams.options ? currentSize + this.state.value.sizeType : undefined, lineHeight: "all" === this.controlParams.options || "no-color" === this.controlParams.options ? currentLineHeight + ("-" === this.state.value.lineType ? "" : this.state.value.lineType) : 1.3, letterSpacing: ("all" === this.controlParams.options || "no-color" === this.controlParams.options) && currentLetterSpacing ? currentLetterSpacing + this.state.value.spacingType : undefined, textTransform: ("all" === this.controlParams.options || "no-color" === this.controlParams.options) && this.state.value.transform ? this.state.value.transform : undefined, color: this.state.value.color && this.state.value.color.includes("palette") ? "var(--global-" + this.state.value.color + ")" : this.state.value.color, }} > {__( "Design is not just what it looks like and feels like. Design is how it works.", "kadence" )} </div> )} </div> ); } getUnitSelect(unitType, unitSetting) { const units = this.controlParams[unitType]; if (this.state.currentDevice !== "desktop") { return ( <Button className="is-single" disabled> {this.state.value[unitSetting]} </Button> ); } const unitOptions = units.map((unit) => ({ label: unit, value: unit })); return ( <SelectControl value={this.state.value[unitSetting]} options={unitOptions} onChange={(val) => { let value = this.state.value; value[unitSetting] = val; this.updateValues(value); }} /> ); } getSizeUnitSelect() { const { sizeUnits } = this.controlParams; if (this.state.currentDevice !== "desktop") { return ( <Button className="is-single" disabled> {this.state.value.sizeType} </Button> ); } const unitOptions = sizeUnits.map((unit) => ({ label: unit, value: unit, })); return ( <SelectControl value={this.state.value.sizeType} options={unitOptions} onChange={(val) => { let value = this.state.value; value["sizeType"] = val; this.updateValues(value); }} /> ); } getScreenSizeUnitSelect() { const units = ["px", "em", "rem", "vw"]; const unitOptions = units.map((unit) => ({ label: unit, value: unit, })); return ( <SelectControl value={this.state.screenSizeUnit} options={unitOptions} onChange={(val) => { this.setState({ screenSizeUnit: val }); }} /> ); } updateValues(value) { this.setTypographyOptions(this.state.typographyOptions); if ("base_font" === this.controlParams.id) { document.documentElement.style.setProperty( "--global-base-font", value.family ); } if ("heading_font" === this.controlParams.id) { document.documentElement.style.setProperty( "--global-heading-font", value.family ); } this.setState({ value: value }); this.props.control.setting.set({ ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag, }); } linkRemoteUpdate() { if ( "base_font" === this.controlParams.id || "heading_font" === this.controlParams.id ) { let self = this; document.addEventListener("kadenceRemoteUpdateFonts", function (e) { if (e.detail === "typography") { self.remoteUpdate(); } }); } } remoteUpdate() { let allBaseDefault = { size: { desktop: 18, }, sizeType: "px", lineHeight: { desktop: 1.65, }, lineType: "-", letterSpacing: { desktop: "", }, spacingType: "em", family: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"', google: false, style: "normal", weight: "regular", variant: "regular", color: "palette4", transform: "", fallback: "", }; let familyBaseDefault = { family: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"', google: false, fallback: "", }; if ("heading_font" === this.controlParams.id) { allBaseDefault = familyBaseDefault; } let value = this.props.control.setting.get(); value = value ? { ...JSON.parse(JSON.stringify(allBaseDefault)), ...value, } : JSON.parse(JSON.stringify(allBaseDefault)); this.setState({ value: value }); } } TypographyComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired, }; export default TypographyComponent; react/src/typography/typography-advanced-popover.js 0000644 00000012171 15151531430 0016636 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from "prop-types"; import { __ } from "@wordpress/i18n"; import { Popover, Button, SelectControl } from "@wordpress/components"; /** * TypographyAdvancedPopover Component * * A popover component for advanced typography settings including font size clamp controls. * Extracted from the main TypographyComponent for better modularity. */ const TypographyAdvancedPopover = ({ isVisible, onClose, value, onValueChange, }) => { /** * Get font size unit select control * @param {string} unitType - The type of unit (fontSize or screenSize) * @returns {JSX.Element} SelectControl component */ const getFontSizeUnitSelect = (unitType) => { const fontSizeKey = unitType + "Unit"; const units = ["px", "rem"]; const screenUnits = ["px"]; const unitsToUse = unitType === "fontSize" ? units : screenUnits; const unitOptions = unitsToUse.map((unit) => ({ label: unit, value: unit, })); return ( <SelectControl value={value[fontSizeKey]} options={unitOptions} onChange={(val) => { onValueChange(fontSizeKey, val); }} /> ); }; if (!isVisible) { return null; } return ( <Popover placement={"overlay"} inline={true} className="kadence-popover-typography kadence-popover-typography-advanced kadence-customizer-popover" onClose={onClose} > <div> <div className="kadence-control-field kadence-title-control"> <span className="customize-control-title"> Font Size Clamp </span> </div> <div className="kadence-popover-typography-advanced-content"> <div className="kadence-typography-advanced-group"> <span className="kadence-typography-advanced-group-label"> {__("Font Size Range", "kadence")} </span> <div className="kadence-typography-advanced-control-row"> <div className="kadence-typography-advanced-control-column"> <label className="kadence-typography-advanced-label"> {__("Min", "kadence")} </label> <div className="kadence-typography-advanced-control"> <input type="number" value={value.minFontSize || ""} onChange={(event) => { const val = event.target.value !== "" ? Number(event.target.value) : ""; onValueChange("minFontSize", val); }} className="kadence-typography-advanced-input" /> {getFontSizeUnitSelect("fontSize")} </div> </div> <div className="kadence-typography-advanced-control-column"> <label className="kadence-typography-advanced-label"> {__("Max", "kadence")} </label> <div className="kadence-typography-advanced-control"> <input type="number" value={value.maxFontSize || ""} onChange={(event) => { const val = event.target.value !== "" ? Number(event.target.value) : ""; onValueChange("maxFontSize", val); }} className="kadence-typography-advanced-input" /> {getFontSizeUnitSelect("fontSize")} </div> </div> </div> </div> <div className="kadence-typography-advanced-group"> <span className="kadence-typography-advanced-group-label"> {__("Screen Size Range", "kadence")} </span> <div className="kadence-typography-advanced-control-row"> <div className="kadence-typography-advanced-control-column"> <label className="kadence-typography-advanced-label"> {__("Min", "kadence")} </label> <div className="kadence-typography-advanced-control"> <input type="number" value={value.minScreenSize || ""} onChange={(event) => { const val = event.target.value !== "" ? Number(event.target.value) : ""; onValueChange("minScreenSize", val); }} className="kadence-typography-advanced-input" /> {getFontSizeUnitSelect("screenSize")} </div> </div> <div className="kadence-typography-advanced-control-column"> <label className="kadence-typography-advanced-label"> {__("Max", "kadence")} </label> <div className="kadence-typography-advanced-control"> <input type="number" value={value.maxScreenSize || ""} onChange={(event) => { const val = event.target.value !== "" ? Number(event.target.value) : ""; onValueChange("maxScreenSize", val); }} className="kadence-typography-advanced-input" /> {getFontSizeUnitSelect("screenSize")} </div> </div> </div> </div> </div> <Button className="kadence-popover-close" icon="no-alt" onClick={onClose} /> </div> </Popover> ); }; TypographyAdvancedPopover.propTypes = { isVisible: PropTypes.bool.isRequired, onClose: PropTypes.func.isRequired, value: PropTypes.object.isRequired, onValueChange: PropTypes.func.isRequired, }; export default TypographyAdvancedPopover; react/src/typography/font-pair.js 0000644 00000007042 15151531430 0013075 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import capitalizeFirstLetter from '../common/capitalize-first.js'; import map from 'lodash/map'; import { __ } from '@wordpress/i18n'; import Icons from '../common/icons.js'; const { ButtonGroup, Dashicon, Tooltip, TextControl, Button, SelectControl, Popover, TabPanel, ToggleControl, RangeControl, Placeholder } = wp.components; const { Component, Fragment } = wp.element; class FontPairModal extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.updateSettings = this.updateSettings.bind( this ); this.state = { isVisible: false, confirm: '', fonts: ( kadenceCustomizerControlsData.fontPairs ? kadenceCustomizerControlsData.fontPairs : [] ), }; } render() { const toggleVisible = () => { this.setState( { isVisible: true } ); }; const toggleClose = () => { if ( this.state.isVisible === true ) { this.setState( { isVisible: false } ); } }; return ( <div className={'kadence-font-pair-wrap'}> <Button className={ 'kadence-font-pair-btn' } label={ __( 'Choose a font', 'kadence' ) } onClick={ () => { this.state.isVisible ? toggleClose() : toggleVisible() } }> <Dashicon icon="portfolio" /> </Button> { this.state.isVisible && ( <Popover position="bottom left" inline={true} className="kadence-font-pair-popover kadence-customizer-popover" onClose={ toggleClose }> <h2 style={{ textAlign:'center' }}>{ __( 'Select a Font Pairing', 'kadence' ) }</h2> <ButtonGroup className="kt-font-pair-group" aria-label={ __( 'Select a Font Pair', 'kadence' ) }> { map( this.state.fonts, ( { hfont, bfont, hv, img, name } ) => { return ( this.state.confirm === name ? ( <Button className={ 'kt-font-pair-btn state-confirm' } onClick={ () => { this.updateSettings( hfont, bfont, hv ); } } > { __( 'Confirm Change Settings?', 'kadence' ) } </Button> ) : ( <Button className={ 'kt-font-pair-btn' } onClick={ () => { this.setState( { confirm: name } ); } } > <img src={ img } className="font-pairing" /> <span>{ name }</span> </Button> ) ); } ) } </ButtonGroup> </Popover> ) } </div> ); } updateSettings( hfont, bfont, hv ) { const bodyFont = this.props.customizer( 'base_font' ).get(); bodyFont['family'] = bfont; bodyFont['weight'] = 'normal'; bodyFont['google'] = true; const headingFont = this.props.customizer( 'heading_font' ).get(); headingFont['family'] = hfont; headingFont['variant'] = hv; headingFont['google'] = true; this.updateValues( bodyFont, headingFont ); } updateValues( bodyFont, headingFont ) { this.props.customizer( 'base_font' ).set( { ...this.props.customizer( 'base_font' ).get(), ...bodyFont, flag: ! this.props.customizer( 'base_font' ).get().flag } ); this.props.customizer( 'heading_font' ).set( { ...this.props.customizer( 'heading_font' ).get(), ...headingFont, flag: ! this.props.customizer( 'heading_font' ).get().flag } ); var event = new CustomEvent('kadenceRemoteUpdateFonts', { 'detail': 'typography' }); document.dispatchEvent(event); this.setState( { isVisible: false, confirm: '' } ); } } FontPairModal.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default FontPairModal; react/src/typography/control.js 0000644 00000001016 15151531430 0012651 0 ustar 00 import { createRoot } from '@wordpress/element'; import TypographyComponent from './typography-component.js'; export const TypographyControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <TypographyComponent control={control} customizer={ wp.customize }/> ); // ReactDOM.render( // <TypographyComponent control={control} customizer={ wp.customize }/>, // control.container[0] // ); } } ); react/src/layout-builder/drop-component.js 0000644 00000012511 15151531430 0014672 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import { ReactSortable } from "react-sortablejs"; import Icons from '../common/icons.js'; import ItemComponent from './item-component'; import AddComponent from './add-component'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class DropComponent extends Component { render() { const location = this.props.zone.replace( this.props.row + '_', ''); const currentList = ( typeof this.props.items != "undefined" && this.props.items != null && this.props.items.length != null && this.props.items.length > 0 ? this.props.items : [] ); let theItems = []; { currentList.length > 0 && ( currentList.map( ( item ) => { theItems.push( { id: item, } ) } ) ) }; const currentCenterList = ( typeof this.props.centerItems != "undefined" && this.props.centerItems != null && this.props.centerItems.length != null && this.props.centerItems.length > 0 ? this.props.centerItems : [] ); let theCenterItems = []; { currentCenterList.length > 0 && ( currentCenterList.map( ( item ) => { theCenterItems.push( { id: item, } ) } ) ) }; return ( <div className={ `kadence-builder-area kadence-builder-area-${ location }` } data-location={ this.props.zone }> <p className="kadence-small-label">{ this.props.controlParams.zones[this.props.row][this.props.zone] }</p> { 'header_desktop_items' === this.props.controlParams.group && 'right' === location && ( <Fragment> <ReactSortable animation={100} onStart={ () => this.props.showDrop() } onEnd={ () => this.props.hideDrop() } group={ this.props.controlParams.group } className={ `kadence-builder-drop kadence-builder-sortable-panel kadence-builder-drop-${ location }_center` } list={ theCenterItems } setList={ newState => this.props.onUpdate( this.props.row, this.props.zone + '_center', newState ) } > { currentCenterList.length > 0 && ( currentCenterList.map( ( item, index ) => { return <ItemComponent removeItem={ ( remove ) => this.props.removeItem( remove, this.props.row, this.props.zone + '_center' ) } focusItem={ ( focus ) => this.props.focusItem( focus ) } key={ item } index={ index } item={ item } controlParams={ this.props.controlParams } />; } ) ) } </ReactSortable> <AddComponent row={ this.props.row } list={ theCenterItems } settings={ this.props.settings } column={ this.props.zone + '_center' } setList={ newState => this.props.onAddItem( this.props.row, this.props.zone + '_center', newState ) } key={ location } location={ location + '_center' } id={ 'add-center-' + location } controlParams={ this.props.controlParams } choices={ this.props.choices } /> </Fragment> ) } <ReactSortable animation={100} onStart={ () => this.props.showDrop() } onEnd={ () => this.props.hideDrop() } group={ this.props.controlParams.group } className={ `kadence-builder-drop kadence-builder-sortable-panel kadence-builder-drop-${ location }` } list={ theItems } setList={ newState => this.props.onUpdate( this.props.row, this.props.zone, newState ) } > { currentList.length > 0 && ( currentList.map( ( item, index ) => { return <ItemComponent removeItem={ ( remove ) => this.props.removeItem( remove, this.props.row, this.props.zone ) } focusItem={ ( focus ) => this.props.focusItem( focus ) } key={ item } index={ index } item={ item } controlParams={ this.props.controlParams } />; } ) ) } </ReactSortable> <AddComponent row={ this.props.row } list={ theItems } settings={ this.props.settings } column={ this.props.zone } setList={ newState => this.props.onAddItem( this.props.row, this.props.zone, newState ) } key={ location } location={ location } id={ 'add-' + location } controlParams={ this.props.controlParams } choices={ this.props.choices } /> { 'header_desktop_items' === this.props.controlParams.group && 'left' === location && ( <Fragment> <ReactSortable animation={100} onStart={ () => this.props.showDrop() } onEnd={ () => this.props.hideDrop() } group={ this.props.controlParams.group } className={ `kadence-builder-drop kadence-builder-sortable-panel kadence-builder-drop-${ location }_center` } list={ theCenterItems } setList={ newState => this.props.onUpdate( this.props.row, this.props.zone + '_center', newState ) } > { currentCenterList.length > 0 && ( currentCenterList.map( ( item, index ) => { return <ItemComponent removeItem={ ( remove ) => this.props.removeItem( remove, this.props.row, this.props.zone + '_center' ) } focusItem={ ( focus ) => this.props.focusItem( focus ) } key={ item } index={ index } item={ item } controlParams={ this.props.controlParams } />; } ) ) } </ReactSortable> <AddComponent row={ this.props.row } list={ theCenterItems } settings={ this.props.settings } column={ this.props.zone + '_center' } setList={ newState => this.props.onAddItem( this.props.row, this.props.zone + '_center', newState ) } key={ location } location={ location + '_center' } id={ 'add-center-' + location } controlParams={ this.props.controlParams } choices={ this.props.choices } /> </Fragment> ) } </div> ); } } export default DropComponent; react/src/layout-builder/item-component.js 0000644 00000007072 15151531430 0014672 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class ItemComponent extends Component { constructor() { super( ...arguments ); this.choices = ( kadenceCustomizerControlsData && kadenceCustomizerControlsData.choices && kadenceCustomizerControlsData.choices[ this.props.controlParams.group ] ? kadenceCustomizerControlsData.choices[ this.props.controlParams.group ] : [] ); } render() { return ( <div className="kadence-builder-item" data-id={ this.props.item } data-section={ undefined !== this.choices[ this.props.item ] && undefined !== this.choices[ this.props.item ].section ? this.choices[ this.props.item ].section : '' } key={ this.props.item }> <span className="kadence-builder-item-icon kadence-move-icon" > { Icons['drag'] } </span> <span className="kadence-builder-item-text" > { ( undefined !== this.choices[ this.props.item ] && undefined !== this.choices[ this.props.item ].name ? this.choices[ this.props.item ].name : '' ) } </span> <Button className="kadence-builder-item-focus-icon kadence-builder-item-icon" aria-label={ __( 'Setting settings for', 'kadence' ) + ' ' + ( undefined !== this.choices[ this.props.item ] && undefined !== this.choices[ this.props.item ].name ? this.choices[ this.props.item ].name : '' ) } onClick={ () => { this.props.focusItem( undefined !== this.choices[ this.props.item ] && undefined !== this.choices[ this.props.item ].section ? this.choices[ this.props.item ].section : '' ); } } > <Dashicon icon="admin-generic"/> </Button> { kadenceCustomizerControlsData.blockWidgets && this.props.item.includes('widget') && 'toggle-widget' !== this.props.item && ( <Button className="kadence-builder-item-focus-icon kadence-builder-item-icon" aria-label={ __( 'Setting settings for', 'kadence' ) + ' ' + ( undefined !== this.choices[ this.props.item ] && undefined !== this.choices[ this.props.item ].name ? this.choices[ this.props.item ].name : '' ) } onClick={ () => { this.props.focusItem( undefined !== this.choices[ this.props.item ] && undefined !== this.choices[ this.props.item ].section ? 'kadence_customizer_' + this.choices[ this.props.item ].section : '' ); } } > <Dashicon icon="admin-settings"/> </Button> ) } { kadenceCustomizerControlsData.blockWidgets && 'toggle-widget' === this.props.item && ( <Button className="kadence-builder-item-focus-icon kadence-builder-item-icon" aria-label={ __( 'Setting settings for', 'kadence' ) + ' ' + ( undefined !== this.choices[ this.props.item ] && undefined !== this.choices[ this.props.item ].name ? this.choices[ this.props.item ].name : '' ) } onClick={ () => { this.props.focusItem( 'kadence_customizer_sidebar-widgets-header2' ); } } > <Dashicon icon="admin-settings"/> </Button> ) } <Button className="kadence-builder-item-icon" aria-label={ __( 'Remove', 'kadence' ) + ' ' + ( undefined !== this.choices[ this.props.item ] && undefined !== this.choices[ this.props.item ].name ? this.choices[ this.props.item ].name : '' ) } onClick={ () => { this.props.removeItem( this.props.item ); } } > <Dashicon icon="no-alt"/> </Button> </div> ); } } export default ItemComponent; react/src/layout-builder/add-component.js 0000644 00000006000 15151531430 0014452 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Popover, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class AddComponent extends Component { constructor() { super( ...arguments ); this.addItem = this.addItem.bind( this ); this.state = { isVisible: false, } } addItem( item, row, column ) { this.setState( { isVisible: false } ); let updateItems = this.props.list; let theitem = [ { id: item, } ]; updateItems.push( { id: item, }); this.props.setList( updateItems ); } render() { const renderItems = ( item, row, column ) => { let available = true; this.props.controlParams.rows.map( ( zone ) => { Object.keys( this.props.settings[zone] ).map( ( area ) => { if ( this.props.settings[zone][area].includes( item ) ) { available = false; } } ); } ); return ( <Fragment> { available && ( <Button isTertiary className={ 'builder-add-btn' } onClick={ () => { this.addItem( item, row, column ); } } > { ( undefined !== this.props.choices[ item ] && undefined !== this.props.choices[ item ].name ? this.props.choices[ item ].name : '' ) } </Button> ) } </Fragment> ); }; const toggleClose = () => { if ( this.state.isVisible === true ) { this.setState( { isVisible: false } ); } }; let classForAdd = 'kadence-builder-add-item'; if ( 'header_desktop_items' === this.props.controlParams.group && 'right' === this.props.location ) { classForAdd = classForAdd + ' center-on-left'; } if ( 'header_desktop_items' === this.props.controlParams.group && 'left' === this.props.location ) { classForAdd = classForAdd + ' center-on-right'; } if ( 'header_desktop_items' === this.props.controlParams.group && 'left_center' === this.props.location ) { classForAdd = classForAdd + ' right-center-on-right'; } if ( 'header_desktop_items' === this.props.controlParams.group && 'right_center' === this.props.location ) { classForAdd = classForAdd + ' left-center-on-left'; } return ( <div className={ classForAdd } key={ this.props.id }> { this.state.isVisible && ( <Popover position="top" inline={true} className="kadence-popover-add-builder" onClose={ toggleClose }> <div className="kadence-popover-builder-list"> <ButtonGroup className="kadence-radio-container-control"> { Object.keys( this.props.choices ).map( ( item ) => { return renderItems( item, this.props.row, this.props.column ); } ) } </ButtonGroup> </div> </Popover> ) } <Button className="kadence-builder-item-add-icon" onClick={ () => { this.setState( { isVisible: true } ); } } > <Dashicon icon="plus"/> </Button> </div> ); } } export default AddComponent; react/src/layout-builder/control.js 0000644 00000000762 15151531430 0013413 0 ustar 00 import { createRoot } from '@wordpress/element'; import BuilderComponent from './builder-component.js'; export const BuilderControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <BuilderComponent control={ control } customizer={ wp.customize } /> ); // ReactDOM.render( <BuilderComponent control={ control } customizer={ wp.customize } />, control.container[0] ); } } ); react/src/layout-builder/builder-component.js 0000644 00000021656 15151531430 0015366 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import RowComponent from './row-component'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class BuilderComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.onDragEnd = this.onDragEnd.bind( this ); this.onAddItem = this.onAddItem.bind( this ); this.onDragStart = this.onDragStart.bind( this ); this.onDragStop = this.onDragStop.bind( this ); this.removeItem = this.removeItem.bind( this ); this.focusPanel = this.focusPanel.bind( this ); this.focusItem = this.focusItem.bind( this ); this.onFooterUpdate = this.onFooterUpdate.bind( this ); this.linkColumns(); let value = this.props.control.setting.get(); let baseDefault = {}; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...this.defaultValue, ...value } : this.defaultValue; let defaultParams = {}; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; this.choices = ( kadenceCustomizerControlsData && kadenceCustomizerControlsData.choices && kadenceCustomizerControlsData.choices[ this.controlParams.group ] ? kadenceCustomizerControlsData.choices[ this.controlParams.group ] : [] ); this.state = { value: value, }; } onDragStart() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.add( 'kadence-dragging-dropzones' ); } } onDragStop() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.remove( 'kadence-dragging-dropzones' ); } } removeItem( item, row, zone ) { let updateState = this.state.value; let update = updateState[ row ]; let updateItems = []; { update[ zone ].length > 0 && ( update[ zone ].map( ( old ) => { if ( item !== old ) { updateItems.push( old ); } } ) ) }; if ( 'header_desktop_items' === this.controlParams.group && row + '_center' === zone && updateItems.length === 0 ) { if ( update[ row + '_left_center' ].length > 0 ) { update[ row + '_left_center' ].map( ( move ) => { updateState[ row ][ row + '_left' ].push( move ); } ) updateState[ row ][ row + '_left_center' ] = []; } if ( update[ row + '_right_center' ].length > 0 ) { update[ row + '_right_center' ].map( ( move ) => { updateState[ row ][ row + '_right' ].push( move ); } ) updateState[ row ][ row + '_right_center' ] = []; } } update[ zone ] = updateItems; updateState[ row ][ zone ] = updateItems; this.setState( { value: updateState } ); this.updateValues( updateState ); let event = new CustomEvent( 'kadenceRemovedBuilderItem', { 'detail': this.controlParams.group } ); document.dispatchEvent( event ); } onDragEnd( row, zone, items ) { let updateState = this.state.value; let update = updateState[ row ]; let updateItems = []; { items.length > 0 && ( items.map( ( item ) => { updateItems.push( item.id ); } ) ) }; if ( ! this.arraysEqual( update[ zone ], updateItems ) ) { if ( 'header_desktop_items' === this.controlParams.group && row + '_center' === zone && updateItems.length === 0 ) { if ( undefined !== update[ row + '_left_center' ] && update[ row + '_left_center' ].length > 0 ) { update[ row + '_left_center' ].map( ( move ) => { updateState[ row ][ row + '_left' ].push( move ); } ) updateState[ row ][ row + '_left_center' ] = []; } if ( undefined !== update[ row + '_right_center' ] && update[ row + '_right_center' ].length > 0 ) { update[ row + '_right_center' ].map( ( move ) => { updateState[ row ][ row + '_right' ].push( move ); } ) updateState[ row ][ row + '_right_center' ] = []; } } update[ zone ] = updateItems; updateState[ row ][ zone ] = updateItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } } onAddItem( row, zone, items ) { this.onDragEnd( row, zone, items ); let event = new CustomEvent( 'kadenceRemovedBuilderItem', { 'detail': this.controlParams.group } ); document.dispatchEvent( event ); } onFooterUpdate( row ) { let updateState = this.state.value; let update = updateState[ row ]; let removeEvent = false; const columns = parseInt( this.props.customizer.control( 'footer_' + row + '_columns' ).setting.get(), 10 ); if ( columns < 5 ) { if ( undefined !== update[ row + '_5' ] && update[ row + '_5' ].length > 0 ) { updateState[ row ][ row + '_5' ] = []; removeEvent = true; } } if ( columns < 4 ) { if ( undefined !== update[ row + '_4' ] && update[ row + '_4' ].length > 0 ) { updateState[ row ][ row + '_4' ] = []; removeEvent = true; } } if ( columns < 3 ) { if ( undefined !== update[ row + '_3' ] && update[ row + '_3' ].length > 0 ) { updateState[ row ][ row + '_3' ] = []; removeEvent = true; } } if ( columns < 2 ) { if ( undefined !== update[ row + '_2' ] && update[ row + '_2' ].length > 0 ) { updateState[ row ][ row + '_2' ] = []; removeEvent = true; } } this.setState( { value: updateState } ); this.updateValues( updateState ); if ( removeEvent ) { let event = new CustomEvent( 'kadenceRemovedBuilderItem', { 'detail': this.controlParams.group } ); document.dispatchEvent( event ); } } arraysEqual( a, b ) { if (a === b) return true; if (a == null || b == null) return false; if (a.length != b.length) return false; for (var i = 0; i < a.length; ++i) { if (a[i] !== b[i]) return false; } return true; } focusPanel( item ) { if ( undefined !== this.props.customizer.section( 'kadence_customizer_' + item ) ) { this.props.customizer.section( 'kadence_customizer_' + item ).focus(); } } focusItem( item ) { if ( undefined !== this.props.customizer.section( item ) ) { this.props.customizer.section( item ).focus(); } } render() { return ( <div className={ `kadence-control-field kadence-builder-items${ ( this.controlParams.rows.includes( 'popup' ) ? ' kadence-builder-items-with-popup' : '' ) }` }> { this.controlParams.rows.includes( 'popup' ) && ( <RowComponent showDrop={ () => this.onDragStart() } focusPanel={ ( item ) => this.focusPanel( item ) } focusItem={ ( item ) => this.focusItem( item ) } removeItem={ ( remove, row, zone ) => this.removeItem( remove, row, zone ) } onAddItem={ ( updateRow, updateZone, updateItems ) => this.onAddItem( updateRow, updateZone, updateItems ) } hideDrop={ () => this.onDragStop() } onUpdate={ ( updateRow, updateZone, updateItems ) => this.onDragEnd( updateRow, updateZone, updateItems ) } key={ 'popup' } row={ 'popup' } controlParams={ this.controlParams } choices={ this.choices } items={ this.state.value[ 'popup' ] } settings={ this.state.value } /> ) } <div className="kadence-builder-row-items"> { this.controlParams.rows.map( ( row ) => { if ( 'popup' === row ) { return; } return <RowComponent showDrop={ () => this.onDragStart() } focusPanel={ ( item ) => this.focusPanel( item ) } focusItem={ ( item ) => this.focusItem( item ) } removeItem={ ( remove, row, zone ) => this.removeItem( remove, row, zone ) } hideDrop={ () => this.onDragStop() } onUpdate={ ( updateRow, updateZone, updateItems ) => this.onDragEnd( updateRow, updateZone, updateItems ) } onAddItem={ ( updateRow, updateZone, updateItems ) => this.onAddItem( updateRow, updateZone, updateItems ) } key={ row } row={ row } controlParams={ this.controlParams } choices={ this.choices } customizer={ this.props.customizer } items={ this.state.value[ row ] } settings={ this.state.value } />; } ) } </div> </div> ); } // linkFocusButtons() { // this.props.control.container.on( 'click', '.kadence-builder-areas .kadence-builder-item', function( e ) { // e.preventDefault(); // var targetKey = e.target.getAttribute( 'data-section' ); // var targetControl = wp.customize.section( targetKey ); // if ( targetControl ) targetControl.focus(); // } ); // } updateValues( value ) { this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag } ); } linkColumns() { let self = this; document.addEventListener( 'kadenceUpdateFooterColumns', function( e ) { if ( 'footer_items' === self.controlParams.group ) { self.onFooterUpdate( e.detail ); } } ); } } BuilderComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default BuilderComponent; react/src/layout-builder/row-component.js 0000644 00000010056 15151531430 0014537 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import DropComponent from './drop-component'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class RowComponent extends Component { render() { let centerClass = 'no-center-items'; if ( 'header_desktop_items' === this.props.controlParams.group && typeof this.props.items[this.props.row + '_center'] != "undefined" && this.props.items[this.props.row + '_center'] != null && this.props.items[this.props.row + '_center'].length != null && this.props.items[this.props.row + '_center'].length > 0 ){ centerClass = 'has-center-items'; } if ( 'popup' === this.props.row ) { centerClass = 'popup-vertical-group'; } if ( 'footer_items' === this.props.controlParams.group ) { var columns = this.props.customizer.control( 'footer_' + this.props.row + '_columns' ).setting.get(); var layout = this.props.customizer.control( 'footer_' + this.props.row + '_layout' ).setting.get(); var direction = this.props.customizer.control( 'footer_' + this.props.row + '_direction' ).setting.get(); centerClass = 'footer-column-row footer-row-columns-' + columns + ' footer-row-layout-' + layout.desktop + ' footer-row-direction-' + direction.desktop; } const mode = ( this.props.controlParams.group.indexOf( 'header' ) !== -1 ? 'header' : 'footer' ); let besideItems = []; return ( <div className={ `kadence-builder-areas ${ centerClass }` }> <Button className="kadence-row-left-actions" aria-label={ __( 'Edit Settings for', 'kadence' ) + ' ' + ( this.props.row === 'popup' ? __( 'Off Canvas', 'kadence' ) : this.props.row + ' ' + __( 'Row', 'kadence' ) ) } onClick={ () => this.props.focusPanel( mode + '_' + this.props.row ) } icon="admin-generic" > </Button> <Button className="kadence-row-actions" aria-label={ __( 'Edit Settings for', 'kadence' ) + ' ' + ( this.props.row === 'popup' ? __( 'Off Canvas', 'kadence' ) : this.props.row + ' ' + __( 'Row', 'kadence' ) ) } onClick={ () => this.props.focusPanel( mode + '_' + this.props.row ) } > { ( this.props.row === 'popup' ? __( 'Off Canvas', 'kadence' ) : this.props.row + ' ' + __( 'Row', 'kadence' ) ) } <Dashicon icon="admin-generic" /> </Button> <div className="kadence-builder-group kadence-builder-group-horizontal" data-setting={ this.props.row }> { Object.keys( this.props.controlParams.zones[ this.props.row ] ).map( ( zone, index ) => { if ( this.props.row + '_left_center' === zone || this.props.row + '_right_center' === zone ) { return; } if ( 'footer_items' === this.props.controlParams.group ) { if ( columns < ( index + 1 ) ) { return; } } if ( 'header_desktop_items' === this.props.controlParams.group && this.props.row + '_left' === zone ) { besideItems = this.props.items[ this.props.row + '_left_center' ]; } if ( 'header_desktop_items' === this.props.controlParams.group && this.props.row + '_right' === zone ) { besideItems = this.props.items[ this.props.row + '_right_center' ]; } return <DropComponent removeItem={ ( remove, removeRow, removeZone ) => this.props.removeItem( remove, removeRow, removeZone ) } focusItem={ ( focus ) => this.props.focusItem( focus ) } hideDrop={ () => this.props.hideDrop() } showDrop={ () => this.props.showDrop() } onUpdate={ ( updateRow, updateZone, updateItems ) => this.props.onUpdate( updateRow, updateZone, updateItems ) } zone={ zone } row={ this.props.row } choices={ this.props.choices } key={ zone } items={ this.props.items[zone] } centerItems={ besideItems } controlParams={ this.props.controlParams } onAddItem={ ( updateRow, updateZone, updateItems ) => this.props.onAddItem( updateRow, updateZone, updateItems ) } settings={ this.props.settings } />; } ) } </div> </div> ); } } export default RowComponent; react/src/color-link/color-link-component.js 0000644 00000012217 15151531430 0015112 0 ustar 00 import PropTypes from 'prop-types'; import { __ } from '@wordpress/i18n'; const { SelectControl } = wp.components; import ColorControl from '../common/color.js'; /** * WordPress dependencies */ import { createRef, Component, Fragment } from '@wordpress/element'; class ColorLinkComponent extends Component { constructor(props) { super( props ); this.handleChangeComplete = this.handleChangeComplete.bind( this ); this.updateValues = this.updateValues.bind( this ); let value = this.props.control.setting.get(); let baseDefault = { 'highlight': '', 'highlight-alt': '', 'highlight-alt2': '', 'style': 'standard', }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...this.defaultValue, ...value } : this.defaultValue; let defaultParams = { colors: { 'highlight': { tooltip: __( 'Initial', 'kadence' ), palette: true, }, 'highlight-alt': { tooltip: __( 'Hover', 'kadence' ), palette: true, }, 'highlight-alt2': { tooltip: __( 'Text Alt', 'kadence' ), palette: true, }, }, styles: { 'standard': { label: __( 'Standard (underline)', 'kadence' ), }, 'color-underline': { label: __( 'Highlight Underline', 'kadence' ), }, 'no-underline': { label: __( 'No Underline', 'kadence' ), }, 'hover-background': { label: __( 'Background on Hover', 'kadence' ), }, 'offset-background': { label: __( 'Offset Background', 'kadence' ), }, }, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; const palette = JSON.parse( this.props.customizer.control( 'kadence_color_palette' ).setting.get() ); this.state = { value: value, colorPalette: palette, }; this.anchorNodeRef = createRef(); } handleChangeComplete( color, isPalette, item ) { let value = this.state.value; if ( isPalette ) { value[ item ] = isPalette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value[ item ] = 'rgba(' + color.rgb.r + ',' + color.rgb.g + ',' + color.rgb.b + ',' + color.rgb.a + ')'; } else { value[ item ] = color.hex; } document.documentElement.style.setProperty('--global-palette-' + item, value[ item ] ); this.updateValues( value ); } render() { const styleOptions = Object.keys( this.controlParams.styles ).map( ( item ) => { return ( { label: this.controlParams.styles[ item ].label, value: item } ); } ); const hoverBackgroundColors = { 'highlight': { tooltip: __( 'Initial/Background', 'kadence' ), palette: true, }, 'highlight-alt': { tooltip: __( 'Unused', 'kadence' ), palette: true, }, 'highlight-alt2': { tooltip: __( 'Text Hover', 'kadence' ), palette: true, }, }; // Use special color labels for hover background; const colorsToUse = this.state.value.style === 'hover-background' ? hoverBackgroundColors : this.controlParams.colors; return ( <Fragment> <div className="kadence-control-field kadence-color-control kadence-link-color-control"> <span className="customize-control-title"> { __( 'Link Style', 'kadence' ) } </span> <SelectControl value={ this.state.value.style } options={ styleOptions } onChange={ ( val ) => { let value = this.state.value; value.style = val; this.updateValues( value ); } } /> </div> <div ref={ this.anchorNodeRef } className="kadence-control-field kadence-color-control kadence-link-color-control"> { this.props.control.params.label && <span className="customize-control-title"> { this.props.control.params.label } </span> } { Object.keys( colorsToUse ).map( ( item ) => { if ( ( this.state.value.style === 'standard' || this.state.value.style === 'color-underline' || this.state.value.style === 'no-underline' ) && item === 'highlight-alt2' ) { return; } return ( <ColorControl key={ item } presetColors={ this.state.colorPalette } color={ ( undefined !== this.state.value[ item ] && this.state.value[ item ] ? this.state.value[ item ] : '' ) } usePalette={ ( undefined !== colorsToUse[ item ] && undefined !== colorsToUse[ item ].palette && '' !== colorsToUse[ item ].palette ? colorsToUse[ item ].palette : true ) } tooltip={ ( undefined !== colorsToUse[ item ] && undefined !== colorsToUse[ item ].tooltip ? colorsToUse[ item ].tooltip : '' ) } onChangeComplete={ ( color, isPalette ) => this.handleChangeComplete( color, isPalette, item ) } customizer={ this.props.customizer } controlRef={ this.anchorNodeRef } /> ) } ) } </div> </Fragment> ); } updateValues( value ) { this.setState( { value: value } ); this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, } ); } } ColorLinkComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default ColorLinkComponent; react/src/color-link/control.js 0000644 00000001010 15151531430 0012506 0 ustar 00 import { createRoot } from '@wordpress/element'; import ColorLinkComponent from './color-link-component.js'; export const ColorLinkControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <ColorLinkComponent control={control} customizer={ wp.customize }/> ); // ReactDOM.render( // <ColorLinkComponent control={control} customizer={ wp.customize }/>, // control.container[0] // ); } } ); react/src/available/available-component.js 0000644 00000013426 15151531430 0014633 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { ReactSortable } from "react-sortablejs"; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class AvailableComponent extends Component { constructor() { super( ...arguments ); this.linkRemovingItem = this.linkRemovingItem.bind( this ); this.onDragEnd = this.onDragEnd.bind( this ); this.onDragStart = this.onDragStart.bind( this ); this.onUpdate = this.onUpdate.bind( this ); this.onDragStop = this.onDragStop.bind( this ); this.focusPanel = this.focusPanel.bind( this ); let settings = {}; let defaultParams = {}; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; if ( kadenceCustomizerControlsData.source && undefined !== this.props.customizer.control( kadenceCustomizerControlsData.source + '[' + this.controlParams.group + ']' ) ) { settings = this.props.customizer.control( kadenceCustomizerControlsData.source + '[' + this.controlParams.group + ']' ).setting.get(); } else if ( undefined !== this.props.customizer.control( this.controlParams.group ) ) { settings = this.props.customizer.control( this.controlParams.group ).setting.get(); } this.choices = ( kadenceCustomizerControlsData && kadenceCustomizerControlsData.choices && kadenceCustomizerControlsData.choices[ this.controlParams.group ] ? kadenceCustomizerControlsData.choices[ this.controlParams.group ] : [] ); this.state = { settings: settings, }; this.linkRemovingItem(); } onUpdate() { if ( kadenceCustomizerControlsData.source && undefined !== this.props.customizer.control( kadenceCustomizerControlsData.source + '[' + this.controlParams.group + ']' ) ) { const settings = this.props.customizer.control( kadenceCustomizerControlsData.source + '[' + this.controlParams.group + ']' ).setting.get(); this.setState( { settings: settings } ); } else if ( undefined !== this.props.customizer.control( this.controlParams.group ) ) { const settings = this.props.customizer.control( this.controlParams.group ).setting.get(); this.setState( { settings: settings } ); } } onDragStart() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.add( 'kadence-dragging-dropzones' ); } } onDragStop() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.remove( 'kadence-dragging-dropzones' ); } } focusPanel( item ) { if ( undefined !== this.props.customizer.section( this.choices[ item ].section ) ) { this.props.customizer.section( this.choices[ item ].section ).focus(); } } onDragEnd( items ) { if ( items.length != null && items.length === 0 ) { this.onUpdate(); } } render() { const renderItem = ( item, row ) => { let available = true; this.controlParams.zones.map( ( zone ) => { Object.keys( this.state.settings[zone] ).map( ( area ) => { if ( this.state.settings[zone][area].includes( item ) ) { available = false; } } ); } ); let theitem = [ { id: item, } ]; return ( <Fragment> { available && row === 'available' && ( <ReactSortable animation={100} onStart={ () => this.onDragStart() } onEnd={ () => this.onDragStop() } group={ { name: this.controlParams.group, put: false } } className={ 'kadence-builder-item-start kadence-move-item' } list={ theitem } setList={ newState => this.onDragEnd( newState ) } > <div className="kadence-builder-item" data-id={ item } data-section={ undefined !== this.choices[ item ] && undefined !== this.choices[ item ].section ? this.choices[ item ].section : '' } key={ item }> <span className="kadence-builder-item-icon kadence-move-icon" > { Icons['drag'] } </span> { ( undefined !== this.choices[ item ] && undefined !== this.choices[ item ].name ? this.choices[ item ].name : '' ) } </div> </ReactSortable> ) } { ! available && row === 'links' && ( <div className={ 'kadence-builder-item-start' }> <Button className="kadence-builder-item" data-id={ item } onClick={ () => this.focusPanel( item ) } data-section={ undefined !== this.choices[ item ] && undefined !== this.choices[ item ].section ? this.choices[ item ].section : '' } key={ item }> { ( undefined !== this.choices[ item ] && undefined !== this.choices[ item ].name ? this.choices[ item ].name : '' ) } <span className="kadence-builder-item-icon" > <Dashicon icon="arrow-right-alt2"/> </span> </Button> </div> ) } </Fragment> ); }; return ( <div className="kadence-control-field kadence-available-items"> { Object.keys( this.choices ).map( ( item ) => { return renderItem( item, 'links' ); } ) } <div className="kadence-available-items-title"> <span className="customize-control-title">{ __( 'Available Items', 'kadence' ) }</span> </div> <div className="kadence-available-items-pool"> { Object.keys( this.choices ).map( ( item ) => { return renderItem( item, 'available' ); } ) } </div> </div> ); } linkRemovingItem() { let self = this; document.addEventListener( 'kadenceRemovedBuilderItem', function( e ) { if ( e.detail === self.controlParams.group ) { self.onUpdate(); } } ); } } AvailableComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default AvailableComponent; react/src/available/control.js 0000644 00000000774 15151531430 0012375 0 ustar 00 import { createRoot } from '@wordpress/element'; import AvailableComponent from './available-component.js'; export const AvailableControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <AvailableComponent control={ control } customizer={ wp.customize } /> ); // ReactDOM.render( <AvailableComponent control={ control } customizer={ wp.customize } />, control.container[0] ); } } ); react/src/switch/switch-component.js 0000644 00000002234 15151531430 0013570 0 ustar 00 import PropTypes from 'prop-types'; import { __ } from '@wordpress/i18n'; const { Component } = wp.element; const { ToggleControl } = wp.components; class SwitchComponent extends Component { constructor(props) { super( props ); let value = props.control.setting.get(); this.state = { value }; this.defaultValue = props.control.params.default || ''; this.updateValues = this.updateValues.bind( this ); } render() { //console.log( this.props.control.params ); return ( <div className="kadence-control-field kadence-switch-control"> <ToggleControl label={ this.props.control.params.label ? this.props.control.params.label : undefined } checked={ this.state.value } help={ this.props.control.params.input_attrs && this.props.control.params.input_attrs.help ? this.props.control.params.input_attrs.help : undefined } onChange={ (value) => { this.updateValues( value ); } } /> </div> ); } updateValues(value) { this.setState( { value: value } ); this.props.control.setting.set( value ); } } SwitchComponent.propTypes = { control: PropTypes.object.isRequired }; export default SwitchComponent; react/src/switch/control.js 0000644 00000000702 15151531430 0011745 0 ustar 00 import { createRoot } from '@wordpress/element'; import SwitchComponent from './switch-component.js'; export const SwitchControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <SwitchComponent control={control}/> ); // ReactDOM.render( // <SwitchComponent control={control}/>, // control.container[0] // ); } } ); react/src/builder-controls.scss 0000644 00000040272 15151531430 0012620 0 ustar 00 @import "variables.scss"; .customize-control-kadence_builder_control { border:0 !important; } // Areas .kadence-builder-items { padding: 10px 20px; } .kadence-builder-sortable-panel { min-height: 44px; display: flex; flex: 1; align-items: center; } .kadence-builder-item { line-height: 32px; display: inline-flex; align-items: center; justify-content: space-between; height: auto; min-width: 80px; background: white; position: relative; border: 1px solid $color-gray-500; white-space: nowrap; position: relative; cursor: grab; margin: 0 4px; padding: 0 12px; border-radius: 3px; > .kadence-builder-item-icon { display: flex; align-items: center; justify-content: center; right: 0; cursor: pointer; margin-right: -10px; width: 28px; height: 28px; color:$color-gray-600; background: transparent; border: 0; padding: 0; margin-left: 8px; } } .kadence-builder-item.sortable-ghost { opacity: 0.4; box-shadow: none; opacity: 0.6; font-size: 0; border: 1px dashed #9c9c9c; background: rgba(0, 0, 0, 0.015); background: rgba(0, 124, 186, 0.25); .kadence-builder-item-icon { display: none; } } .kadence-builder-item.sortable-drag { box-shadow: 0 5px 20px -5px rgba(104, 104, 104, 0.4), inset 3px 0px 0px $color-primary; z-index: 999999 !important; .kadence-builder-item-icon:not(.kadence-move-icon) { display: none; } } .kadence-builder-item-start { margin-bottom:10px; min-height: 34px; display: flex; .kadence-builder-item { flex:1; display:flex; width: 100%; box-sizing: border-box; &.sortable-drag { width:auto; } } } #accordion-section-kadence_customizer_header_builder { display: none !important; } #accordion-section-kadence_customizer_footer_builder { display: none !important; } // Tabs .kadence-build-tabs { border-bottom:4px solid #ddd; margin: 0; padding-top: 9px; padding-bottom: 0; line-height: inherit; display: flex; padding: 0 12px; } .kadence-build-tabs .nav-tab { font-size:14px; line-height:20px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; text-transform: uppercase; height: 40px; margin: 0; margin-bottom: -4px; padding: 0 18px; cursor: pointer; border: 0; box-sizing: content-box; border-bottom:4px solid #ddd; border-radius: 0; border-top-left-radius: 2px; border-top-right-radius: 2px; .dashicons.dashicons-desktop { font-size: 14px; height: auto; } &:not(.nav-tab-active):hover { background: #e5e5e5 !important; color: #444 !important; border-bottom-color: #f9f9f9; } &:hover { box-shadow: none !important; } &:not(:first-child) { margin-left: 8px; } } .kadence-build-tabs .nav-tab.nav-tab-active { border-bottom-color: #007cba; background: #f9f9f9; color:#000; } // Builder Container Area #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { position: fixed !important; top: auto; left: 300px; right: 0; min-height: 0; background: #eee; border-top: 1px solid $color-gray-500; bottom: 0; visibility: visible; height: auto; width: auto; padding:0; max-height: 60%; overflow: auto; transform: translateY(100%); transition: transform 0.1s ease; backface-visibility: hidden; } @media ( min-width: 1660px ) { #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { left: 18%; } } @media ( max-width: 1659px ) { .rtl { #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { right: 300px; left:0; } } } #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder.kadence-builder-active, #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder.kadence-footer-builder-active { transform: translateY(0%); visibility: visible; overflow: visible; } #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder.kadence-builder-active.kadence-builder-hide, #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder.kadence-footer-builder-active.kadence-builder-hide { transform: translateY(100%) !important; overflow: visible; } .kadence-builder-active > li.customize-section-description-container, .kadence-footer-builder-active > li.customize-section-description-container { display: none !important; } .kadence-builder-areas .kadence-builder-group-horizontal { display: flex; margin-bottom: 15px; border: 1px dashed $color-gray-500; background:#f7f7f7; .kadence-builder-area { display: flex; } .kadence-builder-area-left, .kadence-builder-area-right { flex: 1 1 0%; } .kadence-builder-area-right .kadence-builder-drop-right, .kadence-builder-drop-left_center { justify-content:flex-end; } .kadence-builder-drop-left_center, .kadence-builder-drop-right_center { width: 0px; flex: 0; overflow: hidden; } .kadence-builder-area-center { min-width: 80px; border-left: 1px dashed $color-gray-500; border-right: 1px dashed $color-gray-500; .kadence-builder-sortable-panel { justify-content:center; } } .kadence-builder-area-center.kadence-dragging-dropzones { min-width: 120px; } } .kadence-builder-areas.has-center-items { .kadence-builder-drop-left_center, .kadence-builder-drop-right_center { width: auto; flex: 1; overflow: auto; } .kadence-dragging-dropzones .kadence-builder-drop-left_center { min-width: 100px; border-left: 1px dashed $color-gray-500; } .kadence-dragging-dropzones .kadence-builder-drop-right_center { min-width: 100px; border-right: 1px dashed $color-gray-500; } .kadence-builder-area-center { min-width: 120px; border-left: 1px dashed $color-gray-500; border-right: 1px dashed $color-gray-500; } } .kadence-builder-areas .kadence-small-label { display: none; } .kadence-builder-areas.popup-vertical-group { width: 200px; padding-right: 20px; .kadence-builder-group { height: 100%; margin-bottom: 0; } } .kadence-builder-areas.popup-vertical-group .kadence-builder-area { flex: auto; flex-direction: column; .kadence-builder-sortable-panel { min-height: 115px; align-items: center; flex-direction: column; flex-wrap: wrap; .kadence-builder-item { width: 90%; margin-top: 4px; margin-bottom: 4px; box-sizing: border-box; } } } .kadence-builder-item-start button.kadence-builder-item { border:1px dashed #bbb; background: #f2f2f2; cursor: pointer; box-shadow:none !important; } .kadence-builder-item-start button.kadence-builder-item:hover { border:1px dashed #a2a2a2; background: #f9f9f9 !important; } // Footer. .kadence-footer-builder-is-active .in-sub-panel:not( .section-open ) ul#sub-accordion-section-kadence_customizer_footer_layout, .kadence-builder-is-active .in-sub-panel:not( .section-open ) ul#sub-accordion-section-kadence_customizer_header_layout { transform: none; height: auto; visibility: visible; top: 75px; } .kadence-footer-builder-is-active .in-sub-panel:not( .section-open ) ul#sub-accordion-section-kadence_customizer_footer_layout .customize-section-description-container.section-meta, .kadence-builder-is-active .in-sub-panel:not( .section-open ) ul#sub-accordion-section-kadence_customizer_header_layout .customize-section-description-container.section-meta { display: none; } .kadence-footer-builder-is-active .in-sub-panel:not( .section-open ) #sub-accordion-section-kadence_customizer_footer_layout .customize-section-description-container, .kadence-builder-is-active .in-sub-panel:not( .section-open ) ul#sub-accordion-section-kadence_customizer_header_layout .customize-section-description-container { display: none; } .kadence-footer-builder-is-active .in-sub-panel:not( .section-open ) #sub-accordion-panel-kadence_customizer_footer .accordion-section.control-section, .kadence-builder-is-active .in-sub-panel:not( .section-open ) #sub-accordion-panel-kadence_customizer_header .accordion-section.control-section { display: none !important; } .kadence-footer-builder-is-active .preview-desktop #customize-preview, .kadence-footer-builder-is-active .preview-tablet #customize-preview, .kadence-builder-is-active .preview-desktop #customize-preview, .kadence-builder-is-active .preview-tablet #customize-preview { height: auto; } #customize-control-header_mobile_items .kadence-builder-items { display: flex; } #customize-control-header_mobile_items .kadence-builder-row-items { flex: 1; } .customize-control-kadence_builder_control .kadence-builder-items.kadence-builder-items-with-popup { display: flex; .kadence-builder-row-items { flex: 1; } } .kadence-builder-areas button.components-button.kadence-row-actions { background: $color-primary; color: #c8dbe4; text-transform: uppercase; font-size: 10px; height: auto; line-height: 26px; border-radius: 0; position: absolute; top: -26px; border:0; opacity: 0; height: 26px; padding-top: 0; padding-bottom: 0; z-index: 10; } .kadence-builder-areas:hover button.components-button.kadence-row-actions { opacity: 1; } .kadence-builder-areas button.components-button.kadence-row-actions svg { width: 10px; margin-left: 8px; } .kadence-builder-areas button.components-button.kadence-row-actions .dashicons { width: 10px; font-size: 10px; height: 10px; margin-left: 8px; } .kadence-builder-areas button.components-button.kadence-row-actions:hover, .kadence-builder-areas button.components-button.kadence-row-actions:focus { background: $color-primary !important; color: white !important; box-shadow: none !important; } .kadence-builder-areas { position: relative; } .kadence-builder-areas:hover .kadence-builder-group-horizontal { border: 1px solid $color-primary; } .kadence-builder-group.kadence-builder-group-horizontal[data-setting="bottom"] { margin-bottom: 0; } .footer-column-row .kadence-builder-area { flex: 1; border-right: 1px dashed #A0AEC0; .kadence-builder-sortable-panel { justify-content: center; } &:first-child .kadence-builder-sortable-panel { justify-content: flex-start; } &:last-child .kadence-builder-sortable-panel { justify-content: flex-end; } } .footer-column-row .kadence-builder-area:last-child { border-right: 0; } #sub-accordion-section-kadence_customizer_footer_builder .customize-control-kadence_blank_control .kadence-builder-tab-toggle { top: -4px; } #sub-accordion-section-kadence_customizer_footer_builder .customize-control-kadence_blank_control .kadence-builder-show-button.kadence-builder-tab-toggle { top: auto; } .footer-row-columns-2 { &.footer-row-layout-left-golden { .kadence-builder-area-1 { flex: 0 1 66.67%; } .kadence-builder-area-2 { flex: 0 1 33.33%; } } &.footer-row-layout-right-golden { .kadence-builder-area-1 { flex: 0 1 33.33%; } .kadence-builder-area-2 { flex: 0 1 66.67%; } } } .footer-row-columns-3 { &.footer-row-layout-left-half { .kadence-builder-area { flex: 0 1 25%; } .kadence-builder-area-1 { flex: 0 1 50%; } } &.footer-row-layout-right-half { .kadence-builder-area { flex: 0 1 25%; } .kadence-builder-area-3 { flex: 0 1 50%; } } &.footer-row-layout-center-half { .kadence-builder-area { flex: 0 1 25%; } .kadence-builder-area-2 { flex: 0 1 50%; } } &.footer-row-layout-center-wide { .kadence-builder-area { flex: 0 1 20%; } .kadence-builder-area-2 { flex: 0 1 60%; } } &.footer-row-layout-center-exwide { .kadence-builder-area { flex: 0 1 15%; } .kadence-builder-area-2 { flex: 0 1 70%; } } } .footer-row-columns-4 { &.footer-row-layout-left-forty { .kadence-builder-area { flex: 1; } .kadence-builder-area-1 { flex: 2; } } &.footer-row-layout-right-forty { .kadence-builder-area { flex: 1; } .kadence-builder-area-4 { flex: 2; } } } .footer-column-row.footer-row-columns-1 .kadence-builder-area:last-child .kadence-builder-sortable-panel { justify-content: center; } .kadence-builder-areas.footer-row-direction-column .kadence-builder-group-horizontal .kadence-builder-area .kadence-builder-drop { flex-direction: column; align-items: normal; } .kadence-builder-areas.footer-row-direction-column .kadence-builder-group-horizontal .kadence-builder-area .kadence-builder-drop .kadence-builder-item { margin: 4px; } .kadence-builder-item-start .kadence-builder-item { border-left:3px solid $color-primary; } .kadence-builder-item-start button.kadence-builder-item { border: 1px solid #fff; background: #fff; } .kadence-builder-item-start button.kadence-builder-item:hover { border: 1px solid #fff; background: #fff !important; } .kadence-builder-item-start .kadence-builder-item:hover>.kadence-builder-item-icon { color: $color-primary; } .kadence-builder-item>.kadence-builder-item-icon.kadence-move-icon { margin-left: -10px; transform: rotate(90deg); margin-right: 0; cursor: grab; width: 18px; opacity: 0.7; } .kadence-builder-item-text { flex-grow: 1; } .kadence-builder-item-start.kadence-move-item .kadence-builder-item { justify-content:flex-start } .customize-control:not(.customize-control-kadence_blank_control) + .customize-control#customize-control-header_mobile_available_items { padding-top: 0; border-top: 0; } .kadence-available-items-pool { min-width: 80px; border: 1px dashed #A0AEC0; padding: 20px 10px 10px; } .kadence-available-items-title { padding: 10px 0; } .kadence-builder-item>.kadence-builder-item-icon.kadence-builder-item-focus-icon svg {width: 14px;} .kadence-builder-item>.kadence-builder-item-icon.kadence-builder-item-focus-icon .dashicon { font-size: 14px; width: 14px; height: 14px; } .kadence-builder-area .kadence-builder-add-item { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } .kadence-builder-area { position: relative; .kadence-builder-item { z-index: 10; } } .kadence-builder-area .kadence-builder-item-add-icon { display: block; position: absolute; left: 0; right: 0; top: 0; bottom: 0; background: transparent; border: 0; height: auto; width: auto; padding: 0; min-width: 100%; z-index: 1; transition: all .2s ease-in-out; color:transparent !important; &:hover, &:focus { color:#444 !important; background: rgba(0, 124, 186, 0.05)!important; box-shadow: none !important; border:0 !important; } } .components-popover.kadence-popover-add-builder.components-animate__appear { left: 50% !important; top: 0 !important; position: absolute; bottom: auto; } .components-popover__content .kadence-popover-builder-list .kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 10px; width: 300px; } .kadence-popover-builder-list { padding: 0 10px; .kadence-radio-container-control button.components-button.is-tertiary { font-size: 10px; margin: 0; } } .kadence-builder-area .kadence-builder-item-add-icon svg { margin-top: 5px; } .kadence-builder-area-center .kadence-builder-drop-center .kadence-builder-item:first-child { margin-left: 25px; } .kadence-builder-area-center .kadence-builder-drop-center .kadence-builder-item:last-child { margin-right: 25px; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.center-on-right { right:50%; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.center-on-right .kadence-builder-item-add-icon { text-align:right; padding-right:30px; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.center-on-left { left:50%; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.center-on-left .kadence-builder-item-add-icon { text-align:left; padding-left:30px; } .kadence-builder-area .kadence-builder-add-item.left-center-on-left, .kadence-builder-area .kadence-builder-add-item.right-center-on-right { display: none; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.left-center-on-left { display:block; right: 50%; } .kadence-builder-areas.has-center-items .kadence-builder-add-item.right-center-on-right { display:block; left: 50%; } react/src/textarea/textarea-component.js 0000644 00000001717 15151531430 0014425 0 ustar 00 import PropTypes from 'prop-types'; import { __ } from '@wordpress/i18n'; const { Component } = wp.element; const { TextareaControl } = wp.components; class TextareaComponent extends Component { constructor(props) { super( props ); let value = props.control.setting.get(); this.state = { value }; this.defaultValue = props.control.params.default || ''; this.updateValues = this.updateValues.bind( this ); } render() { return ( <div className="kadence-control-field kadence-text-control"> <TextareaControl label={ this.props.control.params.label ? this.props.control.params.label : undefined } value={ this.state.value } onChange={ (value) => { this.updateValues( value ); } } /> </div> ); } updateValues(value) { this.setState( { value: value } ); this.props.control.setting.set( value ); } } TextareaComponent.propTypes = { control: PropTypes.object.isRequired }; export default TextareaComponent; react/src/textarea/control.js 0000644 00000000677 15151531430 0012274 0 ustar 00 import { createRoot } from '@wordpress/element'; import TextareaComponent from './textarea-component.js'; export const TextareaControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <TextareaComponent control={ control } /> ); // ReactDOM.render( <TextareaComponent control={ control } />, control.container[0] ); } } ); react/src/check-icon/check-icon-component.js 0000644 00000007005 15151531430 0014775 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class CheckIconComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); let value = this.props.control.setting.get(); let defaultParams = { options: { desktop: { name: __( 'Desktop', 'kadence' ), icon: 'desktop', }, tablet: { name: __( 'Tablet', 'kadence' ), icon: 'tablet', }, mobile: { name: __( 'Mobile', 'kadence' ), icon: 'smartphone', }, }, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let baseDefault = { 'mobile': true, 'tablet': true, 'desktop': true, }; this.defaultValue = this.props.control.params.default ? this.props.control.params.default : baseDefault; value = value ? { ...JSON.parse( JSON.stringify( this.defaultValue ) ), ...value } : JSON.parse( JSON.stringify( this.defaultValue ) ); this.state = { value: value, }; } render() { const controlLabel = ( <Fragment> <Tooltip text={ __( 'Reset Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.value == this.defaultValue ) } onClick={ () => { let value = this.defaultValue; this.setState( { value: this.defaultValue } ); this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { this.props.control.params.label && this.props.control.params.label } </Fragment> ); return ( <div className="kadence-control-field kadence-radio-icon-control"> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <ButtonGroup className="kadence-radio-container-control"> { Object.keys( this.controlParams.options ).map( ( item ) => { return ( <Fragment> <Tooltip text={ this.controlParams.options[ item ].name }> <Button isTertiary className={ ( true === this.state.value[ item ] ? 'active-radio ' : '' ) + item } onClick={ () => { let value = this.state.value; if( value[ item ] ) { value[ item ] = false; } else { value[ item ] = true; } this.setState( { value: value }); this.updateValues( value ); } } > { this.controlParams.options[ item ].icon && ( <span className="kadence-radio-icon"> { <Dashicon icon={this.controlParams.options[ item ].icon}/> } </span> ) } { ! this.controlParams.options[ item ].icon && ( <span className="kadence-radio-name"> { this.controlParams.options[ item ].name } </span> ) } </Button> </Tooltip> </Fragment> ); } )} </ButtonGroup> </div> ); } updateValues( value ) { this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag } ); } } CheckIconComponent.propTypes = { control: PropTypes.object.isRequired }; export default CheckIconComponent; react/src/check-icon/control.js 0000644 00000000722 15151531430 0012451 0 ustar 00 import { createRoot } from '@wordpress/element'; import CheckIconComponent from './check-icon-component.js'; export const CheckIconControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <CheckIconComponent control={control}/> ); // ReactDOM.render( // <CheckIconComponent control={control}/>, // control.container[0] // ); } } ); react/src/icon-controls.scss 0000644 00000176140 15151531430 0012126 0 ustar 00 @import "variables.scss"; .rfipbtn,.rfipdropdown{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px;line-height:1.71429;vertical-align:baseline}.rfipbtn,.rfipbtn *,.rfipdropdown,.rfipdropdown *{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.rfipbtn input,.rfipbtn select,.rfipdropdown input,.rfipdropdown select{font-size:14px}.rfip{position:relative;display:inline-block;margin:8px;vertical-align:middle}.rfipbtn{width:136px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;min-height:50px;border-radius:2px;cursor:pointer;-webkit-transition:border-color .25s,-webkit-box-shadow .25s;transition:border-color .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border-color .25s;transition:box-shadow .25s,border-color .25s,-webkit-box-shadow .25s;outline:0 none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.rfipbtn--open{border-radius:2px 2px 0 0}.rfipbtn__button{width:48px;margin-left:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:auto;-webkit-transition:background .25s,-webkit-box-shadow .25s;transition:background .25s,-webkit-box-shadow .25s;transition:background .25s,box-shadow .25s;transition:background .25s,box-shadow .25s,-webkit-box-shadow .25s}.rfipbtn__button i{font-size:32px;-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s}.rfipbtn__button--open i{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.rfipbtn__current{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-flex:0;-ms-flex:0 0 86px;flex:0 0 86px;padding:2px}.rfipbtn--multi{width:258px}.rfipbtn--multi .rfipbtn__current{-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-preferred-size:212px;flex-basis:212px;-ms-flex-line-pack:center;align-content:center}.rfipbtn--multi .rfipbtn__current,.rfipbtn__icon{-webkit-box-orient:horizontal;-webkit-box-direction:normal}.rfipbtn__icon{margin:2px;padding:0;height:28px;width:48px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-radius:2px}.rfipbtn__icon--empty{font-size:14px;line-height:16px;margin-left:8px;text-align:center;text-transform:lowercase;font-style:italic}.rfipbtn__elm{display:-webkit-box;display:-ms-flexbox;display:flex;height:28px;width:28px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:18px}.rfipbtn__elm img,.rfipbtn__elm svg{height:18px;width:auto}.rfipbtn__del{width:18px;display:-webkit-box;display:-ms-flexbox;display:flex;height:28px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:background-color .25s;transition:background-color .25s;cursor:pointer}.rfipcategory{width:100%;margin:0 0 8px;position:relative}.rfipcategory select{width:100%;display:block;height:32px;line-height:32px;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,box-shadow .25s;transition:border .25s,box-shadow .25s,-webkit-box-shadow .25s;background-color:transparent!important}.rfipcategory i{position:absolute;right:2px;top:0;font-size:16px;line-height:32px;z-index:-1}.rfipdropdown{width:352px;position:absolute;left:0;margin-top:-1px;z-index:100000001;border-radius:0 1px 4px 4px}.rfipdropdown__selector{overflow:hidden;padding:16px}.rfipdropdown.fipappear-enter-active .rfipdropdown__selector,.rfipdropdown.fipappear-exit-active .rfipdropdown__selector{-webkit-transition:max-height .3s ease-out,padding .3s ease-out;transition:max-height .3s ease-out,padding .3s ease-out;padding:16px}.rfipicons__pager{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;height:24px;line-height:24px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:8px}.rfipicons__num{width:100px;margin-right:auto}.rfipicons__cp{width:32px;height:24px;line-height:24px;text-align:right}.rfipicons__cp,.rfipicons__sp,.rfipicons__tp{margin-right:8px}.rfipicons__arrow{margin-left:auto;width:56px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.rfipicons__right{margin-left:auto}.rfipicons__left,.rfipicons__right{cursor:pointer;width:24px;height:24px;position:relative;-webkit-transition:background-color .25s,border .25s;transition:background-color .25s,border .25s;outline:0 none;border-radius:2px;font-size:18px}.rfipicons__label{height:22px;width:22px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.rfipicons__label img{height:18px;width:18px}.rfipicons__selector{-webkit-box-flex:1;-ms-flex:1 1 20%;flex:1 1 20%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.rfipicons__ibox,.rfipicons__selector{display:-webkit-box;display:-ms-flexbox;display:flex}.rfipicons__ibox{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:100%;width:100%;-webkit-transition:background-color .25s,border .25s;transition:background-color .25s,border .25s;border-radius:2px;outline:0 none;font-size:20px}.rfipicons__ibox img,.rfipicons__ibox svg{max-height:24px;width:auto}.rfipicons__ibox>*{-webkit-transform:scale(1);transform:scale(1);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s;-webkit-transform-origin:center;transform-origin:center}.rfipicons__ibox:hover>*{-webkit-transform:scale(1.8);transform:scale(1.8)}.rfipicons__ibox--error{text-transform:lowercase;font-style:italic}.rfipicons__icon{width:20%;height:64px;padding:1px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer}.rfipicons__icon--error{display:block;padding:16px;text-align:center;font-size:24px;width:100%;line-height:1}.rfipsearch{width:100%;margin:0 0 8px}.rfipsearch input{width:100%;display:block;height:32px;line-height:32px} /*! * * React FontIconPicker * * React Component to show a picker element to pick font-icons & svg * * @author Swashata Ghosh <swashata@wpquark.com> * @version 1.1.0 * @link https://github.com/fontIconPicker/react-fonticonpicker * @license MIT * * Copyright (c) 2018 Swashata Ghosh <swashata@wpquark.com> * * This software is released under the MIT License. * https://opensource.org/licenses/MIT * */ .rfipbtn--green{background-color:#fff;border:1px solid #81c784}.rfipbtn--green:active,.rfipbtn--green:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #66bb6a}.rfipbtn--green .rfipbtn__button{border:0 none transparent;border-left:1px solid #81c784;background-color:#c8e6c9;color:#2e7d32}.rfipbtn--green .rfipbtn__button:hover{background-color:#66bb6a}.rfipbtn--green .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #81c784;box-shadow:inset 0 0 10px 0 #81c784}.rfipbtn--green .rfipbtn__icon{border:1px solid #a5d6a7;color:#2e7d32}.rfipbtn--green .rfipbtn__icon--empty{color:#81c784}.rfipbtn--green .rfipbtn__del{background-color:#a5d6a7}.rfipbtn--green .rfipbtn__del:hover{background-color:#81c784}.rfipbtn--green .rfipbtn__del:active,.rfipbtn--green .rfipbtn__del:focus{outline:1px solid #81c784}.rfipdropdown--green{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #81c784}.rfipdropdown--green input,.rfipdropdown--green select{color:#424242}.rfipdropdown--green .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #66bb6a;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--green .rfipcategory select:active,.rfipdropdown--green .rfipcategory select:focus{border-bottom-color:#4caf50;-webkit-box-shadow:0 1px 0 0 #4caf50;box-shadow:0 1px 0 0 #4caf50;outline:0 none}.rfipdropdown--green .rfipicons__cp{border:0 none;border-bottom:1px solid #66bb6a;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--green .rfipicons__cp:active,.rfipdropdown--green .rfipicons__cp:focus{border-bottom-color:#4caf50;-webkit-box-shadow:0 1px 0 0 #4caf50;box-shadow:0 1px 0 0 #4caf50;outline:0 none}.rfipdropdown--green .rfipicons__left,.rfipdropdown--green .rfipicons__right{background-color:#a5d6a7;border:1px solid #a5d6a7;color:#2e7d32}.rfipdropdown--green .rfipicons__left:hover,.rfipdropdown--green .rfipicons__right:hover{background-color:#66bb6a;border:1px solid #66bb6a}.rfipdropdown--green .rfipicons__left:active,.rfipdropdown--green .rfipicons__left:focus,.rfipdropdown--green .rfipicons__right:active,.rfipdropdown--green .rfipicons__right:focus{border:1px solid #66bb6a}.rfipdropdown--green .rfipicons__ibox{background-color:#c8e6c9;border:1px solid #c8e6c9;color:#2e7d32}.rfipdropdown--green .rfipicons__ibox:hover{background-color:#66bb6a;border:1px solid #66bb6a}.rfipdropdown--green .rfipicons__ibox:active,.rfipdropdown--green .rfipicons__ibox:focus{border:1px solid #66bb6a}.rfipdropdown--green .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--green .rfipicons__icon--selected .rfipicons__ibox{background-color:#a5d6a7}.rfipdropdown--green .rfipsearch input{border:0 none;border-bottom:1px solid #66bb6a;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--green .rfipsearch input:active,.rfipdropdown--green .rfipsearch input:focus{border-bottom-color:#4caf50;-webkit-box-shadow:0 1px 0 0 #4caf50;box-shadow:0 1px 0 0 #4caf50;outline:0 none}.rfipbtn--bluegrey{background-color:#fff;border:1px solid #90a4ae}.rfipbtn--bluegrey:active,.rfipbtn--bluegrey:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #78909c}.rfipbtn--bluegrey .rfipbtn__button{border:0 none transparent;border-left:1px solid #90a4ae;background-color:#cfd8dc;color:#37474f}.rfipbtn--bluegrey .rfipbtn__button:hover{background-color:#78909c}.rfipbtn--bluegrey .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #90a4ae;box-shadow:inset 0 0 10px 0 #90a4ae}.rfipbtn--bluegrey .rfipbtn__icon{border:1px solid #b0bec5;color:#37474f}.rfipbtn--bluegrey .rfipbtn__icon--empty{color:#90a4ae}.rfipbtn--bluegrey .rfipbtn__del{background-color:#b0bec5}.rfipbtn--bluegrey .rfipbtn__del:hover{background-color:#90a4ae}.rfipbtn--bluegrey .rfipbtn__del:active,.rfipbtn--bluegrey .rfipbtn__del:focus{outline:1px solid #90a4ae}.rfipdropdown--bluegrey{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #90a4ae}.rfipdropdown--bluegrey input,.rfipdropdown--bluegrey select{color:#424242}.rfipdropdown--bluegrey .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #78909c;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--bluegrey .rfipcategory select:active,.rfipdropdown--bluegrey .rfipcategory select:focus{border-bottom-color:#607d8b;-webkit-box-shadow:0 1px 0 0 #607d8b;box-shadow:0 1px 0 0 #607d8b;outline:0 none}.rfipdropdown--bluegrey .rfipicons__cp{border:0 none;border-bottom:1px solid #78909c;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--bluegrey .rfipicons__cp:active,.rfipdropdown--bluegrey .rfipicons__cp:focus{border-bottom-color:#607d8b;-webkit-box-shadow:0 1px 0 0 #607d8b;box-shadow:0 1px 0 0 #607d8b;outline:0 none}.rfipdropdown--bluegrey .rfipicons__left,.rfipdropdown--bluegrey .rfipicons__right{background-color:#b0bec5;border:1px solid #b0bec5;color:#37474f}.rfipdropdown--bluegrey .rfipicons__left:hover,.rfipdropdown--bluegrey .rfipicons__right:hover{background-color:#78909c;border:1px solid #78909c}.rfipdropdown--bluegrey .rfipicons__left:active,.rfipdropdown--bluegrey .rfipicons__left:focus,.rfipdropdown--bluegrey .rfipicons__right:active,.rfipdropdown--bluegrey .rfipicons__right:focus{border:1px solid #78909c}.rfipdropdown--bluegrey .rfipicons__ibox{background-color:#cfd8dc;border:1px solid #cfd8dc;color:#37474f}.rfipdropdown--bluegrey .rfipicons__ibox:hover{background-color:#78909c;border:1px solid #78909c}.rfipdropdown--bluegrey .rfipicons__ibox:active,.rfipdropdown--bluegrey .rfipicons__ibox:focus{border:1px solid #78909c}.rfipdropdown--bluegrey .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--bluegrey .rfipicons__icon--selected .rfipicons__ibox{background-color:#b0bec5}.rfipdropdown--bluegrey .rfipsearch input{border:0 none;border-bottom:1px solid #78909c;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--bluegrey .rfipsearch input:active,.rfipdropdown--bluegrey .rfipsearch input:focus{border-bottom-color:#607d8b;-webkit-box-shadow:0 1px 0 0 #607d8b;box-shadow:0 1px 0 0 #607d8b;outline:0 none}.rfipbtn--brown{background-color:#fff;border:1px solid #a1887f}.rfipbtn--brown:active,.rfipbtn--brown:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #8d6e63}.rfipbtn--brown .rfipbtn__button{border:0 none transparent;border-left:1px solid #a1887f;background-color:#d7ccc8;color:#4e342e}.rfipbtn--brown .rfipbtn__button:hover{background-color:#8d6e63}.rfipbtn--brown .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #a1887f;box-shadow:inset 0 0 10px 0 #a1887f}.rfipbtn--brown .rfipbtn__icon{border:1px solid #bcaaa4;color:#4e342e}.rfipbtn--brown .rfipbtn__icon--empty{color:#a1887f}.rfipbtn--brown .rfipbtn__del{background-color:#bcaaa4}.rfipbtn--brown .rfipbtn__del:hover{background-color:#a1887f}.rfipbtn--brown .rfipbtn__del:active,.rfipbtn--brown .rfipbtn__del:focus{outline:1px solid #a1887f}.rfipdropdown--brown{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #a1887f}.rfipdropdown--brown input,.rfipdropdown--brown select{color:#424242}.rfipdropdown--brown .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #8d6e63;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--brown .rfipcategory select:active,.rfipdropdown--brown .rfipcategory select:focus{border-bottom-color:#795548;-webkit-box-shadow:0 1px 0 0 #795548;box-shadow:0 1px 0 0 #795548;outline:0 none}.rfipdropdown--brown .rfipicons__cp{border:0 none;border-bottom:1px solid #8d6e63;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--brown .rfipicons__cp:active,.rfipdropdown--brown .rfipicons__cp:focus{border-bottom-color:#795548;-webkit-box-shadow:0 1px 0 0 #795548;box-shadow:0 1px 0 0 #795548;outline:0 none}.rfipdropdown--brown .rfipicons__left,.rfipdropdown--brown .rfipicons__right{background-color:#bcaaa4;border:1px solid #bcaaa4;color:#4e342e}.rfipdropdown--brown .rfipicons__left:hover,.rfipdropdown--brown .rfipicons__right:hover{background-color:#8d6e63;border:1px solid #8d6e63}.rfipdropdown--brown .rfipicons__left:active,.rfipdropdown--brown .rfipicons__left:focus,.rfipdropdown--brown .rfipicons__right:active,.rfipdropdown--brown .rfipicons__right:focus{border:1px solid #8d6e63}.rfipdropdown--brown .rfipicons__ibox{background-color:#d7ccc8;border:1px solid #d7ccc8;color:#4e342e}.rfipdropdown--brown .rfipicons__ibox:hover{background-color:#8d6e63;border:1px solid #8d6e63}.rfipdropdown--brown .rfipicons__ibox:active,.rfipdropdown--brown .rfipicons__ibox:focus{border:1px solid #8d6e63}.rfipdropdown--brown .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--brown .rfipicons__icon--selected .rfipicons__ibox{background-color:#bcaaa4}.rfipdropdown--brown .rfipsearch input{border:0 none;border-bottom:1px solid #8d6e63;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--brown .rfipsearch input:active,.rfipdropdown--brown .rfipsearch input:focus{border-bottom-color:#795548;-webkit-box-shadow:0 1px 0 0 #795548;box-shadow:0 1px 0 0 #795548;outline:0 none}.rfipbtn--cyan{background-color:#fff;border:1px solid #4dd0e1}.rfipbtn--cyan:active,.rfipbtn--cyan:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #26c6da}.rfipbtn--cyan .rfipbtn__button{border:0 none transparent;border-left:1px solid #4dd0e1;background-color:#b2ebf2;color:#00838f}.rfipbtn--cyan .rfipbtn__button:hover{background-color:#26c6da}.rfipbtn--cyan .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #4dd0e1;box-shadow:inset 0 0 10px 0 #4dd0e1}.rfipbtn--cyan .rfipbtn__icon{border:1px solid #80deea;color:#00838f}.rfipbtn--cyan .rfipbtn__icon--empty{color:#4dd0e1}.rfipbtn--cyan .rfipbtn__del{background-color:#80deea}.rfipbtn--cyan .rfipbtn__del:hover{background-color:#4dd0e1}.rfipbtn--cyan .rfipbtn__del:active,.rfipbtn--cyan .rfipbtn__del:focus{outline:1px solid #4dd0e1}.rfipdropdown--cyan{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #4dd0e1}.rfipdropdown--cyan input,.rfipdropdown--cyan select{color:#424242}.rfipdropdown--cyan .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #26c6da;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--cyan .rfipcategory select:active,.rfipdropdown--cyan .rfipcategory select:focus{border-bottom-color:#00bcd4;-webkit-box-shadow:0 1px 0 0 #00bcd4;box-shadow:0 1px 0 0 #00bcd4;outline:0 none}.rfipdropdown--cyan .rfipicons__cp{border:0 none;border-bottom:1px solid #26c6da;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--cyan .rfipicons__cp:active,.rfipdropdown--cyan .rfipicons__cp:focus{border-bottom-color:#00bcd4;-webkit-box-shadow:0 1px 0 0 #00bcd4;box-shadow:0 1px 0 0 #00bcd4;outline:0 none}.rfipdropdown--cyan .rfipicons__left,.rfipdropdown--cyan .rfipicons__right{background-color:#80deea;border:1px solid #80deea;color:#00838f}.rfipdropdown--cyan .rfipicons__left:hover,.rfipdropdown--cyan .rfipicons__right:hover{background-color:#26c6da;border:1px solid #26c6da}.rfipdropdown--cyan .rfipicons__left:active,.rfipdropdown--cyan .rfipicons__left:focus,.rfipdropdown--cyan .rfipicons__right:active,.rfipdropdown--cyan .rfipicons__right:focus{border:1px solid #26c6da}.rfipdropdown--cyan .rfipicons__ibox{background-color:#b2ebf2;border:1px solid #b2ebf2;color:#00838f}.rfipdropdown--cyan .rfipicons__ibox:hover{background-color:#26c6da;border:1px solid #26c6da}.rfipdropdown--cyan .rfipicons__ibox:active,.rfipdropdown--cyan .rfipicons__ibox:focus{border:1px solid #26c6da}.rfipdropdown--cyan .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--cyan .rfipicons__icon--selected .rfipicons__ibox{background-color:#80deea}.rfipdropdown--cyan .rfipsearch input{border:0 none;border-bottom:1px solid #26c6da;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--cyan .rfipsearch input:active,.rfipdropdown--cyan .rfipsearch input:focus{border-bottom-color:#00bcd4;-webkit-box-shadow:0 1px 0 0 #00bcd4;box-shadow:0 1px 0 0 #00bcd4;outline:0 none}.rfipbtn--deeporange{background-color:#fff;border:1px solid #ff8a65}.rfipbtn--deeporange:active,.rfipbtn--deeporange:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #ff7043}.rfipbtn--deeporange .rfipbtn__button{border:0 none transparent;border-left:1px solid #ff8a65;background-color:#ffccbc;color:#d84315}.rfipbtn--deeporange .rfipbtn__button:hover{background-color:#ff7043}.rfipbtn--deeporange .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #ff8a65;box-shadow:inset 0 0 10px 0 #ff8a65}.rfipbtn--deeporange .rfipbtn__icon{border:1px solid #ffab91;color:#d84315}.rfipbtn--deeporange .rfipbtn__icon--empty{color:#ff8a65}.rfipbtn--deeporange .rfipbtn__del{background-color:#ffab91}.rfipbtn--deeporange .rfipbtn__del:hover{background-color:#ff8a65}.rfipbtn--deeporange .rfipbtn__del:active,.rfipbtn--deeporange .rfipbtn__del:focus{outline:1px solid #ff8a65}.rfipdropdown--deeporange{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #ff8a65}.rfipdropdown--deeporange input,.rfipdropdown--deeporange select{color:#424242}.rfipdropdown--deeporange .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #ff7043;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--deeporange .rfipcategory select:active,.rfipdropdown--deeporange .rfipcategory select:focus{border-bottom-color:#ff5722;-webkit-box-shadow:0 1px 0 0 #ff5722;box-shadow:0 1px 0 0 #ff5722;outline:0 none}.rfipdropdown--deeporange .rfipicons__cp{border:0 none;border-bottom:1px solid #ff7043;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--deeporange .rfipicons__cp:active,.rfipdropdown--deeporange .rfipicons__cp:focus{border-bottom-color:#ff5722;-webkit-box-shadow:0 1px 0 0 #ff5722;box-shadow:0 1px 0 0 #ff5722;outline:0 none}.rfipdropdown--deeporange .rfipicons__left,.rfipdropdown--deeporange .rfipicons__right{background-color:#ffab91;border:1px solid #ffab91;color:#d84315}.rfipdropdown--deeporange .rfipicons__left:hover,.rfipdropdown--deeporange .rfipicons__right:hover{background-color:#ff7043;border:1px solid #ff7043}.rfipdropdown--deeporange .rfipicons__left:active,.rfipdropdown--deeporange .rfipicons__left:focus,.rfipdropdown--deeporange .rfipicons__right:active,.rfipdropdown--deeporange .rfipicons__right:focus{border:1px solid #ff7043}.rfipdropdown--deeporange .rfipicons__ibox{background-color:#ffccbc;border:1px solid #ffccbc;color:#d84315}.rfipdropdown--deeporange .rfipicons__ibox:hover{background-color:#ff7043;border:1px solid #ff7043}.rfipdropdown--deeporange .rfipicons__ibox:active,.rfipdropdown--deeporange .rfipicons__ibox:focus{border:1px solid #ff7043}.rfipdropdown--deeporange .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--deeporange .rfipicons__icon--selected .rfipicons__ibox{background-color:#ffab91}.rfipdropdown--deeporange .rfipsearch input{border:0 none;border-bottom:1px solid #ff7043;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--deeporange .rfipsearch input:active,.rfipdropdown--deeporange .rfipsearch input:focus{border-bottom-color:#ff5722;-webkit-box-shadow:0 1px 0 0 #ff5722;box-shadow:0 1px 0 0 #ff5722;outline:0 none}.rfipbtn--deeppurple{background-color:#fff;border:1px solid #9575cd}.rfipbtn--deeppurple:active,.rfipbtn--deeppurple:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #7e57c2}.rfipbtn--deeppurple .rfipbtn__button{border:0 none transparent;border-left:1px solid #9575cd;background-color:#d1c4e9;color:#4527a0}.rfipbtn--deeppurple .rfipbtn__button:hover{background-color:#7e57c2}.rfipbtn--deeppurple .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #9575cd;box-shadow:inset 0 0 10px 0 #9575cd}.rfipbtn--deeppurple .rfipbtn__icon{border:1px solid #b39ddb;color:#4527a0}.rfipbtn--deeppurple .rfipbtn__icon--empty{color:#9575cd}.rfipbtn--deeppurple .rfipbtn__del{background-color:#b39ddb}.rfipbtn--deeppurple .rfipbtn__del:hover{background-color:#9575cd}.rfipbtn--deeppurple .rfipbtn__del:active,.rfipbtn--deeppurple .rfipbtn__del:focus{outline:1px solid #9575cd}.rfipdropdown--deeppurple{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #9575cd}.rfipdropdown--deeppurple input,.rfipdropdown--deeppurple select{color:#424242}.rfipdropdown--deeppurple .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #7e57c2;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--deeppurple .rfipcategory select:active,.rfipdropdown--deeppurple .rfipcategory select:focus{border-bottom-color:#673ab7;-webkit-box-shadow:0 1px 0 0 #673ab7;box-shadow:0 1px 0 0 #673ab7;outline:0 none}.rfipdropdown--deeppurple .rfipicons__cp{border:0 none;border-bottom:1px solid #7e57c2;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--deeppurple .rfipicons__cp:active,.rfipdropdown--deeppurple .rfipicons__cp:focus{border-bottom-color:#673ab7;-webkit-box-shadow:0 1px 0 0 #673ab7;box-shadow:0 1px 0 0 #673ab7;outline:0 none}.rfipdropdown--deeppurple .rfipicons__left,.rfipdropdown--deeppurple .rfipicons__right{background-color:#b39ddb;border:1px solid #b39ddb;color:#4527a0}.rfipdropdown--deeppurple .rfipicons__left:hover,.rfipdropdown--deeppurple .rfipicons__right:hover{background-color:#7e57c2;border:1px solid #7e57c2}.rfipdropdown--deeppurple .rfipicons__left:active,.rfipdropdown--deeppurple .rfipicons__left:focus,.rfipdropdown--deeppurple .rfipicons__right:active,.rfipdropdown--deeppurple .rfipicons__right:focus{border:1px solid #7e57c2}.rfipdropdown--deeppurple .rfipicons__ibox{background-color:#d1c4e9;border:1px solid #d1c4e9;color:#4527a0}.rfipdropdown--deeppurple .rfipicons__ibox:hover{background-color:#7e57c2;border:1px solid #7e57c2}.rfipdropdown--deeppurple .rfipicons__ibox:active,.rfipdropdown--deeppurple .rfipicons__ibox:focus{border:1px solid #7e57c2}.rfipdropdown--deeppurple .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--deeppurple .rfipicons__icon--selected .rfipicons__ibox{background-color:#b39ddb}.rfipdropdown--deeppurple .rfipsearch input{border:0 none;border-bottom:1px solid #7e57c2;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--deeppurple .rfipsearch input:active,.rfipdropdown--deeppurple .rfipsearch input:focus{border-bottom-color:#673ab7;-webkit-box-shadow:0 1px 0 0 #673ab7;box-shadow:0 1px 0 0 #673ab7;outline:0 none}.rfipbtn--default{background-color:#fff;border:1px solid #e0e0e0}.rfipbtn--default:active,.rfipbtn--default:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #bdbdbd}.rfipbtn--default .rfipbtn__button{border:0 none transparent;border-left:1px solid #e0e0e0;background-color:#f5f5f5;color:#424242}.rfipbtn--default .rfipbtn__button:hover{background-color:#bdbdbd}.rfipbtn--default .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #e0e0e0;box-shadow:inset 0 0 10px 0 #e0e0e0}.rfipbtn--default .rfipbtn__icon{border:1px solid #eee;color:#424242}.rfipbtn--default .rfipbtn__icon--empty{color:#e0e0e0}.rfipbtn--default .rfipbtn__del{background-color:#eee}.rfipbtn--default .rfipbtn__del:hover{background-color:#e0e0e0}.rfipbtn--default .rfipbtn__del:active,.rfipbtn--default .rfipbtn__del:focus{outline:1px solid #e0e0e0}.rfipdropdown--default{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #e0e0e0}.rfipdropdown--default input,.rfipdropdown--default select{color:#424242}.rfipdropdown--default .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #bdbdbd;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--default .rfipcategory select:active,.rfipdropdown--default .rfipcategory select:focus{border-bottom-color:#9e9e9e;-webkit-box-shadow:0 1px 0 0 #9e9e9e;box-shadow:0 1px 0 0 #9e9e9e;outline:0 none}.rfipdropdown--default .rfipicons__cp{border:0 none;border-bottom:1px solid #bdbdbd;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--default .rfipicons__cp:active,.rfipdropdown--default .rfipicons__cp:focus{border-bottom-color:#9e9e9e;-webkit-box-shadow:0 1px 0 0 #9e9e9e;box-shadow:0 1px 0 0 #9e9e9e;outline:0 none}.rfipdropdown--default .rfipicons__left,.rfipdropdown--default .rfipicons__right{background-color:#eee;border:1px solid #eee;color:#424242}.rfipdropdown--default .rfipicons__left:hover,.rfipdropdown--default .rfipicons__right:hover{background-color:#bdbdbd;border:1px solid #bdbdbd}.rfipdropdown--default .rfipicons__left:active,.rfipdropdown--default .rfipicons__left:focus,.rfipdropdown--default .rfipicons__right:active,.rfipdropdown--default .rfipicons__right:focus{border:1px solid #bdbdbd}.rfipdropdown--default .rfipicons__ibox{background-color:#f5f5f5;border:1px solid #f5f5f5;color:#424242}.rfipdropdown--default .rfipicons__ibox:hover{background-color:#bdbdbd;border:1px solid #bdbdbd}.rfipdropdown--default .rfipicons__ibox:active,.rfipdropdown--default .rfipicons__ibox:focus{border:1px solid #bdbdbd}.rfipdropdown--default .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--default .rfipicons__icon--selected .rfipicons__ibox{background-color:#eee}.rfipdropdown--default .rfipsearch input{border:0 none;border-bottom:1px solid #bdbdbd;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--default .rfipsearch input:active,.rfipdropdown--default .rfipsearch input:focus{border-bottom-color:#9e9e9e;-webkit-box-shadow:0 1px 0 0 #9e9e9e;box-shadow:0 1px 0 0 #9e9e9e;outline:0 none}.rfipbtn--blue{background-color:#fff;border:1px solid #64b5f6}.rfipbtn--blue:active,.rfipbtn--blue:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #42a5f5}.rfipbtn--blue .rfipbtn__button{border:0 none transparent;border-left:1px solid #64b5f6;background-color:#bbdefb;color:#1565c0}.rfipbtn--blue .rfipbtn__button:hover{background-color:#42a5f5}.rfipbtn--blue .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #64b5f6;box-shadow:inset 0 0 10px 0 #64b5f6}.rfipbtn--blue .rfipbtn__icon{border:1px solid #90caf9;color:#1565c0}.rfipbtn--blue .rfipbtn__icon--empty{color:#64b5f6}.rfipbtn--blue .rfipbtn__del{background-color:#90caf9}.rfipbtn--blue .rfipbtn__del:hover{background-color:#64b5f6}.rfipbtn--blue .rfipbtn__del:active,.rfipbtn--blue .rfipbtn__del:focus{outline:1px solid #64b5f6}.rfipdropdown--blue{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #64b5f6}.rfipdropdown--blue input,.rfipdropdown--blue select{color:#424242}.rfipdropdown--blue .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #42a5f5;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--blue .rfipcategory select:active,.rfipdropdown--blue .rfipcategory select:focus{border-bottom-color:#2196f3;-webkit-box-shadow:0 1px 0 0 #2196f3;box-shadow:0 1px 0 0 #2196f3;outline:0 none}.rfipdropdown--blue .rfipicons__cp{border:0 none;border-bottom:1px solid #42a5f5;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--blue .rfipicons__cp:active,.rfipdropdown--blue .rfipicons__cp:focus{border-bottom-color:#2196f3;-webkit-box-shadow:0 1px 0 0 #2196f3;box-shadow:0 1px 0 0 #2196f3;outline:0 none}.rfipdropdown--blue .rfipicons__left,.rfipdropdown--blue .rfipicons__right{background-color:#90caf9;border:1px solid #90caf9;color:#1565c0}.rfipdropdown--blue .rfipicons__left:hover,.rfipdropdown--blue .rfipicons__right:hover{background-color:#42a5f5;border:1px solid #42a5f5}.rfipdropdown--blue .rfipicons__left:active,.rfipdropdown--blue .rfipicons__left:focus,.rfipdropdown--blue .rfipicons__right:active,.rfipdropdown--blue .rfipicons__right:focus{border:1px solid #42a5f5}.rfipdropdown--blue .rfipicons__ibox{background-color:#bbdefb;border:1px solid #bbdefb;color:#1565c0}.rfipdropdown--blue .rfipicons__ibox:hover{background-color:#42a5f5;border:1px solid #42a5f5}.rfipdropdown--blue .rfipicons__ibox:active,.rfipdropdown--blue .rfipicons__ibox:focus{border:1px solid #42a5f5}.rfipdropdown--blue .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--blue .rfipicons__icon--selected .rfipicons__ibox{background-color:#90caf9}.rfipdropdown--blue .rfipsearch input{border:0 none;border-bottom:1px solid #42a5f5;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--blue .rfipsearch input:active,.rfipdropdown--blue .rfipsearch input:focus{border-bottom-color:#2196f3;-webkit-box-shadow:0 1px 0 0 #2196f3;box-shadow:0 1px 0 0 #2196f3;outline:0 none}.rfipbtn--indigo{background-color:#fff;border:1px solid #7986cb}.rfipbtn--indigo:active,.rfipbtn--indigo:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #5c6bc0}.rfipbtn--indigo .rfipbtn__button{border:0 none transparent;border-left:1px solid #7986cb;background-color:#c5cae9;color:#283593}.rfipbtn--indigo .rfipbtn__button:hover{background-color:#5c6bc0}.rfipbtn--indigo .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #7986cb;box-shadow:inset 0 0 10px 0 #7986cb}.rfipbtn--indigo .rfipbtn__icon{border:1px solid #9fa8da;color:#283593}.rfipbtn--indigo .rfipbtn__icon--empty{color:#7986cb}.rfipbtn--indigo .rfipbtn__del{background-color:#9fa8da}.rfipbtn--indigo .rfipbtn__del:hover{background-color:#7986cb}.rfipbtn--indigo .rfipbtn__del:active,.rfipbtn--indigo .rfipbtn__del:focus{outline:1px solid #7986cb}.rfipdropdown--indigo{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #7986cb}.rfipdropdown--indigo input,.rfipdropdown--indigo select{color:#424242}.rfipdropdown--indigo .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #5c6bc0;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--indigo .rfipcategory select:active,.rfipdropdown--indigo .rfipcategory select:focus{border-bottom-color:#3f51b5;-webkit-box-shadow:0 1px 0 0 #3f51b5;box-shadow:0 1px 0 0 #3f51b5;outline:0 none}.rfipdropdown--indigo .rfipicons__cp{border:0 none;border-bottom:1px solid #5c6bc0;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--indigo .rfipicons__cp:active,.rfipdropdown--indigo .rfipicons__cp:focus{border-bottom-color:#3f51b5;-webkit-box-shadow:0 1px 0 0 #3f51b5;box-shadow:0 1px 0 0 #3f51b5;outline:0 none}.rfipdropdown--indigo .rfipicons__left,.rfipdropdown--indigo .rfipicons__right{background-color:#9fa8da;border:1px solid #9fa8da;color:#283593}.rfipdropdown--indigo .rfipicons__left:hover,.rfipdropdown--indigo .rfipicons__right:hover{background-color:#5c6bc0;border:1px solid #5c6bc0}.rfipdropdown--indigo .rfipicons__left:active,.rfipdropdown--indigo .rfipicons__left:focus,.rfipdropdown--indigo .rfipicons__right:active,.rfipdropdown--indigo .rfipicons__right:focus{border:1px solid #5c6bc0}.rfipdropdown--indigo .rfipicons__ibox{background-color:#c5cae9;border:1px solid #c5cae9;color:#283593}.rfipdropdown--indigo .rfipicons__ibox:hover{background-color:#5c6bc0;border:1px solid #5c6bc0}.rfipdropdown--indigo .rfipicons__ibox:active,.rfipdropdown--indigo .rfipicons__ibox:focus{border:1px solid #5c6bc0}.rfipdropdown--indigo .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--indigo .rfipicons__icon--selected .rfipicons__ibox{background-color:#9fa8da}.rfipdropdown--indigo .rfipsearch input{border:0 none;border-bottom:1px solid #5c6bc0;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--indigo .rfipsearch input:active,.rfipdropdown--indigo .rfipsearch input:focus{border-bottom-color:#3f51b5;-webkit-box-shadow:0 1px 0 0 #3f51b5;box-shadow:0 1px 0 0 #3f51b5;outline:0 none}.rfipbtn--lightblue{background-color:#fff;border:1px solid #4fc3f7}.rfipbtn--lightblue:active,.rfipbtn--lightblue:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #29b6f6}.rfipbtn--lightblue .rfipbtn__button{border:0 none transparent;border-left:1px solid #4fc3f7;background-color:#b3e5fc;color:#0277bd}.rfipbtn--lightblue .rfipbtn__button:hover{background-color:#29b6f6}.rfipbtn--lightblue .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #4fc3f7;box-shadow:inset 0 0 10px 0 #4fc3f7}.rfipbtn--lightblue .rfipbtn__icon{border:1px solid #81d4fa;color:#0277bd}.rfipbtn--lightblue .rfipbtn__icon--empty{color:#4fc3f7}.rfipbtn--lightblue .rfipbtn__del{background-color:#81d4fa}.rfipbtn--lightblue .rfipbtn__del:hover{background-color:#4fc3f7}.rfipbtn--lightblue .rfipbtn__del:active,.rfipbtn--lightblue .rfipbtn__del:focus{outline:1px solid #4fc3f7}.rfipdropdown--lightblue{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #4fc3f7}.rfipdropdown--lightblue input,.rfipdropdown--lightblue select{color:#424242}.rfipdropdown--lightblue .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #29b6f6;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--lightblue .rfipcategory select:active,.rfipdropdown--lightblue .rfipcategory select:focus{border-bottom-color:#03a9f4;-webkit-box-shadow:0 1px 0 0 #03a9f4;box-shadow:0 1px 0 0 #03a9f4;outline:0 none}.rfipdropdown--lightblue .rfipicons__cp{border:0 none;border-bottom:1px solid #29b6f6;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--lightblue .rfipicons__cp:active,.rfipdropdown--lightblue .rfipicons__cp:focus{border-bottom-color:#03a9f4;-webkit-box-shadow:0 1px 0 0 #03a9f4;box-shadow:0 1px 0 0 #03a9f4;outline:0 none}.rfipdropdown--lightblue .rfipicons__left,.rfipdropdown--lightblue .rfipicons__right{background-color:#81d4fa;border:1px solid #81d4fa;color:#0277bd}.rfipdropdown--lightblue .rfipicons__left:hover,.rfipdropdown--lightblue .rfipicons__right:hover{background-color:#29b6f6;border:1px solid #29b6f6}.rfipdropdown--lightblue .rfipicons__left:active,.rfipdropdown--lightblue .rfipicons__left:focus,.rfipdropdown--lightblue .rfipicons__right:active,.rfipdropdown--lightblue .rfipicons__right:focus{border:1px solid #29b6f6}.rfipdropdown--lightblue .rfipicons__ibox{background-color:#b3e5fc;border:1px solid #b3e5fc;color:#0277bd}.rfipdropdown--lightblue .rfipicons__ibox:hover{background-color:#29b6f6;border:1px solid #29b6f6}.rfipdropdown--lightblue .rfipicons__ibox:active,.rfipdropdown--lightblue .rfipicons__ibox:focus{border:1px solid #29b6f6}.rfipdropdown--lightblue .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--lightblue .rfipicons__icon--selected .rfipicons__ibox{background-color:#81d4fa}.rfipdropdown--lightblue .rfipsearch input{border:0 none;border-bottom:1px solid #29b6f6;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--lightblue .rfipsearch input:active,.rfipdropdown--lightblue .rfipsearch input:focus{border-bottom-color:#03a9f4;-webkit-box-shadow:0 1px 0 0 #03a9f4;box-shadow:0 1px 0 0 #03a9f4;outline:0 none}.rfipbtn--pink{background-color:#fff;border:1px solid #f06292}.rfipbtn--pink:active,.rfipbtn--pink:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #ec407a}.rfipbtn--pink .rfipbtn__button{border:0 none transparent;border-left:1px solid #f06292;background-color:#f8bbd0;color:#ad1457}.rfipbtn--pink .rfipbtn__button:hover{background-color:#ec407a}.rfipbtn--pink .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #f06292;box-shadow:inset 0 0 10px 0 #f06292}.rfipbtn--pink .rfipbtn__icon{border:1px solid #f48fb1;color:#ad1457}.rfipbtn--pink .rfipbtn__icon--empty{color:#f06292}.rfipbtn--pink .rfipbtn__del{background-color:#f48fb1}.rfipbtn--pink .rfipbtn__del:hover{background-color:#f06292}.rfipbtn--pink .rfipbtn__del:active,.rfipbtn--pink .rfipbtn__del:focus{outline:1px solid #f06292}.rfipdropdown--pink{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #f06292}.rfipdropdown--pink input,.rfipdropdown--pink select{color:#424242}.rfipdropdown--pink .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #ec407a;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--pink .rfipcategory select:active,.rfipdropdown--pink .rfipcategory select:focus{border-bottom-color:#e91e63;-webkit-box-shadow:0 1px 0 0 #e91e63;box-shadow:0 1px 0 0 #e91e63;outline:0 none}.rfipdropdown--pink .rfipicons__cp{border:0 none;border-bottom:1px solid #ec407a;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--pink .rfipicons__cp:active,.rfipdropdown--pink .rfipicons__cp:focus{border-bottom-color:#e91e63;-webkit-box-shadow:0 1px 0 0 #e91e63;box-shadow:0 1px 0 0 #e91e63;outline:0 none}.rfipdropdown--pink .rfipicons__left,.rfipdropdown--pink .rfipicons__right{background-color:#f48fb1;border:1px solid #f48fb1;color:#ad1457}.rfipdropdown--pink .rfipicons__left:hover,.rfipdropdown--pink .rfipicons__right:hover{background-color:#ec407a;border:1px solid #ec407a}.rfipdropdown--pink .rfipicons__left:active,.rfipdropdown--pink .rfipicons__left:focus,.rfipdropdown--pink .rfipicons__right:active,.rfipdropdown--pink .rfipicons__right:focus{border:1px solid #ec407a}.rfipdropdown--pink .rfipicons__ibox{background-color:#f8bbd0;border:1px solid #f8bbd0;color:#ad1457}.rfipdropdown--pink .rfipicons__ibox:hover{background-color:#ec407a;border:1px solid #ec407a}.rfipdropdown--pink .rfipicons__ibox:active,.rfipdropdown--pink .rfipicons__ibox:focus{border:1px solid #ec407a}.rfipdropdown--pink .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--pink .rfipicons__icon--selected .rfipicons__ibox{background-color:#f48fb1}.rfipdropdown--pink .rfipsearch input{border:0 none;border-bottom:1px solid #ec407a;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--pink .rfipsearch input:active,.rfipdropdown--pink .rfipsearch input:focus{border-bottom-color:#e91e63;-webkit-box-shadow:0 1px 0 0 #e91e63;box-shadow:0 1px 0 0 #e91e63;outline:0 none}.rfipbtn--orange{background-color:#fff;border:1px solid #ffb74d}.rfipbtn--orange:active,.rfipbtn--orange:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #ffa726}.rfipbtn--orange .rfipbtn__button{border:0 none transparent;border-left:1px solid #ffb74d;background-color:#ffe0b2;color:#ef6c00}.rfipbtn--orange .rfipbtn__button:hover{background-color:#ffa726}.rfipbtn--orange .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #ffb74d;box-shadow:inset 0 0 10px 0 #ffb74d}.rfipbtn--orange .rfipbtn__icon{border:1px solid #ffcc80;color:#ef6c00}.rfipbtn--orange .rfipbtn__icon--empty{color:#ffb74d}.rfipbtn--orange .rfipbtn__del{background-color:#ffcc80}.rfipbtn--orange .rfipbtn__del:hover{background-color:#ffb74d}.rfipbtn--orange .rfipbtn__del:active,.rfipbtn--orange .rfipbtn__del:focus{outline:1px solid #ffb74d}.rfipdropdown--orange{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #ffb74d}.rfipdropdown--orange input,.rfipdropdown--orange select{color:#424242}.rfipdropdown--orange .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #ffa726;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--orange .rfipcategory select:active,.rfipdropdown--orange .rfipcategory select:focus{border-bottom-color:#ff9800;-webkit-box-shadow:0 1px 0 0 #ff9800;box-shadow:0 1px 0 0 #ff9800;outline:0 none}.rfipdropdown--orange .rfipicons__cp{border:0 none;border-bottom:1px solid #ffa726;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--orange .rfipicons__cp:active,.rfipdropdown--orange .rfipicons__cp:focus{border-bottom-color:#ff9800;-webkit-box-shadow:0 1px 0 0 #ff9800;box-shadow:0 1px 0 0 #ff9800;outline:0 none}.rfipdropdown--orange .rfipicons__left,.rfipdropdown--orange .rfipicons__right{background-color:#ffcc80;border:1px solid #ffcc80;color:#ef6c00}.rfipdropdown--orange .rfipicons__left:hover,.rfipdropdown--orange .rfipicons__right:hover{background-color:#ffa726;border:1px solid #ffa726}.rfipdropdown--orange .rfipicons__left:active,.rfipdropdown--orange .rfipicons__left:focus,.rfipdropdown--orange .rfipicons__right:active,.rfipdropdown--orange .rfipicons__right:focus{border:1px solid #ffa726}.rfipdropdown--orange .rfipicons__ibox{background-color:#ffe0b2;border:1px solid #ffe0b2;color:#ef6c00}.rfipdropdown--orange .rfipicons__ibox:hover{background-color:#ffa726;border:1px solid #ffa726}.rfipdropdown--orange .rfipicons__ibox:active,.rfipdropdown--orange .rfipicons__ibox:focus{border:1px solid #ffa726}.rfipdropdown--orange .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--orange .rfipicons__icon--selected .rfipicons__ibox{background-color:#ffcc80}.rfipdropdown--orange .rfipsearch input{border:0 none;border-bottom:1px solid #ffa726;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--orange .rfipsearch input:active,.rfipdropdown--orange .rfipsearch input:focus{border-bottom-color:#ff9800;-webkit-box-shadow:0 1px 0 0 #ff9800;box-shadow:0 1px 0 0 #ff9800;outline:0 none}.rfipbtn--purple{background-color:#fff;border:1px solid #ba68c8}.rfipbtn--purple:active,.rfipbtn--purple:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #ab47bc}.rfipbtn--purple .rfipbtn__button{border:0 none transparent;border-left:1px solid #ba68c8;background-color:#e1bee7;color:#6a1b9a}.rfipbtn--purple .rfipbtn__button:hover{background-color:#ab47bc}.rfipbtn--purple .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #ba68c8;box-shadow:inset 0 0 10px 0 #ba68c8}.rfipbtn--purple .rfipbtn__icon{border:1px solid #ce93d8;color:#6a1b9a}.rfipbtn--purple .rfipbtn__icon--empty{color:#ba68c8}.rfipbtn--purple .rfipbtn__del{background-color:#ce93d8}.rfipbtn--purple .rfipbtn__del:hover{background-color:#ba68c8}.rfipbtn--purple .rfipbtn__del:active,.rfipbtn--purple .rfipbtn__del:focus{outline:1px solid #ba68c8}.rfipdropdown--purple{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #ba68c8}.rfipdropdown--purple input,.rfipdropdown--purple select{color:#424242}.rfipdropdown--purple .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #ab47bc;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--purple .rfipcategory select:active,.rfipdropdown--purple .rfipcategory select:focus{border-bottom-color:#9c27b0;-webkit-box-shadow:0 1px 0 0 #9c27b0;box-shadow:0 1px 0 0 #9c27b0;outline:0 none}.rfipdropdown--purple .rfipicons__cp{border:0 none;border-bottom:1px solid #ab47bc;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--purple .rfipicons__cp:active,.rfipdropdown--purple .rfipicons__cp:focus{border-bottom-color:#9c27b0;-webkit-box-shadow:0 1px 0 0 #9c27b0;box-shadow:0 1px 0 0 #9c27b0;outline:0 none}.rfipdropdown--purple .rfipicons__left,.rfipdropdown--purple .rfipicons__right{background-color:#ce93d8;border:1px solid #ce93d8;color:#6a1b9a}.rfipdropdown--purple .rfipicons__left:hover,.rfipdropdown--purple .rfipicons__right:hover{background-color:#ab47bc;border:1px solid #ab47bc}.rfipdropdown--purple .rfipicons__left:active,.rfipdropdown--purple .rfipicons__left:focus,.rfipdropdown--purple .rfipicons__right:active,.rfipdropdown--purple .rfipicons__right:focus{border:1px solid #ab47bc}.rfipdropdown--purple .rfipicons__ibox{background-color:#e1bee7;border:1px solid #e1bee7;color:#6a1b9a}.rfipdropdown--purple .rfipicons__ibox:hover{background-color:#ab47bc;border:1px solid #ab47bc}.rfipdropdown--purple .rfipicons__ibox:active,.rfipdropdown--purple .rfipicons__ibox:focus{border:1px solid #ab47bc}.rfipdropdown--purple .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--purple .rfipicons__icon--selected .rfipicons__ibox{background-color:#ce93d8}.rfipdropdown--purple .rfipsearch input{border:0 none;border-bottom:1px solid #ab47bc;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--purple .rfipsearch input:active,.rfipdropdown--purple .rfipsearch input:focus{border-bottom-color:#9c27b0;-webkit-box-shadow:0 1px 0 0 #9c27b0;box-shadow:0 1px 0 0 #9c27b0;outline:0 none}.rfipbtn--red{background-color:#fff;border:1px solid #e57373}.rfipbtn--red:active,.rfipbtn--red:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #ef5350}.rfipbtn--red .rfipbtn__button{border:0 none transparent;border-left:1px solid #e57373;background-color:#ffcdd2;color:#c62828}.rfipbtn--red .rfipbtn__button:hover{background-color:#ef5350}.rfipbtn--red .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #e57373;box-shadow:inset 0 0 10px 0 #e57373}.rfipbtn--red .rfipbtn__icon{border:1px solid #ef9a9a;color:#c62828}.rfipbtn--red .rfipbtn__icon--empty{color:#e57373}.rfipbtn--red .rfipbtn__del{background-color:#ef9a9a}.rfipbtn--red .rfipbtn__del:hover{background-color:#e57373}.rfipbtn--red .rfipbtn__del:active,.rfipbtn--red .rfipbtn__del:focus{outline:1px solid #e57373}.rfipdropdown--red{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #e57373}.rfipdropdown--red input,.rfipdropdown--red select{color:#424242}.rfipdropdown--red .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #ef5350;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--red .rfipcategory select:active,.rfipdropdown--red .rfipcategory select:focus{border-bottom-color:#f44336;-webkit-box-shadow:0 1px 0 0 #f44336;box-shadow:0 1px 0 0 #f44336;outline:0 none}.rfipdropdown--red .rfipicons__cp{border:0 none;border-bottom:1px solid #ef5350;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--red .rfipicons__cp:active,.rfipdropdown--red .rfipicons__cp:focus{border-bottom-color:#f44336;-webkit-box-shadow:0 1px 0 0 #f44336;box-shadow:0 1px 0 0 #f44336;outline:0 none}.rfipdropdown--red .rfipicons__left,.rfipdropdown--red .rfipicons__right{background-color:#ef9a9a;border:1px solid #ef9a9a;color:#c62828}.rfipdropdown--red .rfipicons__left:hover,.rfipdropdown--red .rfipicons__right:hover{background-color:#ef5350;border:1px solid #ef5350}.rfipdropdown--red .rfipicons__left:active,.rfipdropdown--red .rfipicons__left:focus,.rfipdropdown--red .rfipicons__right:active,.rfipdropdown--red .rfipicons__right:focus{border:1px solid #ef5350}.rfipdropdown--red .rfipicons__ibox{background-color:#ffcdd2;border:1px solid #ffcdd2;color:#c62828}.rfipdropdown--red .rfipicons__ibox:hover{background-color:#ef5350;border:1px solid #ef5350}.rfipdropdown--red .rfipicons__ibox:active,.rfipdropdown--red .rfipicons__ibox:focus{border:1px solid #ef5350}.rfipdropdown--red .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--red .rfipicons__icon--selected .rfipicons__ibox{background-color:#ef9a9a}.rfipdropdown--red .rfipsearch input{border:0 none;border-bottom:1px solid #ef5350;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--red .rfipsearch input:active,.rfipdropdown--red .rfipsearch input:focus{border-bottom-color:#f44336;-webkit-box-shadow:0 1px 0 0 #f44336;box-shadow:0 1px 0 0 #f44336;outline:0 none}.rfipbtn--teal{background-color:#fff;border:1px solid #4db6ac}.rfipbtn--teal:active,.rfipbtn--teal:focus{-webkit-box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);border:1px solid #26a69a}.rfipbtn--teal .rfipbtn__button{border:0 none transparent;border-left:1px solid #4db6ac;background-color:#b2dfdb;color:#00695c}.rfipbtn--teal .rfipbtn__button:hover{background-color:#26a69a}.rfipbtn--teal .rfipbtn__button:active{-webkit-box-shadow:inset 0 0 10px 0 #4db6ac;box-shadow:inset 0 0 10px 0 #4db6ac}.rfipbtn--teal .rfipbtn__icon{border:1px solid #80cbc4;color:#00695c}.rfipbtn--teal .rfipbtn__icon--empty{color:#4db6ac}.rfipbtn--teal .rfipbtn__del{background-color:#80cbc4}.rfipbtn--teal .rfipbtn__del:hover{background-color:#4db6ac}.rfipbtn--teal .rfipbtn__del:active,.rfipbtn--teal .rfipbtn__del:focus{outline:1px solid #4db6ac}.rfipdropdown--teal{-webkit-box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);box-shadow:0 15px 24px rgba(0,0,0,.22),0 19px 76px rgba(0,0,0,.3);color:#424242;background-color:#fff;border:1px solid #4db6ac}.rfipdropdown--teal input,.rfipdropdown--teal select{color:#424242}.rfipdropdown--teal .rfipcategory select{background-color:#fff;border:0 none;border-bottom:1px solid #26a69a;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--teal .rfipcategory select:active,.rfipdropdown--teal .rfipcategory select:focus{border-bottom-color:#009688;-webkit-box-shadow:0 1px 0 0 #009688;box-shadow:0 1px 0 0 #009688;outline:0 none}.rfipdropdown--teal .rfipicons__cp{border:0 none;border-bottom:1px solid #26a69a;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--teal .rfipicons__cp:active,.rfipdropdown--teal .rfipicons__cp:focus{border-bottom-color:#009688;-webkit-box-shadow:0 1px 0 0 #009688;box-shadow:0 1px 0 0 #009688;outline:0 none}.rfipdropdown--teal .rfipicons__left,.rfipdropdown--teal .rfipicons__right{background-color:#80cbc4;border:1px solid #80cbc4;color:#00695c}.rfipdropdown--teal .rfipicons__left:hover,.rfipdropdown--teal .rfipicons__right:hover{background-color:#26a69a;border:1px solid #26a69a}.rfipdropdown--teal .rfipicons__left:active,.rfipdropdown--teal .rfipicons__left:focus,.rfipdropdown--teal .rfipicons__right:active,.rfipdropdown--teal .rfipicons__right:focus{border:1px solid #26a69a}.rfipdropdown--teal .rfipicons__ibox{background-color:#b2dfdb;border:1px solid #b2dfdb;color:#00695c}.rfipdropdown--teal .rfipicons__ibox:hover{background-color:#26a69a;border:1px solid #26a69a}.rfipdropdown--teal .rfipicons__ibox:active,.rfipdropdown--teal .rfipicons__ibox:focus{border:1px solid #26a69a}.rfipdropdown--teal .rfipicons__ibox--error{color:#ef9a9a}.rfipdropdown--teal .rfipicons__icon--selected .rfipicons__ibox{background-color:#80cbc4}.rfipdropdown--teal .rfipsearch input{border:0 none;border-bottom:1px solid #26a69a;-webkit-transition:border .25s,-webkit-box-shadow .25s;transition:border .25s,-webkit-box-shadow .25s;transition:box-shadow .25s,border .25s;transition:box-shadow .25s,border .25s,-webkit-box-shadow .25s}.rfipdropdown--teal .rfipsearch input:active,.rfipdropdown--teal .rfipsearch input:focus{border-bottom-color:#009688;-webkit-box-shadow:0 1px 0 0 #009688;box-shadow:0 1px 0 0 #009688;outline:0 none} .rfipbtn--default .rfipbtn__icon { border: 0; height: 30px; margin: 0; border-radius: 0; } .rfipbtn--default .rfipbtn__del { height: 18px; } .rfipicons__icon svg[fill="none"] { fill:none !important; } .rfipbtn__elm svg[fill="none"] { fill: none !important; } [class^=fipicon-] { font-style: normal; font-weight: 400; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } i.fipicon-angle-down:before { content: "\f140"; font-family: dashicons; } .rfipcategory i.fipicon-angle-down:before { display:none; } .kb-icon-picker-container .rfipbtn--default:active, .kb-icon-picker-container .rfipbtn--default:focus { box-shadow: none; } .kb-icon-picker-container .rfip { margin: 0 0 10px; width: 100%; } .kb-icon-picker-container .rfip .rfipbtn { width:100%; min-height: 30px; } i.fipicon-angle-up:before { content: "\f142"; font-family: dashicons; } i.fipicon-angle-right:before { content: "\f345"; font-family: dashicons; } i.fipicon-angle-left:before { content: "\f341"; font-family: dashicons; } react/src/boxshadow/boxshadow-component.js 0000644 00000040700 15151531430 0014762 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from "prop-types"; import classnames from "classnames"; import ResponsiveControl from "../common/responsive.js"; import ColorControl from "../common/color.js"; import Icons from "../common/icons.js"; import { __ } from "@wordpress/i18n"; const { ButtonGroup, Dashicon, Toolbar, Tooltip, Button, ToggleControl } = wp.components; /** * WordPress dependencies */ import { createRef, Component, Fragment } from "@wordpress/element"; class BoxshadowComponent extends Component { constructor() { super(...arguments); this.updateValues = this.updateValues.bind(this); this.handleChangeComplete = this.handleChangeComplete.bind(this); this.handleResponsiveChangeComplete = this.handleResponsiveChangeComplete.bind(this); let value = this.props.control.setting.get(); let defaultParams = { responsive: false, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let responsiveDefault = { desktop: { color: "rgba(0,0,0,0.05)", hOffset: 0, vOffset: 15, blur: 15, spread: -10, inset: false, disabled: false, }, }; let noneResponsiveDefault = { color: "rgba(0,0,0,0.05)", hOffset: 0, vOffset: 15, blur: 15, spread: -10, inset: false, disabled: false, }; let baseDefault; if (this.controlParams.responsive) { baseDefault = responsiveDefault; } else { baseDefault = noneResponsiveDefault; } this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default, } : baseDefault; value = value ? { ...JSON.parse(JSON.stringify(this.defaultValue)), ...value, } : JSON.parse(JSON.stringify(this.defaultValue)); this.state = { currentDevice: "desktop", value: value, }; this.anchorNodeRef = createRef(); } handleResponsiveChangeComplete(color, isPalette, device) { let value = this.state.value; if (undefined === value[device]) { value[device] = { color: "", hOffset: "", vOffset: "", blur: "", spread: "", inset: "", disabled: false, }; } if (isPalette) { value[device].color = isPalette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value[device].color = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { value[device].color = color.hex; } this.updateValues(value); } handleChangeComplete(color, isPalette) { let value = this.state.value; if (isPalette) { value.color = isPalette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value.color = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { value.color = color.hex; } this.updateValues(value); } render() { const data = this.props.control.params; const onResponsiveInputChange = (event, setting) => { const newValue = Number(event.target.value); let value = this.state.value; if (undefined === value[this.state.currentDevice]) { value[this.state.currentDevice] = { color: "", hOffset: "", vOffset: "", blur: "", spread: "", inset: "", disabled: false, }; } value[this.state.currentDevice][setting] = newValue; this.updateValues(value); }; const onInputChange = (event, setting) => { const newValue = "" !== event.target.value ? Number(event.target.value) : ""; let value = this.state.value; value[setting] = newValue; this.updateValues(value); }; const onInsetChange = (newValue) => { let value = this.state.value; value.inset = newValue; this.updateValues(value); }; const onDisableChange = (newValue) => { let value = this.state.value; value.disabled = newValue; this.updateValues(value); }; const responsiveControlLabel = ( <Fragment> {this.state.currentDevice !== "desktop" && ( <Tooltip text={__("Reset Device Values", "kadence")}> <Button className="reset kadence-reset" disabled={ undefined === this.state.value[this.state.currentDevice] } onClick={() => { let value = this.state.value; delete value[this.state.currentDevice]; this.updateValues(value); }} > <Dashicon icon="image-rotate" /> </Button> </Tooltip> )} {data.label && data.label} </Fragment> ); const controlLabel = ( <Fragment> <Tooltip text={__("Reset Values", "kadence")}> <Button className="reset kadence-reset" disabled={this.defaultValue === this.state.value} onClick={() => { let value = this.state.value; value = this.defaultValue; this.updateValues(value); }} > <Dashicon icon="image-rotate" /> </Button> </Tooltip> {data.label && data.label} </Fragment> ); return ( <div ref={this.anchorNodeRef} className="kadence-control-field kadence-boxshadow-control kadence-border-control" > {this.controlParams.responsive && ( <ResponsiveControl onChange={(currentDevice) => this.setState({ currentDevice }) } controlLabel={responsiveControlLabel} > {!this.state.value.disabled && ( <> <div className="kt-box-color-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("Color")} </p> <ColorControl presetColors={this.state.colorPalette} color={ undefined !== this.state.value.color && this.state.value.color ? this.state.value.color : "" } usePalette={true} tooltip={__("Border Color")} onChangeComplete={(color, isPalette) => this.handleChangeComplete( color, isPalette ) } customizer={this.props.customizer} controlRef={this.anchorNodeRef} /> </div> <div className="kt-box-x-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("X")} </p> <div className="components-base-control kt-boxshadow-number-input"> <div className="components-base-control__field"> <input value={ undefined !== this.state.value && undefined !== this.state.value.hOffset ? this.state.value .hOffset : "" } onChange={(event) => onInputChange( event, "hOffset" ) } min={-200} max={200} step={1} type="number" className="components-text-control__input" /> </div> </div> </div> <div className="kt-box-y-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("Y")} </p> <div className="components-base-control kt-boxshadow-number-input"> <div className="components-base-control__field"> <input value={ undefined !== this.state.value && undefined !== this.state.value.vOffset ? this.state.value .vOffset : "" } onChange={(event) => onInputChange( event, "vOffset" ) } min={-200} max={200} step={1} type="number" className="components-text-control__input" /> </div> </div> </div> <div className="kt-box-x-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("Blur")} </p> <div className="components-base-control kt-boxshadow-number-input"> <div className="components-base-control__field"> <input value={ undefined !== this.state.value && undefined !== this.state.value.blur ? this.state.value.blur : "" } onChange={(event) => onInputChange(event, "blur") } min={0} max={200} step={1} type="number" className="components-text-control__input" /> </div> </div> </div> <div className="kt-box-y-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("Spread")} </p> <div className="components-base-control kt-boxshadow-number-input"> <div className="components-base-control__field"> <input value={ undefined !== this.state.value && undefined !== this.state.value.spread ? this.state.value .spread : "" } onChange={(event) => onInputChange( event, "spread" ) } min={-200} max={200} step={1} type="number" className="components-text-control__input" /> </div> </div> </div> <div className="kt-box-inset-settings"> <ToggleControl label={__("Inset")} checked={ undefined !== this.state.value && undefined !== this.state.value.inset ? this.state.value.inset : false } onChange={(value) => this.props.onInsetChange(value) } /> </div> </> )} <div className="kt-box-disable-settings"> <ToggleControl label={__("Disable")} checked={ undefined !== this.state.value && undefined !== this.state.value.disabled ? this.state.value.disabled : false } onChange={(value) => this.props.onDisableChange(value) } /> </div> </ResponsiveControl> )} {!this.controlParams.responsive && ( <Fragment> <div className="kadence-responsive-control-bar"> <span className="customize-control-title"> {controlLabel} </span> </div> {!this.state.value.disabled && ( <div className="kadence-responsive-controls-content"> <Fragment> <div className="kt-box-color-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("Color")} </p> <ColorControl presetColors={ this.state.colorPalette } color={ undefined !== this.state.value.color && this.state.value.color ? this.state.value.color : "" } usePalette={true} tooltip={__("Border Color")} onChangeComplete={( color, isPalette ) => this.handleChangeComplete( color, isPalette ) } customizer={this.props.customizer} controlRef={this.anchorNodeRef} /> </div> <div className="kt-box-x-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("X")} </p> <div className="components-base-control kt-boxshadow-number-input"> <div className="components-base-control__field"> <input value={ undefined !== this.state.value && undefined !== this.state.value .hOffset ? this.state.value .hOffset : "" } onChange={(event) => onInputChange( event, "hOffset" ) } min={-200} max={200} step={1} type="number" className="components-text-control__input" /> </div> </div> </div> <div className="kt-box-y-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("Y")} </p> <div className="components-base-control kt-boxshadow-number-input"> <div className="components-base-control__field"> <input value={ undefined !== this.state.value && undefined !== this.state.value .vOffset ? this.state.value .vOffset : "" } onChange={(event) => onInputChange( event, "vOffset" ) } min={-200} max={200} step={1} type="number" className="components-text-control__input" /> </div> </div> </div> <div className="kt-box-x-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("Blur")} </p> <div className="components-base-control kt-boxshadow-number-input"> <div className="components-base-control__field"> <input value={ undefined !== this.state.value && undefined !== this.state.value .blur ? this.state.value .blur : "" } onChange={(event) => onInputChange( event, "blur" ) } min={0} max={200} step={1} type="number" className="components-text-control__input" /> </div> </div> </div> <div className="kt-box-y-settings kt-box-shadow-subset"> <p className="kt-box-shadow-title"> {__("Spread")} </p> <div className="components-base-control kt-boxshadow-number-input"> <div className="components-base-control__field"> <input value={ undefined !== this.state.value && undefined !== this.state.value .spread ? this.state.value .spread : "" } onChange={(event) => onInputChange( event, "spread" ) } min={-200} max={200} step={1} type="number" className="components-text-control__input" /> </div> </div> </div> </Fragment> </div> )} <div className="kadence-responsive-controls-content"> {!this.state.value.disabled && ( <div className="kt-box-inset-settings"> <ToggleControl label={__("Inset")} checked={ undefined !== this.state.value && undefined !== this.state.value.inset && this.state.value.inset ? true : false } onChange={(value) => onInsetChange(value) } /> </div> )} <div className="kt-box-disable-settings"> <ToggleControl label={__("Disable")} checked={ undefined !== this.state.value && undefined !== this.state.value.disabled && this.state.value.disabled ? true : false } onChange={(value) => onDisableChange(value)} /> </div> </div> </Fragment> )} </div> ); } updateValues(value) { this.setState({ value: value }); if (this.controlParams.responsive) { value.flag = !this.props.control.setting.get().flag; } this.props.control.setting.set({ ...this.props.control.setting.get(), ...value, }); } } BoxshadowComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired, }; export default BoxshadowComponent; react/src/boxshadow/control.js 0000644 00000001011 15151531430 0012434 0 ustar 00 import { createRoot } from '@wordpress/element'; import BoxShadowComponent from './boxshadow-component.js'; export const BoxShadowControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <BoxShadowComponent control={control} customizer={ wp.customize }/> ); // ReactDOM.render( // <BoxShadowComponent control={control} customizer={ wp.customize }/>, // control.container[0] // ); } } ); react/src/social/icons.js 0000644 00000374431 15151531431 0011367 0 ustar 00 const SocialIcons = { behance: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="28" viewBox="0 0 32 28" > <path d="M28.875 5.297h-7.984v1.937h7.984V5.297zm-3.937 6.656c-1.875 0-3.125 1.172-3.25 3.047h6.375c-.172-1.891-1.156-3.047-3.125-3.047zm.25 9.141c1.188 0 2.719-.641 3.094-1.859h3.453c-1.062 3.266-3.266 4.797-6.672 4.797-4.5 0-7.297-3.047-7.297-7.484 0-4.281 2.953-7.547 7.297-7.547 4.469 0 6.937 3.516 6.937 7.734 0 .25-.016.5-.031.734H21.688c0 2.281 1.203 3.625 3.5 3.625zm-20.86-.782h4.625c1.766 0 3.203-.625 3.203-2.609 0-2.016-1.203-2.812-3.109-2.812H4.328v5.422zm0-8.39h4.391c1.547 0 2.641-.672 2.641-2.344 0-1.813-1.406-2.25-2.969-2.25H4.329v4.594zM0 3.969h9.281c3.375 0 6.297.953 6.297 4.875 0 1.984-.922 3.266-2.688 4.109 2.422.688 3.594 2.516 3.594 4.984 0 4-3.359 5.719-6.937 5.719H0V3.968z"></path> </svg>, dribbble: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M16 23.438c-.156-.906-.75-4.031-2.188-7.781-.016 0-.047.016-.063.016 0 0-6.078 2.125-8.047 6.406-.094-.078-.234-.172-.234-.172a10.297 10.297 0 006.531 2.344c1.422 0 2.766-.297 4-.812zm-2.891-9.485a29.025 29.025 0 00-.828-1.734C7 13.797 1.937 13.672 1.765 13.672c-.016.109-.016.219-.016.328 0 2.625 1 5.031 2.625 6.844 2.797-4.984 8.328-6.766 8.328-6.766.141-.047.281-.078.406-.125zm-1.671-3.312a61.656 61.656 0 00-3.813-5.906 10.267 10.267 0 00-5.656 7.156c.266 0 4.547.047 9.469-1.25zm10.687 4.984c-.219-.063-3.078-.969-6.391-.453 1.344 3.703 1.891 6.719 2 7.328a10.293 10.293 0 004.391-6.875zM9.547 4.047c-.016 0-.016 0-.031.016 0 0 .016-.016.031-.016zm9.219 2.265a10.17 10.17 0 00-9.188-2.265c.156.203 2.094 2.75 3.844 5.969 3.859-1.437 5.313-3.656 5.344-3.703zm3.484 7.579a10.273 10.273 0 00-2.328-6.406c-.031.031-1.672 2.406-5.719 4.062.234.484.469.984.688 1.484.078.172.141.359.219.531 3.531-.453 7.016.313 7.141.328zM24 14c0 6.625-5.375 12-12 12S0 20.625 0 14 5.375 2 12 2s12 5.375 12 12z"></path> </svg>, facebook: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" > <path d="M31.997 15.999C31.997 7.163 24.834 0 15.998 0S-.001 7.163-.001 15.999c0 7.985 5.851 14.604 13.499 15.804v-11.18H9.436v-4.625h4.062v-3.525c0-4.01 2.389-6.225 6.043-6.225 1.75 0 3.581.313 3.581.313v3.937h-2.017c-1.987 0-2.607 1.233-2.607 2.498v3.001h4.437l-.709 4.625h-3.728v11.18c7.649-1.2 13.499-7.819 13.499-15.804z" ></path> </svg>, facebookAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M17 3v2h-2c-.552 0-1.053.225-1.414.586S13 6.448 13 7v3a1 1 0 001 1h2.719l-.5 2H14a1 1 0 00-1 1v7h-2v-7a1 1 0 00-1-1H8v-2h2a1 1 0 001-1V7c0-1.105.447-2.103 1.172-2.828S13.895 3 15 3zm1-2h-3c-1.657 0-3.158.673-4.243 1.757S9 5.343 9 7v2H7a1 1 0 00-1 1v4a1 1 0 001 1h2v7a1 1 0 001 1h4a1 1 0 001-1v-7h2c.466 0 .858-.319.97-.757l1-4A1 1 0 0018 9h-3V7h3a1 1 0 001-1V2a1 1 0 00-1-1z"></path> </svg>, facebookAlt2: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="28" viewBox="0 0 16 28" > <path d="M14.984.187v4.125h-2.453c-1.922 0-2.281.922-2.281 2.25v2.953h4.578l-.609 4.625H10.25v11.859H5.469V14.14H1.485V9.515h3.984V6.109C5.469 2.156 7.891 0 11.422 0c1.687 0 3.141.125 3.563.187z"></path> </svg>, github: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M12 2c6.625 0 12 5.375 12 12 0 5.297-3.437 9.797-8.203 11.391-.609.109-.828-.266-.828-.578 0-.391.016-1.687.016-3.297 0-1.125-.375-1.844-.812-2.219 2.672-.297 5.484-1.313 5.484-5.922 0-1.313-.469-2.375-1.234-3.219.125-.313.531-1.531-.125-3.187-1-.313-3.297 1.234-3.297 1.234a11.28 11.28 0 00-6 0S6.704 6.656 5.704 6.969c-.656 1.656-.25 2.875-.125 3.187-.766.844-1.234 1.906-1.234 3.219 0 4.594 2.797 5.625 5.469 5.922-.344.313-.656.844-.766 1.609-.688.313-2.438.844-3.484-1-.656-1.141-1.844-1.234-1.844-1.234-1.172-.016-.078.734-.078.734.781.359 1.328 1.75 1.328 1.75.703 2.141 4.047 1.422 4.047 1.422 0 1 .016 1.937.016 2.234 0 .313-.219.688-.828.578C3.439 23.796.002 19.296.002 13.999c0-6.625 5.375-12 12-12zM4.547 19.234c.031-.063-.016-.141-.109-.187-.094-.031-.172-.016-.203.031-.031.063.016.141.109.187.078.047.172.031.203-.031zm.484.532c.063-.047.047-.156-.031-.25-.078-.078-.187-.109-.25-.047-.063.047-.047.156.031.25.078.078.187.109.25.047zm.469.703c.078-.063.078-.187 0-.297-.063-.109-.187-.156-.266-.094-.078.047-.078.172 0 .281s.203.156.266.109zm.656.656c.063-.063.031-.203-.063-.297-.109-.109-.25-.125-.313-.047-.078.063-.047.203.063.297.109.109.25.125.313.047zm.891.391c.031-.094-.063-.203-.203-.25-.125-.031-.266.016-.297.109s.063.203.203.234c.125.047.266 0 .297-.094zm.984.078c0-.109-.125-.187-.266-.172-.141 0-.25.078-.25.172 0 .109.109.187.266.172.141 0 .25-.078.25-.172zm.906-.156c-.016-.094-.141-.156-.281-.141-.141.031-.234.125-.219.234.016.094.141.156.281.125s.234-.125.219-.219z"></path> </svg>, githubAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M8.713 18.042c-1.268.38-2.06.335-2.583.17a2.282 2.282 0 01-.614-.302c-.411-.284-.727-.675-1.119-1.172-.356-.451-.85-1.107-1.551-1.476a2.694 2.694 0 00-.604-.232 1 1 0 10-.485 1.941c.074.023.155.06.155.06.252.133.487.404.914.946.366.464.856 1.098 1.553 1.579.332.229.711.426 1.149.564 1.015.321 2.236.296 3.76-.162a1 1 0 10-.575-1.915zM17 22v-3.792a4.377 4.377 0 00-.292-1.942c.777-.171 1.563-.427 2.297-.823 2.083-1.124 3.496-3.242 3.496-6.923a6.408 6.408 0 00-1.379-3.981 6.044 6.044 0 00-.293-3.933 1 1 0 00-.634-.564c-.357-.106-1.732-.309-4.373 1.362a14.24 14.24 0 00-6.646-.002C6.537-.267 5.163-.064 4.806.042a.998.998 0 00-.635.565 6.044 6.044 0 00-.292 3.932A6.414 6.414 0 002.5 8.556c0 3.622 1.389 5.723 3.441 6.859.752.416 1.56.685 2.357.867a4.395 4.395 0 00-.299 1.88L8 22a1 1 0 002 0v-3.87l-.002-.069a2.357 2.357 0 01.661-1.816 1 1 0 00-.595-1.688c-.34-.042-.677-.094-1.006-.159-.79-.156-1.518-.385-2.147-.733-1.305-.723-2.391-2.071-2.41-5.042.013-1.241.419-2.319 1.224-3.165a1 1 0 00.212-1.04 4.045 4.045 0 01-.14-2.392c.491.107 1.354.416 2.647 1.282a1 1 0 00.825.133 12.229 12.229 0 016.47.002.994.994 0 00.818-.135c1.293-.866 2.156-1.175 2.647-1.282a4.041 4.041 0 01-.141 2.392c-.129.352-.058.755.213 1.04a4.419 4.419 0 011.224 3.06c0 3.075-1.114 4.445-2.445 5.163-.623.336-1.343.555-2.123.7-.322.06-.651.106-.983.143a1 1 0 00-.608 1.689 2.36 2.36 0 01.662 1.837l-.003.078V22a1 1 0 002 0z"></path> </svg>, facebook_group: <svg xmlns="http://www.w3.org/2000/svg" width="30" height="28" viewBox="0 0 30 28" > <path d="M9.266 14a5.532 5.532 0 00-4.141 2H3.031C1.468 16 0 15.25 0 13.516 0 12.25-.047 8 1.937 8c.328 0 1.953 1.328 4.062 1.328.719 0 1.406-.125 2.078-.359A7.624 7.624 0 007.999 10c0 1.422.453 2.828 1.266 4zM26 23.953C26 26.484 24.328 28 21.828 28H8.172C5.672 28 4 26.484 4 23.953 4 20.422 4.828 15 9.406 15c.531 0 2.469 2.172 5.594 2.172S20.063 15 20.594 15C25.172 15 26 20.422 26 23.953zM10 4c0 2.203-1.797 4-4 4S2 6.203 2 4s1.797-4 4-4 4 1.797 4 4zm11 6c0 3.313-2.688 6-6 6s-6-2.688-6-6 2.688-6 6-6 6 2.688 6 6zm9 3.516C30 15.25 28.531 16 26.969 16h-2.094a5.532 5.532 0 00-4.141-2A7.066 7.066 0 0022 10a7.6 7.6 0 00-.078-1.031A6.258 6.258 0 0024 9.328C26.109 9.328 27.734 8 28.062 8c1.984 0 1.937 4.25 1.937 5.516zM28 4c0 2.203-1.797 4-4 4s-4-1.797-4-4 1.797-4 4-4 4 1.797 4 4z"></path> </svg>, instagram: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" > <path d="M21.138.242c3.767.007 3.914.038 4.65.144 1.52.219 2.795.825 3.837 1.821a6.243 6.243 0 011.349 1.848c.442.899.659 1.75.758 3.016.021.271.031 4.592.031 8.916s-.009 8.652-.03 8.924c-.098 1.245-.315 2.104-.743 2.986a6.6 6.6 0 01-4.303 3.522c-.685.177-1.304.26-2.371.31-.381.019-4.361.024-8.342.024s-7.959-.012-8.349-.029c-.921-.044-1.639-.136-2.288-.303a6.64 6.64 0 01-4.303-3.515c-.436-.904-.642-1.731-.751-3.045-.031-.373-.039-2.296-.039-8.87 0-2.215-.002-3.866 0-5.121.006-3.764.037-3.915.144-4.652.219-1.518.825-2.795 1.825-3.833a6.302 6.302 0 011.811-1.326C4.939.603 5.78.391 7.13.278 7.504.247 9.428.24 16.008.24h5.13zm-5.139 4.122c-3.159 0-3.555.014-4.796.07-1.239.057-2.084.253-2.824.541-.765.297-1.415.695-2.061 1.342S5.273 7.613 4.975 8.378c-.288.74-.485 1.586-.541 2.824-.056 1.241-.07 1.638-.07 4.798s.014 3.556.07 4.797c.057 1.239.253 2.084.541 2.824.297.765.695 1.415 1.342 2.061s1.296 1.046 2.061 1.343c.74.288 1.586.484 2.825.541 1.241.056 1.638.07 4.798.07s3.556-.014 4.797-.07c1.239-.057 2.085-.253 2.826-.541.765-.297 1.413-.696 2.06-1.343s1.045-1.296 1.343-2.061c.286-.74.482-1.586.541-2.824.056-1.241.07-1.637.07-4.797s-.015-3.557-.07-4.798c-.058-1.239-.255-2.084-.541-2.824-.298-.765-.696-1.415-1.343-2.061s-1.295-1.045-2.061-1.342c-.742-.288-1.588-.484-2.827-.541-1.241-.056-1.636-.07-4.796-.07zm-1.042 2.097h1.044c3.107 0 3.475.011 4.702.067 1.135.052 1.75.241 2.16.401.543.211.93.463 1.337.87s.659.795.871 1.338c.159.41.349 1.025.401 2.16.056 1.227.068 1.595.068 4.701s-.012 3.474-.068 4.701c-.052 1.135-.241 1.75-.401 2.16-.211.543-.463.93-.871 1.337s-.794.659-1.337.87c-.41.16-1.026.349-2.16.401-1.227.056-1.595.068-4.702.068s-3.475-.012-4.702-.068c-1.135-.052-1.75-.242-2.161-.401-.543-.211-.931-.463-1.338-.87s-.659-.794-.871-1.337c-.159-.41-.349-1.025-.401-2.16-.056-1.227-.067-1.595-.067-4.703s.011-3.474.067-4.701c.052-1.135.241-1.75.401-2.16.211-.543.463-.931.871-1.338s.795-.659 1.338-.871c.41-.16 1.026-.349 2.161-.401 1.073-.048 1.489-.063 3.658-.065v.003zm1.044 3.563a5.977 5.977 0 10.001 11.953 5.977 5.977 0 00-.001-11.953zm0 2.097a3.879 3.879 0 110 7.758 3.879 3.879 0 010-7.758zm6.211-3.728a1.396 1.396 0 100 2.792 1.396 1.396 0 000-2.792v.001z"></path> </svg>, instagramAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M7 1c-1.657 0-3.158.673-4.243 1.757S1 5.343 1 7v10c0 1.657.673 3.158 1.757 4.243S5.343 23 7 23h10c1.657 0 3.158-.673 4.243-1.757S23 18.657 23 17V7c0-1.657-.673-3.158-1.757-4.243S18.657 1 17 1zm0 2h10c1.105 0 2.103.447 2.828 1.172S21 5.895 21 7v10c0 1.105-.447 2.103-1.172 2.828S18.105 21 17 21H7c-1.105 0-2.103-.447-2.828-1.172S3 18.105 3 17V7c0-1.105.447-2.103 1.172-2.828S5.895 3 7 3zm9.989 8.223a5.054 5.054 0 00-1.194-2.567 4.962 4.962 0 00-3.009-1.644 4.904 4.904 0 00-1.477-.002c-1.366.202-2.521.941-3.282 1.967s-1.133 2.347-.93 3.712.941 2.521 1.967 3.282 2.347 1.133 3.712.93 2.521-.941 3.282-1.967 1.133-2.347.93-3.712zm-1.978.294c.122.82-.1 1.609-.558 2.227s-1.15 1.059-1.969 1.18-1.609-.1-2.227-.558-1.059-1.15-1.18-1.969.1-1.609.558-2.227 1.15-1.059 1.969-1.18a2.976 2.976 0 012.688.984c.375.428.63.963.72 1.543zM17.5 7.5a1 1 0 100-2 1 1 0 000 2z"></path> </svg>, threads: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 448 512" > <path d="M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z"></path> </svg>, linkedin: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M3.703 22.094h3.609V11.25H3.703v10.844zM7.547 7.906c-.016-1.062-.781-1.875-2.016-1.875s-2.047.812-2.047 1.875c0 1.031.781 1.875 2 1.875H5.5c1.266 0 2.047-.844 2.047-1.875zm9.141 14.188h3.609v-6.219c0-3.328-1.781-4.875-4.156-4.875-1.937 0-2.797 1.078-3.266 1.828h.031V11.25H9.297s.047 1.016 0 10.844h3.609v-6.062c0-.313.016-.641.109-.875.266-.641.859-1.313 1.859-1.313 1.297 0 1.813.984 1.813 2.453v5.797zM24 6.5v15c0 2.484-2.016 4.5-4.5 4.5h-15A4.502 4.502 0 010 21.5v-15C0 4.016 2.016 2 4.5 2h15C21.984 2 24 4.016 24 6.5z"></path> </svg>, linkedinAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M16 7c-1.933 0-3.684.785-4.95 2.05S9 12.067 9 14v7a1 1 0 001 1h4a1 1 0 001-1v-7c0-.276.111-.525.293-.707S15.724 13 16 13s.525.111.707.293.293.431.293.707v7a1 1 0 001 1h4a1 1 0 001-1v-7c0-1.933-.785-3.684-2.05-4.95S17.933 7 16 7zm0 2c1.381 0 2.63.559 3.536 1.464S21 12.619 21 14v6h-2v-6a2.997 2.997 0 00-5.121-2.121A2.997 2.997 0 0013 14v6h-2v-6c0-1.381.559-2.63 1.464-3.536S14.619 9 16 9zM2 8a1 1 0 00-1 1v12a1 1 0 001 1h4a1 1 0 001-1V9a1 1 0 00-1-1zm1 2h2v10H3zm4-6a2.997 2.997 0 00-5.121-2.121 2.997 2.997 0 000 4.242 2.997 2.997 0 004.242 0A2.997 2.997 0 007 4zM5 4c0 .276-.111.525-.293.707S4.276 5 4 5s-.525-.111-.707-.293S3 4.276 3 4s.111-.525.293-.707S3.724 3 4 3s.525.111.707.293S5 3.724 5 4z"></path> </svg>, medium: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" > <path d="M0 0v32h32V0zm26.584 7.581l-1.716 1.645a.5.5 0 00-.191.486v-.003 12.089a.502.502 0 00.189.481l.001.001 1.676 1.645v.361h-8.429v-.36l1.736-1.687c.171-.171.171-.22.171-.48v-9.773l-4.827 12.26h-.653L8.92 11.986v8.217a1.132 1.132 0 00.311.943l2.259 2.739v.361H5.087v-.36l2.26-2.74a1.09 1.09 0 00.289-.949l.001.007v-9.501a.83.83 0 00-.27-.702L7.366 10 5.358 7.581v-.36h6.232l4.817 10.564L20.642 7.22h5.941z"></path> </svg>, patreon: <svg xmlns="http://www.w3.org/2000/svg" width="33" height="32" viewBox="0 0 33 32" > <path d="M21.37.033c-6.617 0-12.001 5.383-12.001 11.999 0 6.597 5.383 11.963 12.001 11.963 6.597 0 11.963-5.367 11.963-11.963C33.333 5.415 27.966.033 21.37.033zM.004 31.996h5.859V.033H.004z"></path> </svg>, pinterest: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M19.5 2C21.984 2 24 4.016 24 6.5v15c0 2.484-2.016 4.5-4.5 4.5H8.172c.516-.734 1.359-2 1.687-3.281 0 0 .141-.531.828-3.266.422.797 1.625 1.484 2.906 1.484 3.813 0 6.406-3.484 6.406-8.141 0-3.516-2.984-6.797-7.516-6.797-5.641 0-8.484 4.047-8.484 7.422 0 2.031.781 3.844 2.438 4.531.266.109.516 0 .594-.297.047-.203.172-.734.234-.953.078-.297.047-.406-.172-.656-.469-.578-.781-1.297-.781-2.344 0-3 2.25-5.672 5.844-5.672 3.187 0 4.937 1.937 4.937 4.547 0 3.422-1.516 6.312-3.766 6.312-1.234 0-2.172-1.031-1.875-2.297.359-1.5 1.047-3.125 1.047-4.203 0-.969-.516-1.781-1.594-1.781-1.266 0-2.281 1.313-2.281 3.063 0 0 0 1.125.375 1.891-1.297 5.5-1.531 6.469-1.531 6.469-.344 1.437-.203 3.109-.109 3.969H4.5A4.502 4.502 0 010 21.5v-15C0 4.016 2.016 2 4.5 2h15z"></path> </svg>, pinterestAlt: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M8 0C3.588 0 0 3.587 0 8s3.587 8 8 8 8-3.588 8-8-3.588-8-8-8zm0 14.931a6.959 6.959 0 01-2.053-.309c.281-.459.706-1.216.862-1.816.084-.325.431-1.647.431-1.647.225.431.888.797 1.587.797 2.091 0 3.597-1.922 3.597-4.313 0-2.291-1.869-4.003-4.272-4.003-2.991 0-4.578 2.009-4.578 4.194 0 1.016.541 2.281 1.406 2.684.131.063.2.034.231-.094.022-.097.141-.566.194-.787a.213.213 0 00-.047-.2c-.287-.347-.516-.988-.516-1.581 0-1.528 1.156-3.009 3.128-3.009 1.703 0 2.894 1.159 2.894 2.819 0 1.875-.947 3.175-2.178 3.175-.681 0-1.191-.563-1.025-1.253.197-.825.575-1.713.575-2.306 0-.531-.284-.975-.878-.975-.697 0-1.253.719-1.253 1.684 0 .612.206 1.028.206 1.028s-.688 2.903-.813 3.444c-.141.6-.084 1.441-.025 1.988a6.922 6.922 0 01-4.406-6.45 6.93 6.93 0 116.931 6.931z"></path> </svg>, reddit: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M14.672 17.641a.293.293 0 010 .406c-.766.766-2.234.828-2.672.828s-1.906-.063-2.672-.828a.293.293 0 010-.406.267.267 0 01.406 0c.484.484 1.531.656 2.266.656s1.781-.172 2.266-.656a.267.267 0 01.406 0zm-4.109-2.438c0 .656-.547 1.203-1.203 1.203s-1.203-.547-1.203-1.203a1.203 1.203 0 012.406 0zm5.281 0c0 .656-.547 1.203-1.203 1.203s-1.203-.547-1.203-1.203a1.203 1.203 0 012.406 0zm3.359-1.609c0-.875-.719-1.594-1.609-1.594a1.62 1.62 0 00-1.141.484c-1.094-.75-2.562-1.234-4.172-1.281l.844-3.797 2.672.609c.016.656.547 1.188 1.203 1.188S18.203 8.656 18.203 8 17.656 6.797 17 6.797a1.2 1.2 0 00-1.078.672l-2.953-.656c-.156-.047-.297.063-.328.203l-.938 4.188c-1.609.063-3.063.547-4.141 1.297a1.603 1.603 0 00-2.765 1.094c0 .641.375 1.188.906 1.453-.047.234-.078.5-.078.75 0 2.547 2.859 4.609 6.391 4.609s6.406-2.063 6.406-4.609a3.09 3.09 0 00-.094-.766c.516-.266.875-.812.875-1.437zM24 6.5v15c0 2.484-2.016 4.5-4.5 4.5h-15A4.502 4.502 0 010 21.5v-15C0 4.016 2.016 2 4.5 2h15C21.984 2 24 4.016 24 6.5z"></path> </svg>, redditAlt: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M4 10a1 1 0 112 0 1 1 0 01-2 0zm6 0a1 1 0 112 0 1 1 0 01-2 0zm.049 2.137a.593.593 0 11.735.933c-.717.565-1.81.93-2.783.93s-2.066-.365-2.784-.93a.593.593 0 11.735-.933c.413.325 1.23.675 2.049.675s1.636-.35 2.049-.675zM16 8a2 2 0 00-3.748-.972c-1.028-.562-2.28-.926-3.645-1.01L9.8 3.338l2.284.659a1.5 1.5 0 10.094-1.209l-2.545-.735a.593.593 0 00-.707.329L7.305 6.023c-1.33.094-2.551.453-3.557 1.004a2 2 0 10-2.555 2.802A3.661 3.661 0 001 10.999c0 2.761 3.134 5 7 5s7-2.239 7-5c0-.403-.067-.795-.193-1.17A2 2 0 0016 7.999zm-2.5-5.062a.563.563 0 110 1.126.563.563 0 010-1.126zM1 8a1 1 0 011.904-.427 5.292 5.292 0 00-1.276 1.355A1.001 1.001 0 011 8zm7 6.813c-3.21 0-5.813-1.707-5.813-3.813S4.789 7.187 8 7.187c3.21 0 5.813 1.707 5.813 3.813S11.211 14.813 8 14.813zm6.372-5.885a5.276 5.276 0 00-1.276-1.355C13.257 7.235 13.601 7 14 7a1.001 1.001 0 01.372 1.928z"></path> </svg>, redditAlt2:<svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <path fill="#000" strokeMiterlimit="10" strokeWidth="0" d="M254.301 129.554c-.565-15.292-13.404-27.232-28.744-26.712-6.797.236-13.26 3.02-18.169 7.69-21.617-14.723-47.008-22.797-73.108-23.361l12.32-59.232 40.635 8.545c1.13 10.43 10.475 17.984 20.906 16.849 10.43-1.13 17.984-10.476 16.849-20.907s-10.476-17.984-20.907-16.849c-5.996.613-11.374 4.106-14.345 9.299l-46.536-9.299a5.883 5.883 0 0 0-7.033 4.485v.093L122.152 86.04a136.04 136.04 0 0 0-74.049 23.362c-11.139-10.475-28.696-9.958-39.171 1.228-10.476 11.14-9.959 28.696 1.228 39.172 2.172 2.029 4.67 3.776 7.455 5.004a61 61 0 0 0 0 8.354c0 42.524 49.557 77.118 110.674 77.118s110.675-34.549 110.675-77.118q.286-4.176 0-8.354c9.532-4.768 15.528-14.586 15.337-25.253m-189.869 19.02c0-10.475 8.545-19.02 19.021-19.02s19.02 8.545 19.02 19.02c0 10.476-8.544 19.022-19.02 19.022-10.523-.096-19.02-8.543-19.02-19.021M174.73 201.53v-.756c-13.499 10.147-30.016 15.337-46.916 14.632-16.899.708-33.413-4.485-46.915-14.632-1.793-2.172-1.464-5.426.708-7.219 1.885-1.556 4.577-1.556 6.513 0 11.423 8.355 25.347 12.603 39.503 11.94a62.5 62.5 0 0 0 39.692-11.56c2.076-2.03 5.473-1.984 7.505.092s1.984 5.474-.09 7.503m-2.596-32.565h-.944l.143-.708c-10.476 0-19.021-8.545-19.021-19.02 0-10.477 8.545-19.022 19.02-19.022 10.477 0 19.022 8.545 19.022 19.021.421 10.479-7.742 19.302-18.22 19.73" ></path> </svg>, rss: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M8 20c0-1.109-.891-2-2-2s-2 .891-2 2 .891 2 2 2 2-.891 2-2zm5.484 1.469a9.468 9.468 0 00-8.953-8.953c-.141-.016-.281.047-.375.141S4 12.876 4 13.016v2c0 .266.203.484.469.5 3.203.234 5.781 2.812 6.016 6.016a.498.498 0 00.5.469h2c.141 0 .266-.063.359-.156s.156-.234.141-.375zm6 .015C19.218 13.359 12.64 6.781 4.515 6.515a.38.38 0 00-.359.141.508.508 0 00-.156.359v2c0 .266.219.484.484.5 6.484.234 11.766 5.516 12 12a.51.51 0 00.5.484h2a.509.509 0 00.359-.156.4.4 0 00.141-.359zM24 6.5v15c0 2.484-2.016 4.5-4.5 4.5h-15A4.502 4.502 0 010 21.5v-15C0 4.016 2.016 2 4.5 2h15C21.984 2 24 4.016 24 6.5z"></path> </svg>, rssAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M4 12c2.209 0 4.208.894 5.657 2.343S12 17.791 12 20a1 1 0 002 0c0-2.761-1.12-5.263-2.929-7.071S6.761 10 4 10a1 1 0 000 2zm0-7c4.142 0 7.891 1.678 10.607 4.393S19 15.858 19 20a1 1 0 002 0c0-4.694-1.904-8.946-4.979-12.021S8.694 3 4 3a1 1 0 000 2zm3 14c0-.552-.225-1.053-.586-1.414a1.996 1.996 0 00-2.828 0 1.996 1.996 0 000 2.828 1.996 1.996 0 002.828 0C6.775 20.053 7 19.552 7 19z"></path> </svg>, tumblr: <svg xmlns="http://www.w3.org/2000/svg" width="17" height="28" viewBox="0 0 17 28" > <path d="M14.75 20.766L16 24.469c-.469.703-2.594 1.5-4.5 1.531-5.672.094-7.812-4.031-7.812-6.937v-8.5H1.063V7.204C5.001 5.782 5.954 2.22 6.172.188c.016-.125.125-.187.187-.187h3.813v6.625h5.203v3.937h-5.219v8.094c0 1.094.406 2.609 2.5 2.562.688-.016 1.609-.219 2.094-.453z"></path> </svg>, twitter: <svg xmlns="http://www.w3.org/2000/svg" width="26" height="28" viewBox="0 0 26 28" > <path d="M25.312 6.375a10.85 10.85 0 01-2.531 2.609c.016.219.016.438.016.656 0 6.672-5.078 14.359-14.359 14.359-2.859 0-5.516-.828-7.75-2.266.406.047.797.063 1.219.063 2.359 0 4.531-.797 6.266-2.156a5.056 5.056 0 01-4.719-3.5c.313.047.625.078.953.078.453 0 .906-.063 1.328-.172a5.048 5.048 0 01-4.047-4.953v-.063a5.093 5.093 0 002.281.641 5.044 5.044 0 01-2.25-4.203c0-.938.25-1.797.688-2.547a14.344 14.344 0 0010.406 5.281 5.708 5.708 0 01-.125-1.156 5.045 5.045 0 015.047-5.047 5.03 5.03 0 013.687 1.594 9.943 9.943 0 003.203-1.219 5.032 5.032 0 01-2.219 2.781c1.016-.109 2-.391 2.906-.781z"></path> </svg>, twitterAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M20.833 5.262a6.685 6.685 0 01-.616.696.997.997 0 00-.278.908c.037.182.06.404.061.634 0 5.256-2.429 8.971-5.81 10.898-2.647 1.509-5.938 1.955-9.222 1.12a12.682 12.682 0 003.593-1.69 1 1 0 00-.156-1.741c-2.774-1.233-4.13-2.931-4.769-4.593-.417-1.084-.546-2.198-.52-3.227.021-.811.138-1.56.278-2.182.394.343.803.706 1.235 1.038a11.59 11.59 0 007.395 2.407c.543-.015.976-.457.976-1V7.519a3.459 3.459 0 011.196-2.674c.725-.631 1.636-.908 2.526-.846s1.753.463 2.384 1.188a1 1 0 001.033.304c.231-.067.463-.143.695-.228zm1.591-3.079a9.884 9.884 0 01-2.287 1.205 5.469 5.469 0 00-3.276-1.385 5.465 5.465 0 00-3.977 1.332A5.464 5.464 0 0011 7.507a9.589 9.589 0 01-5.15-1.97 9.87 9.87 0 01-2.034-2.116 1 1 0 00-1.729.172s-.132.299-.285.76a13.57 13.57 0 00-.357 1.29 13.224 13.224 0 00-.326 2.571c-.031 1.227.12 2.612.652 3.996.683 1.775 1.966 3.478 4.147 4.823A10.505 10.505 0 011.045 18a1 1 0 00-.53 1.873c4.905 2.725 10.426 2.678 14.666.261C19.221 17.833 22 13.434 22 7.5a5.565 5.565 0 00-.023-.489 8.626 8.626 0 001.996-3.781 1 1 0 00-1.55-1.047z"></path> </svg>, twitterAlt2: <svg xmlns="http://www.w3.org/2000/svg" width="23" height="24" viewBox="0 0 23 24" > <path d="M13.969 10.157L22.707 0h-2.071l-7.587 8.819L6.989 0H0l9.164 13.336L0 23.987h2.071l8.012-9.313 6.4 9.313h6.989l-9.503-13.831zm-2.836 3.297L2.817 1.559h3.181L20.638 22.5h-3.181l-6.324-9.046z" ></path> </svg>, vimeo: <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" > <path d="M26.703 8.094c-.109 2.469-1.844 5.859-5.187 10.172C18.047 22.75 15.141 25 12.735 25c-1.484 0-2.734-1.375-3.75-4.109-.688-2.5-1.375-5.016-2.063-7.531-.75-2.734-1.578-4.094-2.453-4.094-.187 0-.844.391-1.984 1.188L1.282 8.923c1.25-1.109 2.484-2.234 3.719-3.313 1.656-1.469 2.922-2.203 3.766-2.281 1.984-.187 3.187 1.156 3.656 4.047.484 3.125.844 5.078 1.031 5.828.578 2.594 1.188 3.891 1.875 3.891.531 0 1.328-.828 2.406-2.516 1.062-1.687 1.625-2.969 1.703-3.844.141-1.453-.422-2.172-1.703-2.172-.609 0-1.234.141-1.891.406 1.25-4.094 3.641-6.078 7.172-5.969 2.609.078 3.844 1.781 3.687 5.094z"></path> </svg>, vk: <svg xmlns="http://www.w3.org/2000/svg" width="31" height="28" viewBox="0 0 31 28" > <path d="M29.953 8.125c.234.641-.5 2.141-2.344 4.594-3.031 4.031-3.359 3.656-.859 5.984 2.406 2.234 2.906 3.313 2.984 3.453 0 0 1 1.75-1.109 1.766l-4 .063c-.859.172-2-.609-2-.609-1.5-1.031-2.906-3.703-4-3.359 0 0-1.125.359-1.094 2.766.016.516-.234.797-.234.797s-.281.297-.828.344h-1.797c-3.953.25-7.438-3.391-7.438-3.391S3.421 16.595.078 8.736c-.219-.516.016-.766.016-.766s.234-.297.891-.297l4.281-.031c.406.063.688.281.688.281s.25.172.375.5c.703 1.75 1.609 3.344 1.609 3.344 1.563 3.219 2.625 3.766 3.234 3.437 0 0 .797-.484.625-4.375-.063-1.406-.453-2.047-.453-2.047-.359-.484-1.031-.625-1.328-.672-.234-.031.156-.594.672-.844.766-.375 2.125-.391 3.734-.375 1.266.016 1.625.094 2.109.203 1.484.359.984 1.734.984 5.047 0 1.062-.203 2.547.562 3.031.328.219 1.141.031 3.141-3.375 0 0 .938-1.625 1.672-3.516.125-.344.391-.484.391-.484s.25-.141.594-.094l4.5-.031c1.359-.172 1.578.453 1.578.453z"></path> </svg>, whatsapp: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M15.391 15.219c.266 0 2.812 1.328 2.922 1.516.031.078.031.172.031.234 0 .391-.125.828-.266 1.188-.359.875-1.813 1.437-2.703 1.437-.75 0-2.297-.656-2.969-.969-2.234-1.016-3.625-2.75-4.969-4.734-.594-.875-1.125-1.953-1.109-3.031v-.125c.031-1.031.406-1.766 1.156-2.469.234-.219.484-.344.812-.344.187 0 .375.047.578.047.422 0 .5.125.656.531.109.266.906 2.391.906 2.547 0 .594-1.078 1.266-1.078 1.625 0 .078.031.156.078.234.344.734 1 1.578 1.594 2.141.719.688 1.484 1.141 2.359 1.578a.681.681 0 00.344.109c.469 0 1.25-1.516 1.656-1.516zM12.219 23.5c5.406 0 9.812-4.406 9.812-9.812s-4.406-9.812-9.812-9.812-9.812 4.406-9.812 9.812c0 2.063.656 4.078 1.875 5.75l-1.234 3.641 3.781-1.203a9.875 9.875 0 005.391 1.625zm0-21.594C18.719 1.906 24 7.187 24 13.687s-5.281 11.781-11.781 11.781c-1.984 0-3.953-.5-5.703-1.469L0 26.093l2.125-6.328a11.728 11.728 0 01-1.687-6.078c0-6.5 5.281-11.781 11.781-11.781z"></path> </svg>, wordpress: <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" > <path d="M1.984 14c0-1.734.375-3.391 1.047-4.891l5.734 15.703c-4.016-1.953-6.781-6.062-6.781-10.813zm20.125-.609c0 1.031-.422 2.219-.922 3.891l-1.188 4-4.344-12.906s.719-.047 1.375-.125c.641-.078.562-1.031-.078-.984-1.953.141-3.203.156-3.203.156s-1.172-.016-3.156-.156c-.656-.047-.734.938-.078.984.609.063 1.25.125 1.25.125l1.875 5.125-2.625 7.875-4.375-13s.719-.047 1.375-.125c.641-.078.562-1.031-.078-.984-1.937.141-3.203.156-3.203.156-.219 0-.484-.016-.766-.016a11.966 11.966 0 0110.031-5.422c3.125 0 5.969 1.203 8.109 3.156h-.156c-1.172 0-2.016 1.016-2.016 2.125 0 .984.578 1.813 1.188 2.812.469.797.984 1.828.984 3.313zm-7.906 1.656l3.703 10.109a.59.59 0 00.078.172c-1.25.438-2.578.688-3.984.688-1.172 0-2.312-.172-3.391-.5zm10.328-6.813A11.98 11.98 0 0126.015 14c0 4.438-2.406 8.297-5.984 10.375l3.672-10.594c.609-1.75.922-3.094.922-4.312 0-.438-.031-.844-.094-1.234zM14 0c7.719 0 14 6.281 14 14s-6.281 14-14 14S0 21.719 0 14 6.281 0 14 0zm0 27.359c7.359 0 13.359-6 13.359-13.359S21.359.641 14 .641.641 6.641.641 14s6 13.359 13.359 13.359z"></path> </svg>, xing: <svg xmlns="http://www.w3.org/2000/svg" width="22" height="28" viewBox="0 0 22 28" > <path d="M9.328 10.422s-.156.266-4.016 7.125c-.203.344-.469.719-1.016.719H.562c-.219 0-.391-.109-.484-.266s-.109-.359 0-.562l3.953-7c.016 0 .016 0 0-.016L1.515 6.063c-.109-.203-.125-.422-.016-.578.094-.156.281-.234.5-.234h3.734c.562 0 .844.375 1.031.703a773.586 773.586 0 002.562 4.469zM21.922.391c.109.156.109.375 0 .578l-8.25 14.594c-.016 0-.016.016 0 .016l5.25 9.609c.109.203.109.422.016.578-.109.156-.281.234-.5.234h-3.734c-.562 0-.859-.375-1.031-.703-5.297-9.703-5.297-9.719-5.297-9.719s.266-.469 8.297-14.719c.203-.359.438-.703 1-.703h3.766c.219 0 .391.078.484.234z"></path> </svg>, youtube: <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" > <path d="M11.109 17.625l7.562-3.906-7.562-3.953v7.859zM14 4.156c5.891 0 9.797.281 9.797.281.547.063 1.75.063 2.812 1.188 0 0 .859.844 1.109 2.781.297 2.266.281 4.531.281 4.531v2.125s.016 2.266-.281 4.531c-.25 1.922-1.109 2.781-1.109 2.781-1.062 1.109-2.266 1.109-2.812 1.172 0 0-3.906.297-9.797.297-7.281-.063-9.516-.281-9.516-.281-.625-.109-2.031-.078-3.094-1.188 0 0-.859-.859-1.109-2.781C-.016 17.327 0 15.062 0 15.062v-2.125s-.016-2.266.281-4.531C.531 6.469 1.39 5.625 1.39 5.625 2.452 4.5 3.656 4.5 4.202 4.437c0 0 3.906-.281 9.797-.281z"></path> </svg>, youtubeAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M21.563 6.637c.287 1.529.448 3.295.437 5.125a27.145 27.145 0 01-.437 5.021c-.057.208-.15.403-.272.575a1.743 1.743 0 01-.949.675c-.604.161-2.156.275-3.877.341-2.23.086-4.465.086-4.465.086s-2.235 0-4.465-.085c-1.721-.066-3.273-.179-3.866-.338a1.854 1.854 0 01-.566-.268 1.763 1.763 0 01-.67-.923c-.285-1.526-.444-3.286-.433-5.11-.021-1.54.121-3.292.437-5.06.057-.208.15-.403.272-.575.227-.321.558-.565.949-.675.604-.161 2.156-.275 3.877-.341C9.765 5 12 5 12 5s2.235 0 4.466.078c1.719.06 3.282.163 3.856.303.219.063.421.165.598.299.307.232.538.561.643.958zm1.947-.46a3.762 3.762 0 00-1.383-2.093 3.838 3.838 0 00-1.249-.625c-.898-.22-2.696-.323-4.342-.38C14.269 3 12 3 12 3s-2.272 0-4.541.087c-1.642.063-3.45.175-4.317.407a3.77 3.77 0 00-2.064 1.45 3.863 3.863 0 00-.602 1.339A29.155 29.155 0 000 11.764a29.2 29.2 0 00.477 5.502.878.878 0 00.021.088 3.76 3.76 0 001.451 2.048c.357.252.757.443 1.182.561.879.235 2.686.347 4.328.41 2.269.087 4.541.087 4.541.087s2.272 0 4.541-.087c1.642-.063 3.449-.175 4.317-.407a3.767 3.767 0 002.063-1.45c.27-.381.47-.811.587-1.267.006-.025.012-.05.015-.071.34-1.884.496-3.765.476-5.44a29.214 29.214 0 00-.477-5.504l-.012-.057zm-12.76 7.124v-3.102l2.727 1.551zm-.506 2.588l5.75-3.27a1 1 0 000-1.739l-5.75-3.27a1 1 0 00-1.495.869v6.54a1 1 0 001.494.869z"></path> </svg>, email: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" > <path d="M15 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM5.831 9.773l-3 2.182a.559.559 0 01-.785-.124.563.563 0 01.124-.786l3-2.182a.563.563 0 01.662.91zm8.124 2.058a.563.563 0 01-.785.124l-3-2.182a.563.563 0 01.662-.91l3 2.182a.563.563 0 01.124.786zm-.124-6.876l-5.5 4a.562.562 0 01-.662 0l-5.5-4a.563.563 0 01.662-.91L8 7.804l5.169-3.759a.563.563 0 01.662.91z"></path> </svg>, emailAlt: <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" > <path d="M28 11.094V23.5c0 1.375-1.125 2.5-2.5 2.5h-23A2.507 2.507 0 010 23.5V11.094c.469.516 1 .969 1.578 1.359 2.594 1.766 5.219 3.531 7.766 5.391 1.313.969 2.938 2.156 4.641 2.156h.031c1.703 0 3.328-1.188 4.641-2.156 2.547-1.844 5.172-3.625 7.781-5.391a9.278 9.278 0 001.563-1.359zM28 6.5c0 1.75-1.297 3.328-2.672 4.281-2.438 1.687-4.891 3.375-7.313 5.078-1.016.703-2.734 2.141-4 2.141h-.031c-1.266 0-2.984-1.437-4-2.141-2.422-1.703-4.875-3.391-7.297-5.078-1.109-.75-2.688-2.516-2.688-3.938 0-1.531.828-2.844 2.5-2.844h23c1.359 0 2.5 1.125 2.5 2.5z"></path> </svg>, emailAlt2: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M3 7.921l8.427 5.899c.34.235.795.246 1.147 0L21 7.921V18c0 .272-.11.521-.295.705S20.272 19 20 19H4c-.272 0-.521-.11-.705-.295S3 18.272 3 18zM1 5.983V18c0 .828.34 1.579.88 2.12S3.172 21 4 21h16c.828 0 1.579-.34 2.12-.88S23 18.828 23 18V6.012v-.03a2.995 2.995 0 00-.88-2.102A2.998 2.998 0 0020 3H4c-.828 0-1.579.34-2.12.88A2.995 2.995 0 001 5.983zm19.894-.429L12 11.779 3.106 5.554a.999.999 0 01.188-.259A.994.994 0 014 5h16a1.016 1.016 0 01.893.554z"></path> </svg>, phone:<svg xmlns="http://www.w3.org/2000/svg" width="12" height="28" viewBox="0 0 12 28" > <path d="M7.25 22c0-.688-.562-1.25-1.25-1.25s-1.25.562-1.25 1.25.562 1.25 1.25 1.25 1.25-.562 1.25-1.25zm3.25-2.5v-11c0-.266-.234-.5-.5-.5H2c-.266 0-.5.234-.5.5v11c0 .266.234.5.5.5h8c.266 0 .5-.234.5-.5zm-3-13.25A.246.246 0 007.25 6h-2.5c-.141 0-.25.109-.25.25s.109.25.25.25h2.5c.141 0 .25-.109.25-.25zM12 6v16c0 1.094-.906 2-2 2H2c-1.094 0-2-.906-2-2V6c0-1.094.906-2 2-2h8c1.094 0 2 .906 2 2z"></path> </svg>, phoneAlt: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M7 1a2.997 2.997 0 00-3 3v16a2.997 2.997 0 003 3h10a2.997 2.997 0 003-3V4a2.997 2.997 0 00-3-3zm0 2h10c.276 0 .525.111.707.293S18 3.724 18 4v16c0 .276-.111.525-.293.707S17.276 21 17 21H7c-.276 0-.525-.111-.707-.293S6 20.276 6 20V4c0-.276.111-.525.293-.707S6.724 3 7 3zm5 16a1 1 0 100-2 1 1 0 000 2z"></path> </svg>, phoneAlt2: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M20 18.641c0-.078 0-.172-.031-.25-.094-.281-2.375-1.437-2.812-1.687-.297-.172-.656-.516-1.016-.516-.688 0-1.703 2.047-2.312 2.047-.313 0-.703-.281-.984-.438-2.063-1.156-3.484-2.578-4.641-4.641-.156-.281-.438-.672-.438-.984 0-.609 2.047-1.625 2.047-2.312 0-.359-.344-.719-.516-1.016-.25-.438-1.406-2.719-1.687-2.812-.078-.031-.172-.031-.25-.031-.406 0-1.203.187-1.578.344-1.031.469-1.781 2.438-1.781 3.516 0 1.047.422 2 .781 2.969 1.25 3.422 4.969 7.141 8.391 8.391.969.359 1.922.781 2.969.781 1.078 0 3.047-.75 3.516-1.781.156-.375.344-1.172.344-1.578zM24 6.5v15c0 2.484-2.016 4.5-4.5 4.5h-15A4.502 4.502 0 010 21.5v-15C0 4.016 2.016 2 4.5 2h15C21.984 2 24 4.016 24 6.5z"></path> </svg>, google_reviews: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M12 12.281h11.328c.109.609.187 1.203.187 2C23.515 21.125 18.921 26 11.999 26c-6.641 0-12-5.359-12-12s5.359-12 12-12c3.234 0 5.953 1.188 8.047 3.141L16.78 8.282c-.891-.859-2.453-1.859-4.781-1.859-4.094 0-7.438 3.391-7.438 7.578s3.344 7.578 7.438 7.578c4.75 0 6.531-3.406 6.813-5.172h-6.813v-4.125z"></path> </svg>, yelp: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M12.078 20.609v1.984c-.016 4.406-.016 4.562-.094 4.766-.125.328-.406.547-.797.625-1.125.187-4.641-1.109-5.375-1.984a1.107 1.107 0 01-.266-.562.882.882 0 01.063-.406c.078-.219.219-.391 3.359-4.109 0 0 .016 0 .938-1.094.313-.391.875-.516 1.391-.328.516.203.797.641.781 1.109zM9.75 16.688c-.031.547-.344.953-.812 1.094l-1.875.609c-4.203 1.344-4.344 1.375-4.562 1.375-.344-.016-.656-.219-.844-.562-.125-.25-.219-.672-.266-1.172-.172-1.531.031-3.828.484-4.547.219-.344.531-.516.875-.5.234 0 .422.094 4.953 1.937 0 0-.016.016 1.313.531.469.187.766.672.734 1.234zm12.906 4.64c-.156 1.125-2.484 4.078-3.547 4.5-.359.141-.719.109-.984-.109-.187-.141-.375-.422-2.875-4.484l-.734-1.203c-.281-.438-.234-1 .125-1.437.344-.422.844-.562 1.297-.406 0 0 .016.016 1.859.625 4.203 1.375 4.344 1.422 4.516 1.563.281.219.406.547.344.953zm-10.5-9.875c.078 1.625-.609 1.828-.844 1.906-.219.063-.906.266-1.781-1.109-5.75-9.078-5.906-9.344-5.906-9.344-.078-.328.016-.688.297-.969.859-.891 5.531-2.203 6.75-1.891.391.094.672.344.766.703.063.391.625 8.813.719 10.703zM22.5 13.141c.031.391-.109.719-.406.922-.187.125-.375.187-5.141 1.344-.766.172-1.188.281-1.422.359l.016-.031c-.469.125-1-.094-1.297-.562s-.281-.984 0-1.359c0 0 .016-.016 1.172-1.594 2.562-3.5 2.688-3.672 2.875-3.797.297-.203.656-.203 1.016-.031 1.016.484 3.063 3.531 3.187 4.703v.047z"></path> </svg>, trip_advisor: <svg xmlns="http://www.w3.org/2000/svg" width="36" height="28" viewBox="0 0 36 28" > <path d="M10.172 15.578c0 .812-.656 1.469-1.453 1.469a1.467 1.467 0 01-1.469-1.469 1.46 1.46 0 012.922 0zm18.031-.015c0 .812-.656 1.469-1.469 1.469s-1.469-.656-1.469-1.469.656-1.453 1.469-1.453 1.469.641 1.469 1.453zm-16.25.015a3.028 3.028 0 00-3.016-3.016 3.018 3.018 0 00-3.016 3.016 3.008 3.008 0 003.016 3.016 3.018 3.018 0 003.016-3.016zm18.016-.015a3.018 3.018 0 00-3.016-3.016 3.028 3.028 0 00-3.016 3.016 3.018 3.018 0 003.016 3.016 3.008 3.008 0 003.016-3.016zm-16.688.015c0 2.406-1.937 4.359-4.344 4.359s-4.359-1.953-4.359-4.359c0-2.391 1.953-4.344 4.359-4.344s4.344 1.953 4.344 4.344zm18.032-.015a4.348 4.348 0 01-4.359 4.344 4.344 4.344 0 010-8.688 4.347 4.347 0 014.359 4.344zm-15.063.046A7.222 7.222 0 009.031 8.39c-3.969 0-7.203 3.234-7.203 7.219s3.234 7.219 7.203 7.219a7.222 7.222 0 007.219-7.219zm10.438-8.953c-2.578-1.125-5.484-1.734-8.687-1.734s-6.391.609-8.953 1.719c4.953.016 8.953 4.016 8.953 8.969a8.95 8.95 0 018.687-8.953zm7.484 8.953c0-3.984-3.219-7.219-7.203-7.219s-7.219 3.234-7.219 7.219 3.234 7.219 7.219 7.219 7.203-3.234 7.203-7.219zm-4.156-8.843H36c-.938 1.094-1.625 2.562-1.797 3.578a8.921 8.921 0 011.719 5.266c0 4.953-4.016 8.953-8.953 8.953a8.927 8.927 0 01-6.953-3.297s-.734.875-2.016 2.797c-.219-.453-1.328-2.031-2-2.812a8.927 8.927 0 01-6.969 3.313c-4.937 0-8.953-4-8.953-8.953 0-1.969.641-3.781 1.719-5.266C1.625 9.329.938 7.861 0 6.767h5.703C8.766 4.72 13.219 3.439 18 3.439s8.953 1.281 12.016 3.328z"></path> </svg>, imdb: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="28" viewBox="0 0 24 28" > <path d="M14.406 12.453v2.844c0 .562.109 1.078-.594 1.062v-4.828c.688 0 .594.359.594.922zm4.938 1.5v1.891c0 .313.094.828-.359.828a.236.236 0 01-.219-.141c-.125-.297-.063-2.547-.063-2.578 0-.219-.063-.734.281-.734.422 0 .359.422.359.734zM2.812 17.641h1.906v-7.375H2.812v7.375zm6.782 0h1.656v-7.375H8.766l-.438 3.453a123.605 123.605 0 00-.5-3.453H5.359v7.375h1.672v-4.875l.703 4.875h1.188l.672-4.984v4.984zm6.64-4.766c0-.469.016-.969-.078-1.406-.25-1.297-1.813-1.203-2.828-1.203h-1.422v7.375c4.969 0 4.328.344 4.328-4.766zm4.953 3.078v-2.078c0-1-.047-1.734-1.281-1.734-.516 0-.859.156-1.203.531v-2.406h-1.828v7.375h1.719l.109-.469c.328.391.688.562 1.203.562 1.141 0 1.281-.875 1.281-1.781zM24 4.5v19c0 1.375-1.125 2.5-2.5 2.5h-19A2.507 2.507 0 010 23.5v-19C0 3.125 1.125 2 2.5 2h19C22.875 2 24 3.125 24 4.5z"></path> </svg>, telegram: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" > <path d="M26.07 3.996a2.987 2.987 0 00-.952.23l.019-.007h-.004c-.285.113-1.64.683-3.7 1.547l-7.382 3.109c-5.297 2.23-10.504 4.426-10.504 4.426l.062-.024s-.359.118-.734.375c-.234.15-.429.339-.582.56l-.004.007c-.184.27-.332.683-.277 1.11.09.722.558 1.155.894 1.394.34.242.664.355.664.355h.008l4.883 1.645c.219.703 1.488 4.875 1.793 5.836.18.574.355.933.574 1.207.106.14.23.257.379.351.071.042.152.078.238.104l.008.002-.05-.012c.015.004.027.016.038.02.04.011.067.015.118.023.773.234 1.394-.246 1.394-.246l.035-.028 2.883-2.625 4.832 3.707.11.047c1.007.442 2.027.196 2.566-.238.543-.437.754-.996.754-.996l.035-.09 3.734-19.129c.106-.472.133-.914.016-1.343a1.818 1.818 0 00-.774-1.043l-.007-.004a1.852 1.852 0 00-1.071-.269h.005zm-.101 2.05c-.004.063.008.056-.02.177v.011l-3.699 18.93c-.016.027-.043.086-.117.145-.078.062-.14.101-.465-.028l-5.91-4.531-3.57 3.254.75-4.79 9.656-9c.398-.37.265-.448.265-.448.028-.454-.601-.133-.601-.133l-12.176 7.543-.004-.02-5.851-1.972a.237.237 0 00.032-.013l-.002.001.032-.016.031-.011s5.211-2.196 10.508-4.426c2.652-1.117 5.324-2.242 7.379-3.11a807.312 807.312 0 013.66-1.53c.082-.032.043-.032.102-.032z"></path> </svg>, telegramAlt: <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" > <path d="M18.578 20.422l2.297-10.828c.203-.953-.344-1.328-.969-1.094l-13.5 5.203c-.922.359-.906.875-.156 1.109l3.453 1.078 8.016-5.047c.375-.25.719-.109.438.141l-6.484 5.859-.25 3.563c.359 0 .516-.156.703-.344l1.687-1.625 3.5 2.578c.641.359 1.094.172 1.266-.594zM28 14c0 7.734-6.266 14-14 14S0 21.734 0 14 6.266 0 14 0s14 6.266 14 14z"></path> </svg>, soundcloud: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" > <path d="M27.874 16.069c-.565 0-1.105.11-1.596.308C25.95 12.803 22.831 10 19.028 10a7.61 7.61 0 00-2.635.474c-.311.116-.393.235-.393.466v12.585c0 .243.195.445.441.469l11.434.007c2.278 0 4.125-1.776 4.125-3.965s-1.848-3.966-4.126-3.966zM12.5 24h1l.5-7.007L13.5 10h-1l-.5 6.993zm-3 0h-1L8 18.914 8.5 14h1l.5 5zm-5 0h1l.5-4-.5-4h-1L4 20zm-4-2h1l.5-2-.5-2h-1L0 20z"></path> </svg>, soundcloudAlt: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" > <path d="M29 0H3C1.35 0 0 1.35 0 3v26c0 1.65 1.35 3 3 3h26c1.65 0 3-1.35 3-3V3c0-1.65-1.35-3-3-3zM5.5 22h-1L4 19l.5-3h1l.5 3-.5 3zm4 0h-1L8 18l.5-4h1l.5 4-.5 4zm4 0h-1l-.5-6 .5-6h1l.5 6-.5 6zm12.288 0l-9.419-.006a.417.417 0 01-.369-.4V10.807c0-.2.069-.3.325-.4a6.003 6.003 0 018.15 5.063 3.404 3.404 0 014.713 3.138 3.398 3.398 0 01-3.4 3.394z"></path> </svg>, tiktok: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" > <path d="M16.707.027C18.454 0 20.187.014 21.92 0c.107 2.04.84 4.12 2.333 5.56 1.493 1.48 3.6 2.16 5.653 2.387v5.373c-1.92-.067-3.853-.467-5.6-1.293-.76-.347-1.467-.787-2.16-1.24-.013 3.893.013 7.787-.027 11.667-.107 1.867-.72 3.72-1.8 5.253-1.747 2.56-4.773 4.227-7.88 4.28-1.907.107-3.813-.413-5.44-1.373-2.693-1.587-4.587-4.493-4.867-7.613a24.42 24.42 0 01-.013-1.987 10.004 10.004 0 013.44-6.613c2.213-1.92 5.307-2.84 8.2-2.293.027 1.973-.053 3.947-.053 5.92-1.32-.427-2.867-.307-4.027.493a4.631 4.631 0 00-1.813 2.333c-.28.68-.2 1.427-.187 2.147.32 2.187 2.427 4.027 4.667 3.827 1.493-.013 2.92-.88 3.693-2.147.253-.44.533-.893.547-1.413.133-2.387.08-4.76.093-7.147.013-5.373-.013-10.733.027-16.093z"></path> </svg>, discord: <svg xmlns="http://www.w3.org/2000/svg" width="33" height="32" viewBox="0 0 33 32" > <path d="M13.92 13.853c-.76 0-1.36.667-1.36 1.48s.613 1.48 1.36 1.48c.76 0 1.36-.667 1.36-1.48.013-.813-.6-1.48-1.36-1.48zm4.867 0c-.76 0-1.36.667-1.36 1.48s.613 1.48 1.36 1.48c.76 0 1.36-.667 1.36-1.48s-.6-1.48-1.36-1.48z"></path> <path d="M25.267 2.667H7.4a2.74 2.74 0 00-2.733 2.747v18.027A2.74 2.74 0 007.4 26.188h15.12l-.707-2.467 1.707 1.587 1.613 1.493L28 29.334V5.414a2.74 2.74 0 00-2.733-2.747zM20.12 20.08s-.48-.573-.88-1.08c1.747-.493 2.413-1.587 2.413-1.587a7.693 7.693 0 01-1.533.787 8.751 8.751 0 01-1.933.573 9.353 9.353 0 01-3.453-.013 11.26 11.26 0 01-1.96-.573 7.858 7.858 0 01-.973-.453c-.04-.027-.08-.04-.12-.067-.027-.013-.04-.027-.053-.04-.24-.133-.373-.227-.373-.227s.64 1.067 2.333 1.573c-.4.507-.893 1.107-.893 1.107-2.947-.093-4.067-2.027-4.067-2.027 0-4.293 1.92-7.773 1.92-7.773 1.92-1.44 3.747-1.4 3.747-1.4l.133.16c-2.4.693-3.507 1.747-3.507 1.747s.293-.16.787-.387c1.427-.627 2.56-.8 3.027-.84.08-.013.147-.027.227-.027a11.295 11.295 0 012.693-.027c1.267.147 2.627.52 4.013 1.28 0 0-1.053-1-3.32-1.693l.187-.213s1.827-.04 3.747 1.4c0 0 1.92 3.48 1.92 7.773 0 0-1.133 1.933-4.08 2.027z"></path> </svg>, discordAlt: <svg xmlns="http://www.w3.org/2000/svg" width="800" height="800" viewBox="0 0 48 48" > <path fill="none" stroke="#000" strokeLinecap="round" strokeLinejoin="round" d="M17.54 34.22A47 47 0 0 1 14.68 38C7.3 37.79 4.5 33 4.5 33a44.8 44.8 0 0 1 4.81-19.52A16.47 16.47 0 0 1 18.69 10l1 2.31" ></path> <path fill="none" stroke="#000" strokeLinecap="round" strokeLinejoin="round" d="M17.85 22.67a3.48 3.48 0 0 0-3.37 3.9 3.38 3.38 0 0 0 3.31 3.22 3.53 3.53 0 0 0 3.43-3.9 3.45 3.45 0 0 0-3.37-3.22M12.2 14.37a28.2 28.2 0 0 1 8.16-2.18A23 23 0 0 1 24 12a23 23 0 0 1 3.64.21 28.2 28.2 0 0 1 8.16 2.18m-7.47-2.09 1-2.31a16.47 16.47 0 0 1 9.38 3.51A44.8 44.8 0 0 1 43.5 33s-2.8 4.79-10.18 5a47 47 0 0 1-2.86-3.81m6.46-2.9a29.6 29.6 0 0 1-8.64 3.49 21.3 21.3 0 0 1-4.28.4h0a21.3 21.3 0 0 1-4.28-.4 29.6 29.6 0 0 1-8.64-3.49" ></path> <path fill="none" stroke="#000" strokeLinecap="round" strokeLinejoin="round" d="M30.15 22.67a3.48 3.48 0 0 1 3.37 3.9 3.38 3.38 0 0 1-3.31 3.22 3.53 3.53 0 0 1-3.43-3.9 3.45 3.45 0 0 1 3.37-3.22" ></path> </svg>, discordAlt2: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <path fill="#000" strokeMiterlimit="10" strokeWidth="0" d="M222.067 60.411C191.233 37.287 161.9 37.928 161.9 37.928l-2.999 3.426c36.401 11.133 53.315 27.192 53.315 27.192-22.27-12.204-44.109-18.2-64.45-20.555-15.416-1.714-30.191-1.284-43.252.427-1.284 0-2.355.213-3.639.427-7.494.644-25.695 3.425-48.605 13.49-7.921 3.64-12.633 6.21-12.633 6.21S57.41 51.63 95.949 40.498l-2.141-2.569s-29.334-.643-60.168 22.483c0 0-30.834 55.885-30.834 124.831 0 0 17.987 31.048 65.307 32.546 0 0 7.922-9.636 14.345-17.77-27.192-8.138-37.471-25.265-37.471-25.265s2.141 1.497 5.996 3.639c.214.213.428.427.857.643.644.427 1.285.644 1.928 1.07 5.353 2.999 10.706 5.354 15.632 7.281 8.779 3.426 19.271 6.851 31.475 9.206 16.06 2.998 34.9 4.069 55.455.214 10.063-1.715 20.342-4.71 31.048-9.209 7.494-2.785 15.846-6.85 24.624-12.634 0 0-10.706 17.557-38.755 25.482 6.423 8.137 14.131 17.343 14.131 17.343 47.323-1.5 65.524-32.546 65.524-32.546 0-68.946-30.835-124.831-30.835-124.831M87.817 165.328c-11.99 0-21.84-10.706-21.84-23.767s9.636-23.767 21.84-23.767 22.053 10.706 21.84 23.767c0 13.06-9.636 23.767-21.84 23.767m78.152 0c-11.99 0-21.84-10.706-21.84-23.767s9.636-23.767 21.84-23.767 21.839 10.706 21.839 23.767-9.633 23.767-21.84 23.767" ></path> </svg>, apple_podcasts: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path d="M5.34 0A5.328 5.328 0 000 5.34v13.32A5.328 5.328 0 005.34 24h13.32A5.328 5.328 0 0024 18.66V5.34A5.328 5.328 0 0018.66 0zm6.525 2.568c2.336 0 4.448.902 6.056 2.587 1.224 1.272 1.912 2.619 2.264 4.392.12.59.12 2.2.007 2.864a8.506 8.506 0 01-3.24 5.296c-.608.46-2.096 1.261-2.336 1.261-.088 0-.096-.091-.056-.46.072-.592.144-.715.48-.856.536-.224 1.448-.874 2.008-1.435a7.644 7.644 0 002.008-3.536c.208-.824.184-2.656-.048-3.504-.728-2.696-2.928-4.792-5.624-5.352-.784-.16-2.208-.16-3 0-2.728.56-4.984 2.76-5.672 5.528-.184.752-.184 2.584 0 3.336.456 1.832 1.64 3.512 3.192 4.512.304.2.672.408.824.472.336.144.408.264.472.856.04.36.03.464-.056.464-.056 0-.464-.176-.896-.384l-.04-.03c-2.472-1.216-4.056-3.274-4.632-6.012-.144-.706-.168-2.392-.03-3.04.36-1.74 1.048-3.1 2.192-4.304 1.648-1.737 3.768-2.656 6.128-2.656zm.134 2.81c.409.004.803.04 1.106.106 2.784.62 4.76 3.408 4.376 6.174-.152 1.114-.536 2.03-1.216 2.88-.336.43-1.152 1.15-1.296 1.15-.023 0-.048-.272-.048-.603v-.605l.416-.496c1.568-1.878 1.456-4.502-.256-6.224-.664-.67-1.432-1.064-2.424-1.246-.64-.118-.776-.118-1.448-.008-1.02.167-1.81.562-2.512 1.256-1.72 1.704-1.832 4.342-.264 6.222l.413.496v.608c0 .336-.027.608-.06.608-.03 0-.264-.16-.512-.36l-.034-.011c-.832-.664-1.568-1.842-1.872-2.997-.184-.698-.184-2.024.008-2.72.504-1.878 1.888-3.335 3.808-4.019.41-.145 1.133-.22 1.814-.211zm-.13 2.99c.31 0 .62.06.844.178a2.17 2.17 0 011.04 1.259c.464 1.578-1.208 2.96-2.72 2.254h-.015c-.712-.331-1.096-.956-1.104-1.77 0-.733.408-1.371 1.112-1.745.224-.117.534-.176.844-.176zm-.011 4.728c.988-.004 1.706.349 1.97.97.198.464.124 1.932-.218 4.302-.232 1.656-.36 2.074-.68 2.356-.44.39-1.064.498-1.656.288h-.003c-.716-.257-.87-.605-1.164-2.644-.341-2.37-.416-3.838-.218-4.302.262-.616.974-.966 1.97-.97z"></path> </svg>, spotify: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path d="M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.66 0 12 0zm5.521 17.34c-.24.359-.66.48-1.021.24-2.82-1.74-6.36-2.101-10.561-1.141-.418.122-.779-.179-.899-.539-.12-.421.18-.78.54-.9 4.56-1.021 8.52-.6 11.64 1.32.42.18.479.659.301 1.02zm1.44-3.3c-.301.42-.841.6-1.262.3-3.239-1.98-8.159-2.58-11.939-1.38-.479.12-1.02-.12-1.14-.6-.12-.48.12-1.021.6-1.141C9.6 9.9 15 10.561 18.72 12.84c.361.181.54.78.241 1.2zm.12-3.36C15.24 8.4 8.82 8.16 5.16 9.301c-.6.179-1.2-.181-1.38-.721-.18-.601.18-1.2.72-1.381 4.26-1.26 11.28-1.02 15.721 1.621.539.3.719 1.02.419 1.56-.299.421-1.02.599-1.559.3z"></path> </svg>, '500px': <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path d="M7.433 9.01A2.994 2.994 0 004.443 12a2.993 2.993 0 002.99 2.99 2.994 2.994 0 002.99-2.99 2.993 2.993 0 00-2.99-2.99m0 5.343A2.357 2.357 0 015.079 12a2.357 2.357 0 012.354-2.353A2.356 2.356 0 019.786 12a2.356 2.356 0 01-2.353 2.353m6.471-5.343a2.994 2.994 0 00-2.99 2.99 2.993 2.993 0 002.99 2.99 2.994 2.994 0 002.99-2.99 2.994 2.994 0 00-2.99-2.99m0 5.343A2.355 2.355 0 0111.552 12a2.355 2.355 0 012.352-2.353A2.356 2.356 0 0116.257 12a2.356 2.356 0 01-2.353 2.353m-11.61-3.55a2.1 2.1 0 00-1.597.423V9.641h2.687c.093 0 .16-.017.16-.292 0-.269-.108-.28-.18-.28H.39c-.174 0-.265.14-.265.294v2.602c0 .136.087.183.247.214.141.028.223.012.285-.057l.006-.01c.283-.408.9-.804 1.486-.732.699.086 1.262.644 1.34 1.327a1.512 1.512 0 01-1.5 1.685c-.636 0-1.19-.408-1.422-1.001-.035-.088-.092-.152-.343-.062-.229.083-.243.18-.212.268a2.11 2.11 0 001.976 1.386 2.102 2.102 0 00.305-4.18M18.938 9.04c-.805.062-1.434.77-1.434 1.61v2.66c0 .155.117.187.293.187s.293-.031.293-.186v-2.668c0-.524.382-.974.868-1.024a.972.972 0 01.758.247.984.984 0 01.322.73c0 .08-.039.34-.217.58-.135.182-.39.399-.844.399h-.009c-.115 0-.215.005-.234.28-.013.186-.012.269.148.29.286.04.576-.016.865-.166.492-.256.822-.741.861-1.267a1.562 1.562 0 00-.452-1.222 1.56 1.56 0 00-1.218-.45m3.919 1.56l1.085-1.086c.04-.039.132-.132-.055-.324-.08-.083-.153-.125-.217-.125h-.001a.163.163 0 00-.121.058L22.46 10.21l-1.086-1.093c-.088-.088-.19-.067-.322.065-.135.136-.157.24-.069.328l1.086 1.092-1.064 1.064-.007.007c-.026.025-.065.063-.065.125-.001.063.042.139.126.223.07.071.138.107.2.107.069 0 .114-.045.139-.07l1.068-1.067 1.09 1.092a.162.162 0 00.115.045h.002c.069 0 .142-.04.217-.118.122-.129.143-.236.06-.319z"></path> </svg>, flickr: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path d="M0 12a5.565 5.565 0 005.565 5.564c3.075 0 5.569-2.49 5.569-5.564S8.641 6.436 5.565 6.436A5.566 5.566 0 000 12zm12.866 0a5.565 5.565 0 005.567 5.564C21.496 17.564 24 15.074 24 12s-2.492-5.564-5.564-5.564A5.567 5.567 0 0012.866 12z"></path> </svg>, flickrAlt: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="#000" strokeMiterlimit="10" strokeWidth="0"> <path d="M61.234 73.646c29.89 0 54.208 24.318 54.208 54.21s-24.318 54.211-54.208 54.211-54.207-24.32-54.207-54.21 24.317-54.21 54.207-54.21m0-5.62c-33.04 0-59.827 26.787-59.827 59.83s26.787 59.83 59.827 59.83 59.83-26.788 59.83-59.83-26.787-59.83-59.83-59.83M194.479 73.646c29.89 0 54.208 24.32 54.208 54.21s-24.318 54.211-54.208 54.211-54.21-24.32-54.21-54.21 24.317-54.21 54.21-54.21m0-5.62c-33.043 0-59.83 26.787-59.83 59.83s26.787 59.83 59.83 59.83 59.828-26.788 59.828-59.83-26.788-59.83-59.828-59.83"></path> </g> </svg>, flickrAlt2: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <path fill="#000" strokeMiterlimit="10" strokeWidth="0" d="M127.857 1.407c-69.837 0-126.45 56.613-126.45 126.45s56.613 126.45 126.45 126.45 126.45-56.613 126.45-126.45-56.613-126.45-126.45-126.45m-37.01 159.69c-18.359 0-33.24-14.883-33.24-33.24s14.881-33.24 33.24-33.24 33.236 14.882 33.236 33.24c0 18.357-14.882 33.24-33.237 33.24m74.02 0c-18.358 0-33.24-14.883-33.24-33.24s14.882-33.24 33.24-33.24 33.24 14.882 33.24 33.24c0 18.357-14.882 33.24-33.24 33.24" ></path> </svg>, bandcamp: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path d="M0 18.75l7.437-13.5H24l-7.438 13.5H0z"></path> </svg>, anchor: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path d="M23.214 8.166S22.209 7.69 21.164 8c-.782.23-1.638.824-2.125 2.055-.939 2.363-.126 6.484-.444 6.484s-1.319-3.797-2.658-7.752c-1.34-3.954-2.497-8.061-4.588-7.73-1.854.293-1.279 4.976-.553 9.362.658 3.976 1.419 7.698.984 7.698-.777.001-3.326-10.988-5.939-10.57-2.613.416.753 12.525.046 12.548-.581.019-2.006-7.37-4.121-7.031-1.602.257-.175 6.006-.109 7.61.016.402.141 1.157-.461 1.157H0v1.118h1.958c.402-.02.72-.174.881-.57.544-1.342-.884-7.042-.55-7.084.23-.028.725 1.707 1.416 3.67.69 1.963 1.383 3.995 2.696 3.995 2.83 0-.057-11.121.504-11.121.297 0 1.106 2.26 1.995 4.738 1.089 3.028 2.416 6.387 4.018 6.387 1.912 0 1.29-4.338.698-8.495-.513-3.598-1.114-6.978-.793-6.978.721 0 3.447 15.467 6.72 15.467 1.64 0 1.658-3.233 1.658-6.72 0-2.448-.204-4.68 1.331-5.217.73-.254 1.468.198 1.468.198z"></path> </svg>, amazon: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="#000" strokeMiterlimit="10" strokeWidth="0"> <path d="M1.867 182.882q1.151-1.84 3.679-.23 57.477 33.337 125.07 33.337c30.042 0 59.698-5.594 88.976-16.784q1.15-.46 3.333-1.38t3.105-1.38q3.448-1.379 5.403 1.38 1.956 2.761-1.264 5.059c-2.76 1.992-6.283 4.29-10.577 6.898-13.182 7.818-27.895 13.87-44.142 18.164q-24.373 6.434-47.593 6.435-35.867 0-67.823-12.53-31.958-12.53-57.248-35.29-1.38-1.152-1.38-2.3-.001-.691.461-1.379"></path> <path d="M207.174 186.79q.461-.917 1.38-1.84 5.75-3.91 11.035-5.288 8.737-2.298 17.015-2.53 2.298-.23 4.37.231 10.345.92 12.414 3.448.919 1.382.919 4.14v1.61q0 8.046-4.37 18.967-4.368 10.92-12.184 17.588-1.15.918-2.068.918-.46.001-.92-.23-1.378-.69-.688-2.529 8.506-20 8.506-27.819 0-2.528-.919-3.678-2.298-2.76-12.875-2.76-3.907.001-9.197.461-5.748.69-10.577 1.38-1.378-.001-1.84-.461-.46-.46-.231-.919.002-.228.23-.688M71.07 134.218q-.001-15.864 7.817-27.13 7.816-11.266 21.381-17.015 12.414-5.289 30.578-7.587 6.21-.69 20.232-1.84v-3.909q0-14.715-3.217-19.771-4.826-6.897-15.174-6.899h-1.84q-7.589.69-13.106 4.828-5.52 4.139-7.127 11.496-.92 4.597-4.597 5.288l-26.439-3.217q-3.908-.92-3.909-4.14 0-.69.23-1.61 3.908-20.463 19.199-30.348 15.287-9.886 35.751-11.035h5.747q26.209 0 40.925 13.564a44 44 0 0 1 4.254 4.943q1.955 2.643 3.105 4.713t2.068 5.976q.92 3.907 1.38 5.404t.688 6.438q.229 4.944.23 5.861v55.638q.001 5.979 1.726 10.92c1.725 4.941 2.262 5.67 3.333 7.126a612 612 0 0 0 5.288 7.011q1.38 2.07 1.38 3.678 0 1.84-1.84 3.218-19.083 16.554-20.694 17.933c-1.84 1.38-4.06 1.532-6.668.461q-3.22-2.76-5.634-5.288-2.416-2.528-3.448-3.679c-1.032-1.15-1.8-2.262-3.332-4.481q-2.298-3.335-3.218-4.482-12.876 14.024-25.29 17.472-7.816 2.298-19.313 2.299-17.703 0-29.083-10.92-11.385-10.914-11.384-30.916m39.544-4.6q0 8.966 4.482 14.37c4.482 5.405 7.011 5.404 12.07 5.404q.69.001 1.952-.23t1.726-.23q9.657-2.53 14.943-12.415 2.528-4.367 3.794-9.54 1.265-5.174 1.38-8.39.114-3.22.115-10.577v-5.747q-13.336 0-20.232 1.84-20.23 5.743-20.23 25.515"></path> </g> </svg>, amazonAlt: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="#000" strokeMiterlimit="10" strokeWidth="0"> <path d="M9.629 205.98q1.078-1.725 3.45-.216 53.936 31.284 117.366 31.284 42.286 0 83.493-15.75 1.08-.431 3.128-1.296 2.049-.863 2.914-1.295 3.237-1.296 5.069 1.295 1.833 2.587-1.186 4.746-3.883 2.804-9.925 6.472-18.556 11.002-41.422 17.042-22.87 6.045-44.66 6.045-33.656 0-63.646-11.757-29.988-11.76-53.721-33.116-1.295-1.08-1.296-2.158.003-.65.436-1.296m192.659 3.667q.43-.863 1.295-1.725 5.395-3.668 10.355-4.963 8.199-2.156 15.967-2.374 2.156-.216 4.1.216 9.706.864 11.65 3.238.863 1.294.862 3.883v1.509q.001 7.55-4.1 17.798-4.1 10.248-11.433 16.506-1.079.863-1.942.863-.431 0-.863-.216-1.294-.648-.646-2.375 7.983-18.77 7.983-26.105.001-2.375-.863-3.45-2.156-2.589-12.083-2.588-3.667 0-8.63.432a447 447 0 0 0-9.924 1.296q-1.295 0-1.725-.433-.431-.431-.217-.863-.001-.219.214-.649M108.02 200.793c-15.791 0-29.004-4.999-39.277-14.85-10.338-9.92-15.579-23.942-15.579-41.679 0-13.971 3.538-26.155 10.512-36.207 6.924-9.98 16.492-17.604 28.435-22.665 10.487-4.465 23.497-7.705 38.662-9.624 4.322-.48 10.886-1.093 19.614-1.827-.045-13.758-1.905-18.743-3.02-20.493-2.667-3.802-7.177-5.752-13.646-5.752h-1.964c-5.013.491-9.2 2.043-12.786 4.732-3.372 2.532-5.504 6.01-6.519 10.638-1.607 8.034-7.014 10.22-10.09 10.796l-.863.16-33.616-4.124c-5.719-1.346-9.13-5.295-9.13-10.563 0-.99.135-2.03.41-3.17 3.473-18.01 12.15-31.612 25.796-40.436 13.168-8.514 28.716-13.328 46.21-14.311l.32-.011h6.987c22.606 0 40.632 6.052 53.578 17.99a60 60 0 0 1 5.892 6.808c1.717 2.327 3.12 4.46 4.165 6.342 1.2 2.158 2.206 5.01 3.08 8.725.716 3.04 1.244 5.128 1.576 6.196.357 1.166.804 3.271 1.082 9.228q.285 6.229.286 7.388v67.608c0 4.179.599 8.014 1.78 11.4 1.576 4.522 2.716 6.424 3.256 7.157q1.941 2.639 6.37 8.45l.208.292c1.77 2.656 2.63 5.151 2.63 7.627 0 3.209-1.534 6.15-4.327 8.32q-23.088 20.031-25.043 21.702l-.284.227c-3.827 2.875-8.677 3.325-13.676 1.27l-.846-.345-.694-.596c-2.737-2.346-5.176-4.64-7.25-6.811q-3.017-3.162-4.307-4.597c-1-1.11-2.4-2.979-4.395-5.862-9.52 9.245-19.102 15.25-28.552 17.874-6.739 1.976-15.174 2.993-24.984 2.993m23.211-164.464h2.493c10.307 0 18.08 3.636 23.095 10.808 3.412 5.347 4.937 13.951 4.937 27.285v9.986l-5.22.427c-11.252.922-19.471 1.67-24.42 2.22-14.035 1.78-26.028 4.74-35.557 8.799-9.942 4.212-17.858 10.498-23.54 18.683-5.63 8.115-8.483 18.116-8.483 29.727 0 14.725 3.95 25.675 12.08 33.476 8.197 7.865 18.47 11.69 31.408 11.69 8.722 0 16.078-.863 21.864-2.563 9.057-2.518 18.496-9.11 28.145-19.623l4.477-4.875 4.141 5.162c.843 1.048 2.164 2.886 4.16 5.777 2.25 3.263 3.22 4.451 3.593 4.87.82.913 2.178 2.358 4.08 4.347 1.625 1.7 3.524 3.504 5.66 5.37.994.295 1.413.115 1.658-.042q2.626-2.26 24.941-21.62l.07-.062a8 8 0 0 0-.427-.74 716 716 0 0 1-6.359-8.438c-1.658-2.248-3.24-5.572-4.841-10.16-1.602-4.59-2.411-9.684-2.411-15.14v-67.61c0-.716-.096-3.003-.276-6.861-.233-5.033-.556-6.298-.595-6.427-.405-1.318-.987-3.585-1.77-6.92-.776-3.294-1.487-4.975-1.95-5.806-.81-1.456-1.945-3.178-3.379-5.115a48 48 0 0 0-4.614-5.364c-10.613-9.779-26.048-14.817-45.71-14.817h-6.83c-15.436.888-29.068 5.095-40.521 12.499-11.128 7.194-17.942 18.046-20.83 33.172l-.07.32h.005l30.435 3.704c.213-.225.452-.703.66-1.737 1.619-7.401 5.252-13.22 10.822-17.4 5.308-3.978 11.639-6.327 18.818-6.98zm-4.212 132.056c-7.89 0-14.297-2.9-19.04-8.615-4.485-5.407-6.758-12.505-6.758-21.092 0-18.526 9.93-31.14 28.718-36.477 6.21-1.658 14.73-2.45 26.136-2.45h5.681v12.667c0 6.137-.047 10.409-.14 13.056-.112 3.026-.711 6.735-1.838 11.34-1.143 4.694-2.897 9.1-5.212 13.093-4.949 9.259-12.258 15.28-21.637 17.736l-.708.186h-.734c-.115.017-.528.09-1.082.188-1.382.25-2.461.368-3.386.368m23.371-57.195c-7.489.214-13.34.874-17.436 1.967-13.867 3.94-20.37 12.058-20.37 25.518 0 5.952 1.355 10.476 4.14 13.834 2.55 3.077 5.822 4.51 10.292 4.51.012 0 .371-.009 1.358-.186.904-.163 1.596-.27 2.172-.323 6.033-1.722 10.647-5.699 14.09-12.133a38.6 38.6 0 0 0 4.099-10.263c.927-3.79 1.439-6.84 1.517-9.053.093-2.512.135-6.649.135-12.645v-1.226z"></path> </g> </svg>, amazonAlt2: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="#000" strokeMiterlimit="10" strokeWidth="0"> <path d="M1.407 127.857c0 69.837 56.613 126.45 126.45 126.45s126.45-56.613 126.45-126.45-56.613-126.45-126.45-126.45S1.407 58.02 1.407 127.857m140.896-57.285q-3.486-4.982-10.96-4.982h-1.328q-5.48.498-9.464 3.487t-5.148 8.304q-.666 3.321-3.322 3.818l-19.094-2.324q-2.823-.663-2.824-2.99 0-.496.166-1.163 2.823-14.778 13.865-21.918c11.042-7.14 15.969-7.415 25.82-7.969h4.151q18.93 0 29.556 9.796a31.5 31.5 0 0 1 3.071 3.569q1.412 1.91 2.242 3.402.83 1.497 1.495 4.317.666 2.823.998 3.903c.332 1.08.388 2.27.497 4.65q.166 3.569.166 4.235v40.183q0 4.316 1.245 7.888 1.244 3.571 2.408 5.147t3.819 5.064q.996 1.497.997 2.656 0 1.328-1.329 2.323-13.782 11.956-14.943 12.952-1.994 1.495-4.817.331a57 57 0 0 1-4.069-3.819q-1.744-1.824-2.49-2.655c-.745-.831-1.3-1.633-2.407-3.237q-1.662-2.407-2.324-3.237-9.3 10.128-18.265 12.62-5.645 1.66-13.95 1.66-12.783 0-21.004-7.887c-8.22-7.887-8.22-12.702-8.22-22.334q.001-11.456 5.646-19.594 5.644-8.136 15.441-12.289 8.967-3.818 22.084-5.48 4.485-.497 14.612-1.328v-2.824q.003-10.624-2.321-14.275m59.443 117.56q-2.99 2.157-7.638 4.981-14.281 8.469-31.88 13.117-17.6 4.65-34.371 4.65-25.903.001-48.984-9.047-23.08-9.049-41.347-25.487-.996-.83-.997-1.66 0-.497.331-.998.831-1.329 2.656-.166c27.673 16.05 57.785 24.076 90.327 24.076q32.545 0 64.26-12.122.83-.332 2.408-.998 1.576-.665 2.242-.997 2.49-.996 3.903.997 1.415 1.994-.91 3.653m17.436-11.789q0 5.812-3.156 13.699c-3.156 7.887-5.036 9.492-8.801 12.701q-.83.665-1.495.663-.334 0-.663-.166-.995-.497-.497-1.826 6.144-14.446 6.142-20.092c0-1.216-.222-2.104-.663-2.655q-1.66-1.993-9.298-1.992-2.824 0-6.643.331-4.152.497-7.638.998-.995 0-1.329-.332-.334-.334-.166-.663.001-.167.166-.497.333-.664.998-1.33 4.151-2.823 7.969-3.818 6.311-1.661 12.288-1.827a10 10 0 0 1 3.156.166q7.472.665 8.966 2.49.665.995.664 2.99z"></path> <path d="M115.403 123.04q0 6.474 3.237 10.378c3.237 3.904 5.063 3.903 8.716 3.903q.5-.001 1.411-.166.913-.166 1.245-.166 6.974-1.826 10.793-8.967 1.825-3.156 2.74-6.89.914-3.735.997-6.06.085-2.328.085-7.638v-4.15q-9.63 0-14.612 1.328-14.611 4.148-14.612 18.428"></path> </g> </svg>, bluesky: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <path fill="#000" strokeMiterlimit="10" strokeWidth="0" d="M82.2 239.526c-12.021 0-25.035-7.112-38.784-21.221-12.726-13.058-17.576-26.875-13.66-38.902 3.339-10.253 12.665-18.577 26.94-24.334-21.08-2.223-41.366-12.744-48.318-37.581-2.714-9.709-6.971-66.224-6.971-73.268 0-13.306 3.94-22.022 11.706-25.903 12.82-6.401 32.371 2.56 46.39 13.086l-1.688 2.248 1.688-2.248c26.79 20.114 55.478 59.539 68.354 83.66 12.878-24.121 41.565-63.551 68.353-83.66 14.019-10.526 33.577-19.484 46.39-13.086 7.77 3.88 11.707 12.597 11.707 25.903 0 7.042-4.258 63.554-6.972 73.265-6.952 24.837-27.24 35.355-48.315 37.584 14.277 5.757 23.598 14.078 26.942 24.334 3.917 12.024-.936 25.841-13.662 38.902-16.284 16.708-31.54 23.607-45.331 20.493-22.379-5.047-34.302-35.265-39.112-49.009-4.811 13.75-16.726 43.957-39.104 49.01q-3.224.727-6.553.727m-1.512-90.887c1.346 0 2.535.97 2.768 2.338a2.803 2.803 0 0 1-2.299 3.24c-25.458 4.333-41.815 13.896-46.061 26.928-3.285 10.088.983 21.581 12.344 33.237 14.834 15.222 28.314 21.595 40.073 18.934 21.222-4.791 32.422-37.671 36.1-48.475 1.436-4.213 2.035-5.885 4.24-5.724 2.252-.158 2.808 1.514 4.241 5.724 3.687 10.812 14.893 43.687 36.109 48.475 11.776 2.672 25.242-3.715 40.07-18.934 11.358-11.656 15.63-23.149 12.342-33.237-4.246-13.032-20.6-22.595-46.059-26.928a2.805 2.805 0 0 1-2.296-3.24 2.81 2.81 0 0 1 3.24-2.295c25.206 4.288 57.743-1.698 66.423-32.709 2.473-8.843 6.764-64.287 6.764-71.753 0-11.001-2.892-18.026-8.599-20.876-9.88-4.923-27.45 2.754-40.503 12.553-28.008 21.021-58.181 63.784-69.197 86.57-.938 1.942-4.122 1.942-5.06 0-11.016-22.783-41.19-65.546-69.197-86.57-13.055-9.799-30.646-17.487-40.506-12.55-5.707 2.85-8.598 9.872-8.598 20.873 0 7.466 4.29 62.913 6.763 71.75 8.675 30.995 41.186 36.988 66.403 32.712.009-.006.017-.003.02-.003q.243-.041.475-.04" ></path> </svg>, blueskyAlt: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="none" strokeMiterlimit="10" strokeWidth="0"> <path fill="#000" d="M127.857 254.307c-69.837 0-126.45-56.613-126.45-126.45S58.02 1.407 127.857 1.407s126.45 56.613 126.45 126.45-56.613 126.45-126.45 126.45" ></path> <path fill="#FFF" d="M85.642 73.885c17.088 12.828 35.468 38.84 42.215 52.797 6.75-13.957 25.127-39.97 42.214-52.797 12.33-9.256 32.307-16.419 32.307 6.37 0 4.552-2.61 38.236-4.14 43.704-5.319 19.013-24.705 23.86-41.95 20.926 30.143 5.131 37.812 22.123 21.25 39.115-31.45 32.273-45.205-8.098-48.729-18.442-.646-1.896-.947-2.784-.952-2.028-.006-.754-.307.132-.953 2.028-3.524 10.344-17.276 50.715-48.728 18.442-16.56-16.992-8.894-33.987 21.249-39.115-17.245 2.934-36.631-1.913-41.95-20.926-1.532-5.468-4.14-39.152-4.14-43.704 0-22.789 19.977-15.626 32.307-6.37" ></path> </g> </svg>, blueskyAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="Bluesky--Streamline-Simple-Icons" width="24" height="24" viewBox="0 0 24 24" > <desc>Bluesky Streamline Icon: https://streamlinehq.com</desc> <path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364q.204-.03.415-.056-.207.033-.415.056c-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a9 9 0 0 1-.415-.056q.21.026.415.056c2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8"></path> </svg>, bookbub: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 32 32" > <path d="M6.4 4.267A2.13 2.13 0 0 0 4.267 6.4v19.2c0 1.179.955 2.133 2.133 2.133h19.2a2.13 2.13 0 0 0 2.133-2.133V6.4A2.13 2.13 0 0 0 25.6 4.267zm1.067 6.4h3.435c2.158 0 3.646.867 3.646 2.454 0 1.321-1.03 2.191-2.088 2.45 1.541.329 2.537 1.261 2.544 2.735.009 1.871-1.571 3-2.885 3.006l-4.642.021zm9.6 0h3.435c2.158 0 3.646.867 3.646 2.454 0 1.321-1.03 2.191-2.087 2.45 1.541.329 2.537 1.261 2.544 2.735.009 1.871-1.571 3-2.885 3.006l-4.642.021zm-7.536 1.662v2.723h1.465c.631-.001 1.448-.52 1.448-1.385s-.521-1.338-1.74-1.338zm9.6 0v2.723h1.465c.631-.001 1.448-.52 1.448-1.385s-.521-1.338-1.74-1.338zM9.533 16.66v3.033h1.679c.723 0 1.66-.487 1.66-1.542.001-.893-.597-1.492-1.994-1.492H9.532zm9.6 0v3.033h1.679c.723 0 1.66-.487 1.66-1.542.001-.893-.597-1.492-1.994-1.492h-1.346z"></path> </svg>, bookbubAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 25 17"> <path id="c" fill="none" stroke="#000" strokeMiterlimit="10" d="M.5 16.5V.5h5.4c1.6 0 2.8.3 3.8 1 .9.7 1.4 1.6 1.4 2.7 0 .8-.3 1.6-.8 2.3-.6.7-1.3 1.2-2.2 1.4 1.1.1 2 .6 2.7 1.3s1 1.6 1 2.6c0 1.4-.5 2.6-1.5 3.4-1 .9-2.4 1.3-4.1 1.3zm3-13.6v4.2h1.7c.8 0 1.5-.2 1.9-.6s.7-1 .7-1.7c0-1.3-.9-1.9-2.7-1.9zm0 6.6v4.7h2.1q1.35 0 2.1-.6c.5-.5.8-1.1.8-1.9 0-1.5-1-2.2-3-2.2zm9.7 7V.5h5.4c1.6 0 2.8.3 3.8 1 .9.7 1.4 1.6 1.4 2.7 0 .8-.3 1.6-.8 2.3-.6.7-1.3 1.2-2.2 1.4 1.1.1 2 .6 2.7 1.3s1 1.6 1 2.6c0 1.4-.5 2.6-1.5 3.4-1 .9-2.4 1.3-4.1 1.3zm3-13.6v4.2h1.7c.8 0 1.5-.2 1.9-.6s.7-1 .7-1.7c0-1.3-.9-1.9-2.7-1.9zm0 6.6v4.7h2.1q1.35 0 2.1-.6c.75-.6.7-1 .7-1.8 0-1.5-1-2.3-3-2.3z" ></path> </svg>, bookbubAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 24 16"> <path id="c" strokeWidth="0" d="M0 16V0h5.4C7 0 8.2.3 9.2 1c.9.7 1.4 1.6 1.4 2.7 0 .8-.3 1.6-.8 2.3-.6.7-1.3 1.2-2.2 1.4 1.1.1 2 .6 2.7 1.3s1 1.6 1 2.6c0 1.4-.5 2.6-1.5 3.4-1 .9-2.4 1.3-4.1 1.3zM3 2.4v4.2h1.7c.8 0 1.5-.2 1.9-.6s.7-1 .7-1.7c0-1.3-.9-1.9-2.7-1.9zM3 9v4.7h2.1q1.35 0 2.1-.6c.5-.5.8-1.1.8-1.9C8 9.7 7 9 5 9zm9.7 7V0h5.4c1.6 0 2.8.3 3.8 1 .9.7 1.4 1.6 1.4 2.7 0 .8-.3 1.6-.8 2.3-.6.7-1.3 1.2-2.2 1.4 1.1.1 2 .6 2.7 1.3s1 1.6 1 2.6c0 1.4-.5 2.6-1.5 3.4-1 .9-2.4 1.3-4.1 1.3zm3-13.6v4.2h1.7c.8 0 1.5-.2 1.9-.6s.7-1 .7-1.7c0-1.3-.9-1.9-2.7-1.9zm0 6.6v4.7h2.1q1.35 0 2.1-.6c.75-.6.7-1 .7-1.8 0-1.5-1-2.3-3-2.3z" ></path> </svg>, flipboard: <svg xmlns="http://www.w3.org/2000/svg" width="800" height="800" fill="#fff" stroke="#fff" viewBox="-10.56 -10.56 45.12 45.12" > <rect id="SVGRepo_bgCarrier" width="45.12" height="45.12" x="-10.56" y="-10.56" fill="#000" strokeWidth="0" rx="22.56" ></rect> <path id="SVGRepo_iconCarrier" d="M0 0h7.7v24H0zm8.5 8.5h7.8v7.8H8.5zm0-8.5H24v7.7H8.5z" ></path> </svg>, flipboardAlt: <svg xmlns="http://www.w3.org/2000/svg" id="flipboard" width="800" height="800" fill="#000" className="icon line-color" data-name="Line Color" viewBox="0 0 24 24" > <g id="SVGRepo_iconCarrier" fill="none" stroke="#000" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" > <path id="secondary" d="M21 3v6H9V3Zm-6 6H9v6h6Z"></path> <path id="primary" d="M3 3h6v18H3z"></path> </g> </svg>, flipboardAlt2: <svg xmlns="http://www.w3.org/2000/svg" width="800" height="800" viewBox="0 0 24 24" > <path d="M0 0h7.7v24H0zm8.5 8.5h7.8v7.8H8.5zm0-8.5H24v7.7H8.5z"></path> </svg>, fstoppers: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 147 147" height="24" width="24"> <g id="c" strokeWidth="0"> <path d="M72.62 23.74c-13.8.2-25.71 5.42-35.18 15.42-9 9.51-13.75 20.95-13.63 32.31-.05 16.32 5.26 28.49 15.67 38.3 10.43 9.84 22.98 14.07 37.32 13.35 24.24-1.23 46.49-21.92 46.48-49.59 0-27.52-22.21-50.21-50.66-49.79m2.07 47.18c-.11.84-.22 1.69-.43 2.5-.2.78-.4 1.62-.83 2.29-.74 1.16-2.05 1.21-3.25 1.23-2.97.05-5.95 0-8.92 0h-1.55c-1.27 0-1.7.41-1.85 1.71-.18 1.5-.34 3.01-.58 4.51-.3 1.85-.7 3.69-1.04 5.53-.27 1.47-.5 2.95-.78 4.42-.3 1.59-.66 3.17-.93 4.77-.24 1.42-.35 2.86-.58 4.27s-.55 2.8-.84 4.2c-.04.18-.09.35-.12.53-.18 1.4-.35 2.8-.53 4.2-.01.09-.09.17-.23.4-1.46-.95-2.94-1.82-4.32-2.82-1.36-.98-2.62-2.09-3.93-3.14-.47-.38-.76-.86-.7-1.47.1-1.07.2-2.14.36-3.2.34-2.17.73-4.32 1.11-6.48.24-1.37.53-2.73.76-4.11.24-1.44.43-2.89.68-4.33.25-1.43.54-2.86.81-4.29.02-.1.06-.2.07-.3.19-1.45.34-2.9.57-4.34.23-1.41.54-2.81.81-4.21.03-.15.08-.3.1-.45.36-2.36.68-4.73 1.09-7.08.36-2.03.83-4.04 1.23-6.06.19-.96.33-1.93.48-2.89.22-1.45.41-2.9.66-4.34.24-1.41.55-2.8.8-4.21.09-.48.09-.97.16-1.46.17-1.19.28-2.43 1.3-3.27.25-.21.62-.39.94-.39 8.84-.02 17.68-.02 26.52-.02.78 0 1.29.44 1.27 1.22-.01.74-.17 1.47-.27 2.21-.05.38-.09.77-.17 1.14-.2.98-.3 2-.66 2.93-.36.95-1.2 1.45-2.27 1.45-2.77 0-5.53.03-8.3.03-2.27 0-4.55-.02-6.82-.04-1.53-.02-2.21.69-2.37 2.22-.16 1.48-.5 2.94-.76 4.42-.39 2.28-.77 4.56-1.17 6.84-.08.48-.28.94-.39 1.42-.2.88.06 1.21.95 1.22 3.7.02 7.39.02 11.09.04.52 0 1.03.03 1.55.09.74.09 1.3.62 1.35 1.36.04.59-.02 1.18-.1 1.77Zm32.28-10.24c-.23 1.08-.42 2.18-.6 3.27-.37 2.18-1.33 2.76-3.29 2.81-3.54.08-7.08.09-10.62.06-1.15 0-2.64 1.1-2.98 2.3-.26.94-.48 1.89-.64 2.86-.26 1.6.02 2.23 1.41 2.97 1.73.92 3.54 1.69 5.26 2.64 2.16 1.2 4.34 2.39 6.36 3.81 1.32.93 1.98 2.42 2.03 4.14.06 2.06-.42 4.02-.86 6-.23 1.03-.38 2.07-.58 3.1-.48 2.54-1.8 4.53-3.85 6.11-2.19 1.69-4.68 2.09-7.35 2.06-4.63-.06-9.25-.04-13.88-.03-.85 0-1.49-.32-1.76-1.11-.15-.43-.13-.94-.1-1.41.04-.59.15-1.17.26-1.75.18-.98.26-2 .62-2.92.42-1.07 1.38-1.57 2.53-1.58 3.62-.01 7.24 0 10.86 0 1.35 0 2.64-.89 3.04-2.18.31-1 .58-2.01.8-3.03.17-.77-.69-2.06-1.69-2.57-2.22-1.15-4.46-2.26-6.69-3.41-1.28-.65-2.62-1.22-3.79-2.03-2.3-1.58-3.32-3.84-2.93-6.62.22-1.55.59-3.08.89-4.63.24-1.26.4-2.54.74-3.78.71-2.55 1.95-4.77 4.34-6.11 1.04-.58 2.19-.98 3.31-1.43.3-.12.66-.12.99-.12h8.14v-.02c2.69 0 5.38.06 8.06-.02 1.69-.06 2.27 1.21 1.97 2.62"></path> <path d="M73.5 0C32.91 0 0 32.91 0 73.5S32.91 147 73.5 147 147 114.09 147 73.5 114.09 0 73.5 0m43.83 110.89c-11.73 13.64-26.84 20.59-44.71 20.27-31.74-.56-57.61-26.15-56.77-59.69.38-15.03 6.19-28.22 16.93-38.8C45.31 20.32 60.63 14.68 78.2 16.02c13.58 1.03 25.45 6.42 35.25 15.94 11.71 11.37 17.54 25.32 17.72 40.28-.11 15.47-4.66 27.96-13.84 38.65"></path> </g> </svg>, fstoppersAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 118.34 118.34"> <g id="c" fill="none" stroke="#000" strokeMiterlimit="10" strokeWidth="3"> <path d="M116.84 57.91c-.11 15.47-4.66 27.96-13.84 38.65-11.73 13.64-26.84 20.59-44.71 20.27C26.55 116.27.68 90.68 1.52 57.14c.38-15.03 6.19-28.22 16.93-38.8C30.98 6 46.3.36 63.87 1.69c13.58 1.03 25.45 6.42 35.25 15.94 11.71 11.37 17.54 25.32 17.72 40.28ZM9.48 57.14c-.05 16.32 5.26 28.49 15.67 38.3 10.43 9.84 22.98 14.07 37.32 13.35 24.24-1.23 46.49-21.92 46.48-49.59 0-27.52-22.21-50.21-50.66-49.79-13.8.2-25.71 5.42-35.18 15.42-9 9.51-13.75 20.95-13.63 32.31Z"></path> <path d="M37.91 97.15c-1.46-.95-2.94-1.82-4.32-2.82-1.36-.98-2.62-2.09-3.93-3.14-.47-.38-.76-.86-.7-1.47.1-1.07.2-2.14.36-3.2.34-2.17.73-4.32 1.11-6.48.24-1.37.53-2.73.76-4.11.24-1.44.43-2.89.68-4.33.25-1.43.54-2.86.81-4.29.02-.1.06-.2.07-.3.19-1.45.34-2.9.57-4.34.23-1.41.54-2.81.81-4.21.03-.15.08-.3.1-.45.36-2.36.68-4.73 1.09-7.08.36-2.03.83-4.04 1.23-6.06.19-.96.33-1.93.48-2.89.22-1.45.41-2.9.66-4.34.24-1.41.55-2.8.8-4.21.09-.48.09-.97.16-1.46.17-1.19.28-2.43 1.3-3.27.25-.21.63-.39.94-.39 8.84-.02 17.68-.02 26.52-.02.78 0 1.29.44 1.27 1.22-.01.74-.17 1.47-.27 2.21-.05.38-.09.77-.17 1.14-.2.98-.3 2-.66 2.93-.36.95-1.2 1.45-2.27 1.45-2.77 0-5.53.03-8.3.03-2.27 0-4.55-.02-6.82-.04-1.53-.02-2.21.69-2.37 2.22-.16 1.48-.5 2.94-.76 4.42-.39 2.28-.77 4.56-1.17 6.84-.08.48-.28.94-.39 1.42-.2.88.06 1.21.95 1.22 3.7.02 7.39.02 11.09.04.52 0 1.03.03 1.55.09.74.09 1.3.62 1.35 1.36.04.59-.02 1.18-.1 1.77-.11.84-.22 1.69-.43 2.5-.2.78-.4 1.62-.83 2.29-.74 1.16-2.05 1.21-3.25 1.23-2.97.05-5.95 0-8.92 0h-1.55c-1.27 0-1.7.41-1.85 1.71-.18 1.5-.34 3.01-.58 4.5-.3 1.85-.7 3.69-1.04 5.53-.27 1.47-.5 2.95-.78 4.42-.3 1.59-.66 3.17-.93 4.77-.24 1.42-.35 2.86-.58 4.27s-.55 2.8-.84 4.2c-.04.18-.09.35-.12.53-.18 1.4-.35 2.8-.53 4.2-.01.09-.09.17-.23.4ZM82.61 43.75c2.69 0 5.38.06 8.06-.02 1.69-.06 2.27 1.21 1.97 2.62-.23 1.08-.42 2.18-.6 3.27-.37 2.18-1.33 2.76-3.29 2.81-3.54.08-7.08.09-10.62.06-1.15 0-2.64 1.1-2.98 2.3-.26.94-.48 1.89-.64 2.85-.26 1.6.02 2.23 1.41 2.97 1.73.92 3.54 1.69 5.26 2.64 2.16 1.2 4.34 2.39 6.36 3.81 1.32.93 1.98 2.42 2.03 4.14.06 2.06-.42 4.02-.86 6-.23 1.03-.38 2.07-.58 3.1-.48 2.54-1.8 4.53-3.85 6.11-2.19 1.69-4.68 2.09-7.35 2.06-4.63-.06-9.25-.04-13.88-.03-.85 0-1.49-.32-1.76-1.11-.15-.43-.13-.94-.1-1.41.04-.59.15-1.17.26-1.75.18-.98.26-2 .62-2.92.42-1.07 1.38-1.57 2.53-1.58 3.62-.01 7.24 0 10.86 0 1.35 0 2.64-.89 3.04-2.18.31-1 .58-2.01.8-3.03.17-.77-.69-2.06-1.69-2.57-2.22-1.15-4.46-2.26-6.69-3.41-1.28-.65-2.62-1.22-3.79-2.03-2.3-1.58-3.32-3.84-2.93-6.62.22-1.55.59-3.08.89-4.63.24-1.26.4-2.54.74-3.78.71-2.55 1.95-4.77 4.34-6.11 1.04-.58 2.19-.98 3.31-1.43.3-.12.66-.12.99-.12h8.14v-.02Z"></path> </g> </svg>, fstoppersAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 115.34 115.34"> <g id="c" strokeWidth="0"> <path d="M115.34 56.41c-.11 15.47-4.66 27.96-13.84 38.65-11.73 13.64-26.84 20.59-44.71 20.27C25.05 114.77-.82 89.18.02 55.64c.38-15.03 6.19-28.22 16.93-38.8C29.48 4.5 44.8-1.14 62.37.19c13.58 1.03 25.45 6.42 35.25 15.94 11.71 11.37 17.54 25.32 17.72 40.28M7.98 55.64c-.05 16.32 5.26 28.49 15.67 38.3 10.43 9.84 22.98 14.07 37.32 13.35 24.24-1.23 46.49-21.92 46.48-49.59 0-27.52-22.21-50.21-50.66-49.79-13.8.2-25.71 5.42-35.18 15.42-9 9.51-13.75 20.95-13.63 32.31"></path> <path d="M36.41 95.65c-1.46-.95-2.94-1.82-4.32-2.82-1.36-.98-2.62-2.09-3.93-3.14-.47-.38-.76-.86-.7-1.47.1-1.07.2-2.14.36-3.2.34-2.17.73-4.32 1.11-6.48.24-1.37.53-2.73.76-4.11.24-1.44.43-2.89.68-4.33.25-1.43.54-2.86.81-4.29.02-.1.06-.2.07-.3.19-1.45.34-2.9.57-4.34.23-1.41.54-2.81.81-4.21.03-.15.08-.3.1-.45.36-2.36.68-4.73 1.09-7.08.36-2.03.83-4.04 1.23-6.06.19-.96.33-1.93.48-2.89.22-1.45.41-2.9.66-4.34.24-1.41.55-2.8.8-4.21.09-.48.09-.97.16-1.46.17-1.19.28-2.43 1.3-3.27.25-.21.63-.39.94-.39 8.84-.02 17.68-.02 26.52-.02.78 0 1.29.44 1.27 1.22-.01.74-.17 1.47-.27 2.21-.05.38-.09.77-.17 1.14-.2.98-.3 2-.66 2.93-.36.95-1.2 1.45-2.27 1.45-2.77 0-5.53.03-8.3.03-2.27 0-4.55-.02-6.82-.04-1.53-.02-2.21.69-2.37 2.22-.16 1.48-.5 2.94-.76 4.42-.39 2.28-.77 4.56-1.17 6.84-.08.48-.28.94-.39 1.42-.2.88.06 1.21.95 1.22 3.7.02 7.39.02 11.09.04.52 0 1.03.03 1.55.09.74.09 1.3.62 1.35 1.36.04.59-.02 1.18-.1 1.77-.11.84-.22 1.69-.43 2.5-.2.78-.4 1.62-.83 2.29-.74 1.16-2.05 1.21-3.25 1.23-2.97.05-5.95 0-8.92 0h-1.55c-1.27 0-1.7.41-1.85 1.71-.18 1.5-.34 3.01-.58 4.5-.3 1.85-.7 3.69-1.04 5.53-.27 1.47-.5 2.95-.78 4.42-.3 1.59-.66 3.17-.93 4.77-.24 1.42-.35 2.86-.58 4.27s-.55 2.8-.84 4.2c-.04.18-.09.35-.12.53-.18 1.4-.35 2.8-.53 4.2-.01.09-.09.17-.23.4ZM81.11 42.25c2.69 0 5.38.06 8.06-.02 1.69-.06 2.27 1.21 1.97 2.62-.23 1.08-.42 2.18-.6 3.27-.37 2.18-1.33 2.76-3.29 2.81-3.54.08-7.08.09-10.62.06-1.15 0-2.64 1.1-2.98 2.3-.26.94-.48 1.89-.64 2.85-.26 1.6.02 2.23 1.41 2.97 1.73.92 3.54 1.69 5.26 2.64 2.16 1.2 4.34 2.39 6.36 3.81 1.32.93 1.98 2.42 2.03 4.14.06 2.06-.42 4.02-.86 6-.23 1.03-.38 2.07-.58 3.1-.48 2.54-1.8 4.53-3.85 6.11-2.19 1.69-4.68 2.09-7.35 2.06-4.63-.06-9.25-.04-13.88-.03-.85 0-1.49-.32-1.76-1.11-.15-.43-.13-.94-.1-1.41.04-.59.15-1.17.26-1.75.18-.98.26-2 .62-2.92.42-1.07 1.38-1.57 2.53-1.58 3.62-.01 7.24 0 10.86 0 1.35 0 2.64-.89 3.04-2.18.31-1 .58-2.01.8-3.03.17-.77-.69-2.06-1.69-2.57-2.22-1.15-4.46-2.26-6.69-3.41-1.28-.65-2.62-1.22-3.79-2.03-2.3-1.58-3.32-3.84-2.93-6.62.22-1.55.59-3.08.89-4.63.24-1.26.4-2.54.74-3.78.71-2.55 1.95-4.77 4.34-6.11 1.04-.58 2.19-.98 3.31-1.43.3-.12.66-.12.99-.12h8.14v-.02Z"></path> </g> </svg>, goodreads: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 20.19 32" height="24" width="24"> <g id="c"> <path id="d" strokeWidth="0" d="M20.12 21.3V.65h-2.75v3.88h-.08c-.28-.6-.64-1.19-1.12-1.74s-1.02-1.04-1.64-1.46S13.25.58 12.5.35c-.73-.22-1.52-.34-2.36-.34-1.61 0-3.07.3-4.33.9a9.06 9.06 0 0 0-3.18 2.44C1.78 4.38 1.12 5.58.67 6.97s-.68 2.84-.68 4.38.19 3.1.57 4.51.98 2.64 1.82 3.68a8.7 8.7 0 0 0 3.17 2.45c1.28.58 2.83.88 4.63.88 1.66 0 3.1-.42 4.35-1.26s2.18-1.96 2.82-3.37h.08v3.05c0 2.72-.56 4.81-1.69 6.27-1.12 1.44-2.96 2.19-5.53 2.19-.76 0-1.51-.08-2.22-.25-.72-.16-1.38-.42-1.98-.76-.58-.36-1.1-.8-1.52-1.38s-.7-1.28-.84-2.12H.84c.09 1.18.42 2.2.98 3.07.57.86 1.28 1.56 2.14 2.12.85.54 1.82.94 2.9 1.2s2.19.4 3.33.4c1.84 0 3.39-.26 4.65-.74 1.27-.5 2.29-1.2 3.07-2.14.8-.95 1.36-2.07 1.72-3.41s.56-2.84.56-4.49l-.06.08Zm-9.97-.74c-1.27 0-2.38-.25-3.3-.77-.93-.5-1.7-1.17-2.31-2-.62-.83-1.06-1.78-1.36-2.85-.3-1.08-.44-2.18-.44-3.31s.14-2.3.4-3.42c.28-1.12.72-2.11 1.32-2.98s1.38-1.58 2.3-2.12 2.05-.81 3.35-.81 2.4.28 3.33.83c.9.55 1.66 1.28 2.24 2.18.58.91 1 1.91 1.27 3.01.26 1.1.38 2.21.38 3.31s-.16 2.24-.46 3.31q-.45 1.62-1.38 2.85c-.93 1.23-1.36 1.5-2.27 2-.9.51-1.94.77-3.15.77z" ></path> </g> </svg>, goodreadsAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 21.19 33"> <g id="c"> <path id="d" fill="none" stroke="#000" strokeMiterlimit="10" d="M20.62 21.8V1.15h-2.75v3.88h-.08c-.28-.6-.64-1.19-1.12-1.74s-1.02-1.04-1.64-1.46-1.28-.75-2.03-.98c-.73-.22-1.52-.34-2.36-.34-1.61 0-3.07.3-4.33.9a9.06 9.06 0 0 0-3.18 2.44c-.85 1.03-1.51 2.23-1.96 3.62s-.68 2.84-.68 4.38.19 3.1.57 4.51.98 2.64 1.82 3.68a8.7 8.7 0 0 0 3.17 2.45c1.28.58 2.83.88 4.63.88 1.66 0 3.1-.42 4.35-1.26s2.18-1.96 2.82-3.37h.08v3.05c0 2.72-.56 4.81-1.69 6.27-1.12 1.44-2.96 2.19-5.53 2.19-.76 0-1.51-.08-2.22-.25-.72-.16-1.38-.42-1.98-.76-.58-.36-1.1-.8-1.52-1.38s-.7-1.28-.84-2.12H1.34c.09 1.18.42 2.2.98 3.07.57.86 1.28 1.56 2.14 2.12.85.54 1.82.94 2.9 1.2s2.19.4 3.33.4c1.84 0 3.39-.26 4.65-.74 1.27-.5 2.29-1.2 3.07-2.14.8-.95 1.36-2.07 1.72-3.41s.56-2.84.56-4.49l-.06.08Zm-9.97-.74c-1.27 0-2.38-.25-3.3-.77-.93-.5-1.7-1.17-2.31-2-.62-.83-1.06-1.78-1.36-2.85-.3-1.08-.44-2.18-.44-3.31s.14-2.3.4-3.42c.28-1.12.72-2.11 1.32-2.98s1.38-1.58 2.3-2.12 2.05-.81 3.35-.81 2.4.28 3.33.83c.9.55 1.66 1.28 2.24 2.18.58.91 1 1.91 1.27 3.01.26 1.1.38 2.21.38 3.31s-.16 2.24-.46 3.31q-.45 1.62-1.38 2.85c-.93 1.23-1.36 1.5-2.27 2-.9.51-1.94.77-3.15.77z" ></path> </g> </svg>, goodreadsAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 55 55"> <g id="c" strokeWidth="0"> <path d="M33.08 16.81c-.58-.9-1.34-1.62-2.24-2.18-.93-.55-2.03-.83-3.33-.83s-2.43.27-3.35.81-1.7 1.24-2.3 2.11-1.04 1.86-1.32 2.98c-.26 1.11-.4 2.26-.4 3.42s.14 2.23.44 3.31.74 2.03 1.36 2.85c.61.83 1.38 1.49 2.31 2 .91.5 2 .76 3.25.76 1.19 0 2.22-.26 3.11-.76.9-.51 1.65-1.17 2.27-2s1.08-1.78 1.38-2.85.46-2.18.46-3.31-.12-2.21-.38-3.31-.68-2.1-1.27-3.01Z"></path> <path d="M27.5 0C12.31 0 0 12.31 0 27.5S12.31 55 27.5 55 55 42.69 55 27.5 42.69 0 27.5 0m9.53 37.21c-.36 1.34-.92 2.46-1.72 3.41-.78.94-1.8 1.64-3.07 2.14-1.26.48-2.8.74-4.65.74-1.14 0-2.24-.14-3.33-.4a9.7 9.7 0 0 1-2.9-1.2 7.6 7.6 0 0 1-2.14-2.12c-.56-.86-.89-1.89-.98-3.07h2.81c.14.84.42 1.54.84 2.12s.94 1.02 1.52 1.38c.6.34 1.26.6 1.98.76q1.08.24 2.22.24c2.56 0 4.41-.74 5.53-2.19 1.12-1.46 1.69-3.55 1.69-6.27V29.7h-.08c-.64 1.41-1.58 2.53-2.82 3.37q-1.86 1.26-4.35 1.26c-1.8 0-3.35-.3-4.63-.88A8.65 8.65 0 0 1 19.78 31c-.84-1.05-1.44-2.27-1.82-3.68s-.57-2.91-.57-4.51.23-2.99.68-4.38c.45-1.38 1.1-2.58 1.96-3.61s1.92-1.84 3.18-2.44c1.26-.59 2.71-.9 4.33-.9.84 0 1.62.12 2.36.34.74.23 1.41.56 2.03.98s1.16.91 1.64 1.46.84 1.14 1.12 1.74h.08v-3.88h2.74v20.65l.06-.08c0 1.65-.2 3.15-.56 4.49Z"></path> </g> </svg>, imgur: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 57.98 57.98" height="24" width="24"> <path id="c" strokeWidth="0" d="M51.09 7.35c0-.27-.17-.44-.46-.46-.41-.04-.82-.08-1.23-.11l-.39-.02c-.87-.06-1.75-.1-2.62-.11h-.52c-.42-.02-.85-.02-1.29-.02h-.46c-.71 0-1.45 0-2.22.02h-.26c-.7.02-1.4.04-2.1.07l-.57.02c-.81.03-1.63.07-2.48.12h-.03c-.86.05-1.75.11-2.65.17l-.66.05-2.22.18-.6.05c-.92.08-1.85.18-2.79.28-.19.02-.39.05-.58.07-.77.08-1.55.18-2.33.27l-.8.1c-.97.12-1.95.25-2.93.4-.13.02-.25.05-.37.11-.09.04-.17.1-.23.18-.11.14-.11.29 0 .44 0 0 0 .02.01.03l8.43 8.35-16.02 15.94c-.17.16-.16.4 0 .61 2.07 2.64 3.48 4.33 5.18 6.02 1.69 1.7 3.38 3.11 6.02 5.18a.445.445 0 0 0 .61 0l15.94-16.02 8.35 8.43c.06.07.15.11.24.11.23 0 .45-.29.51-.71 1.8-12.42 2.13-24.28 1.53-29.74ZM38.34 57.98 53.7 42.62l.06-.06.38-.37h-.01a7.7 7.7 0 0 0 1.99-4.15c1.94-13.36 2.18-25.59 1.58-31.29a7.05 7.05 0 0 0-2.01-4.38A7.18 7.18 0 0 0 51.3.3C49.44.1 47.07 0 44.27 0c-7.25 0-16.11.69-24.31 1.88a7.62 7.62 0 0 0-4.56 2.39L0 19.66v38.32zm3.69-16.2c-.36 0-1.36.98-1.36 1.48 0 .13-.11.24-.24.24s-.24-.11-.24-.24c0-.5-.99-1.48-1.36-1.48-.13 0-.24-.11-.24-.24s.11-.24.24-.24c.37 0 1.36-.98 1.36-1.48 0-.13.11-.24.24-.24s.24.1.24.24c0 .51 1 1.48 1.36 1.48.13.02.22.14.21.27-.02.11-.1.19-.21.21M13.05 17.02c.48 0 1.78-1.28 1.78-1.94 0-.17.14-.31.31-.31s.31.14.31.31c0 .66 1.3 1.94 1.78 1.94.17 0 .31.14.31.31s-.14.31-.31.31c-.48 0-1.78 1.28-1.78 1.94 0 .17-.14.31-.31.31s-.31-.14-.31-.31c0-.66-1.3-1.94-1.78-1.94-.17 0-.31-.14-.31-.31s.14-.31.31-.31M3.41 24.9c0-.16.14-.24.29-.29 1.67-.55 3.07-1.93 3.39-3.75.03-.15.13-.29.29-.29s.26.13.29.29c.32 1.82 1.72 3.2 3.38 3.75.15.05.29.13.29.29s-.14.24-.29.29c-1.67.55-3.07 1.93-3.39 3.75-.03.15-.13.29-.29.29s-.26-.13-.29-.29c-.32-1.82-1.72-3.2-3.39-3.75-.15-.05-.28-.13-.28-.29m3.78 22.48c-.27 0-1.01.73-1.01 1.11 0 .1-.08.18-.18.18a.18.18 0 0 1-.18-.18c0-.38-.74-1.11-1.01-1.11a.18.18 0 0 1-.18-.18c0-.09.08-.18.18-.18.27 0 1.01-.73 1.01-1.1 0-.1.08-.18.18-.18s.18.07.18.18c0 .37.74 1.1 1.01 1.1.1 0 .18.08.18.18s-.08.18-.18.18m1.37-7.36c-.34 0-1.26.91-1.26 1.37.01.12-.08.23-.2.24a.223.223 0 0 1-.24-.2v-.05c0-.47-.92-1.37-1.26-1.37-.12 0-.22-.09-.22-.22 0-.12.1-.22.22-.22.34 0 1.26-.91 1.26-1.37 0-.12.1-.22.22-.22s.22.09.22.22c0 .47.92 1.37 1.26 1.37.12 0 .22.1.22.22s-.1.22-.22.22Zm8.05 10.59c-.49 0-1.83 1.32-1.83 2 0 .18-.14.32-.32.32s-.32-.14-.32-.32c0-.68-1.34-2-1.83-2-.18 0-.32-.14-.32-.32s.14-.32.32-.32c.49 0 1.83-1.32 1.83-2 0-.17.14-.32.32-.32s.32.15.32.32c0 .68 1.34 2 1.83 2 .18 0 .32.14.32.32s-.14.32-.32.32m4.65-1.95c-2.62-2.06-4.52-3.62-6.41-5.53-1.91-1.89-3.47-3.78-5.53-6.41-1.51-1.93-1.37-4.58.35-6.3l12.94-12.88-5.35-5.3v-.01C16 10.97 15.57 9.16 16.12 7.5c.36-1.08 1.12-1.94 2.09-2.53.28-.18.58-.34.9-.46.36-.15.74-.26 1.13-.32h.03c8.1-1.18 16.84-1.86 23.98-1.86 2.72 0 5.01.1 6.81.29 1.13.11 2.18.6 2.97 1.39.79.8 1.27 1.85 1.36 2.99.59 5.58.35 17.52-1.57 30.72 0 .02-.01.04-.02.06-.08.49-.23.97-.43 1.42-.01.03-.02.07-.04.1-.8 1.69-2.42 2.81-4.28 2.81-1.23 0-2.4-.48-3.28-1.37s0-.01 0-.01l-5.3-5.35-12.88 12.95c-.88.89-2.08 1.39-3.33 1.38-1.06 0-2.12-.36-2.97-1.04Zm6.22 5.05c-.34 0-1.25.9-1.25 1.37 0 .12-.1.22-.22.22s-.22-.1-.22-.22c0-.47-.92-1.37-1.25-1.37-.12 0-.22-.1-.22-.22s.1-.22.22-.22c.34 0 1.25-.9 1.25-1.37 0-.12.1-.22.22-.22s.22.1.22.22c0 .47.92 1.37 1.25 1.37.12 0 .22.09.22.22s-.1.22-.22.22m5.11-5.89c.6 0 2.23-1.6 2.23-2.42a.39.39 0 0 1 .78 0c0 .82 1.63 2.42 2.23 2.42a.39.39 0 0 1 .01.78c-.6 0-2.23 1.6-2.23 2.43 0 .22-.17.39-.39.39a.39.39 0 0 1-.39-.39c0-.83-1.63-2.43-2.23-2.43-.21 0-.39-.17-.39-.39s.17-.39.39-.39Z" ></path> </svg>, imgurAlt: <svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" id="b" viewBox="0 0 48 48" > <g id="c"> <g id="d"> <image xlinkHref="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsSAAALEgHS3X78AAAEG0lEQVRogb2ZP2gUQRTGf0qKFFdYpFjwCosDLSyCprAIeIK9EVJYWlwjpLgiheUVdgpaWEQMmMJOQQVBQUEhdioJREjQgIEIKhYWVwS8yFnMjPN2bnZ3ZnfvPhjudv7sfN/8e2/fQHVMA8vABnAADMeY9oFHwGwNvAE4AWyPmbQvDYBOVfIJ8Fm/cAc4B0xVfWkBmsAt3ecBcKrsixLsyP8BTtbBLgIruu+7R0o0ToA3WPXPgAWnTlunurEG7AFzwHvgY+wL5Mj/1L/vnDozQJ/xrP2e7uOEft6LWbNy5HeAy1rMWdSpsKnrHYo2P4B7EX1k4TwVZ1SO/LZ+BrjjyQNYRJ0UQ+BGlY41emTMQEjjLPKgTp13GWVSRLcc7//oUVJAHnmDBuMX0aOEgDzyHWBePDdy6tYhokekgDzyTazxCm2ziD1JlsYtII9Il/Sx1iftl8i2G857n+r8X3UKOOohL4/KC6ijMAuHOWV/xf8ucEnXvxbGOR4hGxbil5CZtQFqKZVBj4IlFEreoINy3iZBHgoExJJ3UUR+SDXyUCBgy9N5KELIVzViUCDAdCTJ3wC+oByzLEyKPAQKMOgAX3XeKtCaEPkl1LHsaxcsYF48m/R4AuRd++K2DxYwhfpANzOwRrahGgf5NfxuR7AAgxXgN+l9MW7ypq30nW6XFeBiUuQNXBGVBEwB6x7ynTGR94n4XkVAW5fvC/IJNohVB/kE5fxtkF62UkRpAcYVfi3y2jrvQ03kZXDM54r3dTLuS5SAGdQoDLCGLRF5PjtRhvw22S7NMZ0MogQAvGR0uazqvCc1kU+cvC3Ul54PLYRHHCJgAbuZpgUBE/9ZroE8nrL1DBFXdPnzLAHndGcybrRJeiOB3R+DDBGx5H0i3qOWjMEZ4JsuW8wS8FbnSZ+/LchK63xdvOMJdk/4yDdQJ42P/CzZVr8PvAJeoL70hoiwohTQYjQseEu89C52KcnOF0S7AWrUfOR99sSgj7L+Eg3gocPHtD/uE9AEdkXeAemlkRfISlAb25zbfWwMP4/8PKPHqJx5gNOoYIBXvG8JvdZ5c4xCxoC+M3pb0kQtt0TUzxt5adFNuirKC/eMT0CL0ZC5K8LMxAC1sacz6uWRNzCBgqH+H0w+S0AIprC3JWY2ulhjF0reoEs66BX8rV5WgEEbe8SaGXmF+iQNJe8iKtBQVYDBAir6Jm8qN4s69yA6SlJWwHXgpie/gRJzkbQhnEVdkeb5TqVCPGUEzGFHOuR2MgEe6Pr38Uc7SsenYgXISLNrrLLw26m/65RXCq7FCmhh7cQQ5Xa4hsfFCjZQ8JX0tVPVyGDpPbCLsrahWNb9yBv2yuShvIAm4R8zoPaJvNWphTzUd4zGoDbyMLohJ5kqkwdrMSedPtVB/h9Sw+YGqYVrIQAAAABJRU5ErkJggg==" id="e" width="48" height="48" ></image> </g> </g> </svg>, imgurAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 87 87"> <g id="c" strokeWidth="0"> <path d="M23.07 54.09c-.34 0-1.26-.91-1.26-1.37 0-.12-.1-.22-.22-.22s-.22.1-.22.22c0 .47-.92 1.37-1.26 1.37-.12 0-.22.1-.22.22s.1.22.22.22c.34 0 1.26.91 1.26 1.37v.05c.01.12.12.21.24.2s.21-.12.2-.24c0-.47.92-1.37 1.26-1.37.12 0 .22-.1.22-.22s-.1-.22-.22-.22ZM41.99 67.78c-.34 0-1.25-.9-1.25-1.37 0-.12-.1-.22-.22-.22s-.22.1-.22.22c0 .47-.92 1.37-1.25 1.37-.12 0-.22.1-.22.22s.1.22.22.22c.34 0 1.25.9 1.25 1.37 0 .12.1.22.22.22s.22-.1.22-.22c0-.47.92-1.37 1.25-1.37.12 0 .22-.09.22-.22s-.1-.22-.22-.22M31.12 64.48c-.49 0-1.83-1.32-1.83-2 0-.17-.14-.32-.32-.32s-.32.15-.32.32c0 .68-1.34 2-1.83 2-.18 0-.32.14-.32.32s.14.32.32.32c.49 0 1.83 1.32 1.83 2 0 .18.14.32.32.32s.32-.14.32-.32c0-.68 1.34-2 1.83-2 .18 0 .32-.14.32-.32s-.14-.32-.32-.32M21.7 61.54c-.27 0-1.01-.73-1.01-1.1 0-.1-.08-.18-.18-.18s-.18.07-.18.18c0 .37-.74 1.1-1.01 1.1-.1 0-.18.08-.18.18s.08.18.18.18c.27 0 1.01.73 1.01 1.11 0 .1.08.18.18.18s.18-.08.18-.18c0-.38.74-1.11 1.01-1.11.1 0 .18-.08.18-.18s-.08-.18-.18-.18M27.56 32.15c.48 0 1.78 1.28 1.78 1.94 0 .17.14.31.31.31s.31-.14.31-.31c0-.66 1.3-1.94 1.78-1.94.17 0 .31-.14.31-.31s-.14-.31-.31-.31c-.48 0-1.78-1.28-1.78-1.94 0-.17-.14-.31-.31-.31s-.31.14-.31.31c0 .66-1.3 1.94-1.78 1.94-.17 0-.31.14-.31.31s.14.31.31.31M21.59 43.44c.03.16.13.29.29.29s.26-.13.29-.29c.32-1.82 1.72-3.2 3.39-3.75.15-.05.29-.13.29-.29s-.14-.24-.29-.29c-1.67-.55-3.06-1.93-3.38-3.75-.03-.15-.13-.29-.29-.29s-.26.13-.29.29c-.32 1.82-1.72 3.2-3.39 3.75-.15.05-.29.13-.29.29s.14.23.28.29c1.67.55 3.07 1.93 3.39 3.75"></path> <path d="M43.5 0C19.48 0 0 19.48 0 43.5S19.48 87 43.5 87 87 67.52 87 43.5 67.52 0 43.5 0m27.12 52.55a7.53 7.53 0 0 1-1.99 4.13h.01l-.38.39-.06.06-15.36 15.36H14.51V34.17l15.38-15.39a7.6 7.6 0 0 1 4.56-2.39c8.2-1.19 17.07-1.88 24.31-1.88 2.8 0 5.17.1 7.03.3 1.66.16 3.21.89 4.39 2.07a7 7 0 0 1 2.01 4.38c.6 5.7.36 17.93-1.58 31.29Z"></path> <path d="M68.54 18.51a4.83 4.83 0 0 0-2.97-1.39c-1.8-.19-4.09-.29-6.81-.29-7.14 0-15.88.68-23.98 1.86h-.03c-.39.06-.77.17-1.13.32-.31.12-.61.27-.9.46-.97.6-1.74 1.45-2.09 2.53-.55 1.66-.12 3.47 1.14 4.73s0 .01 0 .01l5.35 5.3-12.94 12.88c-1.72 1.72-1.86 4.37-.35 6.3 2.06 2.63 3.62 4.52 5.53 6.41 1.89 1.91 3.79 3.47 6.41 5.53.86.67 1.91 1.04 2.97 1.04 1.25 0 2.45-.5 3.33-1.38s12.88-12.95 12.88-12.95l5.3 5.35v.01c.88.89 2.05 1.37 3.28 1.37 1.86 0 3.47-1.12 4.28-2.81.02-.03.03-.07.04-.1.21-.45.35-.93.43-1.42 0-.02.01-.04.02-.06 1.92-13.19 2.16-25.13 1.57-30.72a4.77 4.77 0 0 0-1.36-2.99ZM64.07 51.6c-.06.42-.28.71-.51.71a.32.32 0 0 1-.24-.11l-8.35-8.43-15.94 16.02a.4.4 0 0 1-.29.12c-.12 0-.23-.05-.32-.12-2.65-2.07-4.33-3.48-6.02-5.18-1.7-1.69-3.11-3.38-5.18-6.02-.16-.21-.17-.44 0-.61l16.02-15.94-8.43-8.35s0-.02-.01-.03c-.12-.14-.12-.3 0-.43.07-.08.14-.14.23-.18.12-.05.24-.09.37-.11.98-.14 1.95-.27 2.93-.4l.8-.1c.78-.1 1.56-.19 2.33-.27.2-.02.39-.04.58-.07.94-.1 1.87-.19 2.79-.28l.6-.05q1.125-.105 2.22-.18l.66-.05c.9-.06 1.78-.12 2.65-.17h.03c.85-.05 1.67-.09 2.48-.12l.57-.02q1.05-.045 2.1-.06h.26q1.155-.03 2.22-.03h.46c.44 0 .87 0 1.29.01h.52c.87.03 1.75.06 2.62.12l.39.02c.41.03.82.07 1.23.11.29.02.45.19.46.46.6 5.46.27 17.32-1.53 29.74Z"></path> <path d="M52.33 62.33c-.6 0-2.23-1.6-2.23-2.42 0-.21-.18-.39-.39-.39s-.39.18-.39.39c0 .82-1.63 2.42-2.23 2.42-.21 0-.39.17-.39.39s.17.39.39.39c.6 0 2.23 1.6 2.23 2.43 0 .22.17.39.39.39s.39-.18.39-.39c0-.83 1.63-2.43 2.23-2.43.21 0 .39-.18.38-.39a.39.39 0 0 0-.39-.39ZM56.54 55.81c-.36 0-1.36-.98-1.36-1.48 0-.13-.11-.24-.24-.24s-.24.1-.24.24c0 .51-.99 1.48-1.36 1.48-.13 0-.24.11-.24.24s.11.24.24.24c.37 0 1.36.98 1.36 1.48 0 .13.11.24.24.24s.24-.11.24-.24c0-.5 1-1.48 1.36-1.48.11-.02.19-.1.21-.21a.237.237 0 0 0-.21-.27"></path> </g> </svg>, line: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 123.48 118.3" height="24" width="24"> <path id="c" strokeWidth="0" d="M61.73 0c14.88.12 28.65 3.91 40.82 12.67 9.43 6.79 16.37 15.52 19.41 26.9 3.55 13.3.73 25.44-7.33 36.44-5.9 8.05-13.31 14.57-21.14 20.64-9.37 7.27-19.09 14.02-29.54 19.67a21.5 21.5 0 0 1-4.21 1.74c-2.62.76-3.85-.42-3.49-3.12.39-2.86.91-5.71 1.11-8.59.25-3.49-.65-4.79-4.02-5.7-3.09-.83-6.3-1.21-9.41-1.98-13.33-3.31-24.89-9.64-33.69-20.4C3.45 69.98-.18 60.45 0 49.65c.18-10.59 4.09-19.8 10.9-27.79C19.79 11.43 31.25 5.25 44.42 2.02 50.1.63 55.88-.02 61.73 0m-.42 48.95c.09-.03.18-.06.28-.08.29.38.58.75.86 1.13 3.72 5.09 7.44 10.18 11.17 15.26 1.08 1.47 2.38 1.97 3.85 1.53 1.45-.44 2.28-1.72 2.3-3.57V40.08c0-.36.01-.72 0-1.08-.12-1.92-1.55-3.29-3.34-3.24-1.75.05-3.1 1.44-3.12 3.33-.03 4.54-.01 9.08-.01 13.62v1.23c-1.7-1.94-3.15-3.91-4.6-5.88l-7.92-10.77c-.76-1.04-1.76-1.68-3.09-1.49-1.25.17-2.17.87-2.58 2.08-.19.56-.21 1.18-.21 1.78-.01 7.79 0 15.59 0 23.38 0 .36 0 .72.05 1.08.17 1.46 1.32 2.62 2.75 2.77 1.59.17 3.05-.72 3.46-2.2.16-.57.16-1.19.16-1.79.01-4.22 0-8.44 0-12.65v-1.29Zm29.32-6.7c2.96 0 5.81.01 8.65 0 2.11-.01 3.54-1.37 3.52-3.28-.02-1.87-1.44-3.2-3.47-3.21-3.94-.01-7.87-.02-11.81 0-2.07.01-3.37 1.31-3.41 3.39-.03 1.57 0 3.13 0 4.7v19.51c0 2.12 1.18 3.51 3.11 3.53 4.18.05 8.35.04 12.53 0 1.69-.02 2.93-1.34 3.03-3s-.96-3.1-2.64-3.35c-1.06-.16-2.16-.11-3.24-.12-2.07-.01-4.15 0-6.24 0v-5.83h1.4c2.49 0 4.98.02 7.47-.01 1.88-.03 3.22-1.38 3.26-3.17.04-1.83-1.32-3.25-3.25-3.32-1.44-.05-2.89-.01-4.34-.01h-4.59v-5.82ZM28.49 60.42V40.38c0-.52.01-1.05-.02-1.57-.12-1.7-1.37-2.96-3-3.05-1.69-.09-3.11 1.08-3.35 2.8-.07.47-.07.96-.07 1.44v22.66c0 .56.01 1.13.11 1.68.25 1.4 1.4 2.51 2.82 2.53 4.3.05 8.6.06 12.89 0 1.6-.02 2.81-1.42 2.88-3.02.08-1.98-1.32-3.39-3.51-3.42-2.85-.04-5.7 0-8.75 0Zm15.3-8.99c0 4.02-.03 8.03.01 12.05.02 2.27 1.63 3.68 3.71 3.39 1.64-.23 2.69-1.58 2.7-3.58.02-6.47 0-12.93 0-19.4 0-1.65 0-3.29-.02-4.94-.02-1.33-.65-2.31-1.83-2.89-2.16-1.05-4.53.5-4.56 3.07-.06 4.1-.01 8.19-.02 12.29Z" ></path> </svg>, lineAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 107.12 108.31"> <g id="c" strokeWidth="0"> <path d="M45.71 88.27c-3.71-.8-7.33-1.39-10.84-2.38-10.64-3.01-19.73-8.48-26.65-17.28-10.84-13.78-10.99-33.35-.34-47.3C15.34 11.55 25.17 5.33 36.94 2.3c17.6-4.54 34.4-2.51 49.84 7.45 9.32 6.02 16.06 14.21 18.99 25.11 3.04 11.33.95 21.75-6.02 31.19C95.26 72.12 89.63 77 83.69 81.56c-11.21 8.59-22.43 17.16-33.65 25.74-.22.17-.45.34-.67.51-.74.54-1.55.68-2.38.26-.87-.44-1.26-1.18-1.26-2.15V88.28Zm4.47 13.24c.43-.3.66-.45.88-.62C61.47 92.93 71.89 84.99 82.27 77c4.84-3.72 9.4-7.76 13.16-12.62 7.81-10.1 9.34-21.1 4.43-32.88-3.5-8.4-9.58-14.63-17.35-19.17-14.11-8.24-29.17-9.82-44.83-5.6-10.33 2.78-19.2 8.1-25.74 16.73C4.17 33.7 2.23 45.02 6.85 57.13c3.53 9.24 10.27 15.67 18.84 20.3 6.92 3.73 14.38 5.63 22.17 6.32 1.6.14 2.31.93 2.31 2.56v15.19Z"></path> <path d="M52.28 42.36c0 3.27.01 6.53-.01 9.8 0 .55-.06 1.14-.24 1.65-.33.94-1.01 1.51-2.07 1.49-1.04-.02-1.89-.66-2.18-1.67-.09-.33-.14-.69-.14-1.04V35.15c0-.96.24-1.82 1.13-2.36 1.16-.7 2.29-.44 3.3.86 2.2 2.84 4.38 5.7 6.57 8.54.94 1.21 1.89 2.41 2.83 3.62l.3-.09v-1.74c0-2.89-.03-5.78.03-8.66.01-.68.18-1.42.5-2 .46-.81 1.33-1 2.22-.83.93.18 1.5.79 1.66 1.7.11.62.1 1.26.1 1.9.01 5.21.01 10.43.02 15.64 0 .42-.01.85-.03 1.27-.05 1.06-.55 1.81-1.56 2.16-1.03.36-1.88.01-2.53-.81-1.96-2.49-3.9-5-5.84-7.5-.95-1.22-1.91-2.44-2.84-3.68-.27-.36-.46-.79-.69-1.19l-.54.39ZM74.96 46.32v4.39h4.33c.91 0 1.83 0 2.74.07 1.62.11 2.42.85 2.44 2.19.02 1.38-.71 2.25-2.32 2.3-3.16.1-6.33.1-9.5.02-1.65-.04-2.39-.91-2.43-2.58-.05-2.15-.03-4.29-.03-6.44 0-3.59 0-7.18.01-10.77.01-2.28.78-3.05 3.06-3.06 2.92-.02 5.84-.01 8.77 0 1.55.01 2.43.85 2.49 2.28.05 1.21-.74 2.08-2.22 2.18-2.07.13-4.15.15-6.22.13-.89 0-1.2.26-1.27 1.18-.24 3.11-.11 3.3 3.05 3.33 1.34.01 2.68-.02 4.01.03 1.42.05 2.29.66 2.53 1.66.38 1.62-.53 2.85-2.28 2.92-1.83.08-3.66.04-5.49.06-.52 0-1.04.06-1.67.1ZM26.93 50.7h6.03c.56 0 1.13 0 1.68.11 1.17.22 1.99 1.21 1.96 2.28-.03 1.1-.87 2.13-2.07 2.16-3.41.07-6.82.06-10.23 0-1.06-.02-1.72-.74-1.9-1.81-.07-.41-.12-.84-.12-1.25 0-5.49-.01-10.98 0-16.46 0-.56.06-1.13.2-1.67.25-1 .94-1.54 1.97-1.61 1.02-.07 1.89.45 2.2 1.45.19.62.26 1.31.26 1.97.02 4.5.01 9.01.02 13.51zM39.18 43.86c0-2.99-.01-5.98 0-8.97.01-2.13 1.48-3.1 3.47-2.26.39.17.77.62.92 1.03.19.51.18 1.11.18 1.67.01 5.67 0 11.33 0 17 0 .28 0 .56-.02.84-.16 1.94-1.97 2.88-3.66 1.9-.83-.48-.88-1.32-.88-2.13-.02-3.03 0-6.05 0-9.08Z"></path> </g> </svg>, lineAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 99.01 99.01"> <g id="c" strokeWidth="0"> <path d="M49.6 0c27.34.07 49.47 22.27 49.41 49.56C98.95 76.94 76.68 99.12 49.36 99 22.01 98.89-.1 76.66 0 49.38.1 22.04 22.31-.07 49.6 0m.18 20.7c-8.49.15-16.08 2.3-22.48 7.72-4.96 4.19-8.03 9.44-8.18 16.1-.14 6.34 2.49 11.53 6.98 15.82 5.27 5.04 11.71 7.57 18.85 8.49 1.63.21 2.15.84 1.96 2.45-.18 1.52-.44 3.04-.49 4.57-.02.69.19 1.54.62 2.05.56.67 1.4.37 2.11-.03 3.25-1.8 6.58-3.47 9.74-5.41 7.24-4.45 13.57-9.89 18.07-17.23 1.8-2.94 2.82-6.13 2.92-9.57.18-6.28-2.25-11.53-6.67-15.85-6.56-6.4-14.69-8.88-23.42-9.11Z"></path> <path d="M54.77 45.3V39c0-1.33.53-1.98 1.54-1.98s1.53.65 1.54 1.99v10.82c0 .88-.21 1.62-1.13 1.91-.88.28-1.43-.23-1.93-.89-1.67-2.2-3.38-4.37-5.07-6.55-.22-.29-.47-.56-.9-1.07v6.8c0 .82-.28 1.43-1.08 1.71-1.05.37-1.99-.39-2.01-1.67-.03-2.65-.01-5.29-.01-7.94v-3.34c0-.81.26-1.45 1.07-1.71.79-.25 1.4.08 1.89.73 1.93 2.53 3.87 5.04 5.81 7.56.08-.03.17-.05.25-.08ZM63.35 45.98v2.75h3.32c.46 0 .92-.01 1.38.03.95.08 1.49.65 1.46 1.58-.03.88-.57 1.45-1.46 1.46-2.11.04-4.21.04-6.32 0-.96-.01-1.5-.64-1.51-1.55a654 654 0 0 1 0-11.72c0-.98.64-1.53 1.65-1.54 1.99-.01 3.98-.01 5.98 0 .99 0 1.61.49 1.68 1.5.07.91-.65 1.56-1.72 1.58-1.45.03-2.89 0-4.41 0v2.76h4.07c1.27 0 2.02.56 2.06 1.5.04 1-.72 1.62-2.05 1.63s-2.67 0-4.11 0ZM32.6 48.73c1.59 0 2.96-.02 4.33 0 1.19.02 1.88.62 1.87 1.56 0 .94-.71 1.52-1.9 1.53q-2.76.015-5.52 0c-1.34-.01-1.9-.55-1.91-1.87-.01-3.72-.01-7.43 0-11.15 0-1.13.57-1.77 1.5-1.8.98-.03 1.6.61 1.61 1.81.03 2.83.01 5.67.01 8.5v1.41ZM40.29 44.27c0-1.91.02-3.83 0-5.74-.01-1.06.47-1.54 1.52-1.55 1.03-.01 1.6.41 1.6 1.48V50.4c0 1.08-.61 1.46-1.63 1.44-.99-.03-1.48-.48-1.48-1.48v-6.08Z"></path> </g> </svg>, mastodon: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 40.09 42.98" height="24" width="24"> <g id="c"> <path id="d" strokeWidth="0" d="M40.09 14.11c0-9.32-6.11-12.05-6.11-12.05C30.9.64 25.61.05 20.12 0h-.14C14.49.05 9.2.64 6.12 2.05c0 0-6.11 2.74-6.11 12.06 0 2.13-.04 4.69.03 7.39.22 9.12 1.67 18.1 10.1 20.33 3.89 1.03 7.22 1.24 9.91 1.1 4.87-.27 7.61-1.74 7.61-1.74l-.16-3.54s-3.48 1.1-7.39.96c-3.88-.13-7.97-.42-8.59-5.18-.06-.44-.09-.89-.09-1.33 0 0 3.8.93 8.63 1.15 2.95.14 5.71-.17 8.52-.51 5.38-.64 10.07-3.96 10.66-6.99.93-4.78.86-11.66.86-11.66Zm-7.21 12.01h-4.47V15.16c0-2.31-.97-3.48-2.92-3.48-2.15 0-3.23 1.39-3.23 4.14v6h-4.45v-6c0-2.75-1.08-4.14-3.23-4.14-1.94 0-2.92 1.17-2.92 3.48v10.96H7.19V14.83c0-2.31.59-4.14 1.77-5.5 1.22-1.36 2.81-2.05 4.79-2.05 2.29 0 4.02.88 5.17 2.64l1.11 1.87 1.12-1.87c1.15-1.76 2.88-2.64 5.17-2.64 1.98 0 3.57.7 4.79 2.05 1.18 1.36 1.77 3.19 1.77 5.5z" ></path> </g> </svg>, mastodonAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 41.09 43.98" height="24" width="24"> <g id="c"> <path id="d" fill="none" stroke="#000" strokeMiterlimit="10" d="M40.59 14.61c0-9.32-6.11-12.05-6.11-12.05C31.4 1.15 26.11.55 20.62.51h-.14C14.99.56 9.7 1.15 6.62 2.56c0 0-6.11 2.73-6.11 12.05 0 2.13-.04 4.69.03 7.39.22 9.12 1.67 18.1 10.1 20.33 3.89 1.03 7.22 1.24 9.91 1.1 4.87-.27 7.61-1.74 7.61-1.74L28 38.15s-3.48 1.1-7.39.96c-3.88-.13-7.97-.42-8.59-5.18-.06-.44-.09-.89-.09-1.33 0 0 3.8.93 8.63 1.15 2.95.14 5.71-.17 8.52-.51 5.38-.64 10.07-3.96 10.66-6.99.93-4.78.86-11.66.86-11.66Zm-7.21 12.01h-4.47V15.66c0-2.31-.97-3.48-2.92-3.48-2.15 0-3.23 1.39-3.23 4.14v6h-4.45v-6c0-2.75-1.08-4.14-3.23-4.14-1.94 0-2.92 1.17-2.92 3.48v10.96H7.69V15.33c0-2.31.59-4.14 1.77-5.5 1.22-1.36 2.81-2.05 4.79-2.05 2.29 0 4.02.88 5.17 2.64l1.11 1.87 1.12-1.87c1.15-1.76 2.88-2.64 5.17-2.64 1.98 0 3.57.7 4.79 2.05 1.18 1.36 1.77 3.19 1.77 5.5z" ></path> </g> </svg>, mastodonAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 57 57" height="24" width="24"> <g id="c" strokeWidth="0"> <path d="M34.78 14.3c-2.29 0-4.02.88-5.17 2.64l-1.12 1.87-1.11-1.87c-1.15-1.76-2.88-2.64-5.17-2.64-1.98 0-3.57.7-4.79 2.05-1.18 1.36-1.77 3.19-1.77 5.5v11.29h4.47V22.18c0-2.31.97-3.48 2.92-3.48 2.15 0 3.23 1.39 3.23 4.14v6h4.45v-6c0-2.75 1.08-4.14 3.23-4.14 1.94 0 2.92 1.17 2.92 3.48v10.96h4.47V21.85c0-2.31-.59-4.14-1.77-5.5-1.22-1.36-2.81-2.05-4.79-2.05"></path> <path d="M28.5 0C12.76 0 0 12.76 0 28.5S12.76 57 28.5 57 57 44.24 57 28.5 44.24 0 28.5 0m19.19 32.78c-.59 3.03-5.28 6.35-10.66 6.99-2.81.34-5.57.64-8.52.51-4.82-.22-8.63-1.15-8.63-1.15 0 .45.03.89.09 1.33.63 4.76 4.72 5.04 8.59 5.18 3.91.13 7.39-.96 7.39-.96l.16 3.54s-2.74 1.47-7.61 1.74c-2.69.15-6.02-.07-9.91-1.1-8.43-2.23-9.88-11.22-10.1-20.33-.07-2.71-.03-5.26-.03-7.39 0-9.32 6.11-12.05 6.11-12.05 3.08-1.41 8.37-2.01 13.86-2.05h.14c5.49.05 10.78.64 13.86 2.05 0 0 6.11 2.73 6.11 12.05 0 0 .08 6.88-.86 11.66Z"></path> </g> </svg>, mewe: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 80.4 28.73" height="24" width="24"> <path id="c" strokeWidth="0" d="M10.15 0a2.57 2.57 0 1 0 0 5.14 2.57 2.57 0 1 0 0-5.14m26.41 0a2.57 2.57 0 1 0 0 5.14 2.57 2.57 0 1 0 0-5.14m14.78 0a2.57 2.57 0 1 0 0 5.14 2.57 2.57 0 1 0 0-5.14m14.8 0a2.57 2.57 0 1 0 0 5.14 2.57 2.57 0 1 0 0-5.14m-14.9 7.73c-.9 0-1.52.59-1.81 1.43l-4.62 13.99-4.7-14.05c-.23-.79-.96-1.33-1.78-1.31-.99 0-1.84.76-1.84 1.75 0 .23.06.5.15.7l6.05 16.94c.35.93.99 1.49 1.87 1.49h.35c.87 0 1.54-.55 1.87-1.49l4.56-13.35 4.56 13.35c.32.93.96 1.49 1.84 1.49h.35c.87 0 1.55-.58 1.87-1.49L66 10.24c.1-.23.16-.48.17-.73-.02-.96-.81-1.73-1.78-1.72-.88 0-1.49.56-1.75 1.28l-4.7 14.08-4.61-13.99c-.26-.85-.9-1.43-1.81-1.43h-.26Zm-49.43.09C.81 7.81 0 8.62 0 9.61v17.16c0 .99.76 1.75 1.75 1.75.96.02 1.76-.74 1.78-1.7V14.53l4.96 7.45c.38.58.85.93 1.49.93.67 0 1.14-.35 1.52-.94l4.99-7.5v12.26c.01.98.81 1.77 1.79 1.78.98.02 1.79-.76 1.81-1.74V9.63c0-1-.8-1.81-1.8-1.81h-.39a1.79 1.79 0 0 0-1.63.93l-6.22 9.73-6.2-9.7c-.34-.6-.98-.97-1.66-.96zm28.03 4.82c-4.41 0-7.54 3.62-7.54 8.03v.06c0 4.76 3.45 8 7.92 8 2.4 0 4.15-.79 5.55-2.04.29-.28.46-.67.47-1.08.02-.77-.58-1.41-1.35-1.43h-.05c-.33-.01-.65.1-.9.32a5.56 5.56 0 0 1-3.65 1.34c-2.28 0-4.06-1.4-4.44-3.91h9.66c.9 0 1.66-.7 1.66-1.69 0-3.56-2.42-7.59-7.33-7.59Zm43.23 0c-4.41 0-7.54 3.62-7.54 8.03v.06c0 4.76 3.45 8 7.92 8 2.4 0 4.15-.79 5.55-2.04.29-.28.46-.67.47-1.08.02-.77-.58-1.41-1.35-1.43h-.05c-.33-.01-.66.1-.91.32a5.54 5.54 0 0 1-3.65 1.34c-2.28 0-4.06-1.4-4.44-3.91h9.67c.9 0 1.66-.7 1.66-1.69 0-3.56-2.43-7.59-7.33-7.59Zm-43.26 2.89c2.34 0 3.68 1.78 3.92 4.06h-7.92c.32-2.4 1.84-4.06 4-4.06m43.23 0c2.33 0 3.68 1.78 3.91 4.06h-7.92c.32-2.4 1.84-4.06 4-4.06Z" ></path> </svg>, meweAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 81.4 29.73"> <path id="c" fill="none" stroke="#000" strokeMiterlimit="10" d="M10.65.5a2.57 2.57 0 1 0 0 5.14 2.57 2.57 0 1 0 0-5.14Zm26.41 0a2.57 2.57 0 1 0 0 5.14 2.57 2.57 0 1 0 0-5.14Zm14.78 0a2.57 2.57 0 1 0 0 5.14 2.57 2.57 0 1 0 0-5.14Zm14.8 0a2.57 2.57 0 1 0 0 5.14 2.57 2.57 0 1 0 0-5.14Zm-14.9 7.73c-.9 0-1.52.59-1.81 1.43l-4.62 13.99-4.7-14.05c-.23-.79-.96-1.33-1.78-1.31-.99 0-1.84.76-1.84 1.75 0 .23.06.5.15.7l6.05 16.94c.35.93.99 1.49 1.87 1.49h.35c.87 0 1.54-.55 1.87-1.49l4.56-13.35 4.56 13.35c.32.93.96 1.49 1.84 1.49h.35c.87 0 1.55-.58 1.87-1.49l6.04-16.94c.1-.23.16-.48.17-.73-.02-.96-.81-1.73-1.78-1.72-.88 0-1.49.56-1.75 1.28l-4.7 14.08-4.61-13.99c-.26-.85-.9-1.43-1.81-1.43h-.26Zm-49.43.09c-1 0-1.81.8-1.81 1.8v17.16c0 .99.76 1.75 1.75 1.75.96.02 1.76-.74 1.78-1.7V15.04l4.96 7.45c.38.58.85.93 1.49.93.67 0 1.14-.35 1.52-.94l4.99-7.5v12.26c.01.98.81 1.77 1.79 1.78.98.02 1.79-.76 1.81-1.74V10.13c0-1-.8-1.81-1.8-1.81h-.39a1.79 1.79 0 0 0-1.63.93l-6.22 9.73-6.2-9.69c-.34-.6-.98-.97-1.66-.96h-.38Zm28.03 4.82c-4.41 0-7.54 3.62-7.54 8.03v.06c0 4.76 3.45 8 7.92 8 2.4 0 4.15-.79 5.55-2.04.29-.28.46-.67.47-1.08.02-.77-.58-1.41-1.35-1.43h-.05c-.33-.01-.65.1-.9.32a5.56 5.56 0 0 1-3.65 1.34c-2.28 0-4.06-1.4-4.44-3.91h9.66c.9 0 1.66-.7 1.66-1.69 0-3.56-2.42-7.59-7.33-7.59Zm43.23 0c-4.41 0-7.54 3.62-7.54 8.03v.06c0 4.76 3.45 8 7.92 8 2.4 0 4.15-.79 5.55-2.04.29-.28.46-.67.47-1.08.02-.77-.58-1.41-1.35-1.43h-.05c-.33-.01-.66.1-.91.32a5.54 5.54 0 0 1-3.65 1.34c-2.28 0-4.06-1.4-4.44-3.91h9.67c.9 0 1.66-.7 1.66-1.69 0-3.56-2.43-7.59-7.33-7.59Zm-43.26 2.89c2.34 0 3.68 1.78 3.92 4.06h-7.92c.32-2.4 1.84-4.06 4-4.06Zm43.23 0c2.33 0 3.68 1.78 3.91 4.06h-7.92c.32-2.4 1.84-4.06 4-4.06Z" ></path> </svg>, meweAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 93 93"> <g id="c" strokeWidth="0"> <path d="M46.5 0C20.82 0 0 20.82 0 46.5S20.82 93 46.5 93 93 72.18 93 46.5 72.18 0 46.5 0m25.94 32.14a2.57 2.57 0 1 1 0 5.14 2.57 2.57 0 1 1 0-5.14m-14.8 0a2.57 2.57 0 1 1 0 5.14 2.57 2.57 0 1 1 0-5.14m-14.78 0a2.57 2.57 0 1 1 0 5.14 2.57 2.57 0 1 1 0-5.14m-26.41 0a2.57 2.57 0 1 1 0 5.14 2.57 2.57 0 1 1 0-5.14m9.94 26.73v.04c-.02.98-.83 1.76-1.81 1.74-.98-.01-1.77-.8-1.79-1.78V46.61l-4.99 7.5c-.38.59-.85.94-1.52.94s-1.11-.35-1.49-.93l-4.96-7.45v12.29c-.02.96-.82 1.72-1.78 1.7-.99 0-1.75-.76-1.75-1.75V41.75c0-1 .81-1.8 1.81-1.8h.38c.69 0 1.33.36 1.66.96l6.2 9.69 6.22-9.73c.33-.59.96-.95 1.63-.93h.4c1 0 1.8.81 1.8 1.81v17.11Zm15.42-4.81h-9.66c.38 2.51 2.16 3.91 4.44 3.91 1.34 0 2.64-.47 3.65-1.34.25-.22.57-.33.9-.32h.05c.77.02 1.37.66 1.35 1.43 0 .41-.18.8-.47 1.08-1.4 1.25-3.16 2.04-5.55 2.04-4.47 0-7.92-3.25-7.92-8v-.06c0-4.41 3.13-8.03 7.54-8.03 4.91 0 7.33 4.03 7.33 7.59 0 .99-.76 1.69-1.66 1.69Zm22.57 6.74h-.35c-.88 0-1.52-.55-1.84-1.49l-4.56-13.35-4.56 13.35c-.32.93-.99 1.49-1.87 1.49h-.35c-.88 0-1.52-.55-1.87-1.49l-6.05-16.94a1.9 1.9 0 0 1-.15-.7c0-.99.85-1.75 1.84-1.75.82-.01 1.55.52 1.78 1.31l4.7 14.05 4.62-13.99c.29-.85.9-1.43 1.81-1.43h.26c.91 0 1.55.59 1.81 1.43l4.61 13.99 4.7-14.08c.26-.73.87-1.28 1.75-1.28.96-.01 1.76.76 1.78 1.72-.01.25-.07.5-.17.73l-6.04 16.94c-.32.9-.99 1.49-1.87 1.49Zm15.43-2.83c1.34 0 2.64-.47 3.65-1.34.25-.22.58-.33.91-.32h.05c.77.02 1.37.66 1.35 1.43 0 .41-.17.8-.47 1.08-1.4 1.25-3.16 2.04-5.55 2.04-4.47 0-7.92-3.25-7.92-8v-.06c0-4.41 3.13-8.03 7.54-8.03 4.9 0 7.33 4.03 7.33 7.59 0 .99-.76 1.69-1.66 1.69h-9.67c.38 2.51 2.16 3.91 4.44 3.91Z"></path> <path d="M79.34 47.66c-2.16 0-3.68 1.66-4 4.06h7.92c-.23-2.28-1.58-4.06-3.91-4.06ZM36.11 47.66c-2.16 0-3.68 1.66-4 4.06h7.92c-.23-2.28-1.58-4.06-3.92-4.06"></path> </g> </svg>, parler: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 96.96 97.01" height="24" width="24"> <g id="c" strokeWidth="0"> <path d="M29.53 16.11H.7c-.72 0-.74 0-.68-.72C.58 9 3.69 4.33 9.48 1.51 11.66.45 14 .01 16.41.01c11.63 0 23.26-.03 34.9.01 3.1.01 6.21.09 9.3.36 5.27.45 10.25 2 14.91 4.52 8.34 4.52 14.44 11.14 18.24 19.84 1.87 4.3 2.94 8.81 3.16 13.49.6 12.56-3.8 23.13-12.86 31.76-4.08 3.88-8.86 6.69-14.19 8.53-3.98 1.38-8.07 2.17-12.29 2.19-8.23.04-16.46.03-24.69.05-.38 0-.53-.12-.53-.52.01-2.67-.02-5.34.02-8 .05-3.65 3.1-6.96 6.72-7.37.52-.06 1.05-.09 1.57-.09 5.44 0 10.88.05 16.32-.03 9.77-.13 18.52-6.11 22.25-15.15 1.8-4.35 2.24-8.87 1.37-13.49-1.23-6.49-4.58-11.65-9.95-15.47-3.31-2.35-7.01-3.79-11.05-4.21-1.78-.19-3.59-.23-5.39-.24-8.23-.02-16.46-.01-24.69-.01v-.08Z"></path> <path d="M35.79 32.34h20.77c3.5 0 6.5 2.14 7.66 5.43 1.8 5.09-2 10.61-7.4 10.65-7.36.05-14.72.02-22.08.02H24.4c-2.6 0-4.77.95-6.44 2.94-1.24 1.48-1.85 3.2-1.85 5.13v39.7q0 .83-.81.77c-5.07-.41-9.17-2.59-12.17-6.73-2-2.77-2.98-5.89-2.98-9.31-.01-10.85.01-21.7-.02-32.55 0-2.33.3-4.58 1.27-6.7 2.41-5.23 6.48-8.3 12.17-9.18.81-.13 1.64-.16 2.46-.16 6.58-.01 13.16 0 19.74 0Z"></path> </g> </svg>, parlerAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 101.96 102"> <g id="c" strokeWidth="0"> <path d="M35.38 85.77c-1.1 0-1.79-.46-2.18-.85s-.85-1.08-.84-2.18v-3.2c0-1.61 0-3.22.02-4.83.07-4.87 4.08-9.27 8.95-9.81.98-.11 2.03-.1 3.06-.1h4.26c3.55 0 7.22.02 10.82-.03 8.77-.12 16.61-5.46 19.98-13.6 1.59-3.86 2-7.92 1.22-12.08-1.11-5.86-4.03-10.4-8.95-13.9-2.99-2.12-6.3-3.39-9.86-3.76-1.45-.15-3.03-.22-5.13-.23-6.05-.02-12.11-.02-18.16-.01h-8.93v-.08H3.2c-.58 0-1.65 0-2.48-.91-.83-.9-.74-1.96-.69-2.53.65-7.36 4.3-12.72 10.86-15.91C13.27.6 15.97.01 18.91.01h6.6C34.95 0 44.38 0 53.82.02c3.73.01 6.75.13 9.5.36 5.52.47 10.86 2.1 15.89 4.82 8.83 4.79 15.34 11.86 19.34 21.04 2 4.58 3.13 9.42 3.37 14.37.62 13.15-3.96 24.48-13.63 33.69-4.23 4.03-9.31 7.08-15.09 9.08-4.41 1.53-8.81 2.31-13.1 2.33-5.22.02-10.44.03-15.66.04-3.01 0-6.03 0-9.04.02Zm9-15.97c-.85 0-1.72-.02-2.51.07-2.36.26-4.47 2.56-4.5 4.92-.02 1.58-.02 3.17-.02 4.75v1.23c2.35 0 4.71 0 7.06-.01 5.21 0 10.43-.01 15.64-.04 3.78-.02 7.54-.69 11.48-2.05 5.11-1.77 9.57-4.45 13.28-7.98 8.57-8.16 12.64-18.2 12.09-29.83-.21-4.35-1.2-8.59-2.95-12.61-3.54-8.13-9.31-14.4-17.14-18.64-4.41-2.39-9.1-3.82-13.93-4.23-2.61-.22-5.5-.33-9.09-.35-9.43-.03-18.86-.02-28.28-.02h-6.6c-2.21 0-4.11.41-5.83 1.25-4.33 2.11-6.89 5.34-7.79 9.86h29.24v.08h4.02c6.06 0 12.12 0 18.17.01 2.28 0 4.01.08 5.64.25 4.43.46 8.54 2.03 12.24 4.66 5.93 4.22 9.62 9.96 10.96 17.05.97 5.12.46 10.14-1.51 14.91-4.13 9.99-13.76 16.55-24.53 16.7-3.64.05-7.33.04-10.9.03h-4.24ZM32.03 18.61"></path> <path d="M18.21 102c-.22 0-.43-.02-.6-.03-5.9-.48-10.61-3.08-14-7.76C1.32 91.05.16 87.43.15 83.44V70.65c0-6.59 0-13.17-.01-19.76 0-3.05.47-5.51 1.5-7.75 2.77-6.02 7.5-9.59 14.06-10.61.83-.13 1.71-.19 2.84-.19h40.53c4.56 0 8.5 2.79 10.02 7.09 1.12 3.17.62 6.74-1.34 9.53-1.97 2.81-5.03 4.43-8.4 4.45-5.16.04-10.31.03-15.48.02H26.88c-1.9 0-3.33.65-4.5 2.05-.85 1.01-1.26 2.17-1.26 3.53v39.7c0 .64 0 1.72-.91 2.56-.66.61-1.41.73-2.01.73Zm10.6-64.66H18.56c-.87 0-1.52.04-2.09.13-4.86.75-8.23 3.29-10.28 7.76-.72 1.56-1.05 3.35-1.04 5.65.02 6.59.02 13.18.01 19.77v12.79c0 2.91.85 5.55 2.51 7.84 2.15 2.97 4.93 4.77 8.46 5.45V59.01c0-2.55.82-4.82 2.43-6.74 2.1-2.51 4.98-3.83 8.33-3.83h16.99c5.14 0 10.29.01 15.43-.02 1.73-.01 3.31-.86 4.34-2.32 1.05-1.5 1.31-3.32.72-4.99-.81-2.28-2.89-3.76-5.31-3.76H28.8Z"></path> </g> </svg>, parlerAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 126 126"> <path id="c" strokeWidth="0" d="M63 0C28.21 0 0 28.21 0 63s28.21 63 63 63 63-28.21 63-63S97.79 0 63 0M37.49 65.87c-1.24 1.48-1.85 3.2-1.85 5.14v39.7q0 .83-.81.77c-5.07-.41-9.17-2.59-12.17-6.73-2-2.77-2.98-5.89-2.98-9.31-.01-10.85.01-21.7-.02-32.55 0-2.33.3-4.58 1.27-6.7 2.41-5.23 6.48-8.3 12.17-9.18.81-.13 1.64-.16 2.46-.16 6.58-.01 13.16 0 19.74 0h20.77c3.5 0 6.5 2.14 7.66 5.43 1.8 5.09-2 10.61-7.4 10.65-7.36.05-14.72.02-22.08.02H43.91c-2.6 0-4.77.95-6.44 2.94Zm66.08 18.62c-4.08 3.88-8.86 6.69-14.19 8.53-3.98 1.38-8.07 2.17-12.29 2.19-8.23.04-16.46.03-24.69.05-.38 0-.53-.12-.53-.52.01-2.67-.02-5.34.02-8 .05-3.65 3.1-6.96 6.72-7.37.52-.06 1.05-.09 1.57-.09 5.44 0 10.88.05 16.32-.03 9.77-.13 18.52-6.11 22.25-15.15 1.8-4.35 2.24-8.87 1.37-13.49-1.23-6.49-4.58-11.65-9.95-15.47-3.31-2.35-7.01-3.79-11.05-4.21-1.78-.19-3.59-.23-5.39-.24-8.23-.02-16.46-.01-24.69-.01v-.08H20.21c-.72 0-.74 0-.68-.72.56-6.39 3.67-11.06 9.46-13.88 2.18-1.06 4.51-1.5 6.93-1.5 11.63 0 23.26-.03 34.9.01 3.1.01 6.21.09 9.3.36 5.27.45 10.25 2 14.91 4.52 8.34 4.52 14.44 11.14 18.24 19.84 1.87 4.3 2.94 8.81 3.16 13.49.6 12.56-3.8 23.13-12.86 31.76Z" ></path> </svg>, quora: <svg xmlns="http://www.w3.org/2000/svg" width="800" height="800" viewBox="-0.5 0 24 24" > <path d="M23.254 19.014h-.053a3.9 3.9 0 0 1-.222 1.74l.009-.027a4.5 4.5 0 0 1-1.336 2.194l-.004.004a4.7 4.7 0 0 1-3.226 1.069h.011l-.132.002a4.83 4.83 0 0 1-2.985-1.027l.011.008a7.2 7.2 0 0 1-1.963-2.262l-.019-.037a10 10 0 0 1-2.732.375c-1.249 0-2.446-.226-3.55-.639l.07.023a10.6 10.6 0 0 1-5.017-3.642l-.019-.027A9.9 9.9 0 0 1 .004 10.66l.001-.111v.006l-.001-.131c0-1.997.578-3.859 1.575-5.427l-.024.041A10.8 10.8 0 0 1 5.44 1.366l.055-.028a10.4 10.4 0 0 1 5.137-1.339h.005c1.896.002 3.675.498 5.217 1.367l-.054-.028a10.47 10.47 0 0 1 3.885 3.6l.025.042a10.57 10.57 0 0 1 1.514 5.482v.093-.005.068c0 1.691-.395 3.289-1.099 4.707l.028-.062a10.9 10.9 0 0 1-2.872 3.464l-.023.017c.331.534.72.992 1.169 1.384l.007.006c.416.301.937.481 1.499.482l.076.002c.48 0 .912-.206 1.213-.534l.001-.001c.246-.289.403-.659.426-1.066v-.005zm-7.713-3.106c.583-1.426.922-3.08.922-4.814q0-.287-.012-.569l.001.027q0-4.285-1.42-6.374a4.97 4.97 0 0 0-4.433-2.091l.016-.001a4.894 4.894 0 0 0-4.382 2.076l-.01.016q-1.395 2.088-1.368 6.35t1.395 6.347a4.83 4.83 0 0 0 4.382 2.091l-.017.001.107.001c.594 0 1.165-.099 1.698-.28l-.037.011a10.7 10.7 0 0 0-1.459-2.263l.013.016a3.17 3.17 0 0 0-2.304-1.027h-.002l-.053-.001c-.351 0-.683.08-.979.223l.013-.006-.697-1.285a5.47 5.47 0 0 1 3.707-1.231h-.011a5.449 5.449 0 0 1 3.076.817l-.023-.013a7.3 7.3 0 0 1 1.859 1.951l.017.028z"></path> </svg>, quoraAlt: <svg xmlns="http://www.w3.org/2000/svg" width="800" height="800" fill="none" viewBox="0 0 24 24" > <path stroke="#000" strokeLinecap="round" strokeLinejoin="round" d="M14.448 20.125c.56.656 1.74.85 2.34.875 2.924-.076 3.427-2.63 3.142-3.954-.962 2.471-2.845 1.18-3.342.437s-1.084-1.812-1.58-2.49c-2.47-3.286-5.292-1.978-6.394-.913 2.891-.587 4.294 2.678 4.633 4.383a7 7 0 0 1-1.872.256c-4.073 0-7.375-3.52-7.375-7.86S7.302 3 11.375 3s7.375 3.519 7.375 7.86c0 1.782-.257 2.978-1.196 4.296-.386-.622-1.48-2.106-2.09-2.562.4-2.865-.456-8.042-4.09-8.096-4.126-.06-4.48 5.628-4.14 8.48" ></path> </svg>, quoraAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 44 44"> <g id="c" strokeWidth="0"> <path d="M20.99 12.09c-4.02 0-5.76 2.86-5.76 8.45s1.74 8.39 5.76 8.39a6.4 6.4 0 0 0 1.75-.22c-.83-1.64-1.8-3.29-3.71-3.29-.36 0-.73.06-1.06.21l-.65-1.29c.79-.68 2.06-1.21 3.69-1.21 2.54 0 3.85 1.23 4.89 2.79.61-1.34.9-3.14.9-5.38 0-5.58-1.74-8.45-5.82-8.45Z"></path> <path d="M22 0C9.85 0 0 9.85 0 22s9.85 22 22 22 22-9.85 22-22S34.15 0 22 0m6.82 34c-2.65 0-4.05-1.53-5.1-3.33v-.02c-.87.24-1.81.37-2.73.37-5.35 0-10.59-4.27-10.59-10.48C10.4 14.27 15.64 10 20.99 10s10.63 4.24 10.63 10.54c0 3.5-1.64 6.35-4.01 8.19.76 1.15 1.54 1.91 2.65 1.91 1.2 0 1.68-.91 1.77-1.65h1.56c.09.97-.4 5.01-4.77 5.01"></path> </g> </svg>, ravelry: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" id="Capa_1" width="800" height="800" fill="#000" version="1.1" viewBox="0 0 96.949 96.949" > <path d="M32.714 21.392C50.643-1.922 61.702-7.425 83.168 11.087L73.51 27.148c-2.35-1.53-4.402-2.847-6.438-4.193-11.404-7.533-22.288-5.862-28.751 6.188-3.571 6.667-5.184 14.943-5.623 22.606-.848 14.899-.249 29.883-.249 45.2H13.782V2.643h18.933z"></path> </svg>, ravelryAlt: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" id="Capa_1" width="800" height="800" fill="#fff" stroke="#fff" version="1.1" viewBox="-4.85 -4.85 106.65 106.65" > <path id="SVGRepo_tracerCarrier" stroke="#000" strokeLinecap="round" strokeLinejoin="round" strokeWidth="6.786" d="M32.714 21.392C50.643-1.922 61.702-7.425 83.168 11.087L73.51 27.148c-2.35-1.53-4.402-2.847-6.438-4.193-11.404-7.533-22.288-5.862-28.751 6.188-3.571 6.667-5.184 14.943-5.623 22.606-.848 14.899-.249 29.883-.249 45.2H13.782V2.643h18.933z" ></path> <path id="SVGRepo_iconCarrier" d="M32.714 21.392C50.643-1.922 61.702-7.425 83.168 11.087L73.51 27.148c-2.35-1.53-4.402-2.847-6.438-4.193-11.404-7.533-22.288-5.862-28.751 6.188-3.571 6.667-5.184 14.943-5.623 22.606-.848 14.899-.249 29.883-.249 45.2H13.782V2.643h18.933z" ></path> </svg>, ravelryAlt2: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" id="Capa_1" width="800" height="800" fill="#000" version="1.1" viewBox="0 0 97.75 97.75" > <path d="M48.875 0C21.883 0 0 21.883 0 48.875S21.883 97.75 48.875 97.75 97.75 75.867 97.75 48.875 75.867 0 48.875 0m23.684 32.96c-1.754-1.142-3.287-2.124-4.806-3.129-8.511-5.622-16.633-4.374-21.456 4.617-2.665 4.976-3.868 11.151-4.196 16.87-.633 11.119-.186 22.3-.186 33.73H27.984V14.672h14.129v13.991c13.38-17.398 21.632-21.504 37.653-7.689z"></path> </svg>, rumble: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 104.71 104.71" height="24" width="24"> <g id="c" strokeWidth="0"> <path d="M63.65 47.33a85 85 0 0 0-15.26-8.79c-3.89-1.73-8.29.91-8.72 5.14-.62 6-.62 11.34 0 17.34.44 4.23 4.84 6.87 8.72 5.14 4.12-1.83 9.54-4.65 15.26-8.79 3.39-2.45 3.39-7.59 0-10.04"></path> <path d="M52.35 0C23.44 0 0 23.44 0 52.35s23.44 52.35 52.35 52.35 52.35-23.44 52.35-52.35S81.27 0 52.35 0m33.3 67.15c-8.26 8.11-32.27 24.79-46.97 24.79-6.25 0-12.5-2.08-16.67-12.5s-4.17-27.08-4.17-27.08 0-16.67 4.17-27.08c4.17-10.42 10.42-12.5 16.67-12.5 14.69 0 38.7 16.68 46.97 24.79 3.46 3.39 7.2 7.66 7.2 14.79s-3.74 11.4-7.2 14.79"></path> </g> </svg>, rumbleAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 76 80.17"> <path id="c" fill="none" stroke="#000" strokeMiterlimit="10" d="M21.33 79.67c14.69 0 38.7-16.68 46.97-24.79 3.46-3.39 7.2-7.66 7.2-14.79s-3.74-11.4-7.2-14.79C60.04 17.18 36.03.5 21.33.5 15.08.5 8.83 2.58 4.67 13 .5 23.42.5 40.08.5 40.08s0 16.67 4.17 27.08 10.42 12.5 16.67 12.5Zm.99-48.26c.44-4.23 4.84-6.87 8.72-5.14 4.12 1.83 9.54 4.65 15.26 8.79 3.39 2.45 3.39 7.59 0 10.04a85 85 0 0 1-15.26 8.79c-3.89 1.73-8.29-.91-8.72-5.14-.62-6-.62-11.34 0-17.34Z" ></path> </svg>, rumbleAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 75 79.17"> <path id="c" strokeWidth="0" d="M20.83 79.17c14.69 0 38.7-16.68 46.97-24.79 3.46-3.39 7.2-7.66 7.2-14.79s-3.74-11.4-7.2-14.79C59.54 16.68 35.53 0 20.83 0 14.58 0 8.33 2.08 4.17 12.5 0 22.92 0 39.58 0 39.58s0 16.67 4.17 27.08 10.42 12.5 16.67 12.5Zm.99-48.26c.44-4.23 4.84-6.87 8.72-5.14 4.12 1.83 9.54 4.65 15.26 8.79 3.39 2.45 3.39 7.59 0 10.04a85 85 0 0 1-15.26 8.79c-3.89 1.73-8.29-.91-8.72-5.14-.62-6-.62-11.34 0-17.34" ></path> </svg>, snapchat: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <path fill="#000" strokeMiterlimit="10" strokeWidth="0" d="M127.857 1.407c-69.837 0-126.45 56.613-126.45 126.45s56.613 126.45 126.45 126.45 126.45-56.613 126.45-126.45-56.613-126.45-126.45-126.45m77.027 167.93c-1.348 3.16-8.168 5.781-19.712 7.563-1.084.168-1.54 1.919-2.164 4.785-.258 1.183-.52 2.343-.88 3.563-.336 1.147-1.08 1.709-2.284 1.709h-.18c-.78 0-1.888-.144-3.284-.416-2.44-.475-5.176-.916-8.658-.916-2.029 0-4.13.177-6.244.528-4.296.716-7.966 3.307-11.85 6.053-5.44 3.846-11.594 8.196-20.796 8.196-.439 0-.857-.016-1.175-.03q-.38.031-.773.03c-9.202 0-15.354-4.35-20.785-8.19-3.892-2.749-7.562-5.345-11.861-6.06a38 38 0 0 0-6.241-.527c-3.656 0-6.548.567-8.658.98-1.298.253-2.42.472-3.285.472-.907 0-2.006-.202-2.467-1.767-.362-1.237-.624-2.434-.877-3.589-.63-2.883-1.087-4.642-2.166-4.807-11.54-1.782-18.36-4.404-19.72-7.582a3 3 0 0 1-.24-1.003 1.855 1.855 0 0 1 1.549-1.933c9.166-1.51 17.315-6.354 24.225-14.404 5.353-6.233 7.98-12.187 8.261-12.845.014-.03.025-.059.042-.09 1.332-2.703 1.596-5.035.79-6.938-1.487-3.507-6.413-5.069-9.672-6.103-.81-.256-1.577-.5-2.19-.742-2.888-1.14-7.64-3.552-7.004-6.879.46-2.425 3.67-4.116 6.263-4.116.72 0 1.357.126 1.897.379 2.93 1.374 5.566 2.068 7.834 2.068 2.821 0 4.181-1.073 4.513-1.38q-.126-2.31-.278-4.62c-.663-10.528-1.487-23.634 1.866-31.148 10.031-22.494 31.309-24.245 37.589-24.245q1.556-.014 3.11-.028c6.298 0 27.617 1.75 37.657 24.259 3.353 7.52 2.527 20.637 1.863 31.177l-.03.506c-.09 1.43-.175 2.784-.248 4.1.31.286 1.557 1.27 4.092 1.368 2.16-.082 4.645-.776 7.381-2.057.846-.396 1.782-.48 2.417-.48.961 0 1.939.188 2.754.528l.045.017c2.32.823 3.841 2.47 3.875 4.2.028 1.614-1.17 4.025-7.064 6.351-.605.24-1.375.484-2.19.742-3.262 1.034-8.182 2.596-9.669 6.103-.809 1.9-.542 4.235.79 6.935l.042.09c.41.961 10.338 23.599 32.486 27.246a1.854 1.854 0 0 1 1.549 1.933 3 3 0 0 1-.245 1.015" ></path> </svg>, snapchatAlt: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <path fill="#000" strokeMiterlimit="10" strokeWidth="0" d="M129.413 246.742a43 43 0 0 1-1.832-.045q-.633.046-1.284.045c-15.626 0-25.855-7.236-34.88-13.623-5.96-4.212-11.578-8.18-17.816-9.217a58.7 58.7 0 0 0-9.526-.806c-5.547 0-10.003.871-13.257 1.503-2.27.444-4.182.818-5.848.818-4.319 0-5.997-2.636-6.643-4.85-.607-2.065-1.034-4.021-1.447-5.915-.34-1.551-1.012-4.625-1.576-5.598-19.76-3.088-30.652-7.581-33.282-13.735a7.4 7.4 0 0 1-.604-2.54 5.765 5.765 0 0 1 4.825-6.03c13.999-2.305 26.475-9.743 37.083-22.104 8.27-9.63 12.333-18.81 12.769-19.827l.135-.292c1.745-3.544 2.15-6.492 1.191-8.748-1.874-4.42-9.012-6.685-13.732-8.183-1.369-.432-2.659-.846-3.69-1.253-12.01-4.743-13.665-10.31-12.937-14.143 1.349-7.095 11.594-10.543 17.009-8 4.313 2.02 8.13 3.046 11.344 3.046 2.099 0 3.49-.435 4.324-.834q-.164-2.886-.354-5.77c-1.079-17.177-2.422-38.519 3.22-51.167 16.743-37.541 52.23-40.458 62.709-40.458l4.945-.048c10.532 0 46.095 2.92 62.846 40.481 5.645 12.66 4.3 34.024 3.22 51.193l-.053.823c-.11 1.703-.211 3.341-.301 4.934.762.363 1.978.76 3.763.827 2.863-.118 6.471-1.136 10.509-3.03 1.815-.851 3.754-1.03 5.06-1.03 1.903 0 3.85.376 5.489 1.058 4.749 1.684 7.915 5.34 7.997 9.285.09 5.052-4.31 9.368-13.08 12.83-1.015.402-2.313.818-3.687 1.25-4.721 1.501-11.856 3.766-13.733 8.183-.96 2.257-.556 5.202 1.197 8.756l.13.284c.635 1.481 15.907 36.336 49.852 41.928a5.77 5.77 0 0 1 4.827 6.025 7.5 7.5 0 0 1-.626 2.59c-2.605 6.104-13.491 10.589-33.268 13.68-.562.966-1.228 4.018-1.56 5.544-.424 1.936-.856 3.844-1.46 5.898-.883 3.018-3.198 4.749-6.351 4.749h-.29c-1.433 0-3.327-.233-5.794-.717-3.78-.736-8.008-1.416-13.314-1.416-3.088 0-6.294.273-9.534.807-6.241 1.04-11.855 5.007-17.796 9.205-9.025 6.396-19.265 13.637-34.889 13.637m-1.933-5.676.191.008c.472.026 1.093.048 1.742.048 13.834 0 23.304-6.693 31.652-12.597 6.483-4.583 12.603-8.91 20.12-10.161a64 64 0 0 1 10.453-.882c5.786 0 10.335.73 14.39 1.52 2.59.506 3.996.612 4.718.612h.29c.671 0 .77-.073.958-.713.553-1.88.96-3.682 1.36-5.514 1.079-4.962 2.014-9.25 5.777-9.835 24.77-3.821 28.755-8.947 29.384-10.425q.154-.353.174-.677c-37.083-6.247-53.555-43.822-54.235-45.42-2.515-5.098-2.962-9.62-1.335-13.45 2.886-6.794 11.504-9.531 17.205-11.34 1.237-.391 2.403-.76 3.322-1.122 8.902-3.515 9.543-6.626 9.526-7.497-.031-1.531-1.813-3.229-4.33-4.125-2.212-.91-4.752-.89-6.21-.208-4.727 2.214-9.066 3.409-12.898 3.555-5.078-.191-7.669-2.113-8.557-2.931l-.975-.896.068-1.324c.115-2.107.25-4.285.396-6.587l.053-.809c1.043-16.56 2.34-37.16-2.742-48.557-15.374-34.47-48.04-37.148-57.687-37.148l-4.954.048c-9.647 0-42.234 2.678-57.6 37.126-5.077 11.386-3.784 31.96-2.745 48.492.163 2.492.312 4.965.447 7.438l.073 1.318-.97.896c-.958.888-3.765 2.956-9.129 2.956-4.044 0-8.663-1.202-13.727-3.574-.48-.228-1.101-.34-1.84-.34-3.254 0-6.851 2.13-7.261 4.3-.442 2.329 3.279 5.417 9.483 7.867.928.368 2.088.73 3.316 1.119 5.71 1.812 14.328 4.549 17.211 11.346 1.627 3.83 1.178 8.355-1.329 13.443-.475 1.108-4.858 11.016-13.673 21.278-11.49 13.392-25.096 21.463-40.433 23.986-.118.376-.065.596.025.8.643 1.504 4.642 6.655 29.401 10.476 3.751.585 4.693 4.887 5.783 9.872.396 1.815.8 3.67 1.352 5.547.213.722.295.812 1.25.812 1.121 0 2.866-.34 4.715-.703 3.538-.688 8.3-1.618 14.393-1.618 3.395 0 6.91.295 10.448.882 7.508 1.248 13.637 5.578 20.125 10.161 8.36 5.915 17.812 12.6 31.652 12.6q.502.002.992-.04z" ></path> </svg>, snapchatAlt2: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <path fill="#000" strokeMiterlimit="10" strokeWidth="0" d="M129.45 246.57c-.717 0-1.4-.025-1.922-.05-.413.037-.84.05-1.265.05-15.058 0-25.127-7.117-34.012-13.403-6.367-4.499-12.375-8.745-19.411-9.917a62.7 62.7 0 0 0-10.215-.862c-5.985 0-10.714.927-14.168 1.604-2.124.413-3.956.77-5.372.77-1.484 0-3.285-.329-4.036-2.894-.595-2.023-1.022-3.982-1.433-5.87-1.031-4.715-1.778-7.596-3.543-7.868-18.889-2.914-30.047-7.208-32.27-12.406a4.8 4.8 0 0 1-.39-1.639 3.03 3.03 0 0 1 2.534-3.16c15-2.47 28.333-10.398 39.64-23.571 8.76-10.198 13.059-19.943 13.52-21.016q.03-.075.067-.146c2.18-4.42 2.613-8.242 1.292-11.353-2.433-5.738-10.492-8.295-15.825-9.986-1.327-.419-2.58-.818-3.58-1.214-4.727-1.866-12.502-5.811-11.465-11.257.753-3.97 6.005-6.736 10.25-6.736 1.178 0 2.223.208 3.103.619 4.797 2.248 9.11 3.386 12.822 3.386 4.614 0 6.842-1.757 7.382-2.257q-.21-3.779-.455-7.559c-1.082-17.23-2.434-38.674 3.051-50.973C80.165 12.054 114.981 9.19 125.257 9.19c1.698-.014 3.392-.03 5.09-.047 10.304 0 45.192 2.866 61.62 39.696 5.485 12.305 4.133 33.768 3.046 51.016l-.05.826a682 682 0 0 0-.403 6.708c.509.466 2.546 2.076 6.697 2.24 3.537-.136 7.603-1.271 12.08-3.367 1.382-.65 2.917-.784 3.956-.784 1.574 0 3.173.306 4.508.862l.07.029c3.799 1.348 6.286 4.043 6.34 6.873.047 2.638-1.914 6.584-11.558 10.391-.99.39-2.248.793-3.58 1.214-5.337 1.695-13.39 4.249-15.823 9.984-1.324 3.11-.888 6.93 1.292 11.35.025.047.045.098.068.149.671 1.573 16.916 38.612 53.16 44.583a3.033 3.033 0 0 1 2.534 3.161 4.9 4.9 0 0 1-.402 1.655c-2.209 5.17-13.364 9.456-32.256 12.376-1.773.272-2.52 3.138-3.54 7.831-.422 1.939-.855 3.836-1.442 5.834-.55 1.877-1.773 2.796-3.737 2.796h-.296c-1.278 0-3.09-.234-5.375-.68-3.993-.779-8.472-1.501-14.168-1.501-3.321 0-6.758.292-10.217.863-7.028 1.171-13.033 5.409-19.392 9.905-8.902 6.297-18.973 13.418-34.03 13.418" ></path> </svg>, steam: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="#000" strokeMiterlimit="10" strokeWidth="0"> <path d="M88.311 196.362c-6.443 0-17.607-5.744-23.915-8.34 4.324 9.348 13.785 15.837 24.764 15.837 15.062 0 27.271-12.21 27.271-27.271s-12.21-27.271-27.27-27.271c-3.44 0-6.734.637-9.763 1.8 12.474 5.27 29.109 8.026 29.109 25.052-.003 11.15-9.043 20.193-20.196 20.193"></path> <path d="M127.857 1.407C61.226 1.407 6.673 52.953 1.8 118.339l66.1 27.923a36.85 36.85 0 0 1 23.727-6.623l30.14-44.168c0-26.787 21.716-48.503 48.504-48.503s48.503 21.716 48.503 48.503-21.716 48.504-48.503 48.504q-.56-.001-1.116-.014l-43.02 30.592-.004-.003q.056 1.012.056 2.035c0 20.454-16.579 37.033-37.033 37.033-18.191 0-33.315-13.114-36.44-30.404L6.751 164.266c15.638 52.083 63.928 90.04 121.106 90.04 69.837 0 126.45-56.612 126.45-126.45 0-69.836-56.613-126.45-126.45-126.45"></path> <path d="M202.51 95.328c0-17.723-14.368-32.09-32.09-32.09s-32.09 14.367-32.09 32.09 14.367 32.09 32.09 32.09c17.722 0 32.09-14.367 32.09-32.09m-56.602 0c0-13.539 10.973-24.512 24.512-24.512S194.93 81.79 194.93 95.328s-10.973 24.512-24.511 24.512c-13.539-.003-24.512-10.976-24.512-24.512"></path> </g> </svg>, steamAlt: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="800" height="800" fill="none" viewBox="0 0 192 192" > <g stroke="#000" strokeLinecap="round" strokeLinejoin="round" strokeWidth="6.1" transform="matrix(1.9641 0 0 1.96342 19.541 5.281)" > <path d="m.154 41.29 23.71 9.803a12.44 12.44 0 0 1 7.745-2.158l10.544-15.283-.001-.216c0-9.199 7.483-16.683 16.683-16.683s16.682 7.484 16.682 16.683S68.034 50.12 58.835 50.12q-.19 0-.379-.006l-15.038 10.73q.014.294.015.592c0 6.906-5.617 12.522-12.522 12.522-6.061 0-11.129-4.326-12.277-10.055l-16.956-7.01"></path> <ellipse cx="58.576" cy="33.435" fill="#000" stroke="none" rx="9.916" ry="9.922" ></ellipse> <ellipse cx="31.079" cy="61.436" fill="#000" stroke="none" rx="7.437" ry="7.441" ></ellipse> </g> </svg>, steamAlt2: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="#000" strokeMiterlimit="10" strokeWidth="0"> <path d="M196.62 59.228c-14.865 0-26.917 12.052-26.917 26.917s12.05 26.917 26.917 26.917c14.865 0 26.917-12.05 26.917-26.917s-12.052-26.917-26.917-26.917"></path> <path d="M196.446 28.458c-31.955 0-57.86 25.906-57.86 57.861l-35.955 52.688a43.984 43.984 0 0 0-28.305 7.899l-72.92-30.804v52.289l54.807 22.595c3.726 20.625 21.769 36.269 43.47 36.269 24.4 0 44.177-19.777 44.177-44.176q0-1.222-.068-2.428l.003.003 51.322-36.494q.661.017 1.329.017c31.955 0 57.86-25.903 57.86-57.858s-25.905-57.86-57.86-57.86M99.684 215.61c-13.095 0-24.383-7.739-29.542-18.892 7.525 3.097 20.845 9.948 28.53 9.948 13.302 0 24.087-10.785 24.087-24.087 0-20.311-19.844-23.599-34.723-29.882a32.4 32.4 0 0 1 11.648-2.15c17.967 0 32.53 14.565 32.53 32.532s-14.563 32.531-32.53 32.531m96.936-91.184c-21.142 0-38.28-17.139-38.28-38.281s17.138-38.28 38.28-38.28c21.143 0 38.28 17.138 38.28 38.28s-17.14 38.28-38.28 38.28"></path> </g> </svg>, strava: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 37.71 37.71" height="24" width="24"> <path id="c" strokeWidth="0" d="M18.85 0C8.44 0 0 8.44 0 18.85S8.44 37.7 18.85 37.7 37.7 29.26 37.7 18.85 29.27 0 18.85 0m-8.53 20.68 7-13.83 7.01 13.83h-4.17l-2.84-5.6-2.83 5.6zm11.92 10.17-5.15-10.17h3.07l2.09 4.12 2.08-4.12h3.07l-5.15 10.17Z" ></path> </svg>, stravaAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 35.78 50.21"> <g id="c"> <path id="d" fill="none" stroke="#000" strokeMiterlimit="10" d="m24.66 36.99-4.18-8.23h-6.13L24.66 49.1l10.3-20.34h-6.13m-14.02-11.2 5.67 11.2h8.34L14.81 1.11l-14 27.65h8.34" ></path> </g> </svg>, stravaAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 76.45 107.47"> <g id="c"> <path id="d" strokeWidth="0" d="m53.39 80.35-9.35-18.43H30.32l23.08 45.55 23.06-45.55H62.73M31.34 36.85l12.7 25.07h18.68L31.34 0 0 61.92h18.67" ></path> </g> </svg>, twitch: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="#1D1D1B" strokeMiterlimit="10" strokeWidth="0"> <path d="m110.033 176.087 17.824-17.823h33.551l20.971-20.971V70.19H81.722v88.074h28.31zm38.795-81.782h12.583v36.66h-12.583zm-33.555 0h12.584v36.66h-12.584z"></path> <path d="M127.857 1.407c-69.837 0-126.45 56.613-126.45 126.45s56.613 126.45 126.45 126.45 126.45-56.613 126.45-126.45-56.613-126.45-126.45-126.45m67.105 142.177-36.698 36.699H131l-17.824 17.824H94.305v-17.824H60.754V81.722l9.436-24.115h124.772z"></path> </g> </svg>, twitchAlt: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="#000" strokeMiterlimit="10" strokeWidth="0"> <path d="M103.185 254.307h-37.19v-31.371H6.941V46.13L24.443 1.407h224.328V156.7l-66.235 66.235h-47.98zm-31.57-5.62h29.243l31.371-31.371h47.98l62.942-62.941V7.027H28.279L12.562 47.19v170.126h59.052zm22.06-29.16v-35.344H43.85V23.549h182.776v122.078l-38.553 38.556H129.02zM49.47 178.563h49.824v27.398l27.397-27.398h59.053l35.262-35.263V29.17H49.47z"></path> <path d="M189.719 136.135h-27.763v-70.14h27.763zm-22.143-5.62h16.523v-58.9h-16.523zM130.667 136.135h-27.763v-70.14h27.763zm-22.143-5.62h16.523v-58.9h-16.523z"></path> </g> </svg>, twitchAlt2: <svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" width="256" height="256" viewBox="0 0 256 256" > <g fill="#000" strokeMiterlimit="10" strokeWidth="0" transform="translate(1.407 1.407)scale(2.81)" > <path d="M2.015 15.448v63.134h21.493V90h12.09l11.418-11.418h17.463l23.507-23.507V0H8.06zM15.448 8.06h64.478v42.985L66.493 64.478H45L33.582 75.896V64.478H15.448z"></path> <rect width="8.06" height="23.48" x="58.43" y="23.51" rx="0" ry="0" ></rect> <rect width="8.06" height="23.48" x="36.94" y="23.51" rx="0" ry="0" ></rect> </g> </svg>, vero: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 69 69" width="24" height="24"> <path id="c" strokeWidth="0" d="M34.5 0C15.45 0 0 15.45 0 34.5S15.45 69 34.5 69 69 53.55 69 34.5 53.55 0 34.5 0m.02 66.08-.02-.04-.02.04L7.04 18.92h41.6L30.96 49.7l3.55 6.41 21.36-37.18h6.1L34.53 66.1Z" ></path> </svg>, veroAlt: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 56.66 48.78"> <path id="c" fill="none" stroke="#000" strokeMiterlimit="10" d="M28.33 37.68 49.69.5h6.1L28.35 47.67l-.02-.04-.02.04L.87.5h41.6L24.79 31.28l3.55 6.41Z" ></path> </svg>, veroAlt2: <svg xmlns="http://www.w3.org/2000/svg" id="b" viewBox="0 0 54.92 47.17"> <path id="c" strokeWidth="0" d="M27.46 37.18 48.82 0h6.1L27.48 47.17l-.02-.04-.02.04L0 0h41.6L23.92 30.78l3.55 6.41Z" ></path> </svg>, }; export default SocialIcons; react/src/social/item-component.js 0000644 00000020557 15151531431 0013207 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import SocialIcons from './icons.js'; import DOMPurify from 'dompurify'; import { __ } from '@wordpress/i18n'; const { MediaUpload } = wp.blockEditor; const { ButtonGroup, Dashicon, Tooltip, TextControl, Button, TabPanel, RangeControl, Placeholder } = wp.components; const { Component, Fragment } = wp.element; class ItemComponent extends Component { constructor() { super( ...arguments ); this.state = { open: false, }; } render() { const tabOptions = ( ( 'custom1' === this.props.item.id || 'custom2' === this.props.item.id || 'custom3' === this.props.item.id ) ? [ { name: 'svg', title: __( 'SVG', 'kadence' ), }, { name: 'image', title: __( 'Image', 'kadence' ), }, ] : [ { name: 'icon', title: __( 'Icon', 'kadence' ), }, { name: 'svg', title: __( 'SVG', 'kadence' ), }, { name: 'image', title: __( 'Image', 'kadence' ), }, ] ); const defaultTab = ( ( 'custom1' === this.props.item.id || 'custom2' === this.props.item.id || 'custom3' === this.props.item.id ) ? 'svg' : 'icon' ); return ( <div className="kadence-sorter-item" data-id={ this.props.item.id } key={ this.props.item.id }> <div className="kadence-sorter-item-panel-header"> <Tooltip text={ __( 'Toggle Item Visibility', 'kadence' ) }> <Button className={ `kadence-sorter-visiblity ${ ( this.props.item.enabled ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.props.toggleEnabled( ( this.props.item.enabled ? false : true ), this.props.index ); } } > { SocialIcons[this.props.item.id] } </Button> </Tooltip> <span className="kadence-sorter-title"> { ( undefined !== this.props.item.label && '' !== this.props.item.label ? this.props.item.label : __( 'Social Item', 'kadence' ) ) } </span> <Tooltip text={ __( 'Expand Item Controls', 'kadence' ) }> <Button className="kadence-sorter-item-expand" onClick={ () => { this.setState( { open: ( this.state.open ? false : true ) } ) } } > <Dashicon icon={ ( this.state.open ? 'arrow-up-alt2' : 'arrow-down-alt2' ) }/> </Button> </Tooltip> </div> { this.state.open && ( <div className="kadence-sorter-item-panel-content"> <TabPanel className="sortable-style-tabs kadence-social-type" activeClass="active-tab" initialTabName={ ( undefined !== this.props.item.source && '' !== this.props.item.source ? this.props.item.source : defaultTab ) } onSelect={ ( value ) => this.props.onChangeSource( value, this.props.index ) } tabs={ tabOptions }> { ( tab ) => { let tabout; if ( tab.name ) { if ( 'image' === tab.name ) { tabout = ( <Fragment> { ! this.props.item.url && ( <div className="attachment-media-view"> <MediaUpload onSelect={ ( imageData ) => { this.props.onChangeURL( imageData.url, this.props.index ); this.props.onChangeAttachment( imageData.id, this.props.index ); } } allowedTypes={ ['image'] } render={ ( { open } ) => ( <Button className="button-add-media" isSecondary onClick={ open }> { __( 'Add Image', 'kadence' )} </Button> ) } /> </div> ) } { this.props.item.url && ( <div className="social-custom-image"> <div className="kadence-social-image"> <img className="kadence-social-image-preview" src={ this.props.item.url } /> </div> <Button className='remove-image' isDestructive onClick={ () => { this.props.onChangeURL( '', this.props.index ); this.props.onChangeAttachment( '', this.props.index ); } } > { __( 'Remove Image', 'kadence' ) } <Dashicon icon='no'/> </Button> </div> ) } <RangeControl label={ __( 'Max Width (px)', 'kadence' ) } value={ ( undefined !== this.props.item.width ? this.props.item.width : 24 ) } onChange={ ( value ) => { this.props.onChangeWidth( value, this.props.index ); } } step={ 1 } min={ 2 } max={ 100 } /> </Fragment> ); } else if ( 'svg' === tab.name ) { tabout = ( <Fragment> <TextControl label={ __( 'SVG HTML', 'kadence' ) } value={ this.props.item.svg ? this.props.item.svg : '' } onChange={ ( value ) => { const newvalue = DOMPurify.sanitize( value, { USE_PROFILES: { svg: true, svgFilters: true } } ); this.props.onChangeSVG( newvalue, this.props.index ); } } /> <RangeControl label={ __( 'Max Width (px)', 'kadence' ) } value={ ( undefined !== this.props.item.width ? this.props.item.width : 24 ) } onChange={ ( value ) => { this.props.onChangeWidth( value, this.props.index ); } } step={ 1 } min={ 2 } max={ 100 } /> </Fragment> ); } else { tabout = ( <Fragment> <ButtonGroup className="kadence-radio-container-control"> <Button isTertiary className={ ( this.props.item.id === ( undefined !== this.props.item.icon ? this.props.item.icon : this.props.item.id ) ? 'active-radio ' : '' ) + 'svg-icon-' + this.props.item.id } onClick={ () => { this.props.onChangeIcon( this.props.item.id, this.props.index ); } } > <span className="kadence-radio-icon"> { SocialIcons[this.props.item.id] } </span> </Button> { SocialIcons[ this.props.item.id + 'Alt' ] && ( <Button isTertiary className={ ( this.props.item.id + 'Alt' === ( undefined !== this.props.item.icon ? this.props.item.icon : this.props.item.id ) ? 'active-radio ' : '' ) + 'svg-icon-' + this.props.item.id + 'Alt' } onClick={ () => { this.props.onChangeIcon( this.props.item.id + 'Alt', this.props.index ); } } > <span className="kadence-radio-icon"> { SocialIcons[ this.props.item.id + 'Alt' ] } </span> </Button> ) } { SocialIcons[ this.props.item.id + 'Alt2' ] && ( <Button isTertiary className={ ( this.props.item.id + 'Alt2' === ( undefined !== this.props.item.icon ? this.props.item.icon : this.props.item.id ) ? 'active-radio ' : '' ) + 'svg-icon-' + this.props.item.id + 'Alt2' } onClick={ () => { this.props.onChangeIcon( this.props.item.id + 'Alt2', this.props.index ); } } > <span className="kadence-radio-icon"> { SocialIcons[ this.props.item.id + 'Alt2' ] } </span> </Button> )} </ButtonGroup> </Fragment> ); } } return <div>{ tabout }</div>; } } </TabPanel> <TextControl label={ __( 'Item Label', 'kadence' ) } value={ this.props.item.label ? this.props.item.label : '' } onChange={ ( value ) => { this.props.onChangeLabel( value, this.props.index ); } } /> <Button className="kadence-sorter-item-remove" isDestructive onClick={ () => { this.props.removeItem( this.props.index ); } } > { __( 'Remove Item', 'kadence' ) } <Dashicon icon="no-alt"/> </Button> </div> ) } </div> ); } } export default ItemComponent; react/src/social/social-component.js 0000644 00000034137 15151531431 0013522 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { ReactSortable } from "react-sortablejs"; import uniqueId from 'lodash/uniqueId'; import ItemComponent from './item-component'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Popover, Button, SelectControl } = wp.components; const { Component, Fragment } = wp.element; class SocialComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.onDragEnd = this.onDragEnd.bind( this ); this.onDragStart = this.onDragStart.bind( this ); this.onDragStop = this.onDragStop.bind( this ); this.removeItem = this.removeItem.bind( this ); this.saveArrayUpdate = this.saveArrayUpdate.bind( this ); this.toggleEnableItem = this.toggleEnableItem.bind( this ); this.onChangeIcon = this.onChangeIcon.bind( this ); this.onChangeLabel = this.onChangeLabel.bind( this ); this.onChangeURL = this.onChangeURL.bind( this ); this.onChangeAttachment = this.onChangeAttachment.bind( this ); this.onChangeWidth = this.onChangeWidth.bind( this ); this.onChangeSVG = this.onChangeSVG.bind( this ); this.onChangeSource = this.onChangeSource.bind( this ); this.addItem = this.addItem.bind( this ); let value = this.props.control.setting.get(); let baseDefault = { 'items': [ { 'id': 'facebook', 'enabled': true, 'source': 'icon', 'url': '', 'imageid': '', 'width': 24, 'icon': 'facebook', 'label': 'Facebook', 'svg': '', }, { 'id': 'twitter', 'enabled': true, 'source': 'icon', 'url': '', 'imageid': '', 'width': 24, 'icon': 'twitterAlt2', 'label': 'X', 'svg': '', } ], }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...this.defaultValue, ...value } : this.defaultValue; let defaultParams = { 'group' : 'social_item_group', 'options': [ { value: '500px', label: __( '500PX', 'kadence' ) }, { value: 'amazon', label: __( 'Amazon', 'kadence' ) }, { value: 'anchor', label: __( 'Anchor', 'kadence' ) }, { value: 'apple_podcasts', label: __( 'Apple Podcast', 'kadence' ) }, { value: 'bandcamp', label: __( 'Bandcamp', 'kadence' ) }, { value: 'behance', label: __( 'Behance', 'kadence' ) }, { value: 'bluesky', label: __( 'Bluesky', 'kadence' ) }, { value: 'bookbub', label: __( 'Bookbub', 'kadence' ) }, { value: 'discord', label: __( 'Discord', 'kadence' ) }, { value: 'dribbble', label: __( 'Dribbble', 'kadence' ) }, { value: 'email', label: __( 'Email', 'kadence' ) }, { value: 'facebook', label: __( 'Facebook', 'kadence' ) }, { value: 'facebook_group', label: __( 'Facebook Group', 'kadence' ) }, { value: 'flickr', label: __( 'Flickr', 'kadence' ) }, { value: 'flipboard', label: __( 'Flipboard', 'kadence' ) }, { value: 'fstoppers', label: __( 'Fstoppers', 'kadence' ) }, { value: 'github', label: __( 'GitHub', 'kadence' ) }, { value: 'goodreads', label: __( 'Goodreads', 'kadence' ) }, { value: 'google_reviews', label: __( 'Google Reviews', 'kadence' ) }, { value: 'imgur', label: __( 'Imgur', 'kadence' ) }, { value: 'imdb', label: __( 'IMDB', 'kadence' ) }, { value: 'instagram', label: __( 'Instagram', 'kadence' ) }, { value: 'line', label: __( 'Line', 'kadence' ) }, { value: 'linkedin', label: __( 'Linkedin', 'kadence' ) }, { value: 'mastodon', label: __( 'Mastodon', 'kadence' ) }, { value: 'medium', label: __( 'Medium', 'kadence' ) }, { value: 'mewe', label: __( 'MeWe', 'kadence' ) }, { value: 'parler', label: __( 'Parler', 'kadence' ) }, { value: 'patreon', label: __( 'Patreon', 'kadence' ) }, { value: 'phone', label: __( 'Phone', 'kadence' ) }, { value: 'pinterest', label: __( 'Pinterest', 'kadence' ) }, { value: 'quora', label: __( 'Quora', 'kadence' ) }, { value: 'ravelry', label: __( 'Ravelry', 'kadence' ) }, { value: 'reddit', label: __( 'Reddit', 'kadence' ) }, { value: 'rumble', label: __( 'Rumble', 'kadence' ) }, { value: 'rss', label: __( 'RSS', 'kadence' ) }, { value: 'snapchat', label: __( 'Snapchat', 'kadence' ) }, { value: 'soundcloud', label: __( 'SoundCloud', 'kadence' ) }, { value: 'spotify', label: __( 'Spotify', 'kadence' ) }, { value: 'steam', label: __( 'Steam', 'kadence' ) }, { value: 'strava', label: __( 'Strava', 'kadence' ) }, { value: 'telegram', label: __( 'Telegram', 'kadence' ) }, { value: 'threads', label: __( 'Threads', 'kadence' ) }, { value: 'tiktok', label: __( 'TikTok', 'kadence' ) }, { value: 'trip_advisor', label: __( 'Trip Advisor', 'kadence' ) }, { value: 'tumblr', label: __( 'Tumblr', 'kadence' ) }, { value: 'twitch', label: __( 'Twitch', 'kadence' ) }, { value: 'twitter', label: __( 'X formerly Twitter', 'kadence' ) }, { value: 'vero', label: __( 'Vero', 'kadence' ) }, { value: 'vimeo', label: __( 'Vimeo', 'kadence' ) }, { value: 'vk', label: __( 'VK', 'kadence' ) }, { value: 'whatsapp', label: __( 'WhatsApp', 'kadence' ) }, { value: 'wordpress', label: __( 'WordPress', 'kadence' ) }, { value: 'xing', label: __( 'Xing', 'kadence' ) }, { value: 'yelp', label: __( 'Yelp', 'kadence' ) }, { value: 'youtube', label: __( 'YouTube', 'kadence' ) }, { value: 'custom1', label: __( 'Custom 1', 'kadence' ) }, { value: 'custom2', label: __( 'Custom 2', 'kadence' ) }, { value: 'custom3', label: __( 'Custom 3', 'kadence' ) }, ], }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let availableSocialOptions = []; this.controlParams.options.map( ( option ) => { if ( ! value.items.some( obj => obj.id === option.value ) ) { availableSocialOptions.push( option ); } } ); this.state = { value: value, isVisible: false, control: ( undefined !== availableSocialOptions[0] && undefined !== availableSocialOptions[0].value ? availableSocialOptions[0].value : '' ), }; } onDragStart() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.add( 'kadence-dragging-dropzones' ); } } onDragStop() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.remove( 'kadence-dragging-dropzones' ); } } saveArrayUpdate( value, index ) { let updateState = this.state.value; let items = updateState.items; const newItems = items.map( ( item, thisIndex ) => { if ( index === thisIndex ) { item = { ...item, ...value }; } return item; } ); updateState.items = newItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } toggleEnableItem( value, itemIndex ) { this.saveArrayUpdate( { enabled: value }, itemIndex ); } onChangeLabel( value, itemIndex ) { this.saveArrayUpdate( { label: value }, itemIndex ); } onChangeIcon( value, itemIndex ) { this.saveArrayUpdate( { icon: value }, itemIndex ); } onChangeURL( value, itemIndex ) { this.saveArrayUpdate( { url: value }, itemIndex ); } onChangeAttachment( value, itemIndex ) { this.saveArrayUpdate( { imageid: value }, itemIndex ); } onChangeWidth( value, itemIndex ) { this.saveArrayUpdate( { width: value }, itemIndex ); } onChangeSVG( value, itemIndex ) { this.saveArrayUpdate( { svg: value }, itemIndex ); } onChangeSource( value, itemIndex ) { this.saveArrayUpdate( { source: value }, itemIndex ); } removeItem( itemIndex ) { let updateState = this.state.value; let update = updateState.items; let updateItems = []; { update.length > 0 && ( update.map( ( old, index ) => { if ( itemIndex !== index ) { updateItems.push( old ); } } ) ) }; updateState.items = updateItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } addItem() { const itemControl = this.state.control; this.setState( { isVisible: false } ); if ( itemControl ) { let updateState = this.state.value; let update = updateState.items; const itemLabel = this.controlParams.options.filter(function(o){return o.value === itemControl;} ); let newItem = { 'id': itemControl, 'enabled': true, 'source': 'icon', 'url': '', 'imageid': '', 'width': 24, 'icon': itemControl, 'label': itemLabel[0].label, 'svg': '', }; update.push( newItem ); updateState.items = update; let availableSocialOptions = []; this.controlParams.options.map( ( option ) => { if ( ! update.some( obj => obj.id === option.value ) ) { availableSocialOptions.push( option ); } } ); this.setState( { control: ( undefined !== availableSocialOptions[0] && undefined !== availableSocialOptions[0].value ? availableSocialOptions[0].value : '' ) } ); this.setState( { value: updateState } ); this.updateValues( updateState ); } } onDragEnd( items ) { let updateState = this.state.value; let update = updateState.items; let updateItems = []; { items.length > 0 && ( items.map( ( item ) => { update.filter( obj => { if ( obj.id === item.id ) { updateItems.push( obj ); } } ) } ) ) }; if ( ! this.arraysEqual( update, updateItems ) ) { update.items = updateItems; updateState.items = updateItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } } arraysEqual( a, b ) { if (a === b) return true; if (a == null || b == null) return false; if (a.length != b.length) return false; for (var i = 0; i < a.length; ++i) { if (a[i] !== b[i]) return false; } return true; } render() { const currentList = ( typeof this.state.value != "undefined" && this.state.value.items != null && this.state.value.items.length != null && this.state.value.items.length > 0 ? this.state.value.items : [] ); let theItems = []; { currentList.length > 0 && ( currentList.map( ( item ) => { theItems.push( { id: item.id, } ) } ) ) }; const availableSocialOptions = []; this.controlParams.options.map( ( option ) => { if ( ! theItems.some( obj => obj.id === option.value ) ) { availableSocialOptions.push( option ); } } ); const toggleClose = () => { if ( this.state.isVisible === true ) { this.setState( { isVisible: false } ); } }; return ( <div className="kadence-control-field kadence-sorter-items"> <div className="kadence-sorter-row"> <ReactSortable animation={100} onStart={ () => this.onDragStop() } onEnd={ () => this.onDragStop() } group={ this.controlParams.group } className={ `kadence-sorter-drop kadence-sorter-sortable-panel kadence-sorter-drop-${ this.controlParams.group }` } handle={ '.kadence-sorter-item-panel-header' } list={ theItems } setList={ ( newState ) => this.onDragEnd( newState ) } > { currentList.length > 0 && ( currentList.map( ( item, index ) => { return <ItemComponent removeItem={ ( remove ) => this.removeItem( remove ) } toggleEnabled={ ( enable, itemIndex ) => this.toggleEnableItem( enable, itemIndex ) } onChangeLabel={ ( label, itemIndex ) => this.onChangeLabel( label, itemIndex ) } onChangeSource={ ( source, itemIndex ) => this.onChangeSource( source, itemIndex ) } onChangeWidth={ ( width, itemIndex ) => this.onChangeWidth( width, itemIndex ) } onChangeSVG={ ( svg, itemIndex ) => this.onChangeSVG( svg, itemIndex ) } onChangeURL={ ( url, itemIndex ) => this.onChangeURL( url, itemIndex ) } onChangeAttachment={ ( imageid, itemIndex ) => this.onChangeAttachment( imageid, itemIndex ) } onChangeIcon={ ( icon, itemIndex ) => this.onChangeIcon( icon, itemIndex ) } key={ item.id } index={ index } item={ item } controlParams={ this.controlParams } />; } ) ) } </ReactSortable> </div> { undefined !== availableSocialOptions[0] && undefined !== availableSocialOptions[0].value && ( <div className="kadence-social-add-area"> {/* <SelectControl value={ this.state.control } options={ availableSocialOptions } onChange={ value => { this.setState( { control: value } ); } } /> */} { this.state.isVisible && ( <Popover position="top right" inline={true} className="kadence-popover-color kadence-popover-social kadence-customizer-popover" onClose={ toggleClose }> <div className="kadence-popover-social-list"> <ButtonGroup className="kadence-radio-container-control"> { availableSocialOptions.map( ( item, index ) => { return ( <Fragment> <Button isTertiary className={ 'social-radio-btn' } onClick={ () => { this.setState( { control: availableSocialOptions[index].value } ); this.state.control = availableSocialOptions[index].value; this.addItem(); } } > { availableSocialOptions[index].label && ( availableSocialOptions[index].label ) } </Button> </Fragment> ); } ) } </ButtonGroup> </div> </Popover> ) } <Button className="kadence-sorter-add-item" isPrimary onClick={ () => { this.setState( { isVisible: true } ); } } > { __( 'Add Social', 'kadence' ) } <Dashicon icon="plus"/> </Button> {/* <Button className="kadence-sorter-add-item" isPrimary onClick={ () => { this.addItem(); } } > { __( 'Add Item', 'kadence' ) } <Dashicon icon="plus"/> </Button> */} </div> ) } </div> ); } updateValues( value ) { this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag } ); } } SocialComponent.propTypes = { control: PropTypes.object.isRequired, }; export default SocialComponent; react/src/social/control.js 0000644 00000000665 15151531431 0011727 0 ustar 00 import { createRoot } from '@wordpress/element'; import SocialComponent from './social-component.js'; export const SocialControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <SocialComponent control={ control } /> ); // ReactDOM.render( <SocialComponent control={ control } />, control.container[0] ); } } ); react/src/select/select-component.js 0000644 00000004443 15151531431 0013531 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import { __ } from '@wordpress/i18n'; const { SelectControl, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class SelectComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); let value = this.props.control.setting.get(); let defaultParams = { options: { standard: { name: __( 'Standard', 'kadence' ), }, fullwidth: { name: __( 'Fullwidth', 'kadence' ), }, contained: { name: __( 'Contained', 'kadence' ), }, }, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let baseDefault = 'standard'; this.defaultValue = this.props.control.params.default ? this.props.control.params.default : baseDefault; value = value ? value : this.defaultValue; this.state = { value: value, }; } render() { const controlLabel = ( <Fragment> <Tooltip text={ __( 'Reset Value', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.value === this.defaultValue ) } onClick={ () => { let value = this.defaultValue; this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { this.props.control.params.label && this.props.control.params.label } </Fragment> ); const selectOptions = Object.keys( this.controlParams.options ).map( ( item ) => { return ( { label: this.controlParams.options[ item ].name, value: item } ); } ); return ( <div className="kadence-control-field kadence-select-control"> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <SelectControl value={ this.state.value } options={ selectOptions } onChange={ ( val ) => { this.updateValues( val ); } } /> </div> ); } updateValues( value ) { this.setState( { value: value } ); this.props.control.setting.set( value ); } } SelectComponent.propTypes = { control: PropTypes.object.isRequired }; export default SelectComponent; react/src/select/control.js 0000644 00000000702 15151531431 0011724 0 ustar 00 import { createRoot } from '@wordpress/element'; import SelectComponent from './select-component.js'; export const SelectControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <SelectComponent control={control}/> ); // ReactDOM.render( // <SelectComponent control={control}/>, // control.container[0] // ); } } ); react/src/variables.scss 0000644 00000000317 15151531431 0011276 0 ustar 00 $color-primary: #007cba; $color-gray-200: #EDF2F7; $color-gray-300: #E2E8F0; $color-gray-400: #CBD5E0; $color-gray-500: #A0AEC0; $color-gray-600: #718096; $color-gray-700: #4A5568; $color-gray-800: #2D3748; react/src/color/color-component.js 0000644 00000010327 15151531431 0013225 0 ustar 00 import PropTypes from "prop-types"; import { isEqual } from "lodash"; import { __ } from "@wordpress/i18n"; const { Tooltip, Button, Dashicon } = wp.components; /** * WordPress dependencies */ import { createRef, Component, Fragment } from "@wordpress/element"; import ColorControl from "../common/color.js"; class ColorComponent extends Component { constructor(props) { super(props); this.handleChangeComplete = this.handleChangeComplete.bind(this); this.updateValues = this.updateValues.bind(this); let value = this.props.control.setting.get(); let baseDefault = { color: "", hover: "", }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default, } : baseDefault; value = value ? { ...JSON.parse(JSON.stringify(this.defaultValue)), ...value, } : JSON.parse(JSON.stringify(this.defaultValue)); let defaultParams = { colors: { color: { tooltip: __("Color", "kadence"), palette: true, }, hover: { tooltip: __("Hover Color", "kadence"), palette: true, }, }, allowGradient: false, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; const palette = JSON.parse( this.props.customizer.control("kadence_color_palette").setting.get() ); //console.log( palette ); this.state = { value: value, colorPalette: palette, }; this.anchorNodeRef = createRef(); } handleChangeComplete(color, isPalette, item) { let value = this.state.value; if (isPalette) { value[item] = isPalette; } else if (typeof color === "string" || color instanceof String) { value[item] = color; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value[item] = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { value[item] = color.hex; } this.updateValues(value); } render() { return ( <div ref={this.anchorNodeRef} className="kadence-control-field kadence-color-control" > <span className="customize-control-title"> <Fragment> <Tooltip text={__("Reset Values", "kadence")}> <Button className="reset kadence-reset" disabled={ JSON.stringify(this.state.value) === JSON.stringify(this.defaultValue) } onClick={() => { let value = JSON.parse( JSON.stringify(this.defaultValue) ); this.updateValues(value); }} > <Dashicon icon="image-rotate" /> </Button> </Tooltip> {this.props.control.params.label && this.props.control.params.label} </Fragment> </span> {Object.keys(this.controlParams.colors).map((item) => { return ( <ColorControl key={item} presetColors={this.state.colorPalette} color={ undefined !== this.state.value[item] && this.state.value[item] ? this.state.value[item] : "" } usePalette={ undefined !== this.controlParams.colors[item] && undefined !== this.controlParams.colors[item].palette && "" !== this.controlParams.colors[item].palette ? this.controlParams.colors[item].palette : true } tooltip={ undefined !== this.controlParams.colors[item] && undefined !== this.controlParams.colors[item].tooltip ? this.controlParams.colors[item].tooltip : "" } onChangeComplete={(color, isPalette) => this.handleChangeComplete( color, isPalette, item ) } customizer={this.props.customizer} allowGradient={this.controlParams.allowGradient} controlRef={this.anchorNodeRef} /> ); })} </div> ); } updateValues(value) { this.setState({ value: value }); this.props.control.setting.set({ ...this.props.control.setting.get(), ...value, }); } } ColorComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired, }; export default ColorComponent; react/src/color/control.js 0000644 00000000763 15151531431 0011572 0 ustar 00 import { createRoot } from '@wordpress/element'; import ColorComponent from './color-component.js'; export const ColorControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <ColorComponent control={control} customizer={ wp.customize }/> ); // ReactDOM.render( // <ColorComponent control={control} customizer={ wp.customize }/>, // control.container[0] // ); } } ); react/src/border/border-component.js 0000644 00000051626 15151531431 0013532 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import ColorControl from '../common/color.js'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Toolbar, ToolbarGroup, Tooltip, Button } = wp.components; /** * WordPress dependencies */ import { createRef, Component, Fragment } from '@wordpress/element'; class BorderComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.resetValues = this.resetValues.bind( this ); this.handleChangeComplete = this.handleChangeComplete.bind( this ); this.handleResponsiveChangeComplete = this.handleResponsiveChangeComplete.bind( this ); this.getUnitButtons = this.getUnitButtons.bind( this ); this.getResponsiveUnitButtons = this.getResponsiveUnitButtons.bind( this ); this.createLevelControlToolbar = this.createLevelControlToolbar.bind( this ); this.createResponsiveLevelControlToolbar = this.createResponsiveLevelControlToolbar.bind( this ); this.getStyleButtons = this.getStyleButtons.bind( this ); this.getResponsiveStyleButtons = this.getResponsiveStyleButtons.bind( this ); this.createStyleControlToolbar = this.createStyleControlToolbar.bind( this ); this.createResponsiveStyleControlToolbar = this.createResponsiveStyleControlToolbar.bind( this ); let value = this.props.control.setting.get(); let defaultParams = { min: { px: '0', em: '0', rem: '0', }, max: { px: '300', em: '12', rem: '12', }, step: { px: '1', em: '0.01', rem: '0.01', }, units: ['px', 'em', 'rem'], styles: ['none', 'solid', 'dashed', 'dotted', 'double'], responsive:true, color:true, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let responsiveDefault = { 'desktop': { 'width': '', 'unit': 'px', 'style': 'none', 'color': ( this.controlParams.color ? '' : 'currentColor' ), } }; let noneResponsiveDefault = { 'width': '', 'unit': 'px', 'style': 'none', 'color': ( this.controlParams.color ? '' : 'currentColor' ), }; let baseDefault; if ( this.controlParams.responsive ) { baseDefault = responsiveDefault; } else { baseDefault = noneResponsiveDefault; } this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...JSON.parse( JSON.stringify( this.defaultValue ) ), ...value } : JSON.parse( JSON.stringify( this.defaultValue ) ); this.state = { currentDevice: 'desktop', value: value, }; this.anchorNodeRef = createRef(); } handleResponsiveChangeComplete( color, isPalette, device ) { let value = this.state.value; if ( undefined === value[ device ] ) { value[ device ] = { 'width': '', 'unit': '', 'style': '', 'color': '', } } if ( isPalette ) { value[ device ].color = isPalette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value[ device ].color = 'rgba(' + color.rgb.r + ',' + color.rgb.g + ',' + color.rgb.b + ',' + color.rgb.a + ')'; } else { value[ device ].color = color.hex; } this.updateValues( value ); } handleChangeComplete( color, isPalette ) { let value = this.state.value; if ( isPalette ) { value.color = isPalette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value.color = 'rgba(' + color.rgb.r + ',' + color.rgb.g + ',' + color.rgb.b + ',' + color.rgb.a + ')'; } else { value.color = color.hex; } this.updateValues( value ); } render() { const data = this.props.control.params; let currentUnit; if ( this.controlParams.responsive ) { if ( undefined === this.state.value[ this.state.currentDevice ] ) { let largerDevice = ( this.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( undefined === this.state.value[ this.state.currentDevice ].unit ) { let largerDevice = ( this.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( '' === this.state.value[ this.state.currentDevice ].unit ) { let largerDevice = ( this.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( '' !== this.state.value[ this.state.currentDevice ].unit ) { currentUnit = this.state.value[ this.state.currentDevice ].unit } } else { currentUnit = ( undefined !== this.state.value.unit ? this.state.value.unit : 'px' ); } let currentStyle; if ( this.controlParams.responsive ) { if ( undefined === this.state.value[ this.state.currentDevice ] ) { let largerDevice = ( this.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice]?.style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( undefined === this.state.value[ this.state.currentDevice ]?.style ) { let largerDevice = ( this.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice]?.style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( '' === this.state.value[ this.state.currentDevice ]?.style ) { let largerDevice = ( this.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice]?.style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( '' !== this.state.value[ this.state.currentDevice ]?.style ) { currentStyle = this.state.value[ this.state.currentDevice ].style } } else { currentStyle = ( undefined !== this.state.value.style ? this.state.value.style : 'none' ); } const onResponsiveInputChange = ( event ) => { const newValue = Number( event.target.value ); let value = this.state.value; if ( undefined === value[ this.state.currentDevice ] ) { value[ this.state.currentDevice ] = { 'width': '', 'unit': '', 'style': '', 'color': '', } } value[ this.state.currentDevice ].width = newValue; this.updateValues( value ); } const onInputChange = ( event ) => { const newValue = ( '' !== event.target.value ? Number( event.target.value ) : '' ); let value = this.state.value; value.width = newValue; this.updateValues( value ); } const responsiveControlLabel = ( <Fragment> { this.state.currentDevice !== 'desktop' && ( <Tooltip text={ __( 'Reset Device Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( undefined === this.state.value[this.state.currentDevice] ) } onClick={ () => { let value = this.state.value; delete value[this.state.currentDevice]; this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> ) } { this.state.currentDevice === 'desktop' && ( <Tooltip text={ __( 'Reset All Values', 'kadence' ) }> <Button className="reset kadence-reset" onClick={ () => { this.resetValues(); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> ) } { data.label && data.label } </Fragment> ); const controlLabel = ( <Fragment> <Tooltip text={ __( 'Reset Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.defaultValue === this.state.value ) } onClick={ () => { let value = this.state.value; value = this.defaultValue this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { data.label && data.label } </Fragment> ); //console.log( this.state.colorPalette ) return ( <div ref={ this.anchorNodeRef } className="kadence-control-field kadence-border-control"> { this.controlParams.responsive && ( <ResponsiveControl onChange={ ( currentDevice) => this.setState( { currentDevice } ) } controlLabel={ responsiveControlLabel } > { 'none' !== currentStyle && ( <Fragment> { this.controlParams.color && ( <ColorControl presetColors={ this.state.colorPalette } color={ ( undefined !== this.state.value[ this.state.currentDevice ] && this.state.value[ this.state.currentDevice ].color ? this.state.value[ this.state.currentDevice ].color : '' ) } usePalette={ true } tooltip={ __( 'Border Color' ) } onChangeComplete={ ( color, isPalette ) => this.handleResponsiveChangeComplete( color, isPalette, this.state.currentDevice ) } customizer={ this.props.customizer } controlRef={ this.anchorNodeRef } /> ) } <input value={ ( undefined !== this.state.value[ this.state.currentDevice ] && undefined !== this.state.value[ this.state.currentDevice ]?.width ? this.state.value[ this.state.currentDevice ].width : '' ) } onChange={ onResponsiveInputChange } min={this.controlParams.min[currentUnit]} max={this.controlParams.max[currentUnit]} step={this.controlParams.step[currentUnit]} type="number" className="components-text-control__input" /> { this.controlParams.units && ( <div className="kadence-units"> { this.getResponsiveUnitButtons() } </div> ) } </Fragment> ) } { this.controlParams.styles && ( <div className="kadence-units kadence-style-options"> { this.getResponsiveStyleButtons() } </div> ) } </ResponsiveControl> ) } { ! this.controlParams.responsive && ( <Fragment> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <div className="kadence-responsive-controls-content"> { 'none' !== currentStyle && ( <Fragment> { this.controlParams.color && ( <ColorControl presetColors={ this.state.colorPalette } color={ ( undefined !== this.state.value.color && this.state.value.color ? this.state.value.color : '' ) } usePalette={ true } tooltip={ __( 'Border Color' ) } onChangeComplete={ ( color, isPalette ) => this.handleChangeComplete( color, isPalette ) } customizer={ this.props.customizer } controlRef={ this.anchorNodeRef } /> ) } <input value={ ( undefined !== this.state.value && undefined !== this.state.value.width ? this.state.value.width : '' ) } onChange={ onInputChange } min={this.controlParams.min[currentUnit]} max={this.controlParams.max[currentUnit]} step={this.controlParams.step[currentUnit]} type="number" className="components-text-control__input" /> { this.controlParams.units && ( <div className="kadence-units"> { this.getUnitButtons() } </div> ) } </Fragment> ) } { this.controlParams.styles && ( <div className="kadence-units kadence-style-options"> { this.getStyleButtons() } </div> ) } </div> </Fragment> ) } </div> ); } getResponsiveStyleButtons() { let self = this; const { styles } = this.controlParams; let currentStyle; if ( undefined === this.state.value[ this.state.currentDevice ] ) { let largerDevice = ( this.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice]?.style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( undefined === this.state.value[ this.state.currentDevice ].style ) { let largerDevice = ( this.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice]?.style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( '' === this.state.value[ this.state.currentDevice ].style ) { let largerDevice = ( this.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice]?.style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( '' !== this.state.value[ this.state.currentDevice ].style ) { currentStyle = this.state.value[ this.state.currentDevice ].style } if ( styles.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ Icons[ currentStyle ] }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ Icons[ currentStyle ] } label={ __( 'Style', 'kadence' ) } controls={ styles.map( ( style ) => this.createResponsiveStyleControlToolbar( style ) ) } /> } createResponsiveStyleControlToolbar( style ) { return [ { icon: Icons[ style ], isActive: ( undefined !== this.state.value[ this.state.currentDevice ] && undefined !== this.state.value[ this.state.currentDevice ].style && this.state.value[ this.state.currentDevice ].style === style ), onClick: () => { let value = this.state.value; if ( undefined === value[ this.state.currentDevice ] ) { value[ this.state.currentDevice ] = { 'width': '', 'unit': '', 'style': '', 'color': '', } } value[ this.state.currentDevice ].style = style; this.updateValues( value ); }, } ]; }; getStyleButtons() { let self = this; const { styles } = this.controlParams; let currentStyle; currentStyle = ( undefined !== this.state.value?.style ? this.state.value.style : 'none' ); if ( styles.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ Icons[ currentStyle ] }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ Icons[ currentStyle ] } label={ __( 'Style', 'kadence' ) } controls={ styles.map( ( style ) => this.createStyleControlToolbar( style ) ) } /> } createStyleControlToolbar( style ) { return [ { icon: Icons[ style ], isActive: ( undefined !== this.state.value && undefined !== this.state.value.style && this.state.value.style === style ), onClick: () => { let value = this.state.value; value.style = style; this.updateValues( value ); }, } ]; }; createResponsiveLevelControlToolbar( unit ) { return [ { icon: ( unit === '%' ? Icons.percent : Icons[ unit ] ), isActive: ( undefined !== this.state.value[ this.state.currentDevice ] && undefined !== this.state.value[ this.state.currentDevice ].unit && this.state.value[ this.state.currentDevice ].unit === unit ), onClick: () => { let value = this.state.value; if ( undefined === value[ this.state.currentDevice ] ) { value[ this.state.currentDevice ] = { 'width': '', 'unit': '', 'style': '', 'color': '', } } value[ this.state.currentDevice ].unit = unit; this.updateValues( value ); }, } ]; }; getResponsiveUnitButtons() { let self = this; const { units } = this.controlParams; let currentUnit; if ( undefined === self.state.value[ self.state.currentDevice ] ) { let largerDevice = ( self.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( undefined !== self.state.value[ self.state.currentDevice ].unit ) { let largerDevice = ( self.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( '' === self.state.value[ self.state.currentDevice ].unit ) { let largerDevice = ( self.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( '' !== self.state.value[ self.state.currentDevice ].unit ) { currentUnit = self.state.value[ self.state.currentDevice ].unit } if ( units.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ ( '%' === currentUnit ? Icons.percent : Icons[ currentUnit ] ) }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ ( '%' === currentUnit ? Icons.percent : Icons[ currentUnit ] ) } label={ __( 'Unit', 'kadence' ) } controls={ units.map( ( unit ) => this.createResponsiveLevelControlToolbar( unit ) ) } /> } createLevelControlToolbar( unit ) { return [ { icon: ( unit === '%' ? Icons.percent : Icons[ unit ] ), isActive: ( undefined !== this.state.value && undefined !== this.state.value.unit && this.state.value.unit === unit ), onClick: () => { let value = this.state.value; value.unit = unit; this.updateValues( value ); }, } ]; }; getUnitButtons() { let self = this; const { units } = this.controlParams; let currentUnit; currentUnit = ( undefined !== this.state.value.unit ? this.state.value.unit : 'px' ); if ( units.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ ( '%' === currentUnit ? Icons.percent : Icons[ currentUnit ] ) }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ ( '%' === currentUnit ? Icons.percent : Icons[ currentUnit ] ) } label={ __( 'Unit', 'kadence' ) } controls={ units.map( ( unit ) => this.createLevelControlToolbar( unit ) ) } /> } updateValues( value ) { if ( value ) { this.setState( { value: value } ); } else { this.setState( { value: this.defaultValue } ); value = {}; } if ( this.controlParams.responsive ) { value.flag = !this.props.control.setting.get().flag; } this.props.control.setting.set( { ...{ flag: true }, ...value, } ); } resetValues() { this.setState( { value: this.defaultValue } ); this.props.control.setting.set( {} ); } } BorderComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default BorderComponent; react/src/border/control.js 0000644 00000000772 15151531431 0011731 0 ustar 00 import { createRoot } from '@wordpress/element'; import BorderComponent from './border-component.js'; export const BorderControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <BorderComponent control={control} customizer={ wp.customize }/> ); // ReactDOM.render( // <BorderComponent control={control} customizer={ wp.customize }/>, // control.container[0] // ); } } ); react/src/base/control.js 0000644 00000010343 15151531431 0011361 0 ustar 00 /** * A dynamic control. * * @class * @augments wp.customize.Control * @augments wp.customize.Class */ export const baseControl = wp.customize.KadenceControl = wp.customize.Control.extend( { initialize: function( id, options ) { var control = this, args = options || {}; args.params = args.params || {}; if ( ! args.params.type ) { args.params.type = 'kadence-basic'; } if ( ! args.params.content ) { args.params.content = jQuery( '<li></li>' ); args.params.content.attr( 'id', 'customize-control-' + id.replace( /]/g, '' ).replace( /\[/g, '-' ) ); args.params.content.attr( 'class', 'customize-control customize-control-' + args.params.type ); } control.propertyElements = []; wp.customize.Control.prototype.initialize.call( control, id, args ); }, /** * Add bidirectional data binding links between inputs and the setting(s). * * This is copied from wp.customize.Control.prototype.initialize(). It * should be changed in Core to be applied once the control is embedded. * * @private * @returns {null} */ _setUpSettingRootLinks: function() { var control = this, nodes = control.container.find( '[data-customize-setting-link]' ); nodes.each( function() { var node = jQuery( this ); wp.customize( node.data( 'customizeSettingLink' ), function( setting ) { var element = new wp.customize.Element( node ); control.elements.push( element ); element.sync( setting ); element.set( setting() ); } ); } ); }, /** * Add bidirectional data binding links between inputs and the setting properties. * * @private * @returns {null} */ _setUpSettingPropertyLinks: function() { var control = this, nodes; if ( ! control.setting ) { return; } nodes = control.container.find( '[data-customize-setting-property-link]' ); nodes.each( function() { var node = jQuery( this ), element, propertyName = node.data( 'customizeSettingPropertyLink' ); element = new wp.customize.Element( node ); control.propertyElements.push( element ); element.set( control.setting()[ propertyName ] ); element.bind( function( newPropertyValue ) { var newSetting = control.setting(); if ( newPropertyValue === newSetting[ propertyName ] ) { return; } newSetting = _.clone( newSetting ); newSetting[ propertyName ] = newPropertyValue; control.setting.set( newSetting ); } ); control.setting.bind( function( newValue ) { if ( newValue[ propertyName ] !== element.get() ) { element.set( newValue[ propertyName ] ); } } ); } ); }, /** * @inheritdoc */ ready: function() { var control = this; control._setUpSettingRootLinks(); control._setUpSettingPropertyLinks(); wp.customize.Control.prototype.ready.call( control ); control.deferred.embedded.done( function() { } ); }, /** * Embed the control in the document. * * Override the embed() method to do nothing, * so that the control isn't embedded on load, * unless the containing section is already expanded. * * @returns {null} */ embed: function() { var control = this, sectionId = control.section(); if ( ! sectionId ) { return; } wp.customize.section( sectionId, function( section ) { if ( section.expanded() || wp.customize.settings.autofocus.control === control.id ) { control.actuallyEmbed(); } else { section.expanded.bind( function( expanded ) { if ( expanded ) { control.actuallyEmbed(); } } ); } } ); }, /** * Deferred embedding of control when actually * * This function is called in Section.onChangeExpanded() so the control * will only get embedded when the Section is first expanded. * * @returns {null} */ actuallyEmbed: function() { var control = this; if ( 'resolved' === control.deferred.embedded.state() ) { return; } control.renderContent(); control.deferred.embedded.resolve(); // This triggers control.ready(). // Fire event after control is initialized. control.container.trigger( 'init' ); }, /** * This is not working with autofocus. * * @param {object} [args] Args. * @returns {null} */ focus: function( args ) { var control = this; control.actuallyEmbed(); wp.customize.Control.prototype.focus.call( control, args ); }, } ); react/src/sorter/setting-item-component.js 0000644 00000120353 15151531431 0014721 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import capitalizeFirstLetter from '../common/capitalize-first.js'; import { __ } from '@wordpress/i18n'; import Icons from '../common/icons.js'; const { MediaUpload } = wp.blockEditor; const { ButtonGroup, Dashicon, Tooltip, TextControl, Button, SelectControl, TabPanel, ToggleControl, RangeControl, Placeholder } = wp.components; const { Component, Fragment } = wp.element; class ItemComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); let value = this.props.control.settings[this.props.item] ? this.props.control.settings[this.props.item].get() : ''; let baseDefault = { 'enabled': false }; if ( this.props.setting === 'product_content_element' && this.props.item === 'payments' ) { baseDefault = { 'enabled': false, 'title': 'GUARANTEED SAFE CHECKOUT', 'visa': true, 'mastercard': true, 'amex': true, 'discover': true, 'paypal': true, 'applepay': false, 'stripe': false, 'link': false, 'googlepay': false, 'card_color': 'inherit', 'custom_enable_01': false, 'custom_img_01': '', 'custom_id_01': '', 'custom_enable_02': false, 'custom_img_02': '', 'custom_id_02': '', 'custom_enable_03': false, 'custom_img_03': '', 'custom_id_03': '', 'custom_enable_04': false, 'custom_img_04': '', 'custom_id_04': '', 'custom_enable_05': false, 'custom_img_05': '', 'custom_id_05': '', }; } baseDefault = this.props.controlParams.defaults && this.props.controlParams.defaults[this.props.item] ? { ...baseDefault, ...this.props.controlParams.defaults[this.props.item] } : baseDefault; value = value ? { ...JSON.parse( JSON.stringify( baseDefault ) ), ...value } : JSON.parse( JSON.stringify( baseDefault ) ); this.state = { open: false, item: value, }; } render() { let sizeOptions; { undefined !== this.state.item.size && ( sizeOptions = Object.keys( this.props.controlParams.imageSizes ).map( ( item ) => { return ( { label: this.props.controlParams.imageSizes[ item ].name, value: item } ); } ) ) } let taxOptions; { undefined !== this.state.item.taxonomy && ( taxOptions = Object.keys( this.props.controlParams.taxonomies ).map( ( item ) => { return ( { label: this.props.controlParams.taxonomies[ item ], value: item } ); } ) ) } if ( taxOptions ) { taxOptions = [{ label: __( 'Select', 'kadence' ), value: '' }].concat( taxOptions ); } // An item has panel content if it's item object has more than just 'enabled' and/or 'flag'. const hasPanelContent = ! ( ( Object.keys(this.state.item).length === 1 && this.state.item.hasOwnProperty('enabled') ) || ( Object.keys(this.state.item).length === 2 && this.state.item.hasOwnProperty('enabled') && this.state.item.hasOwnProperty('flag') ) ); return ( <div className="kadence-sorter-item" data-id={ this.props.item } key={ this.props.item }> <div className={ `kadence-sorter-item-panel-header ${ ( this.state.item.enabled ? 'panel-item-is-visible' : 'panel-item-is-hidden' ) }` }> { this.props.moveable && ( <span className="kadence-builder-item-icon kadence-move-icon" > { Icons['drag'] } </span> ) } <Tooltip text={ __( 'Toggle Item Visibility', 'kadence' ) }> <Button className={ `kadence-sorter-visiblity ${ ( this.state.item.enabled ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.updateValues( { enabled: ( this.state.item.enabled ? false : true ) } ); } } > <Dashicon icon={ ( this.state.item.enabled ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <span className="kadence-sorter-title"> { capitalizeFirstLetter( this.props.item.replace( /_/g, ' ' ) ) } </span> { hasPanelContent && ( <Tooltip text={ __( 'Expand Item Controls', 'kadence' ) }> <Button className="kadence-sorter-item-expand" onClick={ () => { this.setState( { open: ( this.state.open ? false : true ) } ) } } > <Dashicon icon={ ( this.state.open ? 'arrow-up-alt2' : 'arrow-down-alt2' ) }/> </Button> </Tooltip> ) } </div> { this.state.open && ( <div className="kadence-sorter-item-panel-content"> { undefined !== this.state.item.ratio && ( <div class="components-base-control"> <span className="sorter-control-title">{ __( 'Set Image Ratio', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control kadence-featured-image-ratio"> { Object.keys( this.props.controlParams.ratios ).map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.ratio ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { ratio: item } ); } } > { this.props.controlParams.ratios[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ this.props.controlParams.ratios[ item ].icon ] } </span> ) } { this.props.controlParams.ratios[ item ].name && ( this.props.controlParams.ratios[ item ].name ) } </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.imageLink && ( <div className="components-base-control"> <ToggleControl label={ __( 'Image is link to post', 'kadence' ) } checked={ this.state.item.imageLink } onChange={ ( value ) => { this.updateValues( { imageLink: value } ); } } /> </div> ) } { undefined !== this.state.item.show_title && ( <div className="components-base-control"> <ToggleControl label={ __( 'Show Post Title in Breadcrumb?', 'kadence' ) } checked={ this.state.item.show_title } onChange={ ( value ) => { this.updateValues( { show_title: value } ); } } /> </div> ) } { undefined !== this.state.item.fullContent && ( <div className="components-base-control"> <ToggleControl label={ __( 'Show Full Content?', 'kadence' ) } checked={ this.state.item.fullContent } onChange={ ( value ) => { this.updateValues( { fullContent: value } ); } } /> { undefined !== this.state.item.words && false === this.state.item.fullContent && ( <RangeControl initialPosition={ this.state.item.words ? this.state.item.words : 55 } value={ ( undefined !== this.state.item.words ? this.state.item.words : 55 ) } onChange={ ( value ) => { this.updateValues( { words: value } ); } } min={ 10 } max={ 125 } step={ 1 } label={ __( 'Excerpt Word Count', 'kadence' ) } /> ) } </div> ) } { undefined !== this.state.item.size && ( <div class="components-base-control"> <span className="sorter-control-title">{ __( 'Set Image Size', 'kadence' ) }</span> <SelectControl value={ this.state.item.size } options={ sizeOptions } onChange={ value => { this.updateValues( { size: value } ); } } /> </div> ) } { undefined !== this.state.item.divider && ( <div class="components-base-control"> <span className="sorter-control-title">{ __( 'Choose a Divider', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { Object.keys( this.props.controlParams.dividers ).map( ( item ) => { if ( undefined !== this.state.item.style && item === 'customicon' ) { return false; } return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.divider ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { divider: item } ); } } > { this.props.controlParams.dividers[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ this.props.controlParams.dividers[ item ].icon ] } </span> ) } { this.props.controlParams.dividers[ item ].name && ( this.props.controlParams.dividers[ item ].name ) } </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.button_size && ( <div class="components-base-control"> <span className="sorter-control-title">{ __( 'Choose Button Size', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { [ 'normal', 'medium-large', 'large' ].map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.button_size ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { button_size: item } ); } } > { capitalizeFirstLetter( item ) } </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.style && ( <div class="components-base-control"> <span className="sorter-control-title">{ __( 'Choose a Style', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { [ 'normal', 'pill', 'underline' ].map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.style ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { style: item } ); } } > { capitalizeFirstLetter( item ) } </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.taxonomy && ( <div class="components-base-control"> <span className="sorter-control-title">{ __( 'Choose a Taxonomy', 'kadence' ) }</span> <SelectControl value={ this.state.item.taxonomy } options={ taxOptions } onChange={ value => { this.updateValues( { taxonomy: value } ); } } /> </div> ) } { undefined !== this.state.item.show_shipping && ( <div className="components-base-control"> <ToggleControl label={ __( 'Show Shipping Statement?', 'kadence' ) } checked={ this.state.item.show_shipping } onChange={ ( value ) => { this.updateValues( { show_shipping: value } ); } } /> { this.state.item.show_shipping && ( <Fragment> { undefined !== this.state.item.shipping_statement && ( <div className="meta-label-control"> <span className="sorter-control-title">{ __( 'Shipping Excerpt', 'kadence' ) }</span> <div className={ 'meta-label-input-control' }> <TextControl label="" value={ this.state.item.shipping_statement ? this.state.item.shipping_statement : this.state.item.shipping_statement } onChange={ ( value ) => { this.updateValues( { shipping_statement: value } ); } } /> </div> </div> ) } </Fragment> ) } </div> ) } { undefined !== this.state.item.title && ( <TextControl label={ __( 'Title', 'kadence' ) } value={ this.state.item.title } onChange={ ( value ) => { this.updateValues( { title: value } ); } } /> ) } { undefined !== this.state.item.label && ( <TextControl label={ __( 'Label', 'kadence' ) } value={ this.state.item.label } onChange={ ( value ) => { this.updateValues( { label: value } ); } } /> ) } { undefined !== this.state.item.feature_1 && ( <div className="sorter-sub-option"> <TextControl label={ __( 'First Feature', 'kadence' ) } value={ this.state.item.feature_1 } onChange={ ( value ) => { this.updateValues( { feature_1: value } ); } } /> <span className="sorter-control-title">{ __( 'Choose a Icon', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { [ 'shield_check', 'check', 'checkbox', 'checkbox_alt', 'disc' ].map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.feature_1_icon ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { feature_1_icon: item } ); } } > <span className="kadence-radio-icon"> { Icons[ item ] } </span> </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.feature_2 && ( <div className="sorter-sub-option"> <TextControl label={ __( 'Second Feature', 'kadence' ) } value={ this.state.item.feature_2 } onChange={ ( value ) => { this.updateValues( { feature_2: value } ); } } /> <span className="sorter-control-title">{ __( 'Choose a Icon', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { [ 'shield_check', 'check', 'checkbox', 'checkbox_alt', 'disc' ].map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.feature_2_icon ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { feature_2_icon: item } ); } } > <span className="kadence-radio-icon"> { Icons[ item ] } </span> </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.feature_3 && ( <div className="sorter-sub-option"> <TextControl label={ __( 'Third Feature', 'kadence' ) } value={ this.state.item.feature_3 } onChange={ ( value ) => { this.updateValues( { feature_3: value } ); } } /> <span className="sorter-control-title">{ __( 'Choose a Icon', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { [ 'shield_check', 'check', 'checkbox', 'checkbox_alt', 'disc' ].map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.feature_3_icon ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { feature_3_icon: item } ); } } > <span className="kadence-radio-icon"> { Icons[ item ] } </span> </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.feature_4 && ( <div className="sorter-sub-option"> <TextControl label={ __( 'Fourth Feature', 'kadence' ) } value={ this.state.item.feature_4 } onChange={ ( value ) => { this.updateValues( { feature_4: value } ); } } /> <span className="sorter-control-title">{ __( 'Choose a Icon', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { [ 'shield_check', 'check', 'checkbox', 'checkbox_alt', 'disc' ].map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.feature_4_icon ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { feature_4_icon: item } ); } } > <span className="kadence-radio-icon"> { Icons[ item ] } </span> </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.feature_5 && ( <div className="sorter-sub-option"> <TextControl label={ __( 'Fifth Feature', 'kadence' ) } value={ this.state.item.feature_5 } onChange={ ( value ) => { this.updateValues( { feature_5: value } ); } } /> <span className="sorter-control-title">{ __( 'Choose a Icon', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { [ 'shield_check', 'check', 'checkbox', 'checkbox_alt', 'disc' ].map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.feature_5_icon ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { feature_5_icon: item } ); } } > <span className="kadence-radio-icon"> { Icons[ item ] } </span> </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.author && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Author?', 'kadence' ) } checked={ this.state.item.author ? this.state.item.author : this.state.item.author } onChange={ ( value ) => { this.updateValues( { author: value } ); } } /> { this.state.item.author && ( <Fragment> { undefined !== this.state.item.authorLink && ( <Fragment> <ToggleControl label={ __( 'Enable Author Link?', 'kadence' ) } checked={ this.state.item.authorLink } onChange={ ( value ) => { this.updateValues( { authorLink: value } ); } } /> </Fragment> ) } { undefined !== this.state.item.authorImage && ( <Fragment> <ToggleControl label={ __( 'Show Author Image?', 'kadence' ) } checked={ this.state.item.authorImage ? this.state.item.authorImage : this.state.item.authorImage } onChange={ ( value ) => { this.updateValues( { authorImage: value } ); } } /> { undefined !== this.state.item.authorImageSize && true === this.state.item.authorImage && ( <RangeControl initialPosition={ this.state.item.authorImageSize ? this.state.item.authorImageSize : 25 } value={ ( undefined !== this.state.item.authorImageSize ? this.state.item.authorImageSize : 25 ) } onChange={ ( value ) => { this.updateValues( { authorImageSize: value } ); } } min={ 10 } max={ 125 } step={ 1 } label={ __( 'Author Image Size (px)', 'kadence' ) } /> ) } </Fragment> ) } { undefined !== this.state.item.authorLabel && ( <div className="meta-label-control"> <span className="sorter-control-title">{ __( 'Author Label', 'kadence' ) }</span> <div className={ `meta-label-input-control ${ ( this.state.item.authorEnableLabel ? 'label-is-visible' : 'label-is-hidden' ) }` }> <Tooltip text={ __( 'Toggle Label Visibility', 'kadence' ) }> <Button className={ `kadence-label-visiblity ${ ( this.state.item.authorEnableLabel ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.updateValues( { authorEnableLabel: ( this.state.item.authorEnableLabel ? false : true ) } ); } } > <Dashicon icon={ ( this.state.item.authorEnableLabel ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <TextControl label="" placeholder={ __( 'By', 'kadence' ) } value={ this.state.item.authorLabel ? this.state.item.authorLabel : this.state.item.authorLabel } onChange={ ( value ) => { this.updateValues( { authorLabel: value } ); } } /> </div> </div> ) } </Fragment> ) } </div> ) } { undefined !== this.state.item.date && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Date?', 'kadence' ) } checked={ this.state.item.date ? this.state.item.date : this.state.item.date } onChange={ ( value ) => { this.updateValues( { date: value } ); } } /> { this.state.item.date && ( <ToggleControl label={ __( 'Show Time?', 'kadence' ) } checked={ this.state.item.dateTime ? this.state.item.dateTime : this.props.item.dateTime } onChange={ ( value ) => { this.updateValues( { dateTime: value }, this.props.index ); } } /> ) } { undefined !== this.state.item.dateLabel && this.state.item.date && ( <div className="meta-label-control"> <span className="sorter-control-title">{ __( 'Date Label', 'kadence' ) }</span> <div className={ `meta-label-input-control ${ ( this.state.item.dateEnableLabel ? 'label-is-visible' : 'label-is-hidden' ) }` }> <Tooltip text={ __( 'Toggle Label Visibility', 'kadence' ) }> <Button className={ `kadence-label-visiblity ${ ( this.state.item.dateEnableLabel ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.updateValues( { dateEnableLabel: ( this.state.item.dateEnableLabel ? false : true ) } ); } } > <Dashicon icon={ ( this.state.item.dateEnableLabel ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <TextControl label="" placeholder={ __( 'Posted on', 'kadence' ) } value={ this.state.item.dateLabel ? this.state.item.dateLabel : this.state.item.dateLabel } onChange={ ( value ) => { this.updateValues( { dateLabel: value } ); } } /> </div> </div> ) } </div> ) } { undefined !== this.state.item.dateUpdated && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Last Updated Date?', 'kadence' ) } checked={ this.state.item.dateUpdated ? this.state.item.dateUpdated : this.state.item.dateUpdated } onChange={ ( value ) => { this.updateValues( { dateUpdated: value } ); } } /> { this.state.item.dateUpdated && ( <ToggleControl label={ __( 'Show only if different from publish date?', 'kadence' ) } checked={ this.state.item.dateUpdatedDifferent ? this.state.item.dateUpdatedDifferent : this.props.item.dateUpdatedDifferent } onChange={ ( value ) => { this.updateValues( { dateUpdatedDifferent: value }, this.props.index ); } } /> ) } { this.state.item.dateUpdated && ( <ToggleControl label={ __( 'Show Time?', 'kadence' ) } checked={ this.state.item.dateUpdatedTime ? this.state.item.dateUpdatedTime : this.props.item.dateUpdatedTime } onChange={ ( value ) => { this.updateValues( { dateUpdatedTime: value }, this.props.index ); } } /> ) } { undefined !== this.state.item.dateUpdatedLabel && this.state.item.dateUpdated && ( <div className="meta-label-control"> <span className="sorter-control-title">{ __( 'Updated Date Label', 'kadence' ) }</span> <div className={ `meta-label-input-control ${ ( this.state.item.dateUpdatedEnableLabel ? 'label-is-visible' : 'label-is-hidden' ) }` }> <Tooltip text={ __( 'Toggle Label Visibility', 'kadence' ) }> <Button className={ `kadence-label-visiblity ${ ( this.state.item.dateUpdatedEnableLabel ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.updateValues( { dateUpdatedEnableLabel: ( this.state.item.dateUpdatedEnableLabel ? false : true ) } ); } } > <Dashicon icon={ ( this.state.item.dateUpdatedEnableLabel ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <TextControl label="" placeholder={ __( 'Updated on', 'kadence' ) } value={ this.state.item.dateUpdatedLabel ? this.state.item.dateUpdatedLabel : this.state.item.dateUpdatedLabel } onChange={ ( value ) => { this.updateValues( { dateUpdatedLabel: value } ); } } /> </div> </div> ) } </div> ) } { undefined !== this.state.item.categories && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Categories?', 'kadence' ) } checked={ this.state.item.categories ? this.state.item.categories : this.state.item.categories } onChange={ ( value ) => { this.updateValues( { categories: value } ); } } /> { undefined !== this.state.item.categoriesLabel && this.state.item.categories && this.state.item.metaLabel && ( <div className="meta-label-control"> <span className="sorter-control-title">{ __( 'Categories Label', 'kadence' ) }</span> <div className={ `meta-label-input-control ${ ( this.state.item.categoriesEnableLabel ? 'label-is-visible' : 'label-is-hidden' ) }` }> <Tooltip text={ __( 'Toggle Label Visibility', 'kadence' ) }> <Button className={ `kadence-label-visiblity ${ ( this.state.item.categoriesEnableLabel ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.updateValues( { categoriesEnableLabel: ( this.state.item.categoriesEnableLabel ? false : true ) } ); } } > <Dashicon icon={ ( this.state.item.categoriesEnableLabel ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <TextControl label="" placeholder={ __( 'Posted in', 'kadence' ) } value={ this.state.item.categoriesLabel ? this.state.item.categoriesLabel : this.state.item.categoriesLabel } onChange={ ( value ) => { this.updateValues( { categoriesLabel: value } ); } } /> </div> </div> ) } </div> ) } { undefined !== this.state.item.comments && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Comments?', 'kadence' ) } checked={ this.state.item.comments ? this.state.item.comments : this.state.item.comments } onChange={ ( value ) => { this.updateValues( { comments: value } ); } } /> { this.state.item.comments && ( <ToggleControl label={ __( 'Show only if post has at least one comment', 'kadence' ) } checked={ this.state.item.commentsCondition ? this.state.item.commentsCondition : this.props.item.commentsCondition } onChange={ ( value ) => { this.updateValues( { commentsCondition: value }, this.props.index ); } } /> ) } </div> ) } { undefined !== this.state.item.card_color && ( <div class="components-base-control"> <span className="sorter-control-title">{ __( 'Choose Icon Colors', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { [ 'inherit', 'gray' ].map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.state.item.card_color ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.updateValues( { card_color: item } ); } } > { capitalizeFirstLetter( item ) } </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.state.item.stripe && ( <ToggleControl label={ __( 'Show Stripe?', 'kadence' ) } checked={ this.state.item.stripe } onChange={ ( value ) => { this.updateValues( { stripe: value } ); } } /> ) } { undefined !== this.state.item.visa && ( <ToggleControl label={ __( 'Show Visa?', 'kadence' ) } checked={ this.state.item.visa } onChange={ ( value ) => { this.updateValues( { visa: value } ); } } /> ) } { undefined !== this.state.item.mastercard && ( <ToggleControl label={ __( 'Show Mastercard?', 'kadence' ) } checked={ this.state.item.mastercard } onChange={ ( value ) => { this.updateValues( { mastercard: value } ); } } /> ) } { undefined !== this.state.item.amex && ( <ToggleControl label={ __( 'Show Amex?', 'kadence' ) } checked={ this.state.item.amex } onChange={ ( value ) => { this.updateValues( { amex: value } ); } } /> ) } { undefined !== this.state.item.discover && ( <ToggleControl label={ __( 'Show Discover?', 'kadence' ) } checked={ this.state.item.discover } onChange={ ( value ) => { this.updateValues( { discover: value } ); } } /> ) } { undefined !== this.state.item.link && ( <ToggleControl label={ __( 'Show Link?', 'kadence' ) } checked={ this.state.item.link } onChange={ ( value ) => { this.updateValues( { link: value } ); } } /> ) } { undefined !== this.state.item.paypal && ( <ToggleControl label={ __( 'Show Paypal?', 'kadence' ) } checked={ this.state.item.paypal } onChange={ ( value ) => { this.updateValues( { paypal: value } ); } } /> ) } { undefined !== this.state.item.applepay && ( <ToggleControl label={ __( 'Show Apple Pay?', 'kadence' ) } checked={ this.state.item.applepay } onChange={ ( value ) => { this.updateValues( { applepay: value } ); } } /> ) } { undefined !== this.state.item.googlepay && ( <ToggleControl label={ __( 'Show Google Pay?', 'kadence' ) } checked={ this.state.item.googlepay } onChange={ ( value ) => { this.updateValues( { googlepay: value } ); } } /> ) } { undefined !== this.state.item.custom_enable_01 && ( <Fragment> <ToggleControl label={ __( 'Show Custom 01?', 'kadence' ) } checked={ this.state.item.custom_enable_01 } onChange={ ( value ) => { this.updateValues( { custom_enable_01: value } ); } } /> { this.state.item.custom_enable_01 && ( <Fragment> { ! this.state.item.custom_img_01 && ( <div className="attachment-media-view"> <MediaUpload onSelect={ ( imageData ) => { this.updateValues( { custom_img_01: imageData.url, custom_id_01: imageData.id } ); } } allowedTypes={ ['image'] } render={ ( { open } ) => ( <Button className="button-add-media" isSecondary onClick={ open }> { __( 'Add Image', 'kadence' )} </Button> ) } /> </div> ) } { this.state.item.custom_img_01 && ( <div className="social-custom-image"> <div className="kadence-social-image"> <img className="kadence-social-image-preview" src={ this.state.item.custom_img_01 } /> </div> <Button className='remove-image' isDestructive onClick={ () => { this.updateValues( { custom_img_01: '', custom_id_01: '' } ); } } > { __( 'Remove Image', 'kadence' ) } <Dashicon icon='no'/> </Button> </div> ) } </Fragment> ) } </Fragment> ) } { undefined !== this.state.item.custom_enable_02 && ( <Fragment> <ToggleControl label={ __( 'Show Custom 02?', 'kadence' ) } checked={ this.state.item.custom_enable_02 } onChange={ ( value ) => { this.updateValues( { custom_enable_02: value } ); } } /> { this.state.item.custom_enable_02 && ( <Fragment> { ! this.state.item.custom_img_02 && ( <div className="attachment-media-view"> <MediaUpload onSelect={ ( imageData ) => { this.updateValues( { custom_img_02: imageData.url, custom_id_02: imageData.id } ); } } allowedTypes={ ['image'] } render={ ( { open } ) => ( <Button className="button-add-media" isSecondary onClick={ open }> { __( 'Add Image', 'kadence' )} </Button> ) } /> </div> ) } { this.state.item.custom_img_02 && ( <div className="social-custom-image"> <div className="kadence-social-image"> <img className="kadence-social-image-preview" src={ this.state.item.custom_img_02 } /> </div> <Button className='remove-image' isDestructive onClick={ () => { this.updateValues( { custom_img_02: '', custom_id_02: '' } ); } } > { __( 'Remove Image', 'kadence' ) } <Dashicon icon='no'/> </Button> </div> ) } </Fragment> ) } </Fragment> ) } { undefined !== this.state.item.custom_enable_03 && ( <Fragment> <ToggleControl label={ __( 'Show Custom 03?', 'kadence' ) } checked={ this.state.item.custom_enable_03 } onChange={ ( value ) => { this.updateValues( { custom_enable_03: value } ); } } /> { this.state.item.custom_enable_03 && ( <Fragment> { ! this.state.item.custom_img_03 && ( <div className="attachment-media-view"> <MediaUpload onSelect={ ( imageData ) => { this.updateValues( { custom_img_03: imageData.url, custom_id_03: imageData.id } ); } } allowedTypes={ ['image'] } render={ ( { open } ) => ( <Button className="button-add-media" isSecondary onClick={ open }> { __( 'Add Image', 'kadence' )} </Button> ) } /> </div> ) } { this.state.item.custom_img_03 && ( <div className="social-custom-image"> <div className="kadence-social-image"> <img className="kadence-social-image-preview" src={ this.state.item.custom_img_03 } /> </div> <Button className='remove-image' isDestructive onClick={ () => { this.updateValues( { custom_img_03: '', custom_id_03: '' } ); } } > { __( 'Remove Image', 'kadence' ) } <Dashicon icon='no'/> </Button> </div> ) } </Fragment> ) } </Fragment> ) } { undefined !== this.state.item.custom_enable_04 && ( <Fragment> <ToggleControl label={ __( 'Show Custom 04?', 'kadence' ) } checked={ this.state.item.custom_enable_04 } onChange={ ( value ) => { this.updateValues( { custom_enable_04: value } ); } } /> { this.state.item.custom_enable_04 && ( <Fragment> { ! this.state.item.custom_img_04 && ( <div className="attachment-media-view"> <MediaUpload onSelect={ ( imageData ) => { this.updateValues( { custom_img_04: imageData.url, custom_id_04: imageData.id } ); } } allowedTypes={ ['image'] } render={ ( { open } ) => ( <Button className="button-add-media" isSecondary onClick={ open }> { __( 'Add Image', 'kadence' )} </Button> ) } /> </div> ) } { this.state.item.custom_img_04 && ( <div className="social-custom-image"> <div className="kadence-social-image"> <img className="kadence-social-image-preview" src={ this.state.item.custom_img_04 } /> </div> <Button className='remove-image' isDestructive onClick={ () => { this.updateValues( { custom_img_04: '', custom_id_04: '' } ); } } > { __( 'Remove Image', 'kadence' ) } <Dashicon icon='no'/> </Button> </div> ) } </Fragment> ) } </Fragment> ) } { undefined !== this.state.item.custom_enable_05 && ( <Fragment> <ToggleControl label={ __( 'Show Custom 05?', 'kadence' ) } checked={ this.state.item.custom_enable_05 } onChange={ ( value ) => { this.updateValues( { custom_enable_05: value } ); } } /> { this.state.item.custom_enable_05 && ( <Fragment> { ! this.state.item.custom_img_05 && ( <div className="attachment-media-view"> <MediaUpload onSelect={ ( imageData ) => { this.updateValues( { custom_img_05: imageData.url, custom_id_05: imageData.id } ); } } allowedTypes={ ['image'] } render={ ( { open } ) => ( <Button className="button-add-media" isSecondary onClick={ open }> { __( 'Add Image', 'kadence' ) } </Button> ) } /> </div> ) } { this.state.item.custom_img_05 && ( <div className="social-custom-image"> <div className="kadence-social-image"> <img className="kadence-social-image-preview" src={ this.state.item.custom_img_05 } /> </div> <Button className='remove-image' isDestructive onClick={ () => { this.updateValues( { custom_img_05: '', custom_id_05: '' } ); } } > { __( 'Remove Image', 'kadence' ) } <Dashicon icon='no'/> </Button> </div> ) } </Fragment> ) } </Fragment> ) } </div> ) } </div> ); } updateValues( value ) { const stateUpdate = { ...this.state.item, ...value }; this.setState( { item: stateUpdate } ); this.props.control.settings[ this.props.item ].set( { ...this.props.control.settings[ this.props.item ].get(), ...value, flag: !this.props.control.settings[ this.props.item ].get().flag } ); } } ItemComponent.propTypes = { item: PropTypes.string.isRequired, customizer: PropTypes.object.isRequired }; export default ItemComponent; react/src/sorter/sorter-component.js 0000644 00000014356 15151531431 0013633 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { ReactSortable } from "react-sortablejs"; import isEqual from 'lodash/isEqual'; import ItemComponent from './item-component'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class SorterComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.onDragEnd = this.onDragEnd.bind( this ); this.onDragStart = this.onDragStart.bind( this ); this.onDragStop = this.onDragStop.bind( this ); this.saveObjectUpdate = this.saveObjectUpdate.bind( this ); this.onItemChange = this.onItemChange.bind( this );; let value = this.props.control.setting.get(); let baseDefault = { 'items': { 'title': { 'id': 'title', 'enabled': true, }, 'breadcrumb': { 'id': 'breadcrumb', 'enabled': true, 'divider': 'dot', }, 'meta': { 'id': 'meta', 'enabled': true, 'metaLabel': true, 'divider': 'dot', 'author': true, 'authorImage': true, 'authorLabel': '', 'date': true, 'dateTime': false, 'dateLabel': '', 'dateUpdated': true, 'dateUpdatedTime': false, 'dateUpdatedDifferent': false, 'dateUpdatedLabel': '', 'categories': true, 'categoriesLabel': '', 'comments': false, 'commentsLabel': '', 'commentsCondition': false, }, 'categories': { 'id': 'categories', 'enabled': true, 'divider': 'dot', } } }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...JSON.parse( JSON.stringify( this.defaultValue ) ), ...value } : JSON.parse( JSON.stringify( this.defaultValue ) ); let defaultParams = { 'group': 'title_item_group', dividers: { dot: { icon: 'dot', }, slash: { name: '/', icon: '', }, dash: { name: '-', icon: '', }, arrow: { name: '>', icon: '', }, doubleArrow: { name: '>>', icon: '', }, }, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; this.state = { value: value, }; } onDragStart() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.add( 'kadence-dragging-dropzones' ); } } onDragStop() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.remove( 'kadence-dragging-dropzones' ); } } saveObjectUpdate( value, index ) { let updateState = this.state.value; let items = updateState.items; let newItems = updateState.items; Object.keys( items ).map( ( item, thisIndex ) => { if ( index === thisIndex ) { newItems[item] = { ...items[item], ...value }; } } ); updateState.items = newItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } onItemChange( value, itemIndex ) { this.saveObjectUpdate( value, itemIndex ); } onDragEnd( items ) { let updateState = this.state.value; let update = updateState.items; let updateItems = {}; { items.length > 0 && ( items.map( ( item ) => { if ( update[item.id].id === item.id ) { updateItems[item.id] = update[item.id]; } } ) ) }; if ( JSON.stringify( update ) !== JSON.stringify( updateItems ) ) { update.items = updateItems; updateState.items = updateItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } } arraysEqual( a, b ) { if (a === b) return true; if (a == null || b == null) return false; if (a.length != b.length) return false; for (var i = 0; i < a.length; ++i) { if (a[i] !== b[i]) return false; } return true; } render() { const controlLabel = ( <Fragment> <Tooltip text={ __( 'Reset Value', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.value === this.defaultValue ) } onClick={ () => { let value = this.defaultValue; this.setState( { value: value } ); this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { this.props.control.params.label && this.props.control.params.label } </Fragment> ); const currentList = ( typeof this.state.value != "undefined" && undefined !== this.state.value.items ? this.state.value.items : {} ); let theItems = []; { Object.keys( currentList ).map( ( item ) => { theItems.push( { id: item, } ) } ) } return ( <div className="kadence-control-field kadence-sorter-items kadence-post-title-sorter"> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <div className="kadence-sorter-row"> <ReactSortable animation={100} onStart={ () => this.onDragStop() } onEnd={ () => this.onDragStop() } group={ this.controlParams.group } className={ `kadence-sorter-drop kadence-sorter-sortable-panel kadence-meta-sorter kadence-sorter-drop-${ this.controlParams.group }` } handle={ '.kadence-sorter-item-panel-header' } list={ theItems } setList={ ( newState ) => this.onDragEnd( newState ) } > { Object.keys( currentList ).map( ( item, index ) => { return <ItemComponent onItemChange={ ( value, itemIndex ) => this.onItemChange( value, itemIndex ) } key={ item } index={ index } item={ currentList[item] } controlParams={ this.controlParams } />; } ) } </ReactSortable> </div> </div> ); } updateValues( value ) { this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag } ); } } SorterComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default SorterComponent; react/src/sorter/setting-sorter-component.js 0000644 00000014026 15151531431 0015300 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { ReactSortable } from "react-sortablejs"; import isEqual from 'lodash/isEqual'; import union from 'lodash/union'; import ItemComponent from './setting-item-component'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class SorterComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.onDragEnd = this.onDragEnd.bind( this ); this.onDragStart = this.onDragStart.bind( this ); this.onDragStop = this.onDragStop.bind( this ); let value = this.props.control.settings['elements'].get(); let baseDefault = [ 'title', 'breadcrumb', 'meta' ]; this.defaultValue = this.props.control.params.default ? this.props.control.params.default : baseDefault; value = value ? union( value, this.defaultValue ) : this.defaultValue; let defaultParams = { 'group': 'title_item_group', 'sortable': true, dividers: { dot: { icon: 'dot', }, slash: { icon: 'slash', }, dash: { icon: 'dash', }, vline: { icon: 'vline', }, }, imageSizes: { thumbnail: { name: __( 'Thumbnail', 'kadence' ), }, medium: { name: __( 'Medium', 'kadence' ), }, medium_large: { name: __( 'Medium Large', 'kadence' ), }, large: { name: __( 'Large', 'kadence' ), }, full: { name: __( 'Full', 'kadence' ), }, }, ratios: { 'inherit': { 'name': __( 'Inherit', 'kadence' ), }, '1-1': { 'name': '1:1', }, '3-4': { 'name': '4:3', }, '2-3': { 'name': '3:2', }, '9-16': { 'name': '16:9', }, '1-2': { 'name': '2:1', }, '5-4': { 'name': '4:5', }, '4-3': { 'name': '3:4', }, '3-2': { 'name': '2:3', }, } }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; this.state = { value: value, }; } onDragStart() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.add( 'kadence-dragging-dropzones' ); } } onDragStop() { var dropzones = document.querySelectorAll( '.kadence-builder-area' ); var i; for (i = 0; i < dropzones.length; ++i) { dropzones[i].classList.remove( 'kadence-dragging-dropzones' ); } } onDragEnd( items ) { let updateState = this.state.value; let update = updateState; let updateItems = []; { items.length > 0 && ( items.map( ( item ) => { updateItems.push( item.id ); } ) ) }; if ( JSON.stringify( update ) !== JSON.stringify( updateItems ) ) { update = updateItems; updateState = updateItems; this.setState( { value: updateState } ); this.updateValues( updateState ); } } arraysEqual( a, b ) { if (a === b) return true; if (a == null || b == null) return false; if (a.length != b.length) return false; for (var i = 0; i < a.length; ++i) { if (a[i] !== b[i]) return false; } return true; } render() { const controlLabel = ( <Fragment> {/* <Tooltip text={ __( 'Reset Value', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.value === this.defaultValue ) } onClick={ () => { let value = this.defaultValue; this.setState( { value: value } ); this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> */} { this.props.control.params.label && this.props.control.params.label } </Fragment> ); const currentList = ( typeof this.state.value != "undefined" && undefined !== this.state.value ? this.state.value : [] ); let theItems = []; { currentList.map( ( item ) => { theItems.push( { id: item, } ) } ) } return ( <div className="kadence-control-field kadence-sorter-items kadence-post-title-sorter"> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <div className="kadence-sorter-row"> { this.controlParams.sortable && ( <ReactSortable animation={100} onStart={ () => this.onDragStop() } onEnd={ () => this.onDragStop() } group={ this.controlParams.group } className={ `kadence-sorter-drop kadence-sorter-sortable-panel kadence-meta-sorter kadence-sorter-drop-${ this.controlParams.group }` } handle={ '.kadence-sorter-item-panel-header' } list={ theItems } setList={ ( newState ) => this.onDragEnd( newState ) } > { currentList.map( ( item, index ) => { return <ItemComponent key={ item } item={ item } setting={ this.controlParams.group } index={ index } control={ this.props.control } moveable={ true } controlParams={ this.controlParams } customizer={ this.props.customizer } />; } ) } </ReactSortable> ) } { ! this.controlParams.sortable && ( <div className={ `kadence-sorter-drop kadence-sorter-sortable-panel kadence-sorter-no-sorting kadence-sorter-drop-${ this.controlParams.group }` } > { currentList.map( ( item, index ) => { return <ItemComponent key={ item } item={ item } setting={ this.controlParams.group } index={ index } moveable={ false } control={ this.props.control } controlParams={ this.controlParams } customizer={ this.props.customizer } />; } ) } </div> ) } </div> </div> ); } updateValues( value ) { this.props.control.settings['elements'].set( value ); } } SorterComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default SorterComponent; react/src/sorter/item-component.js 0000644 00000026653 15151531431 0013256 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import capitalizeFirstLetter from '../common/capitalize-first.js'; import { __ } from '@wordpress/i18n'; import Icons from '../common/icons.js'; const { MediaUpload } = wp.blockEditor; const { ButtonGroup, Dashicon, Tooltip, TextControl, Button, TabPanel, ToggleControl, RangeControl, Placeholder } = wp.components; const { Component, Fragment } = wp.element; class ItemComponent extends Component { constructor() { super( ...arguments ); this.state = { open: false, }; } render() { return ( <div className="kadence-sorter-item" data-id={ this.props.item.id } key={ this.props.item.id }> <div className={ `kadence-sorter-item-panel-header ${ ( this.props.item.enabled ? 'panel-item-is-visible' : 'panel-item-is-hidden' ) }` }> <Tooltip text={ __( 'Toggle Item Visibility', 'kadence' ) }> <Button className={ `kadence-sorter-visiblity ${ ( this.props.item.enabled ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.props.onItemChange( { enabled: ( this.props.item.enabled ? false : true ) }, this.props.index ); } } > <Dashicon icon={ ( this.props.item.enabled ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <span className="kadence-sorter-title"> { capitalizeFirstLetter( this.props.item.id ) } </span> { 'title' !== this.props.item.id && ( <Tooltip text={ __( 'Expand Item Controls', 'kadence' ) }> <Button className="kadence-sorter-item-expand" onClick={ () => { this.setState( { open: ( this.state.open ? false : true ) } ) } } > <Dashicon icon={ ( this.state.open ? 'arrow-up-alt2' : 'arrow-down-alt2' ) }/> </Button> </Tooltip> ) } </div> { this.state.open && ( <div className="kadence-sorter-item-panel-content"> { undefined !== this.props.item.divider && ( <div class="components-base-control"> <span className="sorter-control-title">{ __( 'Choose a Divider', 'kadence' ) }</span> <ButtonGroup className="kadence-radio-container-control"> { Object.keys( this.props.controlParams.dividers ).map( ( item ) => { return ( <Fragment> <Button isTertiary className={ ( item === this.props.item.divider ? 'active-radio ' : '' ) + 'radio-btn-' + item } onClick={ () => { this.props.onItemChange( { divider: item }, this.props.index ); } } > { this.props.controlParams.dividers[ item ].icon && ( <span className="kadence-radio-icon"> { Icons[ this.props.controlParams.dividers[ item ].icon ] } </span> ) } { this.props.controlParams.dividers[ item ].name && ( this.props.controlParams.dividers[ item ].name ) } </Button> </Fragment> ); } ) } </ButtonGroup> </div> ) } { undefined !== this.props.item.author && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Author?', 'kadence' ) } checked={ this.props.item.author ? this.props.item.author : this.props.item.author } onChange={ ( value ) => { this.props.onItemChange( { author: value }, this.props.index ); } } /> { this.props.item.author && ( <Fragment> { undefined !== this.props.item.authorImage && ( <ToggleControl label={ __( 'Show Author Image?', 'kadence' ) } checked={ this.props.item.authorImage ? this.props.item.authorImage : this.props.item.authorImage } onChange={ ( value ) => { this.props.onItemChange( { authorImage: value }, this.props.index ); } } /> ) } { undefined !== this.props.item.authorLabel && ( <div className="meta-label-control"> <span className="sorter-control-title">{ __( 'Author Label', 'kadence' ) }</span> <div className={ `meta-label-input-control ${ ( this.props.item.authorEnableLabel ? 'label-is-visible' : 'label-is-hidden' ) }` }> <Tooltip text={ __( 'Toggle Label Visibility', 'kadence' ) }> <Button className={ `kadence-label-visiblity ${ ( this.props.item.authorEnableLabel ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.props.onItemChange( { authorEnableLabel: ( this.props.item.authorEnableLabel ? false : true ) }, this.props.index ); } } > <Dashicon icon={ ( this.props.item.authorEnableLabel ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <TextControl label="" placeholder={ __( 'By', 'kadence' ) } value={ this.props.item.authorLabel ? this.props.item.authorLabel : this.props.item.authorLabel } onChange={ ( value ) => { this.props.onItemChange( { authorLabel: value }, this.props.index ); } } /> </div> </div> ) } </Fragment> ) } </div> ) } { undefined !== this.props.item.date && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Date?', 'kadence' ) } checked={ this.props.item.date ? this.props.item.date : this.props.item.date } onChange={ ( value ) => { this.props.onItemChange( { date: value }, this.props.index ); } } /> { this.props.item.date && ( <ToggleControl label={ __( 'Show Time?', 'kadence' ) } checked={ this.props.item.dateTime ? this.props.item.dateTime : false } onChange={ ( value ) => { this.props.onItemChange( { dateTime: value }, this.props.index ); } } /> ) } { undefined !== this.props.item.dateLabel && this.props.item.date && ( <div className="meta-label-control"> <span className="sorter-control-title">{ __( 'Date Label', 'kadence' ) }</span> <div className={ `meta-label-input-control ${ ( this.props.item.dateEnableLabel ? 'label-is-visible' : 'label-is-hidden' ) }` }> <Tooltip text={ __( 'Toggle Label Visibility', 'kadence' ) }> <Button className={ `kadence-label-visiblity ${ ( this.props.item.dateEnableLabel ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.props.onItemChange( { dateEnableLabel: ( this.props.item.dateEnableLabel ? false : true ) }, this.props.index ); } } > <Dashicon icon={ ( this.props.item.dateEnableLabel ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <TextControl label="" placeholder={ __( 'Posted on', 'kadence' ) } value={ this.props.item.dateLabel ? this.props.item.dateLabel : this.props.item.dateLabel } onChange={ ( value ) => { this.props.onItemChange( { dateLabel: value }, this.props.index ); } } /> </div> </div> ) } </div> ) } { undefined !== this.props.item.dateUpdated && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Last Updated Date?', 'kadence' ) } checked={ this.props.item.dateUpdated ? this.props.item.dateUpdated : this.props.item.dateUpdated } onChange={ ( value ) => { this.props.onItemChange( { dateUpdated: value }, this.props.index ); } } /> { undefined !== this.props.item.dateUpdatedLabel && this.props.item.dateUpdated && ( <div className="meta-label-control"> <span className="sorter-control-title">{ __( 'Updated Date Label', 'kadence' ) }</span> <div className={ `meta-label-input-control ${ ( this.props.item.dateUpdatedEnableLabel ? 'label-is-visible' : 'label-is-hidden' ) }` }> <Tooltip text={ __( 'Toggle Label Visibility', 'kadence' ) }> <Button className={ `kadence-label-visiblity ${ ( this.props.item.dateUpdatedEnableLabel ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.props.onItemChange( { dateUpdatedEnableLabel: ( this.props.item.dateUpdatedEnableLabel ? false : true ) }, this.props.index ); } } > <Dashicon icon={ ( this.props.item.dateUpdatedEnableLabel ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <TextControl label="" placeholder={ __( 'Updated on', 'kadence' ) } value={ this.props.item.dateUpdatedLabel ? this.props.item.dateUpdatedLabel : this.props.item.dateUpdatedLabel } onChange={ ( value ) => { this.props.onItemChange( { dateUpdatedLabel: value }, this.props.index ); } } /> </div> </div> ) } </div> ) } { undefined !== this.props.item.categories && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Categories?', 'kadence' ) } checked={ this.props.item.categories ? this.props.item.categories : this.props.item.categories } onChange={ ( value ) => { this.props.onItemChange( { categories: value }, this.props.index ); } } /> { undefined !== this.props.item.categoriesLabel && this.props.item.categories && this.props.item.metaLabel && ( <div className="meta-label-control"> <span className="sorter-control-title">{ __( 'Categories Label', 'kadence' ) }</span> <div className={ `meta-label-input-control ${ ( this.props.item.categoriesEnableLabel ? 'label-is-visible' : 'label-is-hidden' ) }` }> <Tooltip text={ __( 'Toggle Label Visibility', 'kadence' ) }> <Button className={ `kadence-label-visiblity ${ ( this.props.item.categoriesEnableLabel ? 'item-is-visible' : 'item-is-hidden' ) }`} onClick={ () => { this.props.onItemChange( { categoriesEnableLabel: ( this.props.item.categoriesEnableLabel ? false : true ) }, this.props.index ); } } > <Dashicon icon={ ( this.props.item.categoriesEnableLabel ? 'visibility' : 'hidden' ) } /> </Button> </Tooltip> <TextControl label="" placeholder={ __( 'Posted in', 'kadence' ) } value={ this.props.item.categoriesLabel ? this.props.item.categoriesLabel : this.props.item.categoriesLabel } onChange={ ( value ) => { this.props.onItemChange( { categoriesLabel: value }, this.props.index ); } } /> </div> </div> ) } </div> ) } { undefined !== this.props.item.comments && ( <div className="sorter-sub-option"> <ToggleControl label={ __( 'Show Comments?', 'kadence' ) } checked={ this.props.item.comments ? this.props.item.comments : this.props.item.comments } onChange={ ( value ) => { this.props.onItemChange( { comments: value }, this.props.index ); } } /> </div> ) } </div> ) } </div> ); } } export default ItemComponent; react/src/sorter/control.js 0000644 00000000765 15151531431 0011774 0 ustar 00 import { createRoot } from '@wordpress/element'; import SorterComponent from './setting-sorter-component.js'; export const SorterControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <SorterComponent control={ control } customizer={ wp.customize } /> ); // ReactDOM.render( <SorterComponent control={ control } customizer={ wp.customize } />, control.container[0] ); } } ); react/src/index.js 0000644 00000007614 15151531431 0010105 0 ustar 00 /* global wp */ import { Base } from './customizer.js'; import { BaseControl } from './base/control.js'; import { ColorControl } from './color/control.js'; import { PaletteControl } from './palette/control.js'; import { RangeControl } from './range/control.js'; import { SwitchControl } from './switch/control.js'; import { RadioIconControl } from './radio-icon/control.js'; import { MultiRadioIconControl } from './multi-radio-icon/control.js'; import { BuilderControl } from './layout-builder/control.js'; import { AvailableControl } from './available/control.js'; import { BackgroundControl } from './background/control.js'; import { BorderControl } from './border/control.js'; import { BordersControl } from './borders/control.js'; import { TypographyControl } from './typography/control.js'; import { TitleControl } from './title/control.js'; import { FocusButtonControl } from './focus-button/control.js'; import { ColorLinkControl } from './color-link/control.js'; import { TextControl } from './text/control.js'; import { TextareaControl } from './textarea/control.js'; import { MeasureControl } from './measure/control.js'; import { EditorControl } from './editor/control.js'; import { SocialControl } from './social/control.js'; import { ContactControl } from './contact/control.js'; import { CheckIconControl } from './check-icon/control.js'; import { SelectControl } from './select/control.js'; import { SorterControl } from './sorter/control.js'; import { RowControl } from './row-layout/control.js'; import { TabsControl } from './tabs/control.js'; import { BoxShadowControl } from './boxshadow/control.js'; wp.customize.controlConstructor.kadence_shadow_control = BoxShadowControl; wp.customize.controlConstructor.kadence_tab_control = TabsControl; wp.customize.controlConstructor.kadence_borders_control = BordersControl; wp.customize.controlConstructor.kadence_row_control = RowControl; wp.customize.controlConstructor.kadence_sorter_control = SorterControl; wp.customize.controlConstructor.kadence_select_control = SelectControl; wp.customize.controlConstructor.kadence_check_icon_control = CheckIconControl; wp.customize.controlConstructor.kadence_contact_control = ContactControl; wp.customize.controlConstructor.kadence_social_control = SocialControl; wp.customize.controlConstructor.kadence_editor_control = EditorControl; wp.customize.controlConstructor.kadence_measure_control = MeasureControl; wp.customize.controlConstructor.kadence_text_control = TextControl; wp.customize.controlConstructor.kadence_textarea_control = TextareaControl; wp.customize.controlConstructor.kadence_color_link_control = ColorLinkControl; wp.customize.controlConstructor.kadence_focus_button_control = FocusButtonControl; wp.customize.controlConstructor.kadence_title_control = TitleControl; wp.customize.controlConstructor.kadence_typography_control = TypographyControl; wp.customize.controlConstructor.kadence_border_control = BorderControl; wp.customize.controlConstructor.kadence_background_control = BackgroundControl; wp.customize.controlConstructor.kadence_color_palette_control = PaletteControl; wp.customize.controlConstructor.kadence_available_control = AvailableControl; wp.customize.controlConstructor.kadence_builder_control = BuilderControl; wp.customize.controlConstructor.kadence_color_control = ColorControl; wp.customize.controlConstructor.kadence_range_control = RangeControl; wp.customize.controlConstructor.kadence_switch_control = SwitchControl; wp.customize.controlConstructor.kadence_radio_icon_control = RadioIconControl; wp.customize.controlConstructor.kadence_multi_radio_icon_control = MultiRadioIconControl; window.addEventListener( 'load', () => { let deviceButtons = document.querySelector('#customize-footer-actions .devices' ); deviceButtons.addEventListener( 'click', function(e) { let event = new CustomEvent( 'kadenceChangedRepsonsivePreview', { 'detail': e.target.dataset.device } ); document.dispatchEvent( event ); } ); } ); react/src/controls.scss 0000644 00000146032 15151531431 0011176 0 ustar 00 @import "variables.scss"; @import "builder-controls.scss"; @import "icon-controls.scss"; li#accordion-section-kadence_customizer_custom_posts_placeholder { pointer-events: none; margin: 10px 0 0; } li#accordion-section-kadence_customizer_custom_posts_placeholder > h3.accordion-section-title { border: 0; background: transparent; text-transform: uppercase; font-size: 80%; } li#accordion-section-kadence_customizer_custom_posts_placeholder > h3.accordion-section-title:after { display: none; } .kadence-units .components-dropdown__content .components-popover__content > div { padding: 5px 0; .components-button.components-dropdown-menu__menu-item.has-icon { padding: 0; min-width: 32px; } } .wrap-components-custom-gradient-picker:before { content: ""; background-image: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; left: 0; right: 0; height: 100%; position: absolute; z-index: -1; border-radius: 24px; } // .components-custom-gradient-picker__gradient-bar.has-gradient:before { // opacity: 0; // } .components-custom-gradient-picker__gradient-bar { position: relative; //z-index: 20; } .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button { box-shadow: 0px 0px 0px 2px rgba(0, 0, 0, 0.8); } // Kadence Range CSS .kadence-range-control-inner { box-sizing: border-box; align-items: flex-start; display: inline-flex; -webkit-box-pack: start; justify-content: flex-start; padding: 0px; position: relative; width: 100%; } .kadence-range-control-inner .components-range-control.kadence-range-control-range { flex-grow: 1; margin-bottom: 0; } .kadence-range-control { width: 100%; } .kadence-range-control-inner .components-base-control.kt-range-number-input { margin-left: 16px; margin-bottom: 0; flex: 0 1 65px; } .kadence-control-field button.components-button.kadence-reset span.dashicon { height: auto; width: auto; font-size: 12px; } #customize-theme-controls .customize-pane-child.accordion-section-content { padding: 12px 24px; .customize-section-title { margin: -12px -24px 0 -24px; } } #customize-theme-controls .customize-pane-child.accordion-section-content.control-section-sidebar { padding: 12px; } .kadence-units { max-width: 60px; .components-dropdown-menu { padding: 0; min-height: 0; border-color: #e2e4e7; } .components-button.components-dropdown-menu__toggle { min-height: 28px; min-width: 30px; height: auto; } .components-popover__content { min-width: 50px; width: 50px; button.components-button { height: 36px; text-align: center; justify-content: center; box-shadow: none; svg { margin: 0; } } } } .kadence-range-control { .kadence-responsive-controls-content { display: flex; } .components-range-control { flex-grow: 1; } input.components-range-control__number { max-width: 65px; margin-left: 18px; border: 1px solid #e2e4e7; border-radius: 0; margin-right: 1px; } .components-base-control__field { margin: 0; } button.components-button { height: 28px; } } .kadence-control-field.radio-btn-width-50 .kadence-radio-container-control { flex-wrap: wrap; } .kadence-control-field.radio-btn-width-50 .kadence-radio-container-control button.components-button.is-tertiary { min-width: 45%; margin: 4px; } .kadence-responsive-control-bar { display: flex; justify-content: space-between; position: relative; margin-bottom: 10px; .floating-controls { .components-button.is-tertiary:not(.active-device) { color: $color-gray-500; } .components-button.is-tertiary:not(.active-device):hover { color: $color-gray-600; } .components-button { height: 18px; padding-top: 0; padding-bottom: 0; box-shadow: none; svg { height: 16px; width: 16px; } &:focus:not(:disabled) { color: $color-primary; box-shadow: none; } } .components-button-group { display: flex; border: 0; } } .advanced-controls { .components-button { color: $color-gray-500; height: 18px; padding-top: 0; padding-bottom: 0; box-shadow: none; svg { height: 16px; width: 16px; } &:focus-visible:not(:disabled), &:hover { color: $color-gray-600; box-shadow: none; border: none; } &.is-pressed { background: none; color: $color-primary; } } } } .kadence-typography-advanced-group-label { font-weight: bold; } .kadence-advanced-control-button { justify-content: center; width: 100%; } .kadence-popover-typography-advanced { &.components-popover div.components-popover__content { padding: 0; } .kadence-control-field.kadence-title-control { margin: 0; } .kadence-popover-typography-advanced-content { padding: 10px; } .kadence-popover-close { position: absolute; top: 4px; right: 0; } .kadence-typography-advanced-control-row { // display: flex; // gap: 5px; .kadence-typography-advanced-control { display: flex; input { flex: 1; height: 32px; } .components-base-control { flex: 0.5; } } } } .kadence-control-field .components-button-group { border: 0; } .kadence-control-field { position: relative; margin-top: 10px; margin-bottom: 10px; .customize-control-title { font-size: 14px; font-weight: 600; margin-bottom: 0; display: flex; align-items: center; letter-spacing: 0.1px; line-height: 18px; } button.components-button.kadence-reset { height: 18px; padding: 0 5px; margin-right: 0; margin-left: -20px; opacity: 0.5; svg { width: 12px; height: 12px; } &:disabled { opacity: 0; } &:not(:disabled):hover { opacity: 1; color: $color-primary; box-shadow: none !important; } } } .kadence-radio-container-control { display: flex; padding: 10px; background: #f9f9f9; border: 0; flex-wrap: wrap; button.components-button.is-tertiary { flex: 1 1 0; display: flex; -webkit-box-align: center; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; text-transform: uppercase; height: 40px; line-height: normal; margin: 0; padding: 4px; border: 1px solid $color-gray-400; border-radius: 2px; background: transparent; color: $color-gray-700; white-space: normal; box-shadow: none; &:not(:first-child) { margin-left: 4px; } &:not(:disabled):not([aria-disabled="true"]):hover { border-color: $color-gray-600; color: $color-gray-700; } &.active-radio { border-color: $color-primary; background: $color-primary; color: #fff; &:not(:disabled):not([aria-disabled="true"]):hover { color: #fff; border-color: $color-primary; } } .kadence-radio-icon { display: flex; justify-content: center; align-items: center; } } &.kadence-radio-icon-container-control { margin-top: 10px; button.components-button.is-tertiary { padding: 5px; height: 50px; svg { width: 100%; height: auto; max-height: 100%; } } } } .kadence-popover-color .components-popover__content { min-width: 240px; .components-focal-point-picker-wrapper { box-sizing: border-box; } .components-focal-point-picker_position-display-container input[type="number"].components-text-control__input { min-height: 16px; line-height: 16px; font-size: 12px; width: 50px; font-weight: normal; } .components-focal-point-picker_position-display-container .components-base-control { flex: 1; margin-bottom: 0; } .components-focal-point-picker_position-display-container .components-base-control .components-base-control__label { margin-bottom: 0; margin-right: 0.2em; } .components-focal-point-picker_position-display-container .components-base-control__field { display: flex; align-items: center; font-size: 8px; font-weight: 600; font-style: normal; text-transform: uppercase; } .components-focal-point-picker_position-display-container .components-base-control:last-child .components-base-control__field { justify-content: flex-end; } .actions { display: flex; justify-content: center; margin-bottom: 10px; .button { flex: 1; margin-top: 10px; } } } .kadence-background-picker-wrap .kadence-popover-color .components-popover__content { min-width: 300px; min-height: 340px; max-height: 60vh; > div { min-height: 320px; } } .components-popover.kadence-popover-add-builder .components-popover__content { bottom: 0; } .components-button.kadence-color-icon-indicate { height: auto; position: relative; transform: scale(1); transition: transform 0.1s ease; border-radius: 50%; padding: 0; background-image: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; .component-color-indicator.kadence-advanced-color-indicate { width: 28px; height: 28px; border-radius: 50%; margin: 0; } &:hover { transform: scale(1.1); } } .components-button.kadence-background-icon-indicate { width: 50px; height: 50px; overflow: hidden; border-radius: 50%; position: relative; transform: scale(1); transition: transform 0.1s ease; border-radius: 50%; padding: 0; background-image: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); border: 1px solid #dadada; background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; .component-color-indicator.kadence-advanced-color-indicate { width: 100%; height: 100%; border-radius: 50%; margin: 0; display: block; position: absolute; border: 0; top: 0; } > .dashicon { position: absolute; transform: translate(-50%, -50%); left: 50%; top: 50%; color: white; background: rgba(0, 0, 0, 0.6); border-radius: 100%; width: 16px; height: 16px; border: 1px solid rgba(0, 0, 0, 0.1); } img.kadence-background-image-preview { display: flex; object-fit: cover; min-width: 100%; min-height: 100%; position: absolute; top: 0; } } .components-button.kadence-background-icon-indicate:hover { box-shadow: none !important; } .kadence-control-field.kadence-color-control { display: flex; .customize-control-title { flex-grow: 2; } } .components-popover.kadence-popover-color .components-popover__content { padding: 10px 10px 0px; box-sizing: initial; background: rgb(255, 255, 255); border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.15) 0px 8px 16px; .sketch-picker { padding: 0 0 5px !important; box-shadow: none !important; border-radius: 0px !important; } .attachment-media-view { margin-top: 10px; margin-bottom: 10px; } } // .kadence-background-picker-wrap .kadence-popover-color .components-popover__content{ // .kadence-background-color-wrap { // display: flex; // flex-direction: row-reverse; // justify-content: space-between; // } // .kadence-swatches-wrap { // flex-direction: column; // padding: 0 10px 0 0 !important; // border-top: 0 !important; // border-right: 1px solid rgb(238, 238, 238); // } // .actions .button:last-child { // margin-left: 10px; // } // } .kadence-swatches-wrap { display: flex; flex-wrap: wrap; // justify-content: space-between; justify-content: flex-start; column-gap: 0.75px; // row-gap: 2px; border-top: 1px solid rgb(238, 238, 238); } .kadence-swatches-wrap .kadence-swatche-item-wrap:hover { transform: scale(1.2) !important; } .kadence-swatches-wrap .kadence-swatche-item-wrap .kadence-swatch-item { background-image: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; padding: 0; display: flex; justify-content: center; .dashicon { display: none; } } .kadence-swatches-wrap .kadence-swatche-item-wrap .kadence-swatch-item.swatch-active { box-shadow: 0 0 0 8px inset !important; .dashicon { display: block; color: white; background: rgba(0, 0, 0, 0.6); width: 16px; height: 16px; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 100%; } } .components-button.kadence-color-icon-indicate > .dashicon { position: absolute; transform: translate(-50%, -50%); left: 50%; top: 50%; color: white; background: rgba(0, 0, 0, 0.6); border-radius: 100%; width: 16px; height: 16px; border: 1px solid rgba(0, 0, 0, 0.1); } .customize-control-kadence_measure_control input[type="number"] { padding: 0 4px; } @media (max-width: 1900px) { .kadence-palette-colors .components-button.kadence-color-icon-indicate .component-color-indicator.kadence-advanced-color-indicate { width: 26px; height: 26px; } .kadence-typography-control .typography-button-wrap > button.components-button.kadence-typography-preview-indicate { padding: 0 2px; } .kadence-typography-control .typography-button-wrap > button.components-button { padding: 0 4px; } .customize-control-kadence_measure_control input[type="number"] { padding: 0 2px; } } @media (max-width: 1900px) { .kadence-palette-colors .components-button.kadence-color-icon-indicate .component-color-indicator.kadence-advanced-color-indicate { width: 24px; height: 24px; } } @media (max-width: 1400px) { .kadence-palette-colors .components-button.kadence-color-icon-indicate .component-color-indicator.kadence-advanced-color-indicate { width: 22px; height: 22px; } .customize-control-kadence_measure_control input[type="number"] { padding: 0px; } } .kadence-palette-colors .kadence-color-picker-wrap:first-child { margin-left: 0; } .kadence-popover-tabs.kadence-background-tabs .components-tab-panel__tabs { display: flex; border-bottom: 1px solid #dadada; margin-top: -5px; margin-bottom: 15px; } .kadence-palette-import-wrap { float: left; } .kadence-palette-popover-tabs { width: 350px; max-height: 420px; } .kadence-palette-popover-tabs .components-tab-panel__tabs-item { display: flex; flex: 1; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; height: 36px; text-transform: uppercase; border: 0; border-bottom: 4px solid transparent; border-radius: 0; margin-bottom: -1px; opacity: 0.6; } .kadence-palette-popover-tabs .components-tab-panel__tabs { display: flex; border-bottom: 1px solid #dadada; margin-top: -5px; margin-bottom: 15px; } .kadence-palette-popover-copy-paste .components-popover__content { padding: 8px; box-sizing: initial; background: #fff; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.15) 0px 8px 16px; width: 100%; box-sizing: border-box; .kadence-palette-popover-tabs { width: 100%; } } .kadence-palette-popover-tabs .components-tab-panel__tabs-item.active-tab { border-bottom-color: #007cba; opacity: 1; box-shadow: none; } .kadence-palette-popover-tabs .components-button.kadence-palette-item { display: flex; flex-direction: row; justify-content: space-between; padding: 5px; margin-bottom: 5px; border: 1px solid transparent; border-radius: 4px; } .kadence-palette-popover-tabs .components-button.kadence-palette-item:hover { border-color: #777; } .kadence-popover-tabs.kadence-background-tabs .components-tab-panel__tabs .components-button { display: flex; flex: 1; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; height: 36px; text-transform: uppercase; border: 0; border-bottom: 4px solid transparent; border-radius: 0; margin-bottom: -1px; opacity: 0.6; &:focus { outline: 0; box-shadow: none; } &:hover { box-shadow: none !important; opacity: 1; border-bottom: 4px solid #dadada; } &.active-tab { border-bottom-color: $color-primary; opacity: 1; } } .components-popover__content .kadence-radio-container-control { padding: 10px 0; background: white; } .kadence-control-field .kadence-background-tabs .customize-control-title { padding-top: 10px; font-size: 12px; display: block; } .kadence-control-field.kadence-background-control .kadence-responsive-control-bar .floating-controls { display: flex; align-items: center; margin-left: 0px; } .kadence-control-field.kadence-background-control .kadence-responsive-control-bar .customize-control-title { flex-grow: 1; } .kadence-control-field.kadence-background-control .kadence-responsive-controls-content { display: flex; justify-content: flex-end; } .kadence-control-field.kadence-palette-control.kadence-color-control { display: block; } .kadence-palette-header { display: flex; align-items: center; } .kadence-palette-colors { padding: 20px 0 0; .kadence-palette-group { margin-bottom: 7px; } .kadence-palette-group-name { font-weight: bold; } .kadence-palette-group-colors { display: flex; gap: 5px; margin-top: 3px; } .kadence-palette-group:nth-child(1) { .kadence-color-picker-wrap:nth-child(3) { .kadence-color-icon-indicate:hover { transform: scale(1); } .kadence-advanced-color-indicate { background: var(--global-palette10) !important; box-shadow: inset 0 0 0 3px #0003; } } } } .kadence-palette-header .components-button-group .components-button.is-tertiary { color: #a0aec0; border: 1px solid #a0aec0; height: 30px; font-size: 12px; padding: 0 4px; box-shadow: none; } @media (max-width: 1900px) { .kadence-palette-header .components-button-group .components-button.is-tertiary { font-size: 10px; padding: 0 2px; letter-spacing: -0.4px; } } @media (max-width: 1601px) { .kadence-control-field .customize-control-title { font-size: 13px; } } .kadence-palette-header .components-button-group .components-button.is-tertiary.active-palette { color: #fff; border: 1px solid #007cba; background: #007cba; } .kadence-border-control { .kadence-responsive-controls-content { display: flex; justify-content: flex-end; input.components-text-control__input { border: 1px solid #e2e4e7; width: 60px; } .kadence-color-picker-wrap { margin-right: 5px; margin-left: 0; justify-content: flex-end; align-items: center; display: flex; } .color-button-wrap { display: inline-flex; } } } .kadence-units .components-button { padding-top: 2px; padding-bottom: 2px; } .kadence-typography-control { .kadence-typography-controls { display: flex; align-items: center; justify-content: flex-end; margin-top: 5px; } .color-button-wrap { display: flex; } .customize-control-title { flex-grow: 1; } .components-popover.kadence-popover-typography > .components-popover__content { min-width: 340px; min-height: 339px; > div { min-height: 339px; } } .kadence-typography-tabs .customize-control-title { padding-top: 0; } .kadence-typography-tabs .kadence-range-control { padding-top: 10px; } .kadence-transform-controls { width: 50%; padding-right: 10px; padding-bottom: 5px; } .kadence-transform-controls .components-button-group { padding: 0 0 10px 0; button.components-button.is-tertiary { height: 30px; } } .kadence-font-family-list-wrapper { padding-top: 35px; } .components-button-group.kadence-font-family-list { display: flex; max-height: 259px; overflow: scroll; flex-direction: column; .kadence-font-family-choice { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-evenly; border-radius: 0; margin: 0; width: 340px; height: 36px; min-height: 36px; border-bottom: 1px solid #e2e4e7; white-space: nowrap; box-shadow: none; color: $color-gray-800; .preview-text { font-size: 16px; white-space: nowrap; color: $color-gray-800; line-height: 30px; } &.active-radio, &.active-radio:hover, &.active-radio:focus { background: $color-primary !important; color: white !important; outline: 0 !important; box-shadow: none !important; .preview-text { color: white; } } } } .components-button-group.kadence-font-variant-list { max-height: 294px; display: flex; flex-direction: column; overflow: scroll; .kadence-font-variant-choice { display: flex; box-shadow: none; border-radius: 0; margin: 0; min-height: 36px; border-bottom: 1px solid #e2e4e7; white-space: nowrap; color: $color-gray-800; &.active-radio, &.active-radio:hover, &.active-radio:focus { background: $color-primary !important; color: white !important; outline: 0 !important; box-shadow: none !important; } } } .kadence-font-family-search { position: absolute; display: flex; top: 0; left: 0; right: 0; background: white; .components-base-control { display: flex; flex-grow: 1; .components-base-control__field { display: flex; margin-bottom: 5px; flex-grow: 1; input { padding-right: 40px; } } } .kadence-clear-search { position: absolute; right: 0; z-index: 100; height: 30px; border: 0 !important; background: transparent !important; box-shadow: none !important; } } .kadence-typography-tabs .components-tab-panel__tab-content { position: relative; } button.components-button.kadence-typography-family-indicate { max-width: 100px; white-space: nowrap; overflow: hidden; } .typography-button-wrap > button.components-button { border: 1px solid #e2e4e7; margin-left: 2px; background-color: #fff; } .kadence-popover-typography-single-item { position: relative; .components-button-group.kadence-font-family-list { max-height: 304px; } } } .customize-control-kadence_typography_control .kadence-control-field button.components-button.kadence-reset { height: 36px; top: 0; } .kadence-preview-font { padding: 10px; background: linear-gradient(45deg, #ddd 25%, transparent 0), linear-gradient(-45deg, #ddd 25%, transparent 0), linear-gradient(45deg, transparent 75%, #ddd 0), linear-gradient(-45deg, transparent 75%, #ddd 0); background-size: 10px 10px; background-position: 0 0, 0 5px, 5px -5px, -5px 0; margin-top: 10px; line-height: 1.2; } .kadence-select-units select.components-select-control__input { width: 100%; margin: 0 0 2px 0; border: 1px solid #e2e4e7; } .kadence-control-field.kadence-title-control { background: #f9f9f9; margin-bottom: -13px; margin-top: -17px; margin-left: -24px; margin-right: -24px; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 12px 20px; } .kadence-control-field.kadence-title-control .customize-control-title { font-size: 16px; font-weight: 700; letter-spacing: 0.3px; } .kadence-locked .components-button.is-single { border: 1px solid #e2e4e7; background-color: #fff; display: flex; height: 30px; } .kadence-locked .components-button svg { width: 16px; } .measure-input-wrap { flex-grow: 0; display: flex; flex-direction: column; padding-right: 5px; } .measure-input-wrap small { padding-left: 3px; } .measure-input-wrap input.measure-inputs { border: 1px solid #e2e4e7; } .kadence-radio-container-control button.components-button.is-tertiary svg { width: 100%; height: 100%; max-height: 100%; } .kadence-radio-icon-control.kadence-two-col .components-button-group.kadence-radio-container-control .components-button.is-tertiary svg { height: 60px; } .kadence-radio-container-control button.components-button .kadence-radio-icon { width: 100%; height: 100%; } #customize-control-page_layout .components-button-group.kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } #customize-control-page_layout .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-width: 25%; padding: 10px; margin: 0; min-height: 80px; } #customize-control-page_title_layout .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-height: 90px; padding: 10px; } #customize-control-page_title_layout .kadence-radio-container-control button.components-button.is-tertiary:not(:first-child) { margin-left: 10px; } .kadence-radio-dashicon { max-width: 20px; } .kadence-sorter-item-panel-header { display: flex; width: 100%; cursor: grab; align-items: center; border-bottom: 1px solid #a0aec0; margin-bottom: -1px; .kadence-sorter-title { flex-grow: 2; padding: 0 8px; font-weight: bold; } .kadence-sorter-visiblity { border-radius: 0; height: 36px; border-right: 1px solid #a0aec0; .dashicon { width: 14px; height: 14px; font-size: 14px; } } .kadence-sorter-item-expand { border-radius: 0; position: relative; height: 36px; border-left: 0; &:before { content: ""; position: absolute; left: 0; height: 50%; background: #a0aec0; width: 1px; } &:focus { &:before { opacity: 0; } } .dashicon { width: 14px; height: 14px; font-size: 14px; } } } .kadence-sorter-drop .kadence-sorter-item { line-height: 28px; height: auto; background: white; position: relative; border: 1px solid #a0aec0; white-space: nowrap; position: relative; margin: 0 0 4px; padding: 0px; border-radius: 3px; } .kadence-sorter-drop { display: flex; flex-direction: column; } .kadence-sorter-item-panel-content { padding: 10px; .components-base-control__field { display: flex; flex-direction: column; } .components-button.kadence-sorter-item-remove { color: #b52727; } } .sortable-style-tabs { .components-tab-panel__tabs { display: flex; border-bottom: 1px solid #dadada; margin-bottom: 15px; .components-button { display: flex; -webkit-box-flex: 1; flex: 1; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; height: 36px; text-transform: uppercase; border: 0; border-bottom: 4px solid transparent; border-radius: 0; margin-bottom: -1px; opacity: 0.6; box-shadow: none; &.active-tab { border-bottom-color: #007cba; opacity: 1; } } } } .kadence-social-add-area { display: flex; } .kadence-social-add-area .components-base-control { flex-grow: 1; padding-right: 10px; } .kadence-social-add-area .components-base-control .components-base-control__field { margin-bottom: 0; } .kadence-social-add-area .kadence-sorter-add-item { height: 32px; line-height: normal; svg, .dashicons { width: 14px; height: 14px; font-size: 14px; margin-top: 2px; } } .kadence-sorter-row { margin-bottom: 16px; } .kadence-sorter-item-panel-content .components-button.button-add-media { display: block; margin-bottom: 20px; height: auto; } .social-custom-image { display: flex; margin-bottom: 20px; align-items: center; justify-content: space-around; .components-button.remove-image.is-destructive { color: #b52727; } } .kadence-social-image { max-width: 50px; padding-right: 20px; } .kadence-sorter-item-panel-content .kadence-radio-container-control button.components-button.is-tertiary { padding: 4px; } @media (max-width: 1760px) { .measure-input-wrap { padding-right: 2px; } .measure-input-wrap input.measure-inputs { padding: 0 2px; } .kadence-locked .components-button.is-single { padding: 0 2px; } .kadence-range-control button.components-button { padding: 0 2px; } .components-button.has-icon.has-text svg { margin-right: 3px; max-width: 20px; } .kadence-locked .components-button.is-single svg { width: 14px; } } .kadence-post-title-sorter .kadence-sorter-item-panel-content .components-toggle-control .components-base-control__field { flex-direction: row; } .kadence-meta-sorter .kadence-radio-container-control button.components-button.is-tertiary svg { max-width: 12px; margin: 0 auto; } // .kadence-sorter-item-panel-content .components-range-control .components-base-control__field { // flex-direction: row; // } .components-toggle-control .components-base-control__field .components-toggle-control__label { white-space: normal; } .kadence-sorter-item-panel-content .kadence-radio-container-control { margin-bottom: 10px; } .sorter-sub-option { padding: 12px 12px 0px; border: 1px solid #bbb; margin-bottom: 12px; } .meta-label-input-control { display: flex; margin-bottom: 6px; } .kadence-label-visiblity svg { width: 14px; } .components-button.kadence-label-visiblity { height: 30px; } .label-is-hidden .components-text-control__input { opacity: 0.2; pointer-events: none; } .kadence-radio-icon-control.kadence-three-col .components-button-group.kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } .kadence-radio-icon-control.kadence-three-col .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-width: 25%; padding: 10px; margin: 0; min-height: 90px; svg { max-width: 50px; } } .kadence-radio-icon-control.kadence-two-col .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-height: 90px; padding: 10px; } .kadence-radio-icon-control .components-button-group.kadence-radio-container-control .components-button.btn-flex-col.is-tertiary { flex-direction: column; font-size: 10px; .kadence-radio-icon { margin-bottom: 3px; display: block; } } .kadence-radio-icon-control.kadence-two-col .kadence-radio-container-control button.components-button.is-tertiary:not(:first-child) { margin-left: 10px; } .kadence-row-layout-control .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-width: 25%; padding: 5px; margin: 0; min-height: 40px; } .kadence-row-layout-control .components-button-group.kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } .kadence-row-layout-control .components-button-group.kadence-radio-container-control .components-button.is-tertiary.active-radio { background: white; } .kadence-row-layout-control .components-button-group.kadence-radio-container-control .components-button.is-tertiary.active-radio svg rect { fill: #007cba; } #customize-control-footer_widget1_tabs { display: block !important; } .typography-button-wrap .components-button { height: 36px; } .kadence-radio-icon-control.kadence-three-col-short .components-button-group.kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } .kadence-radio-icon-control.kadence-three-col-short .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-width: 25%; padding: 0px; margin: 0; height: 30px; } .kadence-sorter-no-sorting .kadence-sorter-item { margin-bottom: 12px; } .kadence-sorter-no-sorting .kadence-sorter-item-panel-header { cursor: default; } .components-button-group.kadence-featured-image-ratio { display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 10px; row-gap: 10px; } .kadence-sorter-item-panel-content .kadence-featured-image-ratio button.components-button.is-tertiary { padding: 0; height: 30px; margin: 0; } .kadence-sorter-item-panel-content .kadence-radio-container-control button.components-button.is-tertiary svg { max-width: 14px; margin: 0 auto; } // Tweeks: #customize-theme-controls .accordion-section-content { color: #2d3748; } .kadence-sorter-item-panel-content .components-range-control .components-base-control__field input.components-range-control__number { width: auto; } .kadence-popover-social-list .components-button-group.kadence-radio-container-control { flex-wrap: wrap; display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 5px; padding-bottom: 15px; padding-top: 5px; } .kadence-popover-social-list .components-button-group.kadence-radio-container-control .components-button.social-radio-btn.is-tertiary { min-width: 80px; margin: 0; padding: 0; font-size: 10px; } .radio-icon-padding .kadence-radio-container-control button.components-button.is-tertiary { padding: 10px 0; } .kadence-sorter-drop-social_item_group .kadence-sorter-item-panel-header .kadence-sorter-visiblity { background: #f9f9f9; border: 0; } .kadence-sorter-drop-social_item_group .kadence-sorter-item-panel-header .kadence-sorter-visiblity svg { max-width: 14px; } .kadence-sorter-drop-social_item_group .kadence-sorter-item-panel-header .kadence-sorter-visiblity.item-is-hidden { opacity: 0.2; } .kadence-link-color-control .components-base-control__field { margin-bottom: 0; } .customize-control-kadence_borders_control .kadence-border-control > .kadence-responsive-controls-content { display: block; } .customize-control-kadence_borders_control .kadence-responsive-controls-content.kadence-border-single-item { margin-bottom: 5px; padding-bottom: 5px; border-bottom: 1px solid #ddd; } .customize-control-kadence_borders_control .kadence-responsive-controls-content.kadence-border-single-item:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; } span.border-icon { display: flex; width: 30px; align-items: center; flex-grow: 1; } span.border-icon svg { width: 24px; height: 24px; } .components-custom-gradient-picker .components-base-control__label { padding-top: 10px; font-size: 12px; display: block; font-weight: 600; letter-spacing: 0.1px; line-height: 18px; } .kadence-background-tabs .components-circular-option-picker .components-circular-option-picker__custom-clear-wrapper { justify-content: flex-start; } .components-custom-gradient-picker .components-custom-gradient-picker__gradient-bar { box-sizing: border-box; } .kadence-color-picker-wrap .kadence-popover-color .components-popover__content { min-width: 300px; min-height: 320px; max-height: 60vh; } .kadence-color-picker-wrap .kadence-popover-tabs .components-tab-panel__tab-content { position: relative; } // Fake Tabs #accordion-section-kadence_customizer_sidebar_design, #accordion-section-kadence_customizer_cart_design, #accordion-section-kadence_customizer_product_layout_design, #accordion-section-kadence_customizer_course_layout_design, #accordion-section-kadence_customizer_lesson_layout_design, #accordion-section-kadence_customizer_course_archive_design, #accordion-section-kadence_customizer_header_popup_design, #accordion-section-kadence_customizer_llms_membership_archive_design, #accordion-section-woocommerce_product_catalog_design, #accordion-section-kadence_customizer_post_archive_design, #accordion-section-kadence_customizer_sfwd_courses_layout_design, #accordion-section-kadence_customizer_post_layout_design, #accordion-section-kadence_customizer_header_transparent_design, #accordion-section-woocommerce_store_notice_design, #accordion-section-kadence_customizer_scroll_up_design, li#accordion-section-kadence_customizer_courses_layout_design, #accordion-section-kadence_customizer_sfwd_groups_layout_design, #accordion-section-kadence_customizer_sfwd_essays_layout_design, #accordion-section-kadence_customizer_search_design, #accordion-section-kadence_customizer_sfwd_lesson_layout_design, #accordion-section-kadence_customizer_sfwd_topic_layout_design, #accordion-section-kadence_customizer_sfwd_grid_layout_design, li.accordion-section.control-section-design-hidden, #accordion-section-kadence_customizer_sfwd_quiz_layout_design, #accordion-section-kadence_customizer_general_404_design, #accordion-section-kadence_customizer_sfwd_courses_archive_layout_design, #accordion-section-kadence_customizer_tribe_events_layout_design, #accordion-section-kadence_customizer_courses_archive_layout_design { display: none !important; } .kadence-prevent-transition { transition: none !important; } // Graditent overide. .kadence-popover-color .components-circular-option-picker { position: relative; z-index: 10000000; } .kadence-popover-color .components-circular-option-picker .components-popover.components-custom-gradient-picker__color-picker-popover { top: 40px !important; left: 30px !important; bottom: auto !important; } .kadence-popover-color .components-circular-option-picker .components-popover.components-custom-gradient-picker__color-picker-popover > div { top: 100%; bottom: auto; } .kadence-popover-color .components-circular-option-picker .components-popover.components-custom-gradient-picker__color-picker-popover::before, .kadence-popover-color .components-circular-option-picker .components-popover.components-custom-gradient-picker__color-picker-popover::after { display: none; } .kadence-tiny-text .kadence-radio-container-control button.components-button.is-tertiary { font-size: 9px; } #customize-control-logo_layout .kadence-radio-container-control button.components-button.is-tertiary { font-size: 9px; } .kadence-typography-control .typography-button-wrap > button.components-button.kadence-typography-size-indicate { min-width: 46px; } .kadence-builder-is-active .wp-full-overlay.collapsed #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, .kadence-footer-builder-is-active .wp-full-overlay.collapsed #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { transform: translateY(100%) !important; overflow: hidden; } .kadence-builder-is-active .wp-full-overlay.collapsed #customize-preview, .kadence-footer-builder-is-active .wp-full-overlay.collapsed #customize-preview { bottom: 0 !important; } .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-drop-left_center, .kadence-builder-areas .kadence-builder-group-horizontal .kadence-builder-drop-right_center { display: none; } .kadence-builder-areas.has-center-items .kadence-builder-drop-left_center, .kadence-builder-areas.has-center-items .kadence-builder-drop-right_center { display: flex; } .kadence-radio-icon-control.kadence-two-forced .components-button-group.kadence-radio-container-control .components-button.is-tertiary { margin: 0; } .kadence-radio-icon-control.kadence-two-forced .kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr; column-gap: 10px; row-gap: 10px; } .customize-control-kadence_borders_control button.components-button.reset.kadence-reset { margin-top: 5px; } .kadence-units .components-toolbar .components-button:before { display: none; } li#customize-control-kadence_color_palette .customize-control-description { text-align: right; margin-top: 10px; } .kadence-radio-icon-control.kadence-three-col.kadence-auto-height .components-button-group.kadence-radio-container-control .components-button.is-tertiary { min-height: 0; } @media (max-width: 1700px) { .kadence-tiny-text .kadence-radio-container-control button.components-button.is-tertiary { font-size: 7px; } } p.kt-box-shadow-title { text-align: center; margin-bottom: 0; } .kadence-boxshadow-control .kadence-responsive-controls-content input.components-text-control__input { border: 1px solid #e2e4e7; width: 50px; padding-left: 2px; } .kt-box-inset-settings { padding-top: 10px; } .kt-box-disable-settings { padding-left: 8px; padding-top: 10px; } #customize-control-google_subsets .kadence-radio-container-control { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 10px; } .kadence-sorter-title { overflow: hidden; } #customize-control-google_subsets .kadence-radio-container-control button.components-button.is-tertiary { margin: 0; font-size: 9px; } .kadence-popover-tabs .components-custom-gradient-picker__gradient-bar:not(.has-gradient) { opacity: 1; } .components-dropdown__content.components-custom-gradient-picker__color-picker-popover .components-popover__content > div { padding: 0; } .kadence-sorter-no-sorting .kadence-sorter-item { background: #fff; border: 0; line-height: 42px; } .kadence-sorter-no-sorting .kadence-sorter-item-panel-header { border-bottom: 0; } .kadence-sorter-drop:not(.kadence-sorter-no-sorting) .kadence-sorter-item { border-left: 3px solid #007cba; } .kadence-sorter-drop:not(.kadence-sorter-no-sorting) .kadence-move-icon { margin-left: -3px; margin-right: 5px; transform: rotate(90deg); cursor: grab; width: 18px; opacity: 0.7; } .kadence-sorter-drop:not(.kadence-sorter-no-sorting) .kadence-sorter-item-panel-header .kadence-sorter-visiblity { border-left: 1px solid #a0aec0; } .rtl .kadence-control-field button.components-button.kadence-reset { margin-right: -20px; margin-left: 0; } // Color Palette Control Fix. .kadence-color-picker-wrap { > span + .color-button-wrap .components-button.kadence-color-icon-indicate { transform: scale(1.15); box-shadow: 0 0 0 1.5px #007cba; box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color); outline: 1px solid transparent; } .components-popover.kadence-popover-color.is-from-left { left: 40px !important; } .components-popover.kadence-popover-color { animation: kadence-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s; } .components-popover.kadence-popover-color.is-from-right { left: 40px !important; } .components-popover.kadence-popover-color.is-from-right .components-popover__content { right: auto; } } // .kadence-color-picker-wrap { // .kadence-popover-color .components-popover__content > div:not(.kadence-swatches-wrap):not(.kadence-picker) { // min-height: 300px; // } // } .kadence-background-picker-wrap { > span + .background-button-wrap .components-button.kadence-background-icon-indicate { transform: scale(1.15); box-shadow: 0 0 0 1.5px #007cba; box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color); outline: 1px solid transparent; } .components-popover.kadence-popover-color.is-from-left { left: 40px !important; } .components-popover.kadence-popover-color { animation: kadence-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s; } .components-popover.kadence-popover-color.is-from-right { left: 40px !important; } .components-popover.kadence-popover-color.is-from-right .components-popover__content { right: auto; } } @keyframes kadence-animate__appear-animation { 0% { opacity: 0; } to { opacity: 1; } } .rtl .kadence-color-picker-wrap .components-popover.kadence-popover-color.is-from-right, .rtl .kadence-color-picker-wrap .components-popover.kadence-popover-color.is-from-left, .rtl .kadence-background-picker-wrap .components-popover.kadence-popover-color.is-from-left, .rtl .kadence-background-picker-wrap .components-popover.kadence-popover-color.is-from-right { left: auto !important; } .kadence-builder-areas { padding-left: 20px; } .kadence-builder-areas.popup-vertical-group { padding-left: 0; padding-top: 26px; } .kadence-builder-areas.popup-vertical-group button.components-button.kadence-row-actions { top: 0; opacity: 1; width: calc(100% - 20px); } .kadence-builder-areas button.components-button.kadence-row-actions { left: 0; } .kadence-builder-areas button.components-button.kadence-row-left-actions { position: absolute; left: 0; height: 100%; min-width: 0; width: 20px; padding: 0; color: #c8dbe4; box-shadow: none !important; background: #007cba; border-radius: 0; font-size: 10px; &:hover { color: white; } } .kadence-builder-areas.popup-vertical-group button.components-button.kadence-row-left-actions { display: none; } .kadence-builder-areas button.components-button.kadence-row-left-actions .dashicon { width: 12px; height: 12px; font-size: 12px; margin: 0; } .kadence-background-picker-wrap .components-popover.kadence-popover-color.components-custom-gradient-picker__color-picker-popover .components-popover__content { left: 0; transform: none; } .kadence-color-picker-wrap .kadence-background-tabs .components-popover.components-custom-gradient-picker__color-picker-popover .components-popover__content { left: 0; transform: none; min-width: 240px; } .kadence-radio-icon-control.kadence-two-grid .kadence-radio-container-control { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 0.5rem; row-gap: 0.5rem; } .kadence-radio-icon-control.kadence-two-grid .kadence-radio-container-control button.components-button.is-tertiary { margin: 0; } // Temp Fix for Core issue. .customize-control-title .disabled-element-wrapper, .kadence-control-field .disabled-element-wrapper { opacity: 0; } // Font Pairing .kadence-font-pair-popover > .components-popover__content { padding: 0 12px 12px; } .components-button-group.kt-font-pair-group { min-width: 290px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; } .kadence-font-pair-wrap { margin-right: 0; margin-left: auto; } .components-button-group.kt-font-pair-group button.components-button.kt-font-pair-btn { height: auto; text-align: center; flex-direction: column; justify-content: center; img { max-height: 40px; height: auto; width: auto; } span { font-size: 11px; font-weight: normal; } &.state-confirm { background: rgba(0, 124, 186, 0.1); } } // Issues with 6.1 because of popover switching to absolute positioning. #customize-theme-controls .customize-pane-child.accordion-section-content, #customize-theme-controls .customize-pane-child.accordion-sub-container { min-height: 100%; } .components-popover.kadence-customizer-popover:not(.components-animate__appear) { left: -5px !important; right: -5px !important; max-width: calc(100% + 20px); } .kadence-color-picker-wrap .kadence-popover-color:not(.components-animate__appear) .components-popover__content { min-height: 284px; } .kadence-typography-control .components-popover.kadence-popover-typography.kadence-customizer-popover:not(.components-animate__appear) > .components-popover__content { max-width: 100%; min-width: 100%; box-sizing: border-box; } .kadence-color-picker-wrap .kadence-popover-color.kadence-customizer-popover:not(.components-animate__appear) .components-popover__content { max-width: 100%; min-width: 100%; box-sizing: border-box; } .kadence-background-picker-wrap .kadence-popover-color.kadence-customizer-popover:not(.components-animate__appear) .components-popover__content { max-width: 100%; min-width: 100%; overflow: scroll !important; box-sizing: border-box; min-height: 330px; } .kadence-color-picker-wrap .kadence-popover-color.kadence-popover-color-gradient:not(.components-animate__appear) .components-popover__content { min-height: 330px; overflow: visible !important; } .kadence-customizer-popover:not(.components-animate__appear) .kadence-picker { max-width: 100%; margin-left: auto; margin-right: auto; } .kadence-customizer-popover:not(.components-animate__appear) .kadence-swatches-wrap { max-width: 300px; margin-left: auto; margin-right: auto; } // New Gradient Control .components-custom-gradient-picker__item { display: block; flex: 5 1 0%; max-height: 100%; max-width: 100%; min-height: 0px; min-width: 0px; .kadence-controls-content { gap: 12px; } .kadence-controls-content .components-base-control { margin-bottom: 0; flex: 10 0 0; } .kadence-control-toggle-advanced.only-icon { flex: 0; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 600; font-style: normal; text-transform: uppercase; height: 30px; line-height: 1.2; border: 1px solid #cbd5e0; border-radius: 2px; background: transparent; color: #4a5568; padding: 4px; box-shadow: none; white-space: normal; svg { width: 20px; } &.is-primary { border-color: var(--wp-admin-theme-color, #00669b); background: var(--wp-admin-theme-color, #00669b); color: #fff; box-shadow: none; } } } .block-editor-block-inspector .components-custom-gradient-picker__item .kadence-select-large .components-select-control__input { height: 40px; min-height: 40px; } .kadence-gradient-position-control .kadence-gradient-position_header .kadence-gradient-position__label { margin: 0px 0px 8px; display: block; } .kadence-gradient-position-control .components-unit-control-wrapper { flex-grow: 1; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-dropdown { position: absolute; height: 16px; width: 16px; top: 16px; display: flex; } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button { height: inherit; width: inherit; border-radius: 50%; padding: 0; box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) #fff, 0 0 2px 0 rgba(0, 0, 0, 0.25); outline: 2px solid transparent; position: static; top: auto; } .kadence-gradient-control { .components-custom-gradient-picker__ui-line .components-base-control { margin-bottom: 0; } .components-custom-gradient-picker__ui-line .components-base-control .components-base-control__field { margin-bottom: 0; } } .kadence-gradient-control .components-custom-gradient-picker__gradient-bar { border-radius: 2px; width: 100%; height: 48px; margin-bottom: 16px; padding-right: 0; .components-custom-gradient-picker__markers-container { position: relative; width: calc(100% - 48px); margin-left: auto; margin-right: auto; } .components-custom-gradient-picker__control-point-dropdown { position: absolute; height: 16px; width: 16px; top: 16px; display: flex; } .components-custom-gradient-picker__insert-point-dropdown { position: relative; // Same size as the .components-custom-gradient-picker__control-point-dropdown parent height: inherit; width: inherit; min-width: 16px; border-radius: 50%; background: #fff; padding: 2px; color: #111; svg { height: 100%; width: 100%; } } } .kadence-gradient-control .components-angle-picker-control .components-input-control__container .components-input-control__input { height: 32px; padding-left: 8px; padding-right: 8px; } .kadence-pop-gradient-color-picker { width: 280px; max-width: 100%; } .components-popover.components-dropdown__content.components-color-palette__custom-color-dropdown-content.kadence-pop-color-popover { z-index: 10000000; animation: kadence-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s; .components-popover__content { min-height: 0; } } .wrap-components-custom-gradient-picker { position: relative; z-index: 11; } .components-dropdown__content.components-color-palette__custom-color-dropdown-content .kadence-picker > div:first-child { padding-bottom: 25% !important; } .kadence-background-picker-wrap .kadence-popover-color .components-popover__content > .kadence-pop-gradient-color-picker { min-height: 0; } .kadence-background-picker-wrap .components-popover.kadence-popover-color > .components-popover__content { overflow: visible; } .kadence-sorter-item-panel-content .components-form-toggle { display: flex; } .control-section-kadence_section_pro h3 { margin: 0 0 8px 0; padding: 1px 0; border: 0; position: relative; a { background: #fff; display: block; padding: 11px 10px 12px 14px; text-decoration: none; border-left: 4px solid #fff; transition: background-color ease-in-out, 0.15s border-color ease-in-out; &:after { content: "\f345"; position: absolute; top: 11px; right: 10px; z-index: 1; float: right; border: none; background: 0 0; font: normal 20px / 1 dashicons; speak: none; display: block; padding: 0; text-indent: 0; text-align: center; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } &:hover { background: #f6f7f7; border-left-color: transparent; } } } // Fix because other plugins are breaking the load with bad code that outputs css before the html tag. #customize-theme-controls .accordion-section-title button.accordion-trigger { max-height: fit-content; } react/src/multi-radio-icon/multi-radio-icon-component.js 0000644 00000014704 15151531431 0017324 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class RadioIconComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); let value = this.props.control.setting.get(); let baseDefault = { 'include': { 'mobile': '', 'tablet': '', 'desktop': 'logo_title_tagline' }, 'layout': { 'mobile': '', 'tablet': '', 'desktop': 'standard' } }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...this.defaultValue, ...value } : this.defaultValue; let defaultParams = { include: { logo_only: { tooltip: __( 'Logo Only', 'kadence' ), name: __( 'Logo', 'kadence' ), }, logo_title: { tooltip: __( 'Logo & Title', 'kadence' ), name: __( 'Logo & Title', 'kadence' ), }, logo_title_tagline: { tooltip: __( 'Logo, Title & Tagline', 'kadence' ), name: __( 'Logo, Title & Tagline', 'kadence' ), }, }, layout: { logo_only: { standard: { tooltip: __( 'Logo Only', 'kadence' ), icon: Icons.logo }, }, logo_title: { standard: { tooltip: __( 'Logo - Title', 'kadence' ), icon: Icons.logoTitle }, title_logo: { tooltip: __( 'Title - Logo', 'kadence' ), icon: Icons.titleLogo }, top_logo_title: { tooltip: __( 'Top Logo - Title', 'kadence' ), icon: Icons.topLogoTitle }, top_title_logo: { tooltip: __( 'Top Title - Logo', 'kadence' ), icon: Icons.topTitleLogo }, }, logo_title_tagline: { standard: { tooltip: __( 'Logo - Title - Tagline', 'kadence' ), icon: Icons.logoTitleTag }, title_tag_logo: { tooltip: __( 'Title - Tagline - Logo', 'kadence' ), icon: Icons.titleTagLogo }, top_logo_title_tag: { tooltip: __( 'Top Logo - Title - Tagline', 'kadence' ), icon: Icons.topLogoTitleTag }, top_title_tag_logo: { tooltip: __( 'Top Title - Tagline - Logo', 'kadence' ), icon: Icons.topTitleTagLogo }, top_title_logo_tag: { tooltip: __( 'Top Title - Logo - Tagline', 'kadence' ), icon: Icons.topTitleLogoTag } }, } }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; this.state = { currentDevice: 'desktop', include: value.include, layout: value.layout, }; } render() { const controlLabel = ( <Fragment> { this.state.currentDevice !== 'desktop' && ( <Tooltip text={ __( 'Reset Device Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.include[this.state.currentDevice] === this.defaultValue.include[this.state.currentDevice] ) && ( this.state.layout[this.state.currentDevice] === this.defaultValue.layout[this.state.currentDevice] ) } onClick={ () => { let value = this.state.include; value[this.state.currentDevice] = this.defaultValue.include[this.state.currentDevice]; let svalue = this.state.layout; svalue[this.state.currentDevice] = this.defaultValue.layout[this.state.currentDevice]; this.setState( { include: value, layout: svalue } ); this.updateValues( { include: value, layout: svalue } ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> ) } { this.props.control.params.label && this.props.control.params.label } </Fragment> ); return ( <div className="kadence-control-field kadence-radio-icon-control"> <ResponsiveControl onChange={ ( currentDevice) => this.setState( { currentDevice } ) } controlLabel={ controlLabel } > <ButtonGroup className="kadence-radio-container-control"> { Object.keys( this.controlParams.include ).map( ( item ) => { return ( <Tooltip text={ this.controlParams.include[ item ].tooltip }> <Button isTertiary className={ ( item === this.state.include[this.state.currentDevice] ? 'active-radio ' : '' ) + item } onClick={ () => { let value = this.state.include; value[ this.state.currentDevice ] = item; let svalue = this.state.layout; svalue[ this.state.currentDevice ] = 'standard'; this.setState( { include: value, layout: svalue } ); this.updateValues( { include: value, layout: svalue } ); } } > { this.controlParams.include[ item ].name } </Button> </Tooltip> ); } )} </ButtonGroup> { undefined !== this.state.include[this.state.currentDevice] && '' !== this.state.include[this.state.currentDevice] && 'logo_only' !== this.state.include[this.state.currentDevice] && ( <ButtonGroup className="kadence-radio-container-control kadence-radio-icon-container-control"> { Object.keys( this.controlParams.layout[this.state.include[this.state.currentDevice] ] ).map( ( item ) => { return ( <Tooltip text={ this.controlParams.layout[this.state.include[this.state.currentDevice] ][ item ].tooltip }> <Button isTertiary className={ ( item === this.state.layout[this.state.currentDevice] ? 'active-radio ' : '' ) + item } onClick={ () => { let value = this.state.layout; value[ this.state.currentDevice ] = item; this.setState( { layout: value } ); this.updateValues( { layout: value } ); } } > { this.controlParams.layout[this.state.include[this.state.currentDevice] ][ item ].icon } </Button> </Tooltip> ); } )} </ButtonGroup> ) } </ResponsiveControl> </div> ); } updateValues( value ) { this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag } ); } } RadioIconComponent.propTypes = { control: PropTypes.object.isRequired }; export default RadioIconComponent; react/src/multi-radio-icon/control.js 0000644 00000000755 15151531432 0013632 0 ustar 00 import { createRoot } from '@wordpress/element'; import MultiRadioIconComponent from './multi-radio-icon-component.js'; export const MultiRadioIconControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <MultiRadioIconComponent control={control}/> ); // ReactDOM.render( // <MultiRadioIconComponent control={control}/>, // control.container[0] // ); } } ); react/src/borders/borders-component.js 0000644 00000011137 15151531432 0014072 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import SingleBorderComponent from './border-component'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Toolbar, Tooltip, Button } = wp.components; /** * WordPress dependencies */ import { Component, Fragment } from '@wordpress/element'; class BordersComponent extends Component { constructor() { super( ...arguments ); //this.updateValues = this.updateValues.bind( this ); //this.resetValues = this.resetValues.bind( this ); let defaultParams = { min: { px: '0', em: '0', rem: '0', }, max: { px: '300', em: '12', rem: '12', }, step: { px: '1', em: '0.01', rem: '0.01', }, units: ['px', 'em', 'rem'], styles: ['none', 'solid', 'dashed', 'dotted', 'double'], responsive:true, color:true, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let responsiveDefault = { 'desktop': { 'width': '', 'unit': 'px', 'style': 'none', 'color': ( this.controlParams.color ? '' : 'currentColor' ), } }; let noneResponsiveDefault = { 'width': '', 'unit': 'px', 'style': 'none', 'color': ( this.controlParams.color ? '' : 'currentColor' ), }; let baseDefault; if ( this.controlParams.responsive ) { baseDefault = responsiveDefault; } else { baseDefault = noneResponsiveDefault; } this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...JSON.parse( JSON.stringify( this.defaultValue ) ), ...value } : JSON.parse( JSON.stringify( this.defaultValue ) ); this.state = { currentDevice: 'desktop', value: value, }; } render() { const data = this.props.control.params; const responsiveControlLabel = ( <Fragment> {/* <Tooltip text={ __( 'Reset Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ isDisabled } onClick={ () => { this.resetValues(); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> */} { data.label && data.label } </Fragment> ); const controlLabel = ( <Fragment> {/* <Tooltip text={ __( 'Reset Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.defaultValue === this.state.value ) } onClick={ () => { let value = this.state.value; value = this.defaultValue this.updateValues( value ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> */} { data.label && data.label } </Fragment> ); return ( <div className="kadence-control-field kadence-border-control"> { this.controlParams.responsive && ( <ResponsiveControl onChange={ ( currentDevice ) => this.setState( { currentDevice } ) } controlLabel={ responsiveControlLabel } > { Object.keys( this.props.control.params.settings ).map( ( item ) => { return ( <SingleBorderComponent currentDevice={ this.state.currentDevice } item={ item } name={ this.props.control.params.settings[item] } customizer={ this.props.customizer } control={ this.props.control } /> ); } ) } </ResponsiveControl> ) } { ! this.controlParams.responsive && ( <Fragment> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <div className="kadence-responsive-controls-content"> <SingleBorderComponent currentDevice={ currentDevice } item={ 'border_top' } customizer={ this.props.customizer } /> </div> </Fragment> ) } </div> ); } // resetValues() { // Object.keys( this.props.control.params.settings ).map( ( item ) => { // this.props.control.settings[item].set( { // responsiveDefault // } ); // } ); // } // updateValues( value ) { // this.setState( { value: value } ); // if ( this.controlParams.responsive ) { // value.flag = !this.props.control.setting.get().flag; // } // this.props.control.setting.set( { // ...this.props.control.setting.get(), // ...value, // } ); // } } BordersComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default BordersComponent; react/src/borders/border-component.js 0000644 00000050757 15151531432 0013722 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import ColorControl from '../common/color.js'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Toolbar, ToolbarGroup, Tooltip, Button } = wp.components; /** * WordPress dependencies */ import { createRef, Component, Fragment } from '@wordpress/element'; class SingleBorderComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.resetValues = this.resetValues.bind( this ); this.handleChangeComplete = this.handleChangeComplete.bind( this ); this.handleResponsiveChangeComplete = this.handleResponsiveChangeComplete.bind( this ); this.getUnitButtons = this.getUnitButtons.bind( this ); this.getResponsiveUnitButtons = this.getResponsiveUnitButtons.bind( this ); this.createLevelControlToolbar = this.createLevelControlToolbar.bind( this ); this.createResponsiveLevelControlToolbar = this.createResponsiveLevelControlToolbar.bind( this ); this.getStyleButtons = this.getStyleButtons.bind( this ); this.getResponsiveStyleButtons = this.getResponsiveStyleButtons.bind( this ); this.createStyleControlToolbar = this.createStyleControlToolbar.bind( this ); this.createResponsiveStyleControlToolbar = this.createResponsiveStyleControlToolbar.bind( this ); let value = this.props.control.settings[this.props.item] ? this.props.control.settings[this.props.item].get() : []; let defaultParams = { min: { px: '0', em: '0', rem: '0', }, max: { px: '300', em: '12', rem: '12', }, step: { px: '1', em: '0.01', rem: '0.01', }, units: ['px', 'em', 'rem'], styles: ['none', 'solid', 'dashed', 'dotted', 'double'], responsive:true, color:true, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; let responsiveDefault = { 'desktop': { 'width': '', 'unit': 'px', 'style': 'none', 'color': ( this.controlParams.color ? '' : 'currentColor' ), } }; let noneResponsiveDefault = { 'width': '', 'unit': 'px', 'style': 'none', 'color': ( this.controlParams.color ? '' : 'currentColor' ), }; let baseDefault; if ( this.controlParams.responsive ) { baseDefault = responsiveDefault; } else { baseDefault = noneResponsiveDefault; } this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...JSON.parse( JSON.stringify( this.defaultValue ) ), ...value } : JSON.parse( JSON.stringify( this.defaultValue ) ); this.state = { currentDevice: 'desktop', value: value, }; this.anchorNodeRef = createRef(); } handleResponsiveChangeComplete( color, isPalette, device ) { let value = this.state.value; if ( undefined === value[ device ] ) { value[ device ] = { 'width': '', 'unit': '', 'style': '', 'color': '', } } if ( isPalette ) { value[ device ].color = isPalette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value[ device ].color = 'rgba(' + color.rgb.r + ',' + color.rgb.g + ',' + color.rgb.b + ',' + color.rgb.a + ')'; } else { value[ device ].color = color.hex; } this.updateValues( value ); } handleChangeComplete( color, isPalette ) { let value = this.state.value; if ( isPalette ) { value.color = isPalette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value.color = 'rgba(' + color.rgb.r + ',' + color.rgb.g + ',' + color.rgb.b + ',' + color.rgb.a + ')'; } else { value.color = color.hex; } this.updateValues( value ); } render() { const data = this.props.control.params; let currentUnit; if ( this.controlParams.responsive ) { if ( undefined === this.state.value[ this.props.currentDevice ] ) { let largerDevice = ( this.props.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( undefined === this.state.value[ this.props.currentDevice ].unit ) { let largerDevice = ( this.props.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( '' === this.state.value[ this.props.currentDevice ].unit ) { let largerDevice = ( this.props.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( '' !== this.state.value[ this.props.currentDevice ].unit ) { currentUnit = this.state.value[ this.props.currentDevice ].unit } } else { currentUnit = ( undefined !== this.state.value.unit ? this.state.value.unit : 'px' ); } let currentStyle; if ( this.controlParams.responsive ) { if ( undefined === this.state.value[ this.props.currentDevice ] ) { let largerDevice = ( this.props.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( undefined === this.state.value[ this.props.currentDevice ].style ) { let largerDevice = ( this.props.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( '' === this.state.value[ this.props.currentDevice ].style ) { let largerDevice = ( this.props.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( '' !== this.state.value[ this.props.currentDevice ].style ) { currentStyle = this.state.value[ this.props.currentDevice ].style } } else { currentStyle = ( undefined !== this.state.value.style ? this.state.value.style : 'none' ); } const onResponsiveInputChange = ( event ) => { const newValue = Number( event.target.value ); let value = this.state.value; if ( undefined === value[ this.props.currentDevice ] ) { value[ this.props.currentDevice ] = { 'width': '', 'unit': '', 'style': '', 'color': '', } } value[ this.props.currentDevice ].width = newValue; this.updateValues( value ); } const onInputChange = ( event ) => { const newValue = ( '' !== event.target.value ? Number( event.target.value ) : '' ); let value = this.state.value; value.width = newValue; this.updateValues( value ); } let theIcon; if ( 'border_top' === this.props.item ) { theIcon = Icons.outlinetop; } else if ( 'border_left' === this.props.item ) { theIcon = Icons.outlineleft; } else if ( 'border_right' === this.props.item ) { theIcon = Icons.outlineright; } else if ( 'border_bottom' === this.props.item ) { theIcon = Icons.outlinebottom; } let isDisabled = true; if ( this.controlParams.responsive ) { if ( ( undefined !== this.state.value['tablet'] ) || ( undefined !== this.state.value['mobile'] ) ) { isDisabled = false; } else if ( ( 'none' !== this.state.value['desktop'].style ) || ( '' !== this.state.value['desktop'].color ) || ( '' !== this.state.value['desktop'].width ) || ( 'px' !== this.state.value['desktop'].unit ) ) { isDisabled = false; } } return ( <div ref={this.anchorNodeRef} className="kadence-responsive-controls-content kadence-border-single-item"> { this.controlParams.responsive && ( <Fragment> <Tooltip text={ __( 'Reset Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ isDisabled } onClick={ () => { this.resetValues(); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> <span class="border-icon">{ theIcon }</span> { 'none' !== currentStyle && ( <Fragment> { this.controlParams.color && ( <ColorControl presetColors={ this.state.colorPalette } color={ ( undefined !== this.state.value[ this.props.currentDevice ] && this.state.value[ this.props.currentDevice ].color ? this.state.value[ this.props.currentDevice ].color : '' ) } usePalette={ true } tooltip={ __( 'Border Color' ) } onChangeComplete={ ( color, isPalette ) => this.handleResponsiveChangeComplete( color, isPalette, this.props.currentDevice ) } customizer={ this.props.customizer } controlRef={ this.anchorNodeRef } /> ) } <input value={ ( undefined !== this.state.value[ this.props.currentDevice ] && undefined !== this.state.value[ this.props.currentDevice ].width ? this.state.value[ this.props.currentDevice ].width : '' ) } onChange={ onResponsiveInputChange } min={this.controlParams.min[currentUnit]} max={this.controlParams.max[currentUnit]} step={this.controlParams.step[currentUnit]} type="number" className="components-text-control__input" /> { this.controlParams.units && ( <div className="kadence-units"> { this.getResponsiveUnitButtons() } </div> ) } </Fragment> ) } { this.controlParams.styles && ( <div className="kadence-units kadence-style-options"> { this.getResponsiveStyleButtons() } </div> ) } </Fragment> ) } { ! this.controlParams.responsive && ( <Fragment> { 'none' !== currentStyle && ( <Fragment> { this.controlParams.color && ( <ColorControl presetColors={ this.state.colorPalette } color={ ( undefined !== this.state.value.color && this.state.value.color ? this.state.value.color : '' ) } usePalette={ true } tooltip={ __( 'Border Color' ) } onChangeComplete={ ( color, isPalette ) => this.handleChangeComplete( color, isPalette ) } customizer={ this.props.customizer } controlRef={ this.anchorNodeRef } /> ) } <input value={ ( undefined !== this.state.value && undefined !== this.state.value.width ? this.state.value.width : '' ) } onChange={ onInputChange } min={this.controlParams.min[currentUnit]} max={this.controlParams.max[currentUnit]} step={this.controlParams.step[currentUnit]} type="number" className="components-text-control__input" /> { this.controlParams.units && ( <div className="kadence-units"> { this.getUnitButtons() } </div> ) } </Fragment> ) } { this.controlParams.styles && ( <div className="kadence-units kadence-style-options"> { this.getStyleButtons() } </div> ) } </Fragment> ) } </div> ); } getResponsiveStyleButtons() { let self = this; const { styles } = this.controlParams; let currentStyle; if ( undefined === this.state.value[ this.props.currentDevice ] ) { let largerDevice = ( this.props.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( undefined === this.state.value[ this.props.currentDevice ].style ) { let largerDevice = ( this.props.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( '' === this.state.value[ this.props.currentDevice ].style ) { let largerDevice = ( this.props.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].style ) { currentStyle = this.state.value[largerDevice].style; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].style ) { currentStyle = this.state.value['desktop'].style; } } else if ( '' !== this.state.value[ this.props.currentDevice ].style ) { currentStyle = this.state.value[ this.props.currentDevice ].style } if ( styles.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ Icons[ currentStyle ] }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ Icons[ currentStyle ] } label={ __( 'Style', 'kadence' ) } controls={ styles.map( ( style ) => this.createResponsiveStyleControlToolbar( style ) ) } /> } createResponsiveStyleControlToolbar( style ) { return [ { icon: Icons[ style ], isActive: ( undefined !== this.state.value[ this.props.currentDevice ] && undefined !== this.state.value[ this.props.currentDevice ].style && this.state.value[ this.props.currentDevice ].style === style ), onClick: () => { let value = this.state.value; if ( undefined === value[ this.props.currentDevice ] ) { value[ this.props.currentDevice ] = { 'width': '', 'unit': '', 'style': '', 'color': '', } } value[ this.props.currentDevice ].style = style; this.updateValues( value ); }, } ]; }; getStyleButtons() { let self = this; const { styles } = this.controlParams; let currentStyle; currentStyle = ( undefined !== this.state.value.style ? this.state.value.style : 'none' ); if ( styles.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ Icons[ currentStyle ] }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ Icons[ currentStyle ] } label={ __( 'Style', 'kadence' ) } controls={ styles.map( ( style ) => this.createStyleControlToolbar( style ) ) } /> } createStyleControlToolbar( style ) { return [ { icon: Icons[ style ], isActive: ( undefined !== this.state.value && undefined !== this.state.value.style && this.state.value.style === style ), onClick: () => { let value = this.state.value; value.style = style; this.updateValues( value ); }, } ]; }; createResponsiveLevelControlToolbar( unit ) { return [ { icon: ( unit === '%' ? Icons.percent : Icons[ unit ] ), isActive: ( undefined !== this.state.value[ this.props.currentDevice ] && undefined !== this.state.value[ this.props.currentDevice ].unit && this.state.value[ this.props.currentDevice ].unit === unit ), onClick: () => { let value = this.state.value; if ( undefined === value[ this.props.currentDevice ] ) { value[ this.props.currentDevice ] = { 'width': '', 'unit': '', 'style': '', 'color': '', } } value[ this.props.currentDevice ].unit = unit; this.updateValues( value ); }, } ]; }; getResponsiveUnitButtons() { let self = this; const { units } = this.controlParams; let currentUnit; if ( undefined === self.state.value[ self.state.currentDevice ] ) { let largerDevice = ( self.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( undefined !== self.state.value[ self.state.currentDevice ].unit ) { let largerDevice = ( self.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( '' === self.state.value[ self.state.currentDevice ].unit ) { let largerDevice = ( self.state.currentDevice === 'mobile' ? 'tablet' : 'desktop' ); if ( undefined !== this.state.value[largerDevice] && this.state.value[largerDevice].unit ) { currentUnit = this.state.value[largerDevice].unit; } else if ( 'tablet' === largerDevice && undefined !== this.state.value['desktop'] && this.state.value['desktop'].unit ) { currentUnit = this.state.value['desktop'].unit; } } else if ( '' !== self.state.value[ self.state.currentDevice ].unit ) { currentUnit = self.state.value[ self.state.currentDevice ].unit } if ( units.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ ( '%' === currentUnit ? Icons.percent : Icons[ currentUnit ] ) }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ ( '%' === currentUnit ? Icons.percent : Icons[ currentUnit ] ) } label={ __( 'Unit', 'kadence' ) } controls={ units.map( ( unit ) => this.createResponsiveLevelControlToolbar( unit ) ) } /> } createLevelControlToolbar( unit ) { return [ { icon: ( unit === '%' ? Icons.percent : Icons[ unit ] ), isActive: ( undefined !== this.state.value && undefined !== this.state.value.unit && this.state.value.unit === unit ), onClick: () => { let value = this.state.value; value.unit = unit; this.updateValues( value ); }, } ]; }; getUnitButtons() { let self = this; const { units } = this.controlParams; let currentUnit; currentUnit = ( undefined !== this.state.value.unit ? this.state.value.unit : 'px' ); if ( units.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ ( '%' === currentUnit ? Icons.percent : Icons[ currentUnit ] ) }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ ( '%' === currentUnit ? Icons.percent : Icons[ currentUnit ] ) } label={ __( 'Unit', 'kadence' ) } controls={ units.map( ( unit ) => this.createLevelControlToolbar( unit ) ) } /> } resetValues() { const value = JSON.parse( JSON.stringify( this.defaultValue ) ); this.setState( { value: value } ); if ( this.controlParams.responsive ) { value.flag = !this.props.control.settings[this.props.item].get().flag; } this.props.control.settings[this.props.item].set( { ...value, } ); } updateValues( value ) { this.setState( { value: value } ); if ( this.controlParams.responsive ) { value.flag = !this.props.control.settings[this.props.item].get().flag; } this.props.control.settings[this.props.item].set( { ...this.props.control.settings[this.props.item].get(), ...value, } ); } } SingleBorderComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default SingleBorderComponent; react/src/borders/control.js 0000644 00000000777 15151531432 0012122 0 ustar 00 import { createRoot } from '@wordpress/element'; import BordersComponent from './borders-component.js'; export const BordersControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <BordersComponent control={control} customizer={ wp.customize }/> ); // ReactDOM.render( // <BordersComponent control={control} customizer={ wp.customize }/>, // control.container[0] // ); } } ); react/src/tabs/tabs-component.js 0000644 00000006657 15151531432 0012667 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class TabsComponent extends Component { constructor() { super( ...arguments ); this.focusPanel = this.focusPanel.bind( this ); let defaultParams = { 'general': { 'label': 'General', 'target' : '', }, 'design': { 'label': 'Design', 'target' : 'design', }, 'active': 'general', }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; } focusPanel( section ) { let self = this; let otherSection; let secton_id = ( 'woocommerce_product_catalog_design' === section || 'woocommerce_product_catalog' === section || 'woocommerce_store_notice' === section || 'woocommerce_store_notice_design' === section ? section : 'kadence_customizer_' + section ) if ( section === self.controlParams.design.target ) { otherSection = ( 'woocommerce_product_catalog_design' === section || 'woocommerce_product_catalog' === section || 'woocommerce_store_notice' === section || 'woocommerce_store_notice_design' === section ? self.controlParams.general.target : 'kadence_customizer_' + self.controlParams.general.target ); } else { otherSection = ( 'woocommerce_product_catalog_design' === section || 'woocommerce_product_catalog' === section || 'woocommerce_store_notice' === section || 'woocommerce_store_notice_design' === section ? self.controlParams.design.target : 'kadence_customizer_' + self.controlParams.design.target ); } if ( undefined !== self.props.customizer.section( secton_id ) ) { const container = self.props.customizer.section( secton_id ).contentContainer[0]; const otherContainer = self.props.customizer.section( otherSection ).contentContainer[0]; container.classList.add( 'kadence-prevent-transition' ); otherContainer.classList.add( 'kadence-prevent-transition' ); setTimeout( function(){ self.props.customizer.section( secton_id ).focus(); }, 10); setTimeout( function(){ container.classList.remove( 'kadence-prevent-transition' ); container.classList.remove( 'busy' ); container.style.top = null; otherContainer.classList.remove( 'kadence-prevent-transition' ); otherContainer.classList.remove( 'busy' ); }, 300); } } render() { return ( <div className="customize-control-kadence_blank_control"> <div className="customize-control-description"> <div class="kadence-nav-tabs kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <Button className={ `nav-tab kadence-general-tab kadence-compontent-tabs-button kadence-nav-tabs-button${ 'general' === this.controlParams.active ? ' nav-tab-active' : '' }` } onClick={ () => this.focusPanel( this.controlParams.general.target ) }> <span>{ this.controlParams.general.label }</span> </Button> <Button className={ `nav-tab kadence-design-tab kadence-compontent-tabs-button kadence-nav-tabs-button${ 'design' === this.controlParams.active ? ' nav-tab-active' : '' }` } onClick={ () => this.focusPanel( this.controlParams.design.target ) }> <span>{ this.controlParams.design.label }</span> </Button> </div> </div> </div> ); } } TabsComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default TabsComponent; react/src/tabs/control.js 0000644 00000000740 15151531432 0011401 0 ustar 00 import { createRoot } from '@wordpress/element'; import TabsComponent from './tabs-component'; export const TabsControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <TabsComponent control={ control } customizer={ wp.customize } /> ); // ReactDOM.render( <TabsComponent control={ control } customizer={ wp.customize } />, control.container[0] ); } } ); react/src/customizer.js 0000644 00000036103 15151531432 0011176 0 ustar 00 ( function( $, api ) { var $window = $( window ), $document = $( document ), $body = $( 'body' ); /** * API on ready event handlers * * All handlers need to be inside the 'ready' state. */ wp.customize.bind( 'ready', function() { $( 'input[name=kadence-flush-local-fonts-button]' ).on( 'click', function( e ) { var data = { wp_customize: 'on', action: 'kadence_flush_fonts_folder', nonce: kadenceCustomizerControlsData.flushFonts }; $( 'input[name=kadence-flush-local-fonts-button]' ).attr('disabled', 'disabled'); $.post( ajaxurl, data, function ( response ) { if ( response && response.success ) { $( 'input[name=kadence-flush-local-fonts-button]' ).val( 'Successfully Flushed' ); } else { $( 'input[name=kadence-flush-local-fonts-button]' ).val( 'Failed, Reload Page and Try Again' ); } }); }); wp.customize.state.create( 'kadenceTab' ); wp.customize.state( 'kadenceTab' ).set( 'general' ); wp.customize.sectionConstructor['kadence_section_pro'] = wp.customize.Section.extend( { // No events for this type of section. attachEvents: () => {}, // Always make the section active. isContextuallyActive: () => { return true; } } ); // Set handler when custom responsive toggle is clicked. $( '#customize-theme-controls' ).on( 'click', '.kadence-build-tabs-button:not(.kadence-nav-tabs-button)', function( e ) { e.preventDefault(); wp.customize.previewedDevice.set( $( this ).attr( 'data-device' ) ); }); // Set handler when custom responsive toggle is clicked. $( '#customize-theme-controls' ).on( 'click', '.kadence-compontent-tabs-button:not(.kadence-nav-tabs-button)', function( e ) { e.preventDefault(); wp.customize.state( 'kadenceTab' ).set( $( this ).attr( 'data-tab' ) ); }); var setCustomTabElementsDisplay = function() { var tabState = wp.customize.state( 'kadenceTab' ).get(), $tabs = $( '.kadence-compontent-tabs-button:not(.kadence-nav-tabs-button)' ); $tabs.removeClass( 'nav-tab-active' ).filter( '.kadence-' + tabState + '-tab' ).addClass( 'nav-tab-active' ); } // Refresh all responsive elements when previewedDevice is changed. wp.customize.state( 'kadenceTab' ).bind( setCustomTabElementsDisplay ); $( '#customize-theme-controls' ).on( 'click', 'customize-section-back', function( e ) { wp.customize.state( 'kadenceTab' ).set( 'general' ); }); if ( kadenceCustomizerControlsData && kadenceCustomizerControlsData.contexts ) { /** * Active callback script (JS version) * ref: https://make.xwp.co/2016/07/24/dependently-contextual-customizer-controls/ */ _.each( kadenceCustomizerControlsData.contexts, function( rules, key ) { var getSetting = function( settingName ) { // Get the dependent setting. switch ( settingName ) { case '__device': return wp.customize.previewedDevice; break; case '__current_tab': return wp.customize.state( 'kadenceTab' ); break; default: // Check if we have an extra source in the mix if ( kadenceCustomizerControlsData.source ) { // Check if this setting might be powered by the extra source. if ( wp.customize( kadenceCustomizerControlsData.source + '[' + settingName + ']' ) ) { return wp.customize( kadenceCustomizerControlsData.source + '[' + settingName + ']' ); } else { return wp.customize( settingName ); } } return wp.customize( settingName ); break; } } var initContext = function( element ) { // Main function returning the conditional value var isDisplayed = function() { var displayed = false, relation = rules['relation']; // Fallback invalid relation type to "AND". // Assign default displayed to true for "AND" relation type. if ( 'OR' !== relation ) { relation = 'AND'; displayed = true; } // Each rule iteration _.each( rules, function( rule, i ) { // Skip "relation" property. if ( 'relation' == i ) return; // If in "AND" relation and "displayed" already flagged as false, skip the rest rules. if ( 'AND' == relation && false == displayed ) return; // Skip if no setting propery found. if ( undefined === rule['setting'] ) return; var result = false, setting = getSetting( rule['setting'] ); // Only process the rule if dependent setting is found. // Otherwise leave the result to "false". if ( undefined !== setting ) { var operator = rule['operator'], comparedValue = rule['value'], currentValue = setting.get(); if ( undefined == operator || '=' == operator ) { operator = '=='; } if ( 'sub_object_contains' === operator ) { if ( undefined !== currentValue[ rule['sub_key'] ] ) { currentValue = currentValue[ rule['sub_key'] ]; } } if ( 'sub_object_does_not_contain' === operator ) { if ( undefined !== currentValue[ rule['sub_key'] ] ) { currentValue = currentValue[ rule['sub_key'] ]; } } switch ( operator ) { case '>': result = currentValue > comparedValue; break; case '<': result = currentValue < comparedValue; break; case '>=': result = currentValue >= comparedValue; break; case '<=': result = currentValue <= comparedValue; break; case 'in': result = 0 <= comparedValue.indexOf( currentValue ); break; case 'not_in': result = 0 > comparedValue.indexOf( currentValue ); break; case 'contain': //result = ( currentValue.includes( comparedValue ) ); result = 0 <= currentValue.indexOf( comparedValue ); break; case 'not_contain': result = 0 > currentValue.indexOf( comparedValue ); break; case 'in': result = 0 <= comparedValue.indexOf( currentValue ); break; case 'array_includes': result = currentValue.includes( comparedValue ); break; case 'sub_object_does_not_contain': if ( rule['responsive'] ) { result = true; { Object.keys( { 'desktop':'', 'tablet':'', 'mobile':'' } ).map( ( device ) => { if ( currentValue[ device ].includes( comparedValue ) ) { result = false; } } ) } } else { result = ! currentValue.includes( comparedValue ); } break; case 'sub_object_contains': if ( rule['responsive'] ) { { Object.keys( { 'desktop':'', 'tablet':'', 'mobile':'' } ).map( ( device ) => { if ( currentValue[ device ].includes( comparedValue ) ) { result = true; } } ) } } else { result = currentValue.includes( comparedValue ); } break; case 'empty': result = (currentValue === undefined || currentValue == null || currentValue.length <= 0); //result = 0 == currentValue.length; break; case '!empty': result = typeof currentValue !== 'undefined' && undefined !== currentValue && null !== currentValue && '' !== currentValue; //result = 0 < currentValue.length; break; case '!=': result = comparedValue !== currentValue; //result = 0 < currentValue.length; break; case 'load_italic': result = false; if ( currentValue['family'] && currentValue['google'] && currentValue['variant'] ) { if ( 0 > currentValue['variant'].indexOf( 'italic' ) ) { if ( kadenceCustomizerControlsData.gfontvars && kadenceCustomizerControlsData.gfontvars[ currentValue['family'] ] && kadenceCustomizerControlsData.gfontvars[ currentValue['family'] ].v && kadenceCustomizerControlsData.gfontvars[ currentValue['family'] ].v.includes( 'italic' ) ) { result = true; } } } break; default: result = comparedValue == currentValue; break; } } // Combine to the final result. switch ( relation ) { case 'OR': displayed = displayed || result; break; default: displayed = displayed && result; break; } }); return displayed; }; // Wrapper function for binding purpose var setActiveState = function() { element.active.set( isDisplayed() ); }; // Setting changes bind _.each( rules, function( rule, i ) { // Skip "relation" property. if ( 'relation' == i ) return; var setting = getSetting( rule['setting'] ); if ( undefined !== setting ) { // Bind the setting for future use. setting.bind( setActiveState ); } }); // Initial run element.active.validate = isDisplayed; setActiveState(); }; if ( 0 == key.indexOf( 'kadence_customizer' ) ) { wp.customize.section( key, initContext ); } else { wp.customize.control( key, initContext ); } }); } // Set all custom responsive toggles and fieldsets. var setCustomResponsiveElementsDisplay = function() { var device = wp.customize.previewedDevice.get(), $tabs = $( '.kadence-build-tabs-button.nav-tab' ); $tabs.removeClass( 'nav-tab-active' ).filter( '.preview-' + device ).addClass( 'nav-tab-active' ); } // Refresh all responsive elements when previewedDevice is changed. wp.customize.previewedDevice.bind( setCustomResponsiveElementsDisplay ); // Refresh all responsive elements when any section is expanded. // This is required to set responsive elements on newly added controls inside the section. wp.customize.section.each(function ( section ) { section.expanded.bind( setCustomResponsiveElementsDisplay ); }); /** * Resize Preview Frame when show / hide Builder. */ var resizePreviewer = function() { var $section = $( '.control-section.kadence-builder-active' ); var $footer = $( '.control-section.kadence-footer-builder-active' ); if ( $body.hasClass( 'kadence-builder-is-active' ) || $body.hasClass( 'kadence-footer-builder-is-active' ) ) { if ( $body.hasClass( 'kadence-footer-builder-is-active' ) && 0 < $footer.length && ! $footer.hasClass( 'kadence-builder-hide' ) ) { setTimeout(function() { wp.customize.previewer.container.css( 'bottom', $footer.outerHeight() + 'px' ); }, 250); } else if ( $body.hasClass( 'kadence-builder-is-active' ) && 0 < $section.length && ! $section.hasClass( 'kadence-builder-hide' ) ) { setTimeout(function() { wp.customize.previewer.container.css({ "bottom" : $section.outerHeight() + 'px' }); }, 250); } else { wp.customize.previewer.container.css( 'bottom', ''); } } else { wp.customize.previewer.container.css( 'bottom', ''); } } $window.on( 'resize', resizePreviewer ); wp.customize.previewedDevice.bind(function( device ) { setTimeout(function() { resizePreviewer(); }, 250 ); }); var reloadPreviewer = function() { $( wp.customize.previewer.container ).find( 'iframe' ).css( 'position', 'static' ); $( wp.customize.previewer.container ).find( 'iframe' ).css( 'position', 'absolute' ); } wp.customize.previewer.bind( 'ready', reloadPreviewer ); /** * Init Header & Footer Builder */ var initHeaderBuilderPanel = function( panel ) { var section = wp.customize.section( 'kadence_customizer_header_builder' ); if ( section ) { var $section = section.contentContainer, section_layout = wp.customize.section( 'kadence_customizer_header_layout' ); // If Header panel is expanded, add class to the body tag (for CSS styling). panel.expanded.bind(function( isExpanded ) { _.each(section.controls(), function( control ) { if ( 'resolved' === control.deferred.embedded.state() ) { return; } control.renderContent(); control.deferred.embedded.resolve(); // This triggers control.ready(). // Fire event after control is initialized. control.container.trigger( 'init' ); }); if ( isExpanded ) { $body.addClass( 'kadence-builder-is-active' ); $section.addClass( 'kadence-builder-active' ); $section.css('display', 'none').height(); $section.css('display', 'block'); } else { $body.removeClass( 'kadence-builder-is-active' ); $section.removeClass( 'kadence-builder-active' ); } _.each(section_layout.controls(), function( control ) { if ( 'resolved' === control.deferred.embedded.state() ) { return; } control.renderContent(); control.deferred.embedded.resolve(); // This triggers control.ready(). // Fire event after control is initialized. control.container.trigger( 'init' ); }); resizePreviewer(); }); // Attach callback to builder toggle. $section.on( 'click', '.kadence-builder-tab-toggle', function( e ) { e.preventDefault(); $section.toggleClass( 'kadence-builder-hide' ); resizePreviewer(); }); } }; wp.customize.panel( 'kadence_customizer_header', initHeaderBuilderPanel ); /** * Init Header & Footer Builder */ var initFooterBuilderPanel = function( panel ) { var section = wp.customize.section( 'kadence_customizer_footer_builder' ); if ( section ) { var $section = section.contentContainer, section_layout = wp.customize.section( 'kadence_customizer_footer_layout' ); // If Header panel is expanded, add class to the body tag (for CSS styling). panel.expanded.bind(function( isExpanded ) { _.each(section.controls(), function( control ) { if ( 'resolved' === control.deferred.embedded.state() ) { return; } control.renderContent(); control.deferred.embedded.resolve(); // This triggers control.ready(). // Fire event after control is initialized. control.container.trigger( 'init' ); }); if ( isExpanded ) { $body.addClass( 'kadence-footer-builder-is-active' ); $section.addClass( 'kadence-footer-builder-active' ); $section.css('display', 'none').height(); $section.css('display', 'block'); } else { $body.removeClass( 'kadence-footer-builder-is-active' ); $section.removeClass( 'kadence-footer-builder-active' ); } _.each(section_layout.controls(), function( control ) { if ( 'resolved' === control.deferred.embedded.state() ) { return; } control.renderContent(); control.deferred.embedded.resolve(); // This triggers control.ready(). // Fire event after control is initialized. control.container.trigger( 'init' ); }); resizePreviewer(); }); // Attach callback to builder toggle. $section.on( 'click', '.kadence-builder-tab-toggle', function( e ) { e.preventDefault(); $section.toggleClass( 'kadence-builder-hide' ); resizePreviewer(); } ); } }; wp.customize.panel( 'kadence_customizer_footer', initFooterBuilderPanel ); }); } )( jQuery, wp ); react/src/range/range-component.js 0000644 00000022253 15151531432 0013163 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import KadenceRange from '../common/range.js'; import Icons from '../common/icons.js'; import { __ } from '@wordpress/i18n'; const { RangeControl, Dashicon, Tooltip, Button, ToolbarGroup } = wp.components; const { Component, Fragment } = wp.element; class RangeComponent extends Component { constructor() { super( ...arguments ); this.updateValues = this.updateValues.bind( this ); this.getUnitButtons = this.getUnitButtons.bind( this ); this.createLevelControlToolbar = this.createLevelControlToolbar.bind( this ); this.createResponsiveLevelControlToolbar = this.createResponsiveLevelControlToolbar.bind( this ); this.getResponsiveUnitButtons = this.getResponsiveUnitButtons.bind( this ); let value = this.props.control.setting.get(); let baseDefault = { 'unit': { 'mobile': 'px', 'tablet': 'px', 'desktop': 'px' }, 'size': { 'mobile': 70, 'tablet': 70, 'desktop': 140 } }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default } : baseDefault; value = value ? { ...this.defaultValue, ...value } : this.defaultValue; let defaultParams = { min: { px: '0', em: '0', rem: '0', vh: '0' }, max: { px: '300', em: '12', rem: '12', vh: '40' }, step: { px: '1', em: '0.01', rem: '0.01', vh: '1' }, units: ['px', 'em', 'rem', 'vh'], responsive: true, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; this.state = { currentDevice: 'desktop', size: value.size, unit: value.unit, }; } render() { const responsiveControlLabel = ( <Fragment> { this.controlParams.responsive && ( <Fragment> <Tooltip text={ __( 'Reset Device Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.size[this.state.currentDevice] === this.defaultValue.size[this.state.currentDevice] ) && ( this.state.unit[this.state.currentDevice] === this.defaultValue.unit[this.state.currentDevice] ) } onClick={ () => { let value = this.state.size; let unit = this.state.unit; if ( typeof value !== 'object' ) { value = { 'mobile': '', 'tablet': '', 'desktop': '', }; this.setState( { size: value } ); if ( typeof unit !== 'object' ) { unit = { 'mobile': '', 'tablet': '', 'desktop': '', }; this.setState( { unit: unit } ); } } value[this.state.currentDevice] = this.defaultValue.size[this.state.currentDevice]; unit[this.state.currentDevice] = this.defaultValue.unit[this.state.currentDevice]; this.setState( { size: value, unit: unit } ); this.updateValues( { size: value, unit: unit } ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { this.props.control.params.label && this.props.control.params.label } </Fragment> ) } </Fragment> ); const controlLabel = ( <Fragment> <Tooltip text={ __( 'Reset Values', 'kadence' ) }> <Button className="reset kadence-reset" disabled={ ( this.state.size === this.defaultValue.size ) && ( this.state.unit === this.defaultValue.unit ) } onClick={ () => { let value = this.state.size; value = this.defaultValue.size; let svalue = this.state.unit; svalue = this.defaultValue.unit; this.setState( { size: value, unit: svalue } ); this.updateValues( { size: value, unit: svalue } ); } } > <Dashicon icon='image-rotate' /> </Button> </Tooltip> { this.props.control.params.label && this.props.control.params.label } </Fragment> ); return ( <div className="kadence-control-field kadence-range-control"> { this.controlParams.responsive && ( <ResponsiveControl onChange={ ( currentDevice) => this.setState( { currentDevice } ) } controlLabel={ responsiveControlLabel } > <KadenceRange initialPosition={ ( ! this.state.size[this.state.currentDevice] ? this.defaultValue.size[this.state.currentDevice] : undefined ) } value={ ( undefined !== this.state.size[this.state.currentDevice] ? this.state.size[this.state.currentDevice] : undefined ) } onChange={ (val) => { let value = this.state.size; if ( typeof value !== 'object' ) { value = { 'mobile': '', 'tablet': '', 'desktop': '', }; this.setState( { size: value } ); let unit = this.state.unit; if ( typeof unit !== 'object' ) { unit = { 'mobile': '', 'tablet': '', 'desktop': '', }; this.setState( { unit: unit } ); } } value[ this.state.currentDevice ] = val; this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit[this.state.currentDevice]]} max={this.controlParams.max[this.state.unit[this.state.currentDevice]]} step={this.controlParams.step[this.state.unit[this.state.currentDevice]]} /> { this.controlParams.units && ( <div className="kadence-units"> { this.getResponsiveUnitButtons() } </div> ) } </ResponsiveControl> ) } { ! this.controlParams.responsive && ( <Fragment> <div className="kadence-responsive-control-bar"> <span className="customize-control-title">{ controlLabel }</span> </div> <div className="kadence-responsive-controls-content"> <KadenceRange initialPosition={ ( ! this.state.size ? this.defaultValue.size : undefined ) } value={this.state.size} onChange={ (val) => { let value = this.state.size; value = val; this.setState( { size: value } ); this.updateValues( { size: value } ); } } min={this.controlParams.min[this.state.unit]} max={this.controlParams.max[this.state.unit]} step={this.controlParams.step[this.state.unit]} /> { this.controlParams.units && ( <div className="kadence-units"> { this.getUnitButtons() } </div> ) } </div> </Fragment> ) } </div> ); } getUnitButtons() { let self = this; const { units } = this.controlParams; if ( units.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ ( '%' === self.state.unit ? Icons.percent : Icons[ self.state.unit ] ) }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ ( '%' === self.state.unit ? Icons.percent : Icons[ self.state.unit ] ) } label={ __( 'Unit', 'kadence' ) } controls={ units.map( (unit) => this.createLevelControlToolbar( unit ) ) } /> } createLevelControlToolbar( unit ) { return [ { icon: ( unit === '%' ? Icons.percent : Icons[ unit ] ), isActive: this.state.unit === unit, onClick: () => { let value = this.state.unit; value = unit; this.setState( { unit: value } ); this.updateValues( { unit: value } ); }, } ]; }; createResponsiveLevelControlToolbar( unit ) { return [ { icon: ( unit === '%' ? Icons.percent : Icons[ unit ] ), isActive: this.state.unit[this.state.currentDevice] === unit, onClick: () => { let value = this.state.unit; if ( typeof value !== 'object' ) { value = { 'mobile': '', 'tablet': '', 'desktop': '', }; this.setState( { unit: value } ); let size = this.state.size; if ( typeof size !== 'object' ) { size = { 'mobile': '', 'tablet': '', 'desktop': '', }; this.setState( { size: size } ); } } value[ this.state.currentDevice ] = unit; this.setState( { unit: value } ); this.updateValues( { unit: value } ); }, } ]; }; getResponsiveUnitButtons() { let self = this; const { units } = this.controlParams; if ( units.length === 1 ) { return ( <Button className="is-active is-single" isSmall disabled >{ ( '%' === self.state.unit[ self.state.currentDevice ] ? Icons.percent : Icons[ self.state.unit[ self.state.currentDevice ] ] ) }</Button> ); } return <ToolbarGroup isCollapsed={ true } icon={ ( '%' === self.state.unit[ self.state.currentDevice ] ? Icons.percent : Icons[ self.state.unit[ self.state.currentDevice ] ] ) } label={ __( 'Unit', 'kadence' ) } controls={ units.map( (unit) => this.createResponsiveLevelControlToolbar( unit ) ) } /> } updateValues( value ) { if ( this.controlParams.responsive ) { value.flag = !this.props.control.setting.get().flag; } this.props.control.setting.set( { ...this.props.control.setting.get(), ...value, } ); } } RangeComponent.propTypes = { control: PropTypes.object.isRequired }; export default RangeComponent; react/src/range/control.js 0000644 00000000675 15151531433 0011554 0 ustar 00 import { createRoot } from '@wordpress/element'; import RangeComponent from './range-component.js'; export const RangeControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <RangeComponent control={control}/> ); // ReactDOM.render( // <RangeComponent control={control}/>, // control.container[0] // ); } } ); react/src/text/text-component.js 0000644 00000001673 15151531433 0012747 0 ustar 00 import PropTypes from 'prop-types'; import { __ } from '@wordpress/i18n'; const { Component } = wp.element; const { TextControl } = wp.components; class TextComponent extends Component { constructor(props) { super( props ); let value = props.control.setting.get(); this.state = { value }; this.defaultValue = props.control.params.default || ''; this.updateValues = this.updateValues.bind( this ); } render() { return ( <div className="kadence-control-field kadence-text-control"> <TextControl label={ this.props.control.params.label ? this.props.control.params.label : undefined } value={ this.state.value } onChange={ (value) => { this.updateValues( value ); } } /> </div> ); } updateValues(value) { this.setState( { value: value } ); this.props.control.setting.set( value ); } } TextComponent.propTypes = { control: PropTypes.object.isRequired }; export default TextComponent; react/src/text/control.js 0000644 00000000653 15151531433 0011440 0 ustar 00 import { createRoot } from '@wordpress/element'; import TextComponent from './text-component.js'; export const TextControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <TextComponent control={ control } /> ); // ReactDOM.render( <TextComponent control={ control } />, control.container[0] ); } } ); react/src/palette/palette-component.js 0000644 00000053605 15151531433 0014075 0 ustar 00 import PropTypes from "prop-types"; import { __ } from "@wordpress/i18n"; /** * WordPress dependencies */ import { createRef, Component, Fragment } from "@wordpress/element"; import map from "lodash/map"; import ColorControl from "../common/color.js"; const { ButtonGroup, Dashicon, Tooltip, Button, Popover, TabPanel, TextareaControl, } = wp.components; class ColorComponent extends Component { constructor(props) { super(props); this.handleChangeComplete = this.handleChangeComplete.bind(this); this.handleChangePalette = this.handleChangePalette.bind(this); this.handleTextImport = this.handleTextImport.bind(this); this.handlePresetImport = this.handlePresetImport.bind(this); this.updateValues = this.updateValues.bind(this); let value = JSON.parse(this.props.control.setting.get()); let baseDefault = kadenceCustomizerControlsData.palette ? JSON.parse(kadenceCustomizerControlsData.palette) : { palette: [] }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default, } : baseDefault; value = value ? { ...this.defaultValue, ...value, } : this.defaultValue; let defaultParams = { reset: '{"palette":[{"color":"#3182CE","slug":"palette1","name":"Palette Color 1"},{"color":"#2B6CB0","slug":"palette2","name":"Palette Color 2"},{"color":"#1A202C","slug":"palette3","name":"Palette Color 3"},{"color":"#2D3748","slug":"palette4","name":"Palette Color 4"},{"color":"#4A5568","slug":"palette5","name":"Palette Color 5"},{"color":"#718096","slug":"palette6","name":"Palette Color 6"},{"color":"#EDF2F7","slug":"palette7","name":"Palette Color 7"},{"color":"#F7FAFC","slug":"palette8","name":"Palette Color 8"},{"color":"#FFFFFF","slug":"palette9","name":"Palette Color 9"},{"color":"#FfFfFf","slug":"palette10","name":"Palette Color Complement"},{"color":"#13612e","slug":"palette11","name":"Palette Color Success"},{"color":"#1159af","slug":"palette12","name":"Palette Color Info"},{"color":"#b82105","slug":"palette13","name":"Palette Color Alert"},{"color":"#f7630c","slug":"palette14","name":"Palette Color Warning"},{"color":"#f5a524","slug":"palette15","name":"Palette Color Rating"}],"second-palette":[{"color":"#3182CE","slug":"palette1","name":"Palette Color 1"},{"color":"#2B6CB0","slug":"palette2","name":"Palette Color 2"},{"color":"#1A202C","slug":"palette3","name":"Palette Color 3"},{"color":"#2D3748","slug":"palette4","name":"Palette Color 4"},{"color":"#4A5568","slug":"palette5","name":"Palette Color 5"},{"color":"#718096","slug":"palette6","name":"Palette Color 6"},{"color":"#EDF2F7","slug":"palette7","name":"Palette Color 7"},{"color":"#F7FAFC","slug":"palette8","name":"Palette Color 8"},{"color":"#FFFFFF","slug":"palette9","name":"Palette Color 9"},{"color":"#FfFfFf","slug":"palette10","name":"Palette Color Complement"},{"color":"#13612e","slug":"palette11","name":"Palette Color Success"},{"color":"#1159af","slug":"palette12","name":"Palette Color Info"},{"color":"#b82105","slug":"palette13","name":"Palette Color Alert"},{"color":"#f7630c","slug":"palette14","name":"Palette Color Warning"},{"color":"#f5a524","slug":"palette15","name":"Palette Color Rating"}],"third-palette":[{"color":"#3182CE","slug":"palette1","name":"Palette Color 1"},{"color":"#2B6CB0","slug":"palette2","name":"Palette Color 2"},{"color":"#1A202C","slug":"palette3","name":"Palette Color 3"},{"color":"#2D3748","slug":"palette4","name":"Palette Color 4"},{"color":"#4A5568","slug":"palette5","name":"Palette Color 5"},{"color":"#718096","slug":"palette6","name":"Palette Color 6"},{"color":"#EDF2F7","slug":"palette7","name":"Palette Color 7"},{"color":"#F7FAFC","slug":"palette8","name":"Palette Color 8"},{"color":"#FFFFFF","slug":"palette9","name":"Palette Color 9"},{"color":"#FfFfFf","slug":"palette10","name":"Palette Color Complement"},{"color":"#13612e","slug":"palette11","name":"Palette Color Success"},{"color":"#1159af","slug":"palette12","name":"Palette Color Info"},{"color":"#b82105","slug":"palette13","name":"Palette Color Alert"},{"color":"#f7630c","slug":"palette14","name":"Palette Color Warning"},{"color":"#f5a524","slug":"palette15","name":"Palette Color Rating"}],"active":"palette"}', palettes: kadenceCustomizerControlsData.palettePresets ? kadenceCustomizerControlsData.palettePresets : [], colors: { palette1: { tooltip: __("1 - Accent", "kadence"), palette: false, }, palette2: { tooltip: __("2 - Accent - alt", "kadence"), palette: false, }, palette3: { tooltip: __("3 - Strongest text", "kadence"), palette: false, }, palette4: { tooltip: __("4 - Strong Text", "kadence"), palette: false, }, palette5: { tooltip: __("5 - Medium text", "kadence"), palette: false, }, palette6: { tooltip: __("6 - Subtle Text", "kadence"), palette: false, }, palette7: { tooltip: __("7 - Subtle Background", "kadence"), palette: false, }, palette8: { tooltip: __("8 - Lighter Background", "kadence"), palette: false, }, palette9: { tooltip: __("9 - White or offwhite", "kadence"), palette: false, }, palette10: { tooltip: __("10 - Accent - Complement", "kadence"), palette: false, }, palette11: { tooltip: __("11 - Notices - Success", "kadence"), palette: false, }, palette12: { tooltip: __("12 - Notices - Info", "kadence"), palette: false, }, palette13: { tooltip: __("13 - Notices - Alert", "kadence"), palette: false, }, palette14: { tooltip: __("14 - Notices - Warning", "kadence"), palette: false, }, palette15: { tooltip: __("15 - Notices - Rating", "kadence"), palette: false, }, }, paletteMap: { palette: { tooltip: __("Palette 1", "kadence"), }, "second-palette": { tooltip: __("Palette 2", "kadence"), }, "third-palette": { tooltip: __("Palette 3", "kadence"), }, }, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; this.state = { value: value, colorPalette: [], fresh: "start", isVisible: false, textImport: "", importError: false, }; this.anchorNodeRef = createRef(); } handleChangePalette(active) { let value = this.state.value; const newItems = this.state.value[active].map((item, index) => { const colorToUse = item.slug === "palette10" && item.color === "#FfFfFf" ? "oklch(from var(--global-palette1) calc(l + 0.10 * (1 - l)) calc(c * 1.00) calc(h + 180) / 100%)" : item.color; document.documentElement.style.setProperty( "--global-" + item.slug, colorToUse ); return item; }); value.active = active; value[active] = newItems; this.setState({ fresh: this.state.fresh !== "start" ? "start" : "second", }); this.updateValues(value); } handlePresetImport(preset) { const presetPalettes = JSON.parse(this.controlParams.palettes); // Verify data. if ( presetPalettes && presetPalettes[preset] && 9 === presetPalettes[preset].length ) { const newItems = presetPalettes[preset].map((item, index) => { if (item.color) { this.handleChangeComplete( { hex: item.color }, false, "", index ); } }); this.setState({ fresh: this.state.fresh !== "start" ? "start" : "second", importError: false, }); } else { this.setState({ importPresetError: true }); } } handleTextImport() { const importText = this.state.textImport; if (!importText) { this.setState({ importError: true }); return; } const textImportData = JSON.parse(importText); // Get current palette const currentPalette = this.state.value[this.state.value.active]; // Get imported palette let sanitizedPalette = null; // Check if imported palette is in named format (object with palette1, palette2, etc.) if ( textImportData && !Array.isArray(textImportData) && typeof textImportData === "object" ) { // Named format - loop through the palette colors sanitizedPalette = []; currentPalette.forEach((paletteItem) => { const paletteKey = paletteItem.slug; // Find the corresponding named color in the import if ( textImportData[paletteKey] && textImportData[paletteKey].color ) { // Start with a copy of current paletteItem, then merge in changes sanitizedPalette.push({ ...paletteItem, ...textImportData[paletteKey], }); } else { // Use current palette values for any that are missing sanitizedPalette.push(paletteItem); } }); } else if (textImportData instanceof Array) { // Array format - continue with existing logic sanitizedPalette = textImportData; } // Use the sanitized palette in the usual loop to complete the import // Verify data. if ( sanitizedPalette && sanitizedPalette instanceof Array && sanitizedPalette[0] && sanitizedPalette[0].color ) { const newItems = sanitizedPalette.map((item, index) => { if (item.color) { this.handleChangeComplete( { hex: item.color }, false, "", index ); } }); this.setState({ fresh: this.state.fresh !== "start" ? "start" : "second", textImport: "", isVisible: false, importError: false, }); } else { this.setState({ importError: true }); } } convertPaletteToNamedFormat(paletteArray) { const namedFormat = {}; paletteArray.forEach((paletteItem) => { namedFormat[paletteItem.slug] = { color: paletteItem.color }; }); return namedFormat; } handleChangeComplete(color, isPalette, item, index) { let newColor = {}; if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { newColor.color = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { newColor.color = color.hex; } let value = this.state.value; const newItems = this.state.value[this.state.value.active].map( (item, thisIndex) => { if (parseInt(index) === parseInt(thisIndex)) { item = { ...item, ...newColor }; const colorToSet = this.state.value[this.state.value.active][index] .slug === "palette10" && newColor.color === "#FfFfFf" ? "oklch(from var(--global-palette1) calc(l + 0.10 * (1 - l)) calc(c * 1.00) calc(h + 180) / 100%)" : newColor.color; document.documentElement.style.setProperty( "--global-" + this.state.value[this.state.value.active][index] .slug, colorToSet ); } return item; } ); value[this.state.value.active] = newItems; this.updateValues(value); } render() { const toggleVisible = () => { this.setState({ isVisible: true }); }; const toggleClose = () => { if (this.state.isVisible === true) { this.setState({ isVisible: false }); } }; const presetPalettes = JSON.parse(this.controlParams.palettes); const currentPaletteData = this.convertPaletteToNamedFormat( this.state.value[this.state.value.active] ); const currentPaletteJson = JSON.stringify(currentPaletteData); const paletteGroupData = { accent: { name: __("Accents", "kadence"), colors: ["palette1", "palette2", "palette10"], }, contrast: { name: __("Contrast", "kadence"), colors: ["palette3", "palette4", "palette5", "palette6"], }, base: { name: __("Base", "kadence"), colors: ["palette7", "palette8", "palette9"], }, notice: { name: __("Notices", "kadence"), colors: [ "palette11", "palette12", "palette13", "palette14", "palette15", ], }, }; return ( <div className="kadence-control-field kadence-palette-control kadence-color-control"> <div className="kadence-palette-header"> <Tooltip text={__("Reset Values", "kadence")}> <Button className="reset kadence-reset" onClick={() => { let value = this.state.value; const reset = JSON.parse( this.controlParams.reset ); const newItems = this.state.value[ this.state.value.active ].map((item, thisIndex) => { item = { ...item, ...reset[this.state.value.active][ thisIndex ], }; document.documentElement.style.setProperty( "--global-" + reset[this.state.value.active][ thisIndex ].slug, item.slug === "palette10" && item.color === "#FfFfFf" ? "oklch(from var(--global-palette1) calc(l + 0.10 * (1 - l)) calc(c * 1.00) calc(h + 180) / 100%)" : reset[this.state.value.active][ thisIndex ].color ); return item; }); value[this.state.value.active] = newItems; this.updateValues(value); }} > <Dashicon icon="image-rotate" /> </Button> </Tooltip> {this.props.control.params.label && ( <span className="customize-control-title"> {this.props.control.params.label} </span> )} {!this.props.hideResponsive && ( <div className="floating-controls"> <ButtonGroup> {Object.keys(this.controlParams.paletteMap).map( (palette) => { return ( <Tooltip text={ this.controlParams .paletteMap[palette] .tooltip } > <Button isTertiary className={ (palette === this.state.value.active ? "active-palette " : "") + palette } onClick={() => { this.handleChangePalette( palette ); }} > { this.controlParams .paletteMap[palette] .tooltip } </Button> </Tooltip> ); } )} </ButtonGroup> </div> )} </div> <div ref={this.anchorNodeRef} className="kadence-palette-colors" > {Object.keys(paletteGroupData).map((group, index) => { return ( <div className="kadence-palette-group"> <div className="kadence-palette-group-name"> {paletteGroupData[group].name} </div> <div className="kadence-palette-group-colors"> {paletteGroupData[group].colors.map( (item, colorIndex) => { const paletteIndex = item.match(/\d+$/)?.[0] - 1; return ( <ColorControl key={ item + this.state.value .active + this.state.fresh } presetColors={ this.state.colorPalette } color={ undefined !== this.state.value[ this.state.value .active ][paletteIndex] && this.state.value[ this.state.value .active ][paletteIndex].color ? this.state.value[ this.state .value .active ][paletteIndex] .color : "" } isPalette={""} usePalette={false} paletteName={item} className={"kt-" + item} tooltip={ undefined !== this.controlParams .colors[item] .tooltip ? this.controlParams .colors[ item ].tooltip : "" } onChangeComplete={( color, isPalette ) => this.handleChangeComplete( color, isPalette, item, paletteIndex ) } controlRef={ this.anchorNodeRef } /> ); } )} </div> </div> ); })} </div> <div className={"kadence-palette-import-wrap"}> <Button className={"kadence-palette-import"} onClick={() => { this.state.isVisible ? toggleClose() : toggleVisible(); }} > <Dashicon icon="portfolio" /> </Button> {this.state.isVisible && ( <Popover position="bottom right" inline={true} className="kadence-palette-popover-copy-paste kadence-customizer-popover" onClose={toggleClose} > <TabPanel className="kadence-palette-popover-tabs" activeClass="active-tab" initialTabName={"import"} tabs={[ { name: "import", title: __("Select Palette", "kadence"), className: "kadence-color-presets", }, { name: "custom", title: __("Export/Import", "kadence"), className: "kadence-export-import", }, ]} > {(tab) => { let tabout; if (tab.name) { if ("import" === tab.name) { tabout = ( <Fragment> {Object.keys( presetPalettes ).map((item, index) => { return ( <Button className={ "kadence-palette-item" } style={{ height: "100%", width: "100%", }} onClick={() => this.handlePresetImport( item ) } tabIndex={0} > {Object.keys( presetPalettes[ item ] ).map( ( color, subIndex ) => { return ( <div key={ subIndex } style={{ width: 26, height: 26, marginBottom: 0, transform: "scale(1)", transition: "100ms transform ease", }} className="kadence-swatche-item-wrap" > <span className={ "kadence-swatch-item" } style={{ height: "100%", display: "block", width: "100%", border: "1px solid rgb(218, 218, 218)", borderRadius: "50%", color: `${presetPalettes[item][color].color}`, boxShadow: `inset 0 0 0 ${ 30 / 2 }px`, transition: "100ms box-shadow ease", }} ></span> </div> ); } )} </Button> ); })} </Fragment> ); } else { tabout = ( <Fragment> <h2> {__( "Export", "kadence" )} </h2> <TextareaControl label="" help={__( "Copy export data to use in another site.", "kadence" )} value={ currentPaletteJson } onChange={false} /> <h2> {__( "Import", "kadence" )} </h2> <TextareaControl label={__( "Import color set from text data.", "kadence" )} help={__( "Follow format from export above.", "kadence" )} value={ this.state .textImport } onChange={(text) => this.setState({ textImport: text, }) } /> {this.state.importError && ( <p style={{ color: "red", }} > {__( "Error with Import data", "kadence" )} </p> )} <Button className={ "kadence-import-button" } isPrimary disabled={ this.state .textImport ? false : true } onClick={() => this.handleTextImport() } > {__( "Import", "kadence" )} </Button> </Fragment> ); } } return <div>{tabout}</div>; }} </TabPanel> </Popover> )} </div> {this.props.control.params.description && ( <span className="customize-control-description"> <a href="https://kadence-theme.com/docs/how-to-use-the-kadence-color-palette/" target="_blank" > {this.props.control.params.description} </a> </span> )} </div> ); } updateValues(value) { this.setState({ value: value }); this.props.control.setting.set(JSON.stringify(value)); kadenceCustomizerControlsData.palette = JSON.stringify(value); } } ColorComponent.propTypes = { control: PropTypes.object.isRequired, }; export default ColorComponent; react/src/palette/control.js 0000644 00000000707 15151531433 0012112 0 ustar 00 import { createRoot } from '@wordpress/element'; import PaletteComponent from './palette-component.js'; export const PaletteControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <PaletteComponent control={control}/> ); // ReactDOM.render( // <PaletteComponent control={control}/>, // control.container[0] // ); } } ); react/src/editor/editor-component.js 0000644 00000005335 15151531433 0013552 0 ustar 00 import PropTypes from 'prop-types'; import debounce from 'lodash/debounce'; import { __ } from '@wordpress/i18n'; const { Component } = wp.element; class EditorComponent extends Component { constructor(props) { super( props ); this.updateValues = this.updateValues.bind( this ); this.triggerChangeIfDirty = this.triggerChangeIfDirty.bind( this ); this.onInit = this.onInit.bind( this ); let value = props.control.setting.get(); this.state = { value, editor:{}, restoreTextMode: false, }; let defaultParams = { id: 'header_html', toolbar1: 'bold,italic,bullist,numlist,link', toolbar2: '', }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; this.defaultValue = props.control.params.default || ''; } componentDidMount() { if ( window.tinymce.get( this.controlParams.id ) ) { this.setState( { restoreTextMode: window.tinymce.get( this.controlParams.id ).isHidden() } ); window.wp.oldEditor.remove( this.controlParams.id ); } window.wp.oldEditor.initialize( this.controlParams.id, { tinymce: { wpautop: true, toolbar1: this.controlParams.toolbar1, toolbar2: this.controlParams.toolbar2, }, quicktags: true, mediaButtons: true, } ); const editor = window.tinymce.get( this.controlParams.id ); if ( editor.initialized ) { this.onInit(); } else { editor.on( 'init', this.onInit ); } } onInit() { const editor = window.tinymce.get( this.controlParams.id ); if ( this.state.restoreTextMode ) { window.switchEditors.go( this.controlParams.id, 'html' ); } editor.on( 'NodeChange', debounce( this.triggerChangeIfDirty, 250 ) ); this.setState( { editor: editor } ); } triggerChangeIfDirty() { this.updateValues( window.wp.oldEditor.getContent( this.controlParams.id ) ); } render() { return ( <div className="kadence-control-field kadence-editor-control"> { this.props.control.params.label && ( <span className="customize-control-title">{ this.props.control.params.label }</span> ) } <textarea className="kadence-control-tinymce-editor wp-editor-area" id={ this.controlParams.id } value={ this.state.value } onChange={ ( { target: { value } } ) => { this.updateValues(value); } } /> { this.props.control.params.description && ( <span className="customize-control-description">{ this.props.control.params.description }</span> ) } </div> ); } updateValues(value) { this.setState( { value: value } ); this.props.control.setting.set( value ); } } EditorComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired, }; export default EditorComponent; react/src/editor/control.js 0000644 00000000774 15151531433 0011746 0 ustar 00 import { createRoot } from '@wordpress/element'; import EditorComponent from './editor-component.js'; export const EditorControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <EditorComponent control={control} customizer={ wp.customize } /> ); // ReactDOM.render( // <EditorComponent control={control} customizer={ wp.customize } />, // control.container[0] // ); } } ); react/src/focus-button/focus-button-component.js 0000644 00000003075 15151531433 0016055 0 ustar 00 /* jshint esversion: 6 */ import PropTypes from 'prop-types'; import classnames from 'classnames'; import ResponsiveControl from '../common/responsive.js'; import Icons from '../common/icons.js'; import { ReactSortable } from "react-sortablejs"; import { __ } from '@wordpress/i18n'; const { ButtonGroup, Dashicon, Tooltip, Button } = wp.components; const { Component, Fragment } = wp.element; class FocusButtonComponent extends Component { constructor() { super( ...arguments ); this.focusPanel = this.focusPanel.bind( this ); let defaultParams = { 'section': '', }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; } focusPanel( section ) { if ( undefined !== this.props.customizer.section( section ) ) { this.props.customizer.section( section ).focus(); } } render() { return ( <div className="kadence-control-field kadence-available-items"> <div className={ 'kadence-builder-item-start' }> <Button className="kadence-builder-item" onClick={ () => this.focusPanel( this.controlParams.section ) } data-section={ this.controlParams.section }> { ( this.props.control.params.label ? this.props.control.params.label : '' ) } <span className="kadence-builder-item-icon" > <Dashicon icon="arrow-right-alt2"/> </span> </Button> </div> </div> ); } } FocusButtonComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired }; export default FocusButtonComponent; react/src/focus-button/control.js 0000644 00000001004 15151531433 0013073 0 ustar 00 import { createRoot } from '@wordpress/element'; import FocusButtonComponent from './focus-button-component'; export const FocusButtonControl = wp.customize.KadenceControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <FocusButtonComponent control={ control } customizer={ wp.customize } /> ); // ReactDOM.render( <FocusButtonComponent control={ control } customizer={ wp.customize } />, control.container[0] ); } } ); react/src/background/gradient-component.js 0000644 00000004044 15151531433 0014706 0 ustar 00 /** * External dependencies */ import { map } from 'lodash'; /** * WordPress dependencies */ import { __, sprintf } from '@wordpress/i18n'; const { useCallback, useMemo } = wp.element; const { BaseControl } = wp.components; /** * Internal dependencies */ import CircularOptionPicker from './circular-option-picker.js'; import CustomGradientPicker from './custom-gradient-picker'; export default function KadenceGradientPicker( { className, gradients, onChange, value, clearable = true, disableCustomGradients = false, activePalette, } ) { const clearGradient = useCallback( () => onChange( undefined ), [ onChange, ] ); const gradientOptions = useMemo( () => { return map( gradients, ( { gradient, name } ) => ( <CircularOptionPicker.Option key={ gradient } value={ gradient } isSelected={ value === gradient } tooltipText={ name || // translators: %s: gradient code e.g: "linear-gradient(90deg, rgba(98,16,153,1) 0%, rgba(172,110,22,1) 100%);". sprintf( __( 'Gradient code: %s' ), gradient ) } style={ { color: 'rgba( 0,0,0,0 )', background: gradient } } onClick={ value === gradient ? clearGradient : () => onChange( gradient ) } aria-label={ name ? // translators: %s: The name of the gradient e.g: "Angular red to blue". sprintf( __( 'Gradient: %s' ), name ) : // translators: %s: gradient code e.g: "linear-gradient(90deg, rgba(98,16,153,1) 0%, rgba(172,110,22,1) 100%);". sprintf( __( 'Gradient code: %s' ), gradient ) } /> ) ); }, [ gradients, value, onChange, clearGradient ] ); return ( <CircularOptionPicker className={ className } options={ gradientOptions } actions={ clearable && ( <CircularOptionPicker.ButtonAction onClick={ clearGradient } > { __( 'Clear' ) } </CircularOptionPicker.ButtonAction> ) } > { ! disableCustomGradients && ( <CustomGradientPicker value={ value } onChange={ onChange } activePalette={ activePalette } /> ) } </CircularOptionPicker> ); } react/src/background/custom-gradient-picker/constants.js 0000644 00000001564 15151531433 0017511 0 ustar 00 export const INSERT_POINT_WIDTH = 23; export const GRADIENT_MARKERS_WIDTH = 18; export const MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_MARKER = ( INSERT_POINT_WIDTH + GRADIENT_MARKERS_WIDTH ) / 2; export const MINIMUM_ABSOLUTE_LEFT_POSITION = 5; export const MINIMUM_DISTANCE_BETWEEN_POINTS = 0; export const MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT = 10; export const KEYBOARD_CONTROL_POINT_VARIATION = MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT; export const MINIMUM_SIGNIFICANT_MOVE = 5; export const DEFAULT_GRADIENT = 'linear-gradient(135deg, rgba(6, 147, 227, 1) 0%, rgb(155, 81, 224) 100%)'; export const COLOR_POPOVER_PROPS = { className: 'components-custom-gradient-picker__color-picker-popover kadence-popover-color', position: 'top', }; export const DEFAULT_LINEAR_GRADIENT_ANGLE = 180; export const HORIZONTAL_GRADIENT_ORIENTATION = { type: 'angular', value: 90, }; react/src/background/custom-gradient-picker/style.native.scss 0000644 00000000136 15151531433 0020453 0 ustar 00 .angleControl { padding-top: (if(variable-exists(grid-unit-20), $grid-unit-20, 20px) / 2); } react/src/background/custom-gradient-picker/index.native.js 0000644 00000005174 15151531433 0020072 0 ustar 00 /** * External dependencies */ import { get, omit } from 'lodash'; /** * WordPress dependencies */ import { PanelBody, RadioControl, RangeControl } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import { useState } from '@wordpress/element'; /** * Internal dependencies */ import { colorsUtils } from '../mobile/color-settings/utils'; import { performLayoutAnimation } from '../mobile/layout-animation'; import { getGradientParsed } from './utils'; import { serializeGradient } from './serializer'; import { DEFAULT_LINEAR_GRADIENT_ANGLE, HORIZONTAL_GRADIENT_ORIENTATION, } from './constants'; import styles from './style.scss'; function CustomGradientPicker( { currentValue, setColor, isGradientColor } ) { const [ gradientOrientation, setGradientOrientation ] = useState( HORIZONTAL_GRADIENT_ORIENTATION ); const { getGradientType, gradients, gradientOptions } = colorsUtils; const { gradientAST } = getGradientParsed( currentValue ); const gradientType = getGradientType( currentValue ); function isLinearGradient( type ) { return type === gradients.linear; } function getGradientColor( type ) { const orientation = get( gradientAST, [ 'orientation' ] ); if ( orientation ) { setGradientOrientation( orientation ); } return serializeGradient( isLinearGradient( type ) ? { ...gradientAST, ...( gradientAST.orientation ? {} : { orientation: gradientOrientation, } ), type, } : { ...omit( gradientAST, [ 'orientation' ] ), type, } ); } function onGradientTypeChange( type ) { const gradientColor = getGradientColor( type ); performLayoutAnimation(); setColor( gradientColor ); } function setGradientAngle( value ) { const gradientColor = serializeGradient( { ...gradientAST, orientation: { type: 'angular', value, }, } ); if ( isGradientColor && gradientColor !== currentValue ) { setColor( gradientColor ); } } function getGradientAngle() { return get( gradientAST, [ 'orientation', 'value' ], DEFAULT_LINEAR_GRADIENT_ANGLE ); } return ( <> <PanelBody title={ __( 'Gradient Type' ) }> <RadioControl selected={ gradientType } options={ gradientOptions } onChange={ onGradientTypeChange } /> </PanelBody> { isLinearGradient( gradientType ) && ( <PanelBody style={ styles.angleControl }> <RangeControl label={ __( 'Angle' ) } minimumValue={ 0 } maximumValue={ 360 } value={ getGradientAngle() } onChange={ setGradientAngle } /> </PanelBody> ) } </> ); } export default CustomGradientPicker; react/src/background/custom-gradient-picker/control-points.js 0000644 00000015407 15151531433 0020470 0 ustar 00 /** * External dependencies */ import classnames from 'classnames'; /** * WordPress dependencies */ const { useRef, Component, useEffect, } = wp.element; import { __, sprintf } from '@wordpress/i18n'; const { useInstanceId, } = wp.compose; import KadenceGradientColorPicker from './edit-color-picker'; /** * Internal dependencies */ const { Button, ColorPicker, Dropdown, VisuallyHidden, KeyboardShortcuts, } = wp.components; import { getGradientWithColorAtIndexChanged, getGradientWithControlPointRemoved, getGradientWithPositionAtIndexChanged, getGradientWithPositionAtIndexDecreased, getGradientWithPositionAtIndexIncreased, getHorizontalRelativeGradientPosition, isControlPointOverlapping, } from './utils'; import { COLOR_POPOVER_PROPS, GRADIENT_MARKERS_WIDTH, MINIMUM_SIGNIFICANT_MOVE, } from './constants'; class ControlPointKeyboardMove extends Component { constructor() { super( ...arguments ); this.increase = this.increase.bind( this ); this.decrease = this.decrease.bind( this ); this.shortcuts = { right: this.increase, left: this.decrease, }; } increase( event ) { // Stop propagation of the key press event to avoid focus moving // to another editor area. event.stopPropagation(); const { gradientIndex, onChange, gradientAST } = this.props; onChange( getGradientWithPositionAtIndexIncreased( gradientAST, gradientIndex ) ); } decrease( event ) { // Stop propagation of the key press event to avoid focus moving // to another editor area. event.stopPropagation(); const { gradientIndex, onChange, gradientAST } = this.props; onChange( getGradientWithPositionAtIndexDecreased( gradientAST, gradientIndex ) ); } render() { const { children } = this.props; return ( <KeyboardShortcuts shortcuts={ this.shortcuts }> { children } </KeyboardShortcuts> ); } } function ControlPointButton( { isOpen, position, color, onChange, gradientIndex, gradientAST, ...additionalProps } ) { const instanceId = useInstanceId( ControlPointButton ); const descriptionId = `components-custom-gradient-picker__control-point-button-description-${ instanceId }`; return ( <ControlPointKeyboardMove onChange={ onChange } gradientIndex={ gradientIndex } gradientAST={ gradientAST } > <Button aria-label={ sprintf( // translators: %1$s: gradient position e.g: 70%, %2$s: gradient color code e.g: rgb(52,121,151). __( 'Gradient control point at position %1$s with color code %2$s.' ), position, color ) } aria-describedby={ descriptionId } aria-haspopup="true" aria-expanded={ isOpen } className={ classnames( 'components-custom-gradient-picker__control-point-button', { 'is-active': isOpen, } ) } style={ { left: position, } } { ...additionalProps } /> <VisuallyHidden id={ descriptionId }> { __( 'Use your left or right arrow keys or drag and drop with the mouse to change the gradient position. Press the button to change the color or remove the control point.' ) } </VisuallyHidden> </ControlPointKeyboardMove> ); } export default function ControlPoints( { gradientPickerDomRef, ignoreMarkerPosition, markerPoints, onChange, gradientAST, activePalette, onStartControlPointChange, onStopControlPointChange, } ) { const controlPointMoveState = useRef(); const onMouseMove = ( event ) => { const relativePosition = getHorizontalRelativeGradientPosition( event.clientX, gradientPickerDomRef.current, GRADIENT_MARKERS_WIDTH ); const { gradientAST: referenceGradientAST, position, significantMoveHappened, } = controlPointMoveState.current; if ( ! significantMoveHappened ) { const initialPosition = referenceGradientAST.colorStops[ position ].length.value; if ( Math.abs( initialPosition - relativePosition ) >= MINIMUM_SIGNIFICANT_MOVE ) { controlPointMoveState.current.significantMoveHappened = true; } } if ( ! isControlPointOverlapping( referenceGradientAST, relativePosition, position ) ) { onChange( getGradientWithPositionAtIndexChanged( referenceGradientAST, position, relativePosition ) ); } }; const cleanEventListeners = () => { if ( window && window.removeEventListener && controlPointMoveState.current && controlPointMoveState.current.listenersActivated ) { window.removeEventListener( 'mousemove', onMouseMove ); window.removeEventListener( 'mouseup', cleanEventListeners ); onStopControlPointChange(); controlPointMoveState.current.listenersActivated = false; } }; useEffect( () => { return () => { cleanEventListeners(); }; }, [] ); return markerPoints.map( ( point, index ) => point && ignoreMarkerPosition !== point.positionValue && ( <Dropdown key={ index } onClose={ onStopControlPointChange } renderToggle={ ( { isOpen, onToggle } ) => ( <ControlPointButton key={ index } onClick={ () => { if ( controlPointMoveState.current && controlPointMoveState.current .significantMoveHappened ) { return; } if ( isOpen ) { onStopControlPointChange(); } else { onStartControlPointChange(); } onToggle(); } } onMouseDown={ () => { if ( window && window.addEventListener ) { controlPointMoveState.current = { gradientAST, position: index, significantMoveHappened: false, listenersActivated: true, }; onStartControlPointChange(); window.addEventListener( 'mousemove', onMouseMove ); window.addEventListener( 'mouseup', cleanEventListeners ); } } } isOpen={ isOpen } position={ point.position } color={ point.color } onChange={ onChange } gradientAST={ gradientAST } gradientIndex={ index } /> ) } renderContent={ ( { onClose } ) => ( <> <KadenceGradientColorPicker color={ point.color } activePalette={ activePalette } onChange={ ( value ) => { onChange( getGradientWithColorAtIndexChanged( gradientAST, index, value ) ); } } /> <Button className="components-custom-gradient-picker__remove-control-point" onClick={ () => { onChange( getGradientWithControlPointRemoved( gradientAST, index ) ); onClose(); } } isLink > { __( 'Remove Control Point' ) } </Button> </> ) } popoverProps={ COLOR_POPOVER_PROPS } /> ) ); } react/src/background/custom-gradient-picker/custom-parser.js 0000644 00000017314 15151531433 0020301 0 ustar 00 // Copyright (c) 2014 Rafael Caricio. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. export default function CustomGradientParser( code ) { var tokens = { linearGradient: /^(\-(webkit|o|ms|moz)\-)?(linear\-gradient)/i, repeatingLinearGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-linear\-gradient)/i, radialGradient: /^(\-(webkit|o|ms|moz)\-)?(radial\-gradient)/i, repeatingRadialGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-radial\-gradient)/i, sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|left|right|top|bottom)/i, extentKeywords: /^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/, positionKeywords: /^(left|center|right|top|bottom)/i, pixelValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/, percentageValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/, emValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/, angleValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/, startCall: /^\(/, endCall: /^\)/, comma: /^,/, hexColor: /^\#([0-9a-fA-F]+)/, literalColor: /^([a-zA-Z]+)/, varColor: /^var([0-9a-zA-Z\\)\\(-]+)/, rgbColor: /^rgb/i, rgbaColor: /^rgba/i, number: /^(([0-9]*\.[0-9]+)|([0-9]+\.?))/ }; var input = code.toString(); function error(msg) { var err = new Error(input + ': ' + msg); err.source = input; throw err; } function getAST() { var ast = matchListDefinitions(); if (input.length > 0) { error('Invalid input not EOF'); } return ast; } function matchListDefinitions() { return matchListing(matchDefinition); } function matchDefinition() { return matchGradient( 'linear-gradient', tokens.linearGradient, matchLinearOrientation) || matchGradient( 'repeating-linear-gradient', tokens.repeatingLinearGradient, matchLinearOrientation) || matchGradient( 'radial-gradient', tokens.radialGradient, matchListRadialOrientations) || matchGradient( 'repeating-radial-gradient', tokens.repeatingRadialGradient, matchListRadialOrientations); } function matchGradient(gradientType, pattern, orientationMatcher) { return matchCall(pattern, function(captures) { var orientation = orientationMatcher(); if (orientation) { if (!scan(tokens.comma)) { error('Missing comma before color stops'); } } return { type: gradientType, orientation: orientation, colorStops: matchListing(matchColorStop) }; }); } function matchCall(pattern, callback) { var captures = scan(pattern); if (captures) { if (!scan(tokens.startCall)) { error('Missing ('); } var result = callback(captures); if (!scan(tokens.endCall)) { error('Missing )'); } return result; } } function matchLinearOrientation() { return matchSideOrCorner() || matchAngle(); } function matchSideOrCorner() { return match('directional', tokens.sideOrCorner, 1); } function matchAngle() { return match('angular', tokens.angleValue, 1); } function matchListRadialOrientations() { var radialOrientations, radialOrientation = matchRadialOrientation(), lookaheadCache; if (radialOrientation) { radialOrientations = []; radialOrientations.push(radialOrientation); lookaheadCache = input; if (scan(tokens.comma)) { radialOrientation = matchRadialOrientation(); if (radialOrientation) { radialOrientations.push(radialOrientation); } else { input = lookaheadCache; } } } return radialOrientations; } function matchRadialOrientation() { var radialType = matchCircle() || matchEllipse(); if (radialType) { radialType.at = matchAtPosition(); } else { var extent = matchExtentKeyword(); if (extent) { radialType = extent; var positionAt = matchAtPosition(); if (positionAt) { radialType.at = positionAt; } } else { var defaultPosition = matchPositioning(); if (defaultPosition) { radialType = { type: 'default-radial', at: defaultPosition }; } } } return radialType; } function matchCircle() { var circle = match('shape', /^(circle)/i, 0); if (circle) { circle.style = matchLength() || matchExtentKeyword(); } return circle; } function matchEllipse() { var ellipse = match('shape', /^(ellipse)/i, 0); if (ellipse) { ellipse.style = matchDistance() || matchExtentKeyword(); } return ellipse; } function matchExtentKeyword() { return match('extent-keyword', tokens.extentKeywords, 1); } function matchAtPosition() { if (match('position', /^at/, 0)) { var positioning = matchPositioning(); if (!positioning) { error('Missing positioning value'); } return positioning; } } function matchPositioning() { var location = matchCoordinates(); if (location.x || location.y) { return { type: 'position', value: location }; } } function matchCoordinates() { return { x: matchDistance(), y: matchDistance() }; } function matchListing(matcher) { var captures = matcher(), result = []; if (captures) { result.push(captures); while (scan(tokens.comma)) { captures = matcher(); if (captures) { result.push(captures); } else { error('One extra comma'); } } } return result; } function matchColorStop() { var color = matchColor(); if (!color) { error('Expected color definition'); } color.length = matchDistance(); return color; } function matchColor() { return matchHexColor() || matchVarColor() || matchRGBAColor() || matchRGBColor() || matchLiteralColor(); } function matchLiteralColor() { return match('literal', tokens.literalColor, 0); } function matchVarColor() { return match('literal', tokens.varColor, 0); } function matchHexColor() { return match('hex', tokens.hexColor, 1); } function matchRGBColor() { return matchCall(tokens.rgbColor, function() { return { type: 'rgb', value: matchListing(matchNumber) }; }); } function matchRGBAColor() { return matchCall(tokens.rgbaColor, function() { return { type: 'rgba', value: matchListing(matchNumber) }; }); } function matchNumber() { return scan(tokens.number)[1]; } function matchDistance() { return match('%', tokens.percentageValue, 1) || matchPositionKeyword() || matchLength(); } function matchPositionKeyword() { return match('position-keyword', tokens.positionKeywords, 1); } function matchLength() { return match('px', tokens.pixelValue, 1) || match('em', tokens.emValue, 1); } function match(type, pattern, captureIndex) { var captures = scan(pattern); if (captures) { return { type: type, value: captures[captureIndex] }; } } function scan(regexp) { var captures, blankCaptures; blankCaptures = /^[\n\r\t\s]+/.exec(input); if (blankCaptures) { consume(blankCaptures[0].length); } captures = regexp.exec(input); if (captures) { consume(captures[0].length); } return captures; } function consume(size) { input = input.substr(size); } return getAST(); } react/src/background/custom-gradient-picker/style.scss 0000644 00000005075 15151531433 0017175 0 ustar 00 @use 'sass:meta'; $components-custom-gradient-picker__padding: 3px; // 24px container, 18px handles inside, that leaves 6px padding, half of which is 3. .components-custom-gradient-picker { margin-top: (if(meta.variable-exists(grid-unit-10), $grid-unit-10, 10px)); } .components-custom-gradient-picker__gradient-bar:not(.has-gradient) { opacity: 0.4; } $button-size-small: 24px; $white: #fff; .components-custom-gradient-picker__gradient-bar { width: 100%; height: $button-size-small; border-radius: $button-size-small; margin-bottom: (if(meta.variable-exists(grid-unit-10), $grid-unit-10, 10px)); padding-left: $components-custom-gradient-picker__padding; padding-right: $button-size-small - $components-custom-gradient-picker__padding; .components-custom-gradient-picker__markers-container { position: relative; } .components-custom-gradient-picker__insert-point { border-radius: 50%; background: $white; padding: 2px; min-width: $button-size-small; width: $button-size-small; height: $button-size-small; position: relative; svg { height: 100%; width: 100%; } } .components-custom-gradient-picker__control-point-button { border: 2px solid $white; border-radius: 50%; height: 18px; padding: 0; position: absolute; width: 18px; top: $components-custom-gradient-picker__padding; &.is-active { background: #fafafa; color: #23282d; border-color: #999; box-shadow: 0 0 0 1px $white, 0 0 0 3px var(--wp-admin-theme-color); } } } .components-custom-gradient-picker__color-picker-popover .components-custom-gradient-picker__remove-control-point { margin-left: auto; margin-right: auto; display: block; margin-bottom: 8px; } .components-custom-gradient-picker__inserter { width: 100%; } .components-custom-gradient-picker__liner-gradient-indicator { display: inline-block; flex: 0 auto; width: 20px; height: 20px; } .components-custom-gradient-picker__ui-line { display: flex; justify-content: space-between; } .components-custom-gradient-picker .components-custom-gradient-picker__ui-line { .components-base-control.components-angle-picker, .components-base-control.components-custom-gradient-picker__type-picker { margin-bottom: 0; } } .components-custom-gradient-picker .components-custom-gradient-picker__toolbar { border: none; // Work-around to target the inner button containers rendered by <ToolbarGroup /> > div + div { margin-left: 1px; } button { &.is-pressed { $dark-gray-200: #999; > svg { background: $white; border: 1px solid $dark-gray-200; border-radius: 2px; } } } } react/src/background/custom-gradient-picker/toolbar-group.js 0000644 00000005463 15151531433 0020273 0 ustar 00 /** * External dependencies */ import classnames from 'classnames'; import { flatMap } from 'lodash'; /** * WordPress dependencies */ import { useContext } from '@wordpress/element'; /** * Internal dependencies */ import ToolbarButton from '../toolbar-button'; import ToolbarGroupCollapsed from './toolbar-group-collapsed'; import ToolbarContext from '../toolbar-context'; const ToolbarGroupContainer = ( { className, children, ...props } ) => ( <div className={ className } { ...props }> { children } </div> ); /** * Renders a collapsible group of controls * * The `controls` prop accepts an array of sets. A set is an array of controls. * Controls have the following shape: * * ``` * { * icon: string, * title: string, * subscript: string, * onClick: Function, * isActive: boolean, * isDisabled: boolean * } * ``` * * For convenience it is also possible to pass only an array of controls. It is * then assumed this is the only set. * * Either `controls` or `children` is required, otherwise this components * renders nothing. * * @param {Object} props Component props. * @param {Array} [props.controls] The controls to render in this toolbar. * @param {WPElement} [props.children] Any other things to render inside the toolbar besides the controls. * @param {string} [props.className] Class to set on the container div. * @param {boolean} [props.isCollapsed] Turns ToolbarGroup into a dropdown menu. * @param {string} [props.title] ARIA label for dropdown menu if is collapsed. */ function ToolbarGroup( { controls = [], children, className, isCollapsed, title, ...props } ) { // It'll contain state if `ToolbarGroup` is being used within // `<Toolbar accessibilityLabel="label" />` const accessibleToolbarState = useContext( ToolbarContext ); if ( ( ! controls || ! controls.length ) && ! children ) { return null; } const finalClassName = classnames( // Unfortunately, there's legacy code referencing to `.components-toolbar` // So we can't get rid of it accessibleToolbarState ? 'components-toolbar-group' : 'components-toolbar', className ); // Normalize controls to nested array of objects (sets of controls) let controlSets = controls; if ( ! Array.isArray( controlSets[ 0 ] ) ) { controlSets = [ controlSets ]; } return ( <ToolbarGroupContainer className={ finalClassName } { ...props }> { flatMap( controlSets, ( controlSet, indexOfSet ) => controlSet.map( ( control, indexOfControl ) => ( <ToolbarButton key={ [ indexOfSet, indexOfControl ].join() } containerClassName={ indexOfSet > 0 && indexOfControl === 0 ? 'has-left-divider' : null } { ...control } /> ) ) ) } { children } </ToolbarGroupContainer> ); } export default ToolbarGroup; react/src/background/custom-gradient-picker/serializer.js 0000644 00000002517 15151531433 0017645 0 ustar 00 /** * External dependencies */ import { compact, get } from 'lodash'; export function serializeGradientColor( { type, value } ) { if ( type === 'literal' || type === 'hex' ) { return value; } return `${ type }(${ value.join( ',' ) })`; } export function serializeGradientPosition( { type, value } ) { return `${ value }${ type }`; } export function serializeGradientColorStop( { type, value, length } ) { return `${ serializeGradientColor( { type, value, } ) } ${ serializeGradientPosition( length ) }`; } export function serializeGradientOrientation( orientation ) { if ( ! orientation || orientation.type !== 'angular' ) { return; } return `${ orientation.value }deg`; } export function serializeGradient( { type, orientation, colorStops } ) { const serializedOrientation = serializeGradientOrientation( orientation ); //console.log( colorStops ); const serializedColorStops = colorStops .sort( ( colorStop1, colorStop2 ) => { return ( get( colorStop1, [ 'length', 'value' ], 0 ) - get( colorStop2, [ 'length', 'value' ], 0 ) ); } ) .map( serializeGradientColorStop ); // console.log(`${ type }(${ compact( [ // serializedOrientation, // ...serializedColorStops, // ] ).join( ',' ) })`); return `${ type }(${ compact( [ serializedOrientation, ...serializedColorStops, ] ).join( ',' ) })`; } react/src/background/custom-gradient-picker/edit-color-picker.js 0000644 00000003672 15151531433 0021013 0 ustar 00 /* jshint esversion: 6 */ const { Component, Fragment } = wp.element; import { isString } from "lodash"; import KadenceColorPicker from "../../common/color-picker"; import SwatchesControl from "../../common/swatches"; class KadenceGradientColorPicker extends Component { constructor() { super(...arguments); this.state = { color: this.props.color ? this.props.color : "", }; } render() { const getColorValue = () => { let color; const paletteIndex = this.state.color?.match(/\d+$/)?.[0] - 1; if ( undefined !== this.state.color && "" !== this.state.color && isString(this.state.color) && this.state.color.includes("palette") && this.props.activePalette && this.props.activePalette[paletteIndex] ) { color = this.props.activePalette[paletteIndex]?.color; } else { color = this.state.color; } return color; }; return ( <div className="kadence-background-color-wrap"> <KadenceColorPicker color={getColorValue()} onChangeComplete={(color) => { let rgb = { type: "rgba", value: "", }; if (undefined !== color.rgb) { this.setState({ color: color.rgb }); rgb.value = color.rgb; } else { this.setState({ color: color.hex }); rgb.type = "literal"; rgb.value = color.hex; } this.props.onChange(rgb); }} /> <SwatchesControl colors={this.props.activePalette} isPalette={ undefined !== this.state.color && "" !== this.state.color && isString(this.state.color) && this.state.color.includes("palette") ? this.state.color : "" } onClick={(color, palette) => { this.setState({ color: "var(--global-" + palette + ")", }); let rgb = { type: "literal", value: "var(--global-" + palette + ")", }; this.props.onChange(rgb); }} /> </div> ); } } export default KadenceGradientColorPicker; react/src/background/custom-gradient-picker/icons.js 0000644 00000002670 15151531433 0016607 0 ustar 00 /** * WordPress dependencies */ import { withInstanceId } from '@wordpress/compose'; import { Circle, LinearGradient, Path, RadialGradient, Stop, SVG, } from '@wordpress/primitives'; /** * Internal dependencies */ export const LinearGradientIcon = withInstanceId( ( { instanceId } ) => { const linerGradientId = `linear-gradient-${ instanceId }`; return ( <SVG fill="none" height="20" viewBox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg" > <LinearGradient id={ linerGradientId } gradientUnits="userSpaceOnUse" x1="10" x2="10" y1="1" y2="19" > <Stop offset="0" stopColor="#000000" /> <Stop offset="1" stopColor="#ffffff" /> </LinearGradient> <Path d="m1 1h18v18h-18z" fill={ `url(#${ linerGradientId })` } /> </SVG> ); } ); export const RadialGradientIcon = withInstanceId( ( { instanceId } ) => { const radialGradientId = `radial-gradient-${ instanceId }`; return ( <SVG fill="none" height="20" viewBox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg" > <RadialGradient id={ radialGradientId } cx="0" cy="0" gradientTransform="matrix(0 9 -9 0 10 10)" gradientUnits="userSpaceOnUse" r="1" > <Stop offset="0" stopColor="#000000" /> <Stop offset="1" stopColor="#ffffff" /> </RadialGradient> <Circle cx="10" cy="10" fill={ `url(#${ radialGradientId })` } r="9" /> </SVG> ); } ); react/src/background/custom-gradient-picker/color-picker.js 0000644 00000005574 15151531433 0020073 0 ustar 00 /* jshint esversion: 6 */ const { Component, Fragment } = wp.element; import { isString } from "lodash"; import KadenceColorPicker from "../../common/color-picker"; import SwatchesControl from "../../common/swatches"; import { getGradientWithColorAtPositionChanged, getGradientWithColorStopAdded, } from "./utils"; class KadenceGradientColorPicker extends Component { constructor() { super(...arguments); this.state = { color: this.props.color ? this.props.color : "", alreadyInsertedPoint: false, }; } render() { const getColorValue = () => { let color; const paletteIndex = this.state.color?.match(/\d+$/)?.[0] - 1; if ( undefined !== this.state.color && "" !== this.state.color && null !== this.state.color && isString(this.state.color) && this.state.color.includes("palette") ) { color = this.props.activePalette[paletteIndex]?.color; } else { color = this.state.color; } return color; }; return ( <div className="kadence-background-color-wrap"> <KadenceColorPicker color={getColorValue()} onChangeComplete={(color) => { let rgb = { type: "rgba", value: "", }; if (undefined !== color.rgb) { this.setState({ color: color.rgb }); rgb.value = color.rgb; } else { this.setState({ color: color.hex }); rgb.type = "literal"; rgb.value = color.hex; } //console.log( rgb ); let newGradient; if (this.state.alreadyInsertedPoint) { newGradient = getGradientWithColorAtPositionChanged( this.props.gradientAST, this.props.insertPosition, rgb ); } else { newGradient = getGradientWithColorStopAdded( this.props.gradientAST, this.props.insertPosition, rgb ); this.setState({ alreadyInsertedPoint: true }); } this.props.onChange(newGradient); }} /> <SwatchesControl colors={this.props.activePalette} isPalette={ undefined !== this.state.color && "" !== this.state.color && isString(this.state.color) && this.state.color.includes("palette") ? this.state.color : "" } onClick={(color, palette) => { this.setState({ color: palette }); let rgb = { type: "literal", value: "var(--global-" + palette + ")", }; let newGradient; if (this.state.alreadyInsertedPoint) { newGradient = getGradientWithColorAtPositionChanged( this.props.gradientAST, this.props.insertPosition, rgb ); } else { newGradient = getGradientWithColorStopAdded( this.props.gradientAST, this.props.insertPosition, rgb ); this.setState({ alreadyInsertedPoint: true }); } this.props.onChange(newGradient); }} /> </div> ); } } export default KadenceGradientColorPicker; react/src/background/custom-gradient-picker/utils.js 0000644 00000015526 15151531433 0016640 0 ustar 00 /** * External dependencies */ import { findIndex, map, some } from 'lodash'; import gradientParser from 'gradient-parser'; import CustomGradientParser from './custom-parser'; /** * Internal dependencies */ import { DEFAULT_GRADIENT, INSERT_POINT_WIDTH, MINIMUM_ABSOLUTE_LEFT_POSITION, MINIMUM_DISTANCE_BETWEEN_POINTS, KEYBOARD_CONTROL_POINT_VARIATION, HORIZONTAL_GRADIENT_ORIENTATION, } from './constants'; import { serializeGradientColor, serializeGradientPosition, serializeGradient, } from './serializer'; function tinyColorRgbToGradientColorStop( { type, value } ) { //console.log( type ); //console.log( value ); if ( type === 'literal' ) { return { type: 'literal', value: value, }; } else if ( type === 'rgb' ) { return { type: 'rgb', value: [ value.r, value.g, value.b ], }; } return { type: 'rgba', value: [ value.r, value.g, value.b, value.a ], }; } export function getGradientWithColorStopAdded( gradientAST, relativePosition, rgbaColor ) { const colorStop = tinyColorRgbToGradientColorStop( rgbaColor ); colorStop.length = { type: '%', value: relativePosition, }; return { ...gradientAST, colorStops: [ ...gradientAST.colorStops, colorStop ], }; } export function getGradientWithPositionAtIndexChanged( gradientAST, index, relativePosition ) { return { ...gradientAST, colorStops: gradientAST.colorStops.map( ( colorStop, colorStopIndex ) => { if ( colorStopIndex !== index ) { return colorStop; } return { ...colorStop, length: { ...colorStop.length, value: relativePosition, }, }; } ), }; } export function isControlPointOverlapping( gradientAST, position, initialIndex ) { const initialPosition = parseInt( gradientAST.colorStops[ initialIndex ].length.value ); const minPosition = Math.min( initialPosition, position ); const maxPosition = Math.max( initialPosition, position ); return some( gradientAST.colorStops, ( { length }, index ) => { const itemPosition = parseInt( length.value ); return ( index !== initialIndex && ( Math.abs( itemPosition - position ) < MINIMUM_DISTANCE_BETWEEN_POINTS || ( minPosition < itemPosition && itemPosition < maxPosition ) ) ); } ); } function getGradientWithPositionAtIndexSummed( gradientAST, index, valueToSum ) { const currentPosition = gradientAST.colorStops[ index ].length.value; const newPosition = Math.max( 0, Math.min( 100, parseInt( currentPosition ) + valueToSum ) ); if ( isControlPointOverlapping( gradientAST, newPosition, index ) ) { return gradientAST; } return getGradientWithPositionAtIndexChanged( gradientAST, index, newPosition ); } export function getGradientWithPositionAtIndexIncreased( gradientAST, index ) { return getGradientWithPositionAtIndexSummed( gradientAST, index, KEYBOARD_CONTROL_POINT_VARIATION ); } export function getGradientWithPositionAtIndexDecreased( gradientAST, index ) { return getGradientWithPositionAtIndexSummed( gradientAST, index, -KEYBOARD_CONTROL_POINT_VARIATION ); } export function getGradientWithColorAtIndexChanged( gradientAST, index, rgbaColor ) { return { ...gradientAST, colorStops: gradientAST.colorStops.map( ( colorStop, colorStopIndex ) => { if ( colorStopIndex !== index ) { return colorStop; } return { ...colorStop, ...tinyColorRgbToGradientColorStop( rgbaColor ), }; } ), }; } export function getGradientWithColorAtPositionChanged( gradientAST, relativePositionValue, rgbaColor ) { const index = findIndex( gradientAST.colorStops, ( colorStop ) => { return ( colorStop && colorStop.length && colorStop.length.type === '%' && colorStop.length.value === relativePositionValue.toString() ); } ); return getGradientWithColorAtIndexChanged( gradientAST, index, rgbaColor ); } export function getGradientWithControlPointRemoved( gradientAST, index ) { return { ...gradientAST, colorStops: gradientAST.colorStops.filter( ( elem, elemIndex ) => { return elemIndex !== index; } ), }; } export function getHorizontalRelativeGradientPosition( mouseXCoordinate, containerElement, positionedElementWidth ) { if ( ! containerElement ) { return; } const { x, width } = containerElement.getBoundingClientRect(); const absolutePositionValue = mouseXCoordinate - x - MINIMUM_ABSOLUTE_LEFT_POSITION - positionedElementWidth / 2; const availableWidth = width - MINIMUM_ABSOLUTE_LEFT_POSITION - INSERT_POINT_WIDTH; return Math.round( Math.min( Math.max( ( absolutePositionValue * 100 ) / availableWidth, 0 ), 100 ) ); } /** * Returns the marker points from a gradient AST. * * @param {Object} gradientAST An object representing the gradient AST. * * @return {Array.<{color: string, position: string, positionValue: number}>} * An array of markerPoint objects. * color: A string with the color code ready to be used in css style e.g: "rgba( 1, 2 , 3, 0.5)". * position: A string with the position ready to be used in css style e.g: "70%". * positionValue: A number with the relative position value e.g: 70. */ export function getMarkerPoints( gradientAST ) { if ( ! gradientAST ) { return []; } return map( gradientAST.colorStops, ( colorStop ) => { if ( ! colorStop || ! colorStop.length || colorStop.length.type !== '%' ) { return null; } return { color: serializeGradientColor( colorStop ), position: serializeGradientPosition( colorStop.length ), positionValue: parseInt( colorStop.length.value ), }; } ); } export function getLinearGradientRepresentationOfARadial( gradientAST ) { return serializeGradient( { type: 'linear-gradient', orientation: HORIZONTAL_GRADIENT_ORIENTATION, colorStops: gradientAST.colorStops, } ); } const DIRECTIONAL_ORIENTATION_ANGLE_MAP = { top: 0, 'top right': 45, 'right top': 45, right: 90, 'right bottom': 135, 'bottom right': 135, bottom: 180, 'bottom left': 225, 'left bottom': 225, left: 270, 'top left': 315, 'left top': 315, }; export function getGradientParsed( value ) { let hasGradient = !! value; // gradientAST will contain the gradient AST as parsed by gradient-parser npm module. // More information of its structure available at https://www.npmjs.com/package/gradient-parser#ast. let gradientAST; let gradientValue; try { gradientAST = CustomGradientParser( value || DEFAULT_GRADIENT )[ 0 ]; gradientValue = value || DEFAULT_GRADIENT; } catch ( error ) { hasGradient = false; gradientAST = CustomGradientParser( DEFAULT_GRADIENT )[ 0 ]; gradientValue = DEFAULT_GRADIENT; } if ( gradientAST.orientation && gradientAST.orientation.type === 'directional' ) { gradientAST.orientation.type = 'angular'; gradientAST.orientation.value = DIRECTIONAL_ORIENTATION_ANGLE_MAP[ gradientAST.orientation.value ].toString(); } return { hasGradient, gradientAST, gradientValue, }; } react/src/background/custom-gradient-picker/index.js 0000644 00000005574 15151531433 0016611 0 ustar 00 /** * External dependencies */ import { get, omit } from 'lodash'; /** * WordPress dependencies */ import { __ } from '@wordpress/i18n'; /** * Internal dependencies */ import { LinearGradientIcon, RadialGradientIcon } from './icons'; import CustomGradientBar from './custom-gradient-bar'; import { getGradientParsed } from './utils'; import { serializeGradient } from './serializer'; import { DEFAULT_LINEAR_GRADIENT_ANGLE, HORIZONTAL_GRADIENT_ORIENTATION, } from './constants'; const { ToolbarGroup, AnglePickerControl, BaseControl, } = wp.components; const GradientAnglePicker = ( { gradientAST, hasGradient, onChange } ) => { const angle = get( gradientAST, [ 'orientation', 'value' ], DEFAULT_LINEAR_GRADIENT_ANGLE ); const onAngleChange = ( newAngle ) => { onChange( serializeGradient( { ...gradientAST, orientation: { type: 'angular', value: newAngle, }, } ) ); }; return ( <AnglePickerControl value={ hasGradient ? angle : '' } onChange={ onAngleChange } /> ); }; const GradientTypePicker = ( { gradientAST, hasGradient, onChange } ) => { const { type } = gradientAST; const onSetLinearGradient = () => { onChange( serializeGradient( { ...gradientAST, ...( gradientAST.orientation ? {} : { orientation: HORIZONTAL_GRADIENT_ORIENTATION } ), type: 'linear-gradient', } ) ); }; const onSetRadialGradient = () => { onChange( serializeGradient( { ...omit( gradientAST, [ 'orientation' ] ), type: 'radial-gradient', } ) ); }; return ( <BaseControl className="components-custom-gradient-picker__type-picker"> <BaseControl.VisualLabel>{ __( 'Type' ) }</BaseControl.VisualLabel> <ToolbarGroup className="components-custom-gradient-picker__toolbar" controls={ [ { icon: <LinearGradientIcon />, title: __( 'Linear Gradient' ), isActive: hasGradient && type === 'linear-gradient', onClick: onSetLinearGradient, }, { icon: <RadialGradientIcon />, title: __( 'Radial Gradient' ), isActive: hasGradient && type === 'radial-gradient', onClick: onSetRadialGradient, }, ] } /> </BaseControl> ); }; export default function CustomGradientPicker( { value, onChange, activePalette } ) { const { gradientAST, hasGradient } = getGradientParsed( value ); const { type } = gradientAST; return ( <div className="components-custom-gradient-picker"> <CustomGradientBar value={ value } onChange={ onChange } activePalette={ activePalette } /> <div className="components-custom-gradient-picker__ui-line"> <GradientTypePicker gradientAST={ gradientAST } hasGradient={ hasGradient } onChange={ onChange } /> { type === 'linear-gradient' && ( <GradientAnglePicker gradientAST={ gradientAST } hasGradient={ hasGradient } onChange={ onChange } /> ) } </div> </div> ); } react/src/background/custom-gradient-picker/custom-gradient-bar.js 0000644 00000014312 15151531433 0021337 0 ustar 00 /** * External dependencies */ import { some } from 'lodash'; import classnames from 'classnames'; /** * WordPress dependencies */ const { useRef, useReducer, useState } = wp.element; import { plusCircle } from '@wordpress/icons'; /** * Internal dependencies */ import { Button, Dropdown, ColorPicker, } from '@wordpress/components'; import KadenceGradientColorPicker from './color-picker'; import ControlPoints from './control-points'; import { INSERT_POINT_WIDTH, COLOR_POPOVER_PROPS, MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT, } from './constants'; import { serializeGradient } from './serializer'; import { getGradientWithColorAtPositionChanged, getGradientWithColorStopAdded, getHorizontalRelativeGradientPosition, getMarkerPoints, getGradientParsed, getLinearGradientRepresentationOfARadial, } from './utils'; function InsertPoint( { onChange, gradientAST, onOpenInserter, onCloseInserter, insertPosition, activePalette, } ) { const [ alreadyInsertedPoint, setAlreadyInsertedPoint ] = useState( false ); return ( <Dropdown className="components-custom-gradient-picker__inserter" onClose={ () => { onCloseInserter(); } } renderToggle={ ( { isOpen, onToggle } ) => ( <Button aria-expanded={ isOpen } onClick={ () => { if ( isOpen ) { onCloseInserter(); } else { setAlreadyInsertedPoint( false ); onOpenInserter(); } onToggle(); } } className="components-custom-gradient-picker__insert-point" icon={ plusCircle } style={ { left: insertPosition !== null ? `${ insertPosition }%` : undefined, } } /> ) } renderContent={ () => ( <KadenceGradientColorPicker color={''} onChange={ ( value ) => onChange( value ) } activePalette={ activePalette } gradientAST={ gradientAST } insertPosition={ insertPosition } /> ) } popoverProps={ COLOR_POPOVER_PROPS } /> ); } function customGradientBarReducer( state, action ) { switch ( action.type ) { case 'MOVE_INSERTER': if ( state.id === 'IDLE' || state.id === 'MOVING_INSERTER' ) { return { id: 'MOVING_INSERTER', insertPosition: action.insertPosition, }; } break; case 'STOP_INSERTER_MOVE': if ( state.id === 'MOVING_INSERTER' ) { return { id: 'IDLE', }; } break; case 'OPEN_INSERTER': if ( state.id === 'MOVING_INSERTER' ) { return { id: 'INSERTING_CONTROL_POINT', insertPosition: state.insertPosition, }; } break; case 'CLOSE_INSERTER': if ( state.id === 'INSERTING_CONTROL_POINT' ) { return { id: 'IDLE', }; } break; case 'START_CONTROL_CHANGE': if ( state.id === 'IDLE' ) { return { id: 'MOVING_CONTROL_POINT', }; } break; case 'STOP_CONTROL_CHANGE': if ( state.id === 'MOVING_CONTROL_POINT' ) { return { id: 'IDLE', }; } break; } return state; } const customGradientBarReducerInitialState = { id: 'IDLE' }; export default function CustomGradientBar( { value, onChange, activePalette } ) { const { gradientAST, gradientValue, hasGradient } = getGradientParsed( value ); const onGradientStructureChange = ( newGradientStructure ) => { onChange( serializeGradient( newGradientStructure ) ); }; const gradientPickerDomRef = useRef(); const markerPoints = getMarkerPoints( gradientAST ); const [ gradientBarState, gradientBarStateDispatch ] = useReducer( customGradientBarReducer, customGradientBarReducerInitialState ); const onMouseEnterAndMove = ( event ) => { const insertPosition = getHorizontalRelativeGradientPosition( event.clientX, gradientPickerDomRef.current, INSERT_POINT_WIDTH ); // If the insert point is close to an existing control point don't show it. if ( some( markerPoints, ( { positionValue } ) => { return ( Math.abs( insertPosition - positionValue ) < MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_POINT ); } ) ) { if ( gradientBarState.id === 'MOVING_INSERTER' ) { gradientBarStateDispatch( { type: 'STOP_INSERTER_MOVE' } ); } return; } gradientBarStateDispatch( { type: 'MOVE_INSERTER', insertPosition } ); }; const onMouseLeave = () => { gradientBarStateDispatch( { type: 'STOP_INSERTER_MOVE' } ); }; const isMovingInserter = gradientBarState.id === 'MOVING_INSERTER'; const isInsertingControlPoint = gradientBarState.id === 'INSERTING_CONTROL_POINT'; return ( <div ref={ gradientPickerDomRef } className={ classnames( 'components-custom-gradient-picker__gradient-bar', { 'has-gradient': hasGradient } ) } onMouseEnter={ onMouseEnterAndMove } onMouseMove={ onMouseEnterAndMove } // On radial gradients the bar should display a linear gradient. // On radial gradients the bar represents a slice of the gradient from the center until the outside. style={ { background: gradientAST.type === 'radial-gradient' ? getLinearGradientRepresentationOfARadial( gradientAST ) : gradientValue, } } onMouseLeave={ onMouseLeave } > <div className="components-custom-gradient-picker__markers-container"> { ( isMovingInserter || isInsertingControlPoint ) && ( <InsertPoint insertPosition={ gradientBarState.insertPosition } onChange={ onGradientStructureChange } gradientAST={ gradientAST } onOpenInserter={ () => { gradientBarStateDispatch( { type: 'OPEN_INSERTER', } ); } } onCloseInserter={ () => { gradientBarStateDispatch( { type: 'CLOSE_INSERTER', } ); } } activePalette={ activePalette } /> ) } <ControlPoints gradientPickerDomRef={ gradientPickerDomRef } ignoreMarkerPosition={ isInsertingControlPoint ? gradientBarState.insertPosition : undefined } markerPoints={ markerPoints } onChange={ onGradientStructureChange } gradientAST={ gradientAST } onStartControlPointChange={ () => { gradientBarStateDispatch( { type: 'START_CONTROL_CHANGE', } ); } } onStopControlPointChange={ () => { gradientBarStateDispatch( { type: 'STOP_CONTROL_CHANGE', } ); } } activePalette={ activePalette } /> </div> </div> ); } react/src/background/background-component.js 0000644 00000155566 15151531433 0015250 0 ustar 00 import PropTypes from "prop-types"; import { __ } from "@wordpress/i18n"; import { Component, Fragment } from "@wordpress/element"; import { Button, Popover, Dashicon, ButtonGroup, ColorIndicator, FocalPointPicker, Icon, Tooltip, TabPanel, GradientPicker, __experimentalGradientPicker, } from "@wordpress/components"; // const { // MediaUpload, // } = wp.blockEditor; // import { SketchPicker } from 'react-color'; // import ColorControl from '../common/color.js'; import KadenceGradientPicker from "../gradient-control/index.js"; import KadenceColorPicker from "../common/color-picker"; import ResponsiveControl from "../common/responsive"; import SwatchesControl from "../common/swatches"; import Icons from "../common/icons"; class BackgroundComponent extends Component { constructor(props) { super(props); this.onColorChangeComplete = this.onColorChangeComplete.bind(this); this.onGradientChangeComplete = this.onGradientChangeComplete.bind(this); this.updateValues = this.updateValues.bind(this); this.removeValues = this.removeValues.bind(this); this.onColorChangeState = this.onColorChangeState.bind(this); this.saveBackgroundType = this.saveBackgroundType.bind(this); this.preventClose = this.preventClose.bind(this); this.onPositionChange = this.onPositionChange.bind(this); this.onImageRemove = this.onImageRemove.bind(this); this.resetValues = this.resetValues.bind(this); this.preventClose(); let value = this.props.control.setting.get(); let baseDefault = { desktop: { color: "", image: { url: "", size: "cover", repeat: "no-repeat", position: { x: 0.5, y: 0.5, }, attachment: "scroll", }, type: "color", }, }; this.defaultValue = this.props.control.params.default ? { ...baseDefault, ...this.props.control.params.default, } : baseDefault; value = value ? { ...JSON.parse(JSON.stringify(this.defaultValue)), ...value, } : JSON.parse(JSON.stringify(this.defaultValue)); let defaultParams = { responsive: ["mobile", "tablet", "desktop"], repeat: { "no-repeat": { name: __("No Repeat", "kadence"), }, repeat: { name: __("Repeat", "kadence"), }, "repeat-x": { name: __("Repeat-X", "kadence"), }, "repeat-y": { name: __("Repeat-y", "kadence"), }, }, size: { auto: { name: __("Auto", "kadence"), }, cover: { name: __("Cover", "kadence"), }, contain: { name: __("Contain", "kadence"), }, }, attachment: { scroll: { name: __("Scroll", "kadence"), }, fixed: { name: __("Fixed", "kadence"), }, }, attachments: { desktop: {}, tablet: {}, mobile: {}, }, }; this.controlParams = this.props.control.params.input_attrs ? { ...defaultParams, ...this.props.control.params.input_attrs, } : defaultParams; const palette = JSON.parse( this.props.customizer.control("kadence_color_palette").setting.get() ); //console.log( palette ); this.state = { value: value, currentDevice: "desktop", colorPalette: palette, activePalette: palette && palette.active ? palette.active : "palette", isVisible: false, refresh: true, modalCanClose: true, supportGradient: undefined === GradientPicker && undefined === __experimentalGradientPicker ? false : true, }; } onColorChangeState(color, palette, device) { let value = this.state.value; if (undefined === value[device]) { value[device] = {}; } if (undefined === value[device].color) { value[device].color = ""; } if (palette) { value[device].color = palette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value[device].color = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { value[device].color = color.hex; } this.setState({ value: value }); } onGradientChangeComplete(gradient, device) { let value = this.state.value; if (undefined === value[device]) { value[device] = {}; } if (undefined === value[device].gradient) { value[device].gradient = ""; } if (undefined === gradient) { value[device].gradient = ""; } else { value[device].gradient = gradient; } this.updateValues(value); } onColorChangeComplete(color, palette, device) { let value = this.state.value; if (undefined === value[device]) { value[device] = {}; } if (undefined === value[device].color) { value[device].color = ""; } if (palette) { value[device].color = palette; } else if ( undefined !== color.rgb && undefined !== color.rgb.a && 1 !== color.rgb.a ) { value[device].color = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")"; } else { value[device].color = color.hex; } this.updateValues(value); } saveBackgroundType(tab, device) { let value = this.state.value; if (tab) { if (undefined === value[device]) { value[device] = {}; } value[device].type = tab; } this.updateValues(value); } onPositionChange(position, device) { let value = this.state.value; if (position && position.focalPoint) { if (undefined === value[device]) { value[device] = {}; } if (undefined === value[device].image) { value[device].image = {}; } if (undefined === value[device].image.position) { value[device].image.position = {}; } value[device].image.position = position.focalPoint; } this.updateValues(value); } onImageRemove(device) { if ( undefined !== this.props.control.params.attachment && this.props.control.params.attachment && undefined !== this.props.control.params.attachment[device] ) { this.props.control.params.attachment[device] = {}; } let value = this.state.value; if (value[device]) { value[device].image.url = ""; } this.updateValues(value); } render() { const data = this.props.control.params; const toggleVisible = () => { const updateColors = JSON.parse( this.props.customizer .control("kadence_color_palette") .setting.get() ); const active = updateColors && updateColors.active ? updateColors.active : "palette"; this.setState({ colorPalette: updateColors, activePalette: active, }); this.setState({ isVisible: true }); }; const toggleClose = () => { if (this.state.isVisible === true) { this.setState({ isVisible: false }); } }; const maybeToggleClose = (e) => { if (undefined !== this.props.control.frame) { if (this.state.modalCanClose) { if (this.state.isVisible === true) { this.setState({ isVisible: false }); } } } else { if (this.state.isVisible === true) { this.setState({ isVisible: false }); } } }; const dimensions = { desktop: { width: undefined !== this.controlParams.attachments && "object" === typeof this.controlParams.attachments && undefined !== this.controlParams.attachments.desktop && "object" === typeof this.controlParams.attachments.desktop && this.controlParams.attachments.desktop && undefined !== this.controlParams.attachments.desktop.width ? this.controlParams.attachments.desktop.width : 400, height: undefined !== this.controlParams.attachments && "object" === typeof this.controlParams.attachments && undefined !== this.controlParams.attachments.desktop && "object" === typeof this.controlParams.attachments.desktop && this.controlParams.attachments.desktop && undefined !== this.controlParams.attachments.desktop.height ? this.controlParams.attachments.desktop.height : 400, }, tablet: { width: undefined !== this.controlParams.attachments && "object" === typeof this.controlParams.attachments && undefined !== this.controlParams.attachments.tablet && "object" === typeof this.controlParams.attachments.tablet && this.controlParams.attachments.tablet && undefined !== this.controlParams.attachments.tablet.width ? this.controlParams.attachments.tablet.width : 400, height: undefined !== this.controlParams.attachments && "object" === typeof this.controlParams.attachments && undefined !== this.controlParams.attachments.tablet && "object" === typeof this.controlParams.attachments.tablet && this.controlParams.attachments.tablet && undefined !== this.controlParams.attachments.tablet.height ? this.controlParams.attachments.tablet.height : 400, }, mobile: { width: undefined !== this.controlParams.attachments && "object" === typeof this.controlParams.attachments && undefined !== this.controlParams.attachments.mobile && "object" === typeof this.controlParams.attachments.mobile && this.controlParams.attachments.mobile && undefined !== this.controlParams.attachments.mobile.width ? this.controlParams.attachments.mobile.width : 400, height: undefined !== this.controlParams.attachments && "object" === typeof this.controlParams.attachments && undefined !== this.controlParams.attachments.mobile && "object" === typeof this.controlParams.attachments.mobile && this.controlParams.attachments.mobile && undefined !== this.controlParams.attachments.mobile.height ? this.controlParams.attachments.mobile.height : 400, }, }; const getColorValue = (device) => { let color = ""; const devicePaletteIndex = this.state.value[device]?.color?.match(/\d+$/)?.[0] - 1; if (undefined === this.state.value[device]) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].color && this.state.value[largerDevice].color ) { const paletteIndex = this.state.value[largerDevice].color.match( /\d+$/ )?.[0] - 1; if ( this.state.value[largerDevice].color.includes("palette") ) { color = this.state.colorPalette[this.state.activePalette][ paletteIndex ].color; } else { color = this.state.value[largerDevice].color; } } else if ("tablet" === largerDevice) { const paletteIndex = this.state.value["desktop"]?.color?.match(/\d+$/)?.[0] - 1; if ( this.state.value["desktop"].color && this.state.value["desktop"].color.includes("palette") ) { color = this.state.colorPalette[this.state.activePalette][ paletteIndex ].color; } else { color = this.state.value["desktop"].color; } } } else if (undefined === this.state.value[device].color) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].color && this.state.value[largerDevice].color ) { const paletteIndex = this.state.value[largerDevice].color.match( /\d+$/ )?.[0] - 1; if ( this.state.value[largerDevice].color.includes("palette") ) { color = this.state.colorPalette[this.state.activePalette][ paletteIndex ].color; } else { color = this.state.value[largerDevice].color; } } else if ("tablet" === largerDevice) { const paletteIndex = this.state.value["desktop"].color.match(/\d+$/)?.[0] - 1; if ( this.state.value["desktop"].color && this.state.value["desktop"].color.includes("palette") ) { color = this.state.colorPalette[this.state.activePalette][ paletteIndex ].color; } else { color = this.state.value["desktop"].color; } } } else if ( "" !== this.state.value[device].color && null !== this.state.value[device].color && this.state.value[device].color.includes("palette") && this.state.colorPalette[this.state.activePalette] && this.state.colorPalette[this.state.activePalette][ devicePaletteIndex ] ) { color = this.state.colorPalette[this.state.activePalette][ devicePaletteIndex ].color; } else if (null === this.state.value[device].color) { color = ""; } else { color = this.state.value[device].color; } return color; }; const getColorPreviewValue = (device) => { let color = null; if (undefined === this.state.value[device]) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].color && this.state.value[largerDevice].color ) { color = this.state.value[largerDevice].color.includes( "palette" ) ? "var(--global-" + this.state.value[largerDevice].color + ")" : this.state.value[largerDevice].color; } else if ("tablet" === largerDevice) { color = this.state.value["desktop"].color.includes( "palette" ) ? "var(--global-" + this.state.value["desktop"].color + ")" : this.state.value["desktop"].color; } } else if (undefined === this.state.value[device].color) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].color && this.state.value[largerDevice].color ) { color = this.state.value[largerDevice].color.includes( "palette" ) ? "var(--global-" + this.state.value[largerDevice].color + ")" : this.state.value[largerDevice].color; } else if ("tablet" === largerDevice) { color = this.state.value["desktop"].color.includes( "palette" ) ? "var(--global-" + this.state.value["desktop"].color + ")" : this.state.value["desktop"].color; } } else if ("" === this.state.value[device].color) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].color && this.state.value[largerDevice].color ) { color = this.state.value[largerDevice].color.includes( "palette" ) ? "var(--global-" + this.state.value[largerDevice].color + ")" : this.state.value[largerDevice].color; } else if ("tablet" === largerDevice) { color = this.state.value["desktop"].color.includes( "palette" ) ? "var(--global-" + this.state.value["desktop"].color + ")" : this.state.value["desktop"].color; } } else if ( "" !== this.state.value[device].color && null !== this.state.value[device].color && this.state.value[device].color.includes("palette") ) { color = "var(--global-" + this.state.value[device].color + ")"; } else if (null === this.state.value[device].color) { color = ""; } else { color = this.state.value[device].color; } return color; }; const getGradientPreviewValue = (device) => { let gradient; if (undefined === this.state.value[device]) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].gradient && this.state.value[largerDevice].gradient ) { gradient = this.state.value[largerDevice].gradient; } else if ("tablet" === largerDevice) { gradient = this.state.value["desktop"].gradient; } } else if (undefined === this.state.value[device].gradient) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].gradient && this.state.value[largerDevice].gradient ) { gradient = this.state.value[largerDevice].gradient; } else if ("tablet" === largerDevice) { gradient = this.state.value["desktop"].gradient; } } else if ("" === this.state.value[device].gradient) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].gradient && this.state.value[largerDevice].gradient ) { gradient = this.state.value[largerDevice].gradient; } else if ("tablet" === largerDevice) { gradient = this.state.value["desktop"].gradient; } } else { gradient = this.state.value[device].gradient; } return gradient; }; const getRadioClassName = (item, device, control) => { let itemClass; if (undefined === this.state.value[device]) { itemClass = item; } else if (undefined === this.state.value[device].image) { itemClass = item; } else if (undefined === this.state.value[device].image[control]) { itemClass = item; } else if (item === this.state.value[device].image[control]) { itemClass = "active-radio " + item; } else { itemClass = item; } return itemClass; }; const showImagePreview = (device) => { let showImagePreview = false; if (undefined === this.state.value[device]) { showImagePreview = true; if (device === "mobile") { if ( undefined !== this.state.value["tablet"] && undefined !== this.state.value["tablet"].color && "" !== this.state.value["tablet"].color ) { showImagePreview = false; } } } else if (undefined === this.state.value[device].color) { showImagePreview = true; if (device === "mobile") { if ( undefined !== this.state.value["tablet"] && undefined !== this.state.value["tablet"].color && "" !== this.state.value["tablet"].color ) { showImagePreview = false; } } } return showImagePreview; }; const showGradientPreview = (device) => { let showGradientPreview = false; if (undefined === this.state.value[device]) { showGradientPreview = true; if (device === "mobile") { if ( undefined !== this.state.value["tablet"] && undefined !== this.state.value["tablet"].type && "" !== this.state.value["tablet"].type ) { showGradientPreview = false; } } } else if (undefined === this.state.value[device].color) { showGradientPreview = true; if (device === "mobile") { if ( undefined !== this.state.value["tablet"] && undefined !== this.state.value["tablet"].type && "" !== this.state.value["tablet"].type ) { showGradientPreview = false; } } } return showGradientPreview; }; const getImagePreview = (device) => { let imagePreview; if (undefined === this.state.value[device]) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].image && this.state.value[largerDevice].image.url ) { imagePreview = ( <img className="kadence-background-image-preview" src={ undefined !== this.controlParams.attachments && undefined !== this.controlParams.attachments[ largerDevice ] && undefined !== this.controlParams.attachments[largerDevice] .thumbnail ? this.controlParams.attachments[ largerDevice ].thumbnail : this.state.value[largerDevice].image.url } /> ); } else if ( "tablet" === largerDevice && undefined !== this.state.value["desktop"].image && this.state.value["desktop"].image.url ) { imagePreview = ( <img className="kadence-background-image-preview" src={ undefined !== this.controlParams.attachments && undefined !== this.controlParams.attachments["desktop"] && this.controlParams.attachments["desktop"] && undefined !== this.controlParams.attachments["desktop"] .thumbnail ? this.controlParams.attachments["desktop"] .thumbnail : this.state.value["desktop"].image.url } /> ); } } else if (undefined === this.state.value[device].image) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].image && this.state.value[largerDevice].image.url ) { imagePreview = ( <img className="kadence-background-image-preview" src={ undefined !== this.controlParams.attachments && undefined !== this.controlParams.attachments[ largerDevice ] && undefined !== this.controlParams.attachments[largerDevice] .thumbnail ? this.controlParams.attachments[ largerDevice ].thumbnail : this.state.value[largerDevice].image.url } /> ); } else if ( "tablet" === largerDevice && undefined !== this.state.value["desktop"].image && this.state.value["desktop"].image.url ) { imagePreview = ( <img className="kadence-background-image-preview" src={ undefined !== this.controlParams.attachments && undefined !== this.controlParams.attachments["desktop"] && this.controlParams.attachments["desktop"] && undefined !== this.controlParams.attachments["desktop"] .thumbnail ? this.controlParams.attachments["desktop"] .thumbnail : this.state.value["desktop"].image.url } /> ); } } else if (undefined === this.state.value[device].image.url) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].image && this.state.value[largerDevice].image.url ) { imagePreview = ( <img className="kadence-background-image-preview" src={ undefined !== this.controlParams.attachments && undefined !== this.controlParams.attachments[ largerDevice ] && undefined !== this.controlParams.attachments[largerDevice] .thumbnail ? this.controlParams.attachments[ largerDevice ].thumbnail : this.state.value[largerDevice].image.url } /> ); } else if ( "tablet" === largerDevice && undefined !== this.state.value["desktop"].image && this.state.value["desktop"].image.url ) { imagePreview = ( <img className="kadence-background-image-preview" src={ undefined !== this.controlParams.attachments && undefined !== this.controlParams.attachments["desktop"] && this.controlParams.attachments["desktop"] && undefined !== this.controlParams.attachments["desktop"] .thumbnail ? this.controlParams.attachments["desktop"] .thumbnail : this.state.value["desktop"].image.url } /> ); } } else if ("" === this.state.value[device].image.url) { let largerDevice = device === "mobile" ? "tablet" : "desktop"; if ( undefined !== this.state.value[largerDevice] && undefined !== this.state.value[largerDevice].image && this.state.value[largerDevice].image.url ) { imagePreview = ( <img className="kadence-background-image-preview" src={ undefined !== this.controlParams.attachments && undefined !== this.controlParams.attachments[ largerDevice ] && undefined !== this.controlParams.attachments[largerDevice] .thumbnail ? this.controlParams.attachments[ largerDevice ].thumbnail : this.state.value[largerDevice].image.url } /> ); } else if ( "tablet" === largerDevice && undefined !== this.state.value["desktop"].image && this.state.value["desktop"].image.url ) { imagePreview = ( <img className="kadence-background-image-preview" src={ undefined !== this.controlParams.attachments && undefined !== this.controlParams.attachments["desktop"] && this.controlParams.attachments["desktop"] && undefined !== this.controlParams.attachments["desktop"] .thumbnail ? this.controlParams.attachments["desktop"] .thumbnail : this.state.value["desktop"].image.url } /> ); } } else if ("" !== this.state.value[device].image.url) { imagePreview = ( <img className="kadence-background-image-preview" src={ undefined !== this.controlParams.attachments && undefined !== this.controlParams.attachments[device] && this.controlParams.attachments[device] && undefined !== this.controlParams.attachments[device].thumbnail ? this.controlParams.attachments[device] .thumbnail : this.state.value[device].image.url } /> ); } else { imagePreview = ""; } return imagePreview; }; const controlLabel = ( <Fragment> {this.state.currentDevice !== "desktop" && ( <Tooltip text={__("Reset Device Values", "kadence")}> <Button className="reset kadence-reset" disabled={ undefined === this.state.value[this.state.currentDevice] } onClick={() => { let value = this.state.value; delete value[this.state.currentDevice]; this.removeValues(value); }} > <Dashicon icon="image-rotate" /> </Button> </Tooltip> )} {this.state.currentDevice === "desktop" && ( <Tooltip text={__("Reset Values", "kadence")}> <Button className="reset kadence-reset" disabled={ this.state.value.desktop.color === this.defaultValue.desktop.color && undefined === this.state.value.desktop.type } onClick={() => { this.resetValues(); }} > <Dashicon icon="image-rotate" /> </Button> </Tooltip> )} {data.label && data.label} </Fragment> ); let colorString = getColorPreviewValue(this.state.currentDevice); const styleing = { saturation: { paddingBottom: "50%", width: "100%", position: "relative", overflow: "hidden", }, }; let initial_tab = undefined !== this.state.value[this.state.currentDevice] && undefined !== this.state.value[this.state.currentDevice].type ? this.state.value[this.state.currentDevice].type : "color"; let tab_options; if (this.state.supportGradient) { tab_options = [ { name: "color", title: __("Color", "kadence"), className: "kadence-color-background", }, { name: "gradient", title: __("Gradient", "kadence"), className: "kadence-gradient-background", }, { name: "image", title: __("Image", "kadence"), className: "kadence-image-background", }, ]; } else { tab_options = [ { name: "color", title: __("Color", "kadence"), className: "kadence-color-background", }, { name: "image", title: __("Image", "kadence"), className: "kadence-image-background", }, ]; if ("gradient" === initial_tab) { initial_tab = "color"; } } return ( <div className="kadence-control-field kadence-background-control"> <ResponsiveControl onChange={(currentDevice) => this.setState({ currentDevice }) } controlLabel={controlLabel} > <div className="kadence-background-picker-wrap"> {this.state.isVisible && ( <Popover position="top left" className="kadence-popover-color kadence-customizer-popover" inline={true} onClose={maybeToggleClose} > <TabPanel className="kadence-popover-tabs kadence-background-tabs" activeClass="active-tab" initialTabName={initial_tab} onSelect={(value) => this.saveBackgroundType( value, this.state.currentDevice ) } tabs={tab_options} > {(tab) => { let tabout; if (tab.name) { if ("image" === tab.name) { tabout = ( <> {undefined === this.state.value[ this.state .currentDevice ] && ( <div className="attachment-media-view"> <button type="button" className="upload-button button-add-media" > { data .button_labels .select } </button> </div> )} {undefined !== this.state.value[ this.state .currentDevice ] && ( <> {!this.state .value[ this.state .currentDevice ].image && ( <> {/* <MediaUpload onSelect={ media => { let value = this.state.value; if ( undefined === value[ this.state.currentDevice ] ) { value[ this.state.currentDevice ] = {}; } if ( undefined === value[ this.state.currentDevice ].image ) { value[ this.state.currentDevice ].image = {}; } if ( undefined === value[ this.state.currentDevice ].image.url ) { value[ this.state.currentDevice ].image.url = ''; } value[ this.state.currentDevice ].image.url = media.url; this.updateValues( value ); } } type="image" value={ '' } allowedTypes={ [ 'image' ] } render={ ( { open } ) => ( <Button className={ 'upload-button button-add-media' } onClick={ open } > {data.button_labels.select} </Button> ) } /> */} <div className="attachment-media-view"> <button type="button" className="upload-button button-add-media" > { data .button_labels .select } </button> </div> </> )} {this.state .value[ this.state .currentDevice ].image && !this.state .value[ this .state .currentDevice ].image .url && ( <div className="attachment-media-view"> <button type="button" className="upload-button button-add-media" > { data .button_labels .select } </button> </div> )} {this.state .value[ this.state .currentDevice ].image && this.state .value[ this .state .currentDevice ].image .url && ( <> <FocalPointPicker url={ this .state .value[ this .state .currentDevice ] .image .url } dimensions={ dimensions[ this .state .currentDevice ] } value={ undefined !== this .state .value[ this .state .currentDevice ] .image .position ? this .state .value[ this .state .currentDevice ] .image .position : { x: 0.5, y: 0.5, } } onChange={( focalPoint ) => this.onPositionChange( { focalPoint, }, this .state .currentDevice ) } /> <div class="actions"> <Button type="button" className="button remove-button" onClick={() => this.onImageRemove( this .state .currentDevice ) } > { data .button_labels .remove } </Button> <Button type="button" className="button upload-button control-focus" > { data .button_labels .change } </Button> </div> </> )} </> )} <span className="customize-control-title"> {__( "Background Repeat", "kadence" )} </span> <ButtonGroup className="kadence-radio-container-control"> {Object.keys( this .controlParams .repeat ).map((item) => { return ( <Button isTertiary className={getRadioClassName( item, this .state .currentDevice, "repeat" )} onClick={() => { let value = this .state .value; if ( undefined === value[ this .state .currentDevice ] ) { value[ this.state.currentDevice ] = {}; } if ( undefined === value[ this .state .currentDevice ] .image ) { value[ this.state.currentDevice ].image = {}; } if ( undefined === value[ this .state .currentDevice ] .image .repeat ) { value[ this.state.currentDevice ].image.repeat = ""; } value[ this.state.currentDevice ].image.repeat = item; this.updateValues( value ); }} > {this .controlParams .repeat[ item ] .name && this .controlParams .repeat[ item ] .name} </Button> ); })} </ButtonGroup> <span className="customize-control-title"> {__( "Background Size", "kadence" )} </span> <ButtonGroup className="kadence-radio-container-control"> {Object.keys( this .controlParams .size ).map((item) => { return ( <Button isTertiary className={getRadioClassName( item, this .state .currentDevice, "size" )} onClick={() => { let value = this .state .value; if ( undefined === value[ this .state .currentDevice ] ) { value[ this.state.currentDevice ] = {}; } if ( undefined === value[ this .state .currentDevice ] .image ) { value[ this.state.currentDevice ].image = {}; } if ( undefined === value[ this .state .currentDevice ] .image .size ) { value[ this.state.currentDevice ].image.size = ""; } value[ this.state.currentDevice ].image.size = item; this.updateValues( value ); }} > {this .controlParams .size[ item ] .name && this .controlParams .size[ item ] .name} </Button> ); })} </ButtonGroup> <span className="customize-control-title"> {__( "Background Attachment", "kadence" )} </span> <ButtonGroup className="kadence-radio-container-control"> {Object.keys( this .controlParams .attachment ).map((item) => { return ( <Button isTertiary className={getRadioClassName( item, this .state .currentDevice, "attachment" )} onClick={() => { let value = this .state .value; if ( undefined === value[ this .state .currentDevice ] ) { value[ this.state.currentDevice ] = {}; } if ( undefined === value[ this .state .currentDevice ] .image ) { value[ this.state.currentDevice ].image = {}; } if ( undefined === value[ this .state .currentDevice ] .image .attachment ) { value[ this.state.currentDevice ].image.attachment = ""; } value[ this.state.currentDevice ].image.attachment = item; this.updateValues( value ); }} > {this .controlParams .attachment[ item ] .name && this .controlParams .attachment[ item ] .name} </Button> ); })} </ButtonGroup> </> ); } else if ( "gradient" === tab.name ) { tabout = ( <> <KadenceGradientPicker value={ undefined !== this.state .value[ this .state .currentDevice ] .gradient && "" !== this.state .value[ this .state .currentDevice ].gradient ? this.state .value[ this .state .currentDevice ].gradient : "" } onChange={( newGradient ) => this.onGradientChangeComplete( newGradient, this.state .currentDevice ) } activePalette={ this.state .colorPalette[ this.state .activePalette ] ? this.state .colorPalette[ this .state .activePalette ] : [] } /> </> ); } else { tabout = ( <> {this.state.isVisible && this.state .refresh && ( <div className="kadence-background-color-wrap"> <KadenceColorPicker //presetColors={ [] } color={getColorValue( this .state .currentDevice )} onChange={( color ) => this.onColorChangeState( color, "", this .state .currentDevice ) } onChangeComplete={( color ) => this.onColorChangeComplete( color, "", this .state .currentDevice ) } //width={ 300 } //styles={ styleing } /> <SwatchesControl colors={ this .state .colorPalette[ this .state .activePalette ] ? this .state .colorPalette[ this .state .activePalette ] : [] } isPalette={ undefined !== this .state .value[ this .state .currentDevice ] && undefined !== this .state .value[ this .state .currentDevice ] .color && "" !== this .state .value[ this .state .currentDevice ] .color && null !== this .state .value[ this .state .currentDevice ] .color && this.state.value[ this .state .currentDevice ].color.includes( "palette" ) ? this .state .value[ this .state .currentDevice ] .color : "" } onClick={( color, palette ) => this.onColorChangeComplete( color, palette, this .state .currentDevice ) } /> </div> )} {this.state.isVisible && !this.state .refresh && ( <div className="kadence-background-color-wrap"> <KadenceColorPicker //presetColors={ [] } color={getColorValue( this .state .currentDevice )} onChange={( color ) => this.onColorChangeState( color, "", this .state .currentDevice ) } onChangeComplete={( color ) => this.onColorChangeComplete( color, "", this .state .currentDevice ) } //width={ 300 } //styles={ styleing } /> <SwatchesControl colors={ this .state .colorPalette[ this .state .activePalette ] ? this .state .colorPalette[ this .state .activePalette ] : [] } isPalette={ undefined !== this .state .value[ this .state .currentDevice ] && undefined !== this .state .value[ this .state .currentDevice ] .color && "" !== this .state .value[ this .state .currentDevice ] .color && this.state.value[ this .state .currentDevice ].color.includes( "palette" ) ? this .state .value[ this .state .currentDevice ] .color : "" } onClick={( color, palette ) => this.onColorChangeComplete( color, palette, this .state .currentDevice ) } /> </div> )} </> ); } } return <div>{tabout}</div>; }} </TabPanel> </Popover> )} <Tooltip text={ this.controlParams.tooltip ? this.controlParams.tooltip : __("Select Background", "kadence") } > <div className="background-button-wrap"> <Button className={ "kadence-background-icon-indicate" } onClick={() => { this.state.isVisible ? toggleClose() : toggleVisible(); }} > {(undefined === this.state.value[ this.state.currentDevice ] || undefined === this.state.value[ this.state.currentDevice ].type || this.state.value[ this.state.currentDevice ].type === "color") && ( <Fragment> <ColorIndicator className="kadence-advanced-color-indicate" colorValue={getColorPreviewValue( this.state.currentDevice )} /> {undefined !== colorString && "" !== colorString && null !== colorString && "var" === colorString.substring( 0, 3 ) && ( <Icon className="dashicon" icon={Icons.globe} /> )} {showImagePreview( this.state.currentDevice ) && getImagePreview( this.state.currentDevice )} {showGradientPreview( this.state.currentDevice ) && ( <ColorIndicator className="kadence-advanced-color-indicate" colorValue={getGradientPreviewValue( this.state.currentDevice )} /> )} </Fragment> )} {undefined !== this.state.value[ this.state.currentDevice ] && undefined !== this.state.value[ this.state.currentDevice ].type && this.state.value[ this.state.currentDevice ].type === "gradient" && ( <Fragment> <ColorIndicator className="kadence-advanced-color-indicate" colorValue={getGradientPreviewValue( this.state.currentDevice )} /> </Fragment> )} {undefined !== this.state.value[ this.state.currentDevice ] && undefined !== this.state.value[ this.state.currentDevice ].type && this.state.value[ this.state.currentDevice ].type === "image" && ( <Fragment> <ColorIndicator className="kadence-advanced-color-indicate" colorValue={getColorPreviewValue( this.state.currentDevice )} /> {undefined !== colorString && "" !== colorString && null !== colorString && "var" === colorString.substring( 0, 3 ) && ( <Icon className="dashicon" icon={Icons.globe} /> )} {getImagePreview( this.state.currentDevice )} </Fragment> )} </Button> </div> </Tooltip> </div> </ResponsiveControl> </div> ); } preventClose() { let self = this; document.addEventListener("kadenceOpenMediaModal", function (e) { self.setState({ modalCanClose: e.detail }); }); } updateValues(value) { this.setState({ value: value }); this.props.control.setting.set({ ...this.props.control.setting.get(), ...value, flag: !this.props.control.setting.get().flag, }); } removeValues(value) { this.setState({ value: value }); this.props.control.setting.set({ ...value, flag: !this.props.control.setting.get().flag, }); } resetValues() { this.setState({ value: JSON.parse(JSON.stringify(this.defaultValue)) }); this.props.control.setting.set({ ...this.defaultValue, flag: !this.props.control.setting.get().flag, }); } } BackgroundComponent.propTypes = { control: PropTypes.object.isRequired, customizer: PropTypes.object.isRequired, }; export default BackgroundComponent; react/src/background/circular-option-picker.js 0000644 00000004141 15151531433 0015474 0 ustar 00 /** * External dependencies */ import classnames from 'classnames'; /** * WordPress dependencies */ import { Icon, check } from '@wordpress/icons'; /** * Internal dependencies */ const { Button, Dropdown, Tooltip, } = wp.components; function Option( { className, isSelected, selectedIconProps, tooltipText, ...additionalProps } ) { const optionButton = ( <Button isPressed={ isSelected } className={ classnames( className, 'components-circular-option-picker__option' ) } { ...additionalProps } /> ); return ( <div className="components-circular-option-picker__option-wrapper"> { tooltipText ? ( <Tooltip text={ tooltipText }>{ optionButton }</Tooltip> ) : ( optionButton ) } { isSelected && ( <Icon icon={ check } { ...( selectedIconProps ? selectedIconProps : {} ) } /> ) } </div> ); } function DropdownLinkAction( { buttonProps, className, dropdownProps, linkText, } ) { return ( <Dropdown className={ classnames( 'components-circular-option-picker__dropdown-link-action', className ) } renderToggle={ ( { isOpen, onToggle } ) => ( <Button aria-expanded={ isOpen } onClick={ onToggle } isLink { ...buttonProps } > { linkText } </Button> ) } { ...dropdownProps } /> ); } function ButtonAction( { className, children, ...additionalProps } ) { return ( <Button className={ classnames( 'components-circular-option-picker__clear', className ) } isSmall isSecondary { ...additionalProps } > { children } </Button> ); } export default function CircularOptionPicker( { actions, className, options, children, } ) { return ( <div className={ classnames( 'components-circular-option-picker', className ) } > { options } { children } { actions && ( <div className="components-circular-option-picker__custom-clear-wrapper"> { actions } </div> ) } </div> ); } CircularOptionPicker.Option = Option; CircularOptionPicker.ButtonAction = ButtonAction; CircularOptionPicker.DropdownLinkAction = DropdownLinkAction; react/src/background/control.js 0000644 00000015061 15151531433 0012572 0 ustar 00 import { createRoot } from '@wordpress/element'; import BackgroundComponent from './background-component.js'; export const BackgroundControl = wp.customize.MediaControl.extend( { renderContent: function renderContent() { let control = this; let root = createRoot( control.container[0] ); root.render( <BackgroundComponent control={control} customizer={ wp.customize }/> ); }, initialize: function( id, options ) { var control = this, args = options || {}; args.params = args.params || {}; if ( ! args.params.type ) { args.params.type = 'kadence-basic'; } if ( ! args.params.content ) { args.params.content = jQuery( '<li></li>' ); args.params.content.attr( 'id', 'customize-control-' + id.replace( /]/g, '' ).replace( /\[/g, '-' ) ); args.params.content.attr( 'class', 'customize-control customize-control-' + args.params.type ); } control.propertyElements = []; wp.customize.Control.prototype.initialize.call( control, id, args ); }, /** * Add bidirectional data binding links between inputs and the setting(s). * * This is copied from wp.customize.Control.prototype.initialize(). It * should be changed in Core to be applied once the control is embedded. * * @private * @returns {null} */ _setUpSettingRootLinks: function() { var control = this, nodes = control.container.find( '[data-customize-setting-link]' ); nodes.each( function() { var node = jQuery( this ); wp.customize( node.data( 'customizeSettingLink' ), function( setting ) { var element = new wp.customize.Element( node ); control.elements.push( element ); element.sync( setting ); element.set( setting() ); } ); } ); }, /** * Add bidirectional data binding links between inputs and the setting properties. * * @private * @returns {null} */ _setUpSettingPropertyLinks: function() { var control = this, nodes; if ( ! control.setting ) { return; } nodes = control.container.find( '[data-customize-setting-property-link]' ); nodes.each( function() { var node = jQuery( this ), element, propertyName = node.data( 'customizeSettingPropertyLink' ); element = new wp.customize.Element( node ); control.propertyElements.push( element ); element.set( control.setting()[ propertyName ] ); element.bind( function( newPropertyValue ) { var newSetting = control.setting(); if ( newPropertyValue === newSetting[ propertyName ] ) { return; } newSetting = _.clone( newSetting ); newSetting[ propertyName ] = newPropertyValue; control.setting.set( newSetting ); } ); control.setting.bind( function( newValue ) { if ( newValue[ propertyName ] !== element.get() ) { element.set( newValue[ propertyName ] ); } } ); } ); }, /** * @inheritdoc */ ready: function() { var control = this; // Shortcut so that we don't have to use _.bind every time we add a callback. _.bindAll( control, 'openFrame', 'select' ); // Bind events, with delegation to facilitate re-rendering. control.container.on( 'click keydown', '.upload-button', function( e ) { let event = new CustomEvent( 'kadenceOpenMediaModal', { 'detail': false, } ); document.dispatchEvent( event ); control.openFrame( e ); } ); control._setUpSettingRootLinks(); control._setUpSettingPropertyLinks(); wp.customize.Control.prototype.ready.call( control ); control.setting.bind( control.renderContent() ); control.deferred.embedded.done( function() { } ); }, /** * Embed the control in the document. * * Override the embed() method to do nothing, * so that the control isn't embedded on load, * unless the containing section is already expanded. * * @returns {null} */ embed: function() { var control = this, sectionId = control.section(); if ( ! sectionId ) { return; } wp.customize.section( sectionId, function( section ) { if ( section.expanded() || wp.customize.settings.autofocus.control === control.id ) { control.actuallyEmbed(); } else { section.expanded.bind( function( expanded ) { if ( expanded ) { control.actuallyEmbed(); } } ); } } ); }, /** * Deferred embedding of control when actually * * This function is called in Section.onChangeExpanded() so the control * will only get embedded when the Section is first expanded. * * @returns {null} */ actuallyEmbed: function() { var control = this; if ( 'resolved' === control.deferred.embedded.state() ) { return; } control.renderContent(); control.deferred.embedded.resolve(); // This triggers control.ready(). // Fire event after control is initialized. control.container.trigger( 'init' ); }, /** * This is not working with autofocus. * * @param {object} [args] Args. * @returns {null} */ focus: function( args ) { var control = this; control.actuallyEmbed(); wp.customize.Control.prototype.focus.call( control, args ); }, /** * Callback handler for when an attachment is selected in the media modal. * Gets the selected image information, and sets it within the control. */ select: function() { // Get the attachment from the modal frame. var node, attachment = this.frame.state().get( 'selection' ).first().toJSON(), device = wp.customize.previewedDevice.get(), settings = this.setting(); // This is a hack to make the popup background work, I don't like this and need to find a better solution. if ( this.id && this.id === 'header_popup_background' ) { if ( device === 'tablet' || device === 'mobile' ) { if ( undefined !== settings['desktop'] && undefined !== settings['desktop'].type && settings['desktop'].type === 'image' ) { if ( undefined !== settings[device] && undefined !== settings[device].type && settings[device].type === 'image' ) { // Leave this alone } else { device = 'desktop'; } } } } if ( undefined === this.params.attachment ) { this.params.attachment = {}; } if ( undefined === this.params.input_attrs.attachments ) { this.params.input_attrs.attachments = {}; } this.params.input_attrs.attachments[ device ] = attachment; if ( undefined === settings[ device ] ) { settings[ device ] = {}; } if ( undefined === settings[ device ].image ) { settings[ device ].image = {}; } settings[ device ].image.url = attachment.url; // Set the Customizer setting; the callback takes care of rendering. let event = new CustomEvent( 'kadenceOpenMediaModal', { 'detail': true, } ); document.dispatchEvent( event ); this.setting.set( { ...this.setting.get(), ...settings, flag: ! this.setting.get().flag } ); }, } ); react/class-kadence-control-borders.php 0000644 00000001652 15151531434 0014172 0 ustar 00 <?php /** * The Borders customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Borders * * @access public */ class Kadence_Control_Borders extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_borders_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Borders' ); react/class-kadence-control-radio-icon.php 0000644 00000001671 15151531434 0014557 0 ustar 00 <?php /** * The Radio Icon customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Radio_Icon * * @access public */ class Kadence_Control_Radio_Icon extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_radio_icon_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Radio_Icon' ); react/class-kadence-control-multi-radio-icon.php 0000644 00000001721 15151531434 0015703 0 ustar 00 <?php /** * The Radio Icon customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Multi_Radio_Icon * * @access public */ class Kadence_Control_Multi_Radio_Icon extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_multi_radio_icon_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Multi_Radio_Icon' ); react/class-kadence-control-contact.php 0000644 00000001651 15151531434 0014164 0 ustar 00 <?php /** * The Social customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Contact * * @access public */ class Kadence_Control_Contact extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_contact_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['input_attrs'] = $this->input_attrs; $this->json['default'] = $this->default; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Contact' ); react/class-kadence-control-check-icon.php 0000644 00000001674 15151531434 0014541 0 ustar 00 <?php /** * The CheckBox Icon customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Check_Icon * * @access public */ class Kadence_Control_Check_Icon extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_check_icon_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Check_Icon' ); react/class-kadence-control-color.php 0000644 00000001633 15151531434 0013647 0 ustar 00 <?php /** * The Color customize control extends the WP_Customize_Control class. * * @package customizer-controls */ if ( ! class_exists( 'WP_Customize_Control' ) ) { return; } /** * Class Kadence_Control_Color * * @access public */ class Kadence_Control_Color extends WP_Customize_Control { /** * Control type * * @var string */ public $type = 'kadence_color_control'; /** * Additional arguments passed to JS. * * @var array */ public $default = array(); /** * Additional arguments passed to JS. * * @var array */ public $input_attrs = array(); /** * Send to JS. */ public function to_json() { parent::to_json(); $this->json['default'] = $this->default; $this->json['input_attrs'] = $this->input_attrs; } /** * Empty Render Function to prevent errors. */ public function render_content() { } } $wp_customize->register_control_type( 'Kadence_Control_Color' ); class-customizer-sanitize.php 0000644 00000007474 15151531434 0012426 0 ustar 00 <?php /** * Class for the Customizer * * @package Kadence */ namespace Kadence; use WP_Customize_Control; use function sanitize_text_field; if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class for Customizer Sanitize * * @category class */ class Customizer_Sanitize { /** * Sanitize string, remove spaces and special characters. * * @param string $value the string to be sanitized. * * @return string */ public static function kadence_sanitize_key_string( $value ) { // To allow for strings with capitals, dashes, underscores, remove other special characters and spaces. return preg_replace( '/[^A-Za-z0-9_\-]/', '', $value ); } /** * Sanitize customizer setting. If a string use sanitize_key, for an array, loop through each item. * For the key use sanitize_key and the value strip out most special characters. * * @param mixed $start_value the value before sanitized. * * @return mixed */ public static function kadence_sanitize_option( $start_value ) { if ( empty( $start_value ) ) { return ''; } if ( ! is_array( $start_value ) ) { return self::kadence_sanitize_key_string( $start_value ); } $new_value = array(); foreach ( $start_value as $key => $value ) { // Sanitize key, remove spaces and special characters. $key = self::kadence_sanitize_key_string( $key ); if ( is_array( $value ) ) { $new_value[ $key ] = self::kadence_sanitize_option( $value ); } else { switch ( $key ) { case 'family': case 'label': // Font family names can have special characters and can be custom so treat like an text field, label is a text field. $new_value[ $key ] = sanitize_text_field( $value ); break; case 'color': case 'hover': case 'active': case 'link': case 'background': case 'backgroundHover': case 'border': case 'borderHover': // To allow hex, rgba(), and var() values or custom values like transparent run through custom preg_replace to remove most special characters and spaces. if ( strpos( $value, '#' ) === 0 ) { $new_value[ $key ] = sanitize_hex_color( $value ); } else { $new_value[ $key ] = preg_replace( '/[^A-Za-z0-9_)(\-,.]/', '', $value ); } break; case 'gradient': // gradient has some extra symbols that need to be allowed. $new_value[ $key ] = sanitize_text_field( $value ); break; case 'enabled': case 'locked': // return a boolean. $new_value[ $key ] = ( ( isset( $value ) && true == $value ) ? true : false ); break; case 'url': // URL is used for custom social images and background images so save as a url. $new_value[ $key ] = esc_url_raw( $value ); break; default: // To allow for strings with capitals, negative numbers and decimals. Remove other special characters and spaces. $new_value[ $key ] = preg_replace( '/[^A-Za-z0-9_\-.]/', '', $value ); break; } } } return $new_value; } /** * Sanitize customizer toggle setting. * * @param mixed $value the value before sanitized. * * @return bool */ public static function kadence_sanitize_toggle( $value ) { return ( ( isset( $value ) && true == $value ) ? true : false ); } /** * Sanitize customizer google subset setting. * * @param mixed $start_value the value before sanitized. * * @return mixed */ public static function kadence_sanitize_google_subsets( $start_value ) { if ( empty( $start_value ) ) { return ''; } if ( ! is_array( $start_value ) ) { return ''; } $new_value = array(); foreach ( $start_value as $key => $value ) { // Sanitize key, remove spaces and special characters. $key = self::kadence_sanitize_key_string( $key ); $new_value[ $key ] = ( ( isset( $value ) && true == $value ) ? true : false ); } return $new_value; } } js/kadence-customizer-preview.js 0000644 00000227741 15151531434 0013010 0 ustar 00 (function ($) { "use strict"; var $window = $(window), $document = $(document), $body = $("body"); // Site title and description. wp.customize("blogname", function (value) { value.bind(function (to) { $(".site-title").text(to); }); }); wp.customize("blogdescription", function (value) { value.bind(function (to) { $(".site-description").text(to); }); }); wp.customize.bind("preview-ready", function () { var defaultTarget = window.parent === window ? null : window.parent; $document.on( "click", ".site-header-focus-item .item-customizer-focus, .builder-item-focus .edit-row-action", function (e) { e.preventDefault(); e.stopPropagation(); var p = $(this).closest(".site-header-focus-item"); var section_id = p.attr("data-section") || ""; if (section_id) { if (defaultTarget.wp.customize.section(section_id)) { defaultTarget.wp.customize.section(section_id).focus(); } } } ); $document.on( "click", ".site-footer-focus-item .item-customizer-focus", function (e) { e.preventDefault(); e.stopPropagation(); var p = $(this).closest(".site-footer-focus-item"); var section_id = p.attr("data-section") || ""; if (section_id) { if (defaultTarget.wp.customize.section(section_id)) { defaultTarget.wp.customize.section(section_id).focus(); } } } ); }); document.addEventListener("DOMContentLoaded", function () { if (navigator.userAgent.toLowerCase().indexOf("safari/") != -1) { if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) { } else { // Safari doesn't want to render the iframe... This hack at least makes it render although it's not idea because of the flash. // $body.animate({ // opacity: 0, // }, 50, function() { // $body.css( 'display', 'none' ); // $body.css( 'opacity', 1 ); // }); // setTimeout(function(){ // $body.css( 'display', 'block' ); // }, 100); } } var hasSelectiveRefresh = "undefined" !== typeof wp && wp.customize && wp.customize.selectiveRefresh && wp.customize.widgetsPreview && wp.customize.widgetsPreview.WidgetPartial; if (hasSelectiveRefresh) { wp.customize.selectiveRefresh.bind( "partial-content-rendered", function (placement) { if (placement.partial.id === "header_desktop_items") { window.kadence.initToggleDrawer(); } window.kadence.initTransHeaderPadding(); if ( typeof window.kadence.initStickyHeader !== "undefined" ) { window.kadence.initStickyHeader(); window.kadence.initScrollToTop(); } } ); } }); var kadenceCustomizer = { /** * Calculate preferred value with custom viewport widths using precise calc formula * * @param {object} font Font settings object * @return {string} Calculated preferred value as calc expression */ calculate_preferred_value_with_viewports: function (font) { var min_value = font.minFontSize; var max_value = font.maxFontSize; var min_viewport = font.minScreenSize; var max_viewport = font.maxScreenSize; var unit = font.fontSizeUnit || "px"; var viewport_unit = font.screenSizeUnit || "px"; if (!min_value || !max_value || !min_viewport || !max_viewport) { return ""; } // Convert to rem if needed for consistent calculation var min_in_rem = min_value; var max_in_rem = max_value; // Convert px to rem for calculation (but keep original unit in output) var output_unit = unit; if (unit === "px") { min_in_rem = min_value / 16; max_in_rem = max_value / 16; unit = "rem"; } // For rem-based calculations, use the precise formula // The formula: preferred = a + b*vw where: // b = 1600 * (F2 - F1) / (W2 - W1) // a = F1 - (b/1600) * W1 // This ensures at W1: a + b*(W1/100) = F1 and at W2: a + b*(W2/100) = F2 if (unit === "rem" || unit === "em") { var slope = (1600 * (max_in_rem - min_in_rem)) / (max_viewport - min_viewport); var intercept = min_in_rem - (slope / 1600) * min_viewport; // Round to 4 decimal places for precision var rounded_intercept = Math.round(intercept * 10000) / 10000; var rounded_slope = Math.round(slope * 10000) / 10000; // Return clean expression without calc() return rounded_intercept + unit + " + " + rounded_slope + "vw"; } // For other units (%, vw), use a simpler approach var slope = ((max_value - min_value) / (max_viewport - min_viewport)) * 100; var intercept = min_value - (slope * min_viewport) / 100; var rounded_intercept = Math.round(intercept * 10000) / 10000; var rounded_slope = Math.round(slope * 10000) / 10000; return rounded_intercept + unit + " + " + rounded_slope + "vw"; }, /** * Generate a clamp value from mobile and desktop sizes * * @param {object} font Font settings object * @return {string} Generated clamp value */ generate_clamp_value: function (font) { var clamped = font.clamped === true; if (clamped) { var min_value = font.minFontSize; var max_value = font.maxFontSize; var unit = font.fontSizeUnit || "px"; var preferred = this.calculate_preferred_value_with_viewports(font); if (preferred && min_value && max_value) { return ( "clamp(" + min_value + unit + ", " + preferred + ", " + max_value + unit + ")" ); } } return ""; }, live_css_typography: function (key, rules, newValue) { var styleID = "kadence-customize-preview-css-" + key, $style = $("#" + styleID), css = "", media_tablet = "@media screen and (max-width: 1023px)", media_mobile = "@media screen and (max-width: 499px)", selector, cssArray = {}; // Create <style> tag if doesn't exist. if (0 === $style.length) { $style = $(document.createElement("style")); $style.attr("id", styleID); $style.attr("type", "text/css"); // Append <style> tag to <head>. $style.appendTo($("head")); } _.each(rules, function (rule) { if ( undefined == rule["property"] || undefined == rule["selector"] ) { return; } rule["media"] = rule["media"] || "global"; rule["pattern"] = rule["pattern"] || "$"; if ("object" == typeof newValue) { let clamped_value = ""; if ( undefined !== newValue["clamped"] && true === newValue["clamped"] ) { clamped_value = kadenceCustomizer.generate_clamp_value(newValue); } if (clamped_value) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; cssArray[rule["media"]][selector]["font-size"] = clamped_value; } else { if ( undefined !== newValue["size"] && "object" == typeof newValue["size"] && "family" !== rule["key"] ) { if ( undefined !== newValue["size"]["desktop"] && "" !== newValue["size"]["desktop"] ) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if ( undefined == cssArray[rule["media"]][selector] ) cssArray[rule["media"]][selector] = {}; var unit = undefined !== newValue["sizeType"] && "" !== newValue["sizeType"] ? newValue["sizeType"] : "px"; cssArray[rule["media"]][selector]["font-size"] = newValue["size"]["desktop"] + unit; } if ( undefined !== newValue["size"]["tablet"] && "" !== newValue["size"]["tablet"] ) { selector = undefined !== rule["selector"]["tablet"] ? rule["selector"]["tablet"] : rule["selector"]; // Define properties. if (undefined == cssArray[media_tablet]) cssArray[media_tablet] = {}; if ( undefined == cssArray[media_tablet][selector] ) cssArray[media_tablet][selector] = {}; var unit = undefined !== newValue["sizeType"] && "" !== newValue["sizeType"] ? newValue["sizeType"] : "px"; cssArray[media_tablet][selector]["font-size"] = newValue["size"]["tablet"] + unit; } if ( undefined !== newValue["size"]["mobile"] && "" !== newValue["size"]["mobile"] ) { selector = undefined !== rule["selector"]["mobile"] ? rule["selector"]["mobile"] : rule["selector"]; // Define properties. if (undefined == cssArray[media_mobile]) cssArray[media_mobile] = {}; if ( undefined == cssArray[media_mobile][selector] ) cssArray[media_mobile][selector] = {}; var unit = undefined !== newValue["sizeType"] && "" !== newValue["sizeType"] ? newValue["sizeType"] : "px"; cssArray[media_mobile][selector]["font-size"] = newValue["size"]["mobile"] + unit; } } } if ( undefined !== newValue["lineHeight"] && "object" == typeof newValue["lineHeight"] && "family" !== rule["key"] ) { if ( undefined !== newValue["lineHeight"]["desktop"] && "" !== newValue["lineHeight"]["desktop"] ) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; var unit = undefined !== newValue["lineType"] && "" !== newValue["lineType"] && "-" !== newValue["lineType"] ? newValue["lineType"] : ""; cssArray[rule["media"]][selector]["line-height"] = newValue["lineHeight"]["desktop"] + unit; } if ( undefined !== newValue["lineHeight"]["tablet"] && "" !== newValue["lineHeight"]["tablet"] ) { selector = undefined !== rule["selector"]["tablet"] ? rule["selector"]["tablet"] : rule["selector"]; // Define properties. if (undefined == cssArray[media_tablet]) cssArray[media_tablet] = {}; if (undefined == cssArray[media_tablet][selector]) cssArray[media_tablet][selector] = {}; var unit = undefined !== newValue["lineType"] && "" !== newValue["lineType"] && "-" !== newValue["lineType"] ? newValue["lineType"] : ""; cssArray[media_tablet][selector]["line-height"] = newValue["lineHeight"]["tablet"] + unit; } if ( undefined !== newValue["lineHeight"]["mobile"] && "" !== newValue["lineHeight"]["mobile"] ) { selector = undefined !== rule["selector"]["mobile"] ? rule["selector"]["mobile"] : rule["selector"]; // Define properties. if (undefined == cssArray[media_mobile]) cssArray[media_mobile] = {}; if (undefined == cssArray[media_mobile][selector]) cssArray[media_mobile][selector] = {}; var unit = undefined !== newValue["lineType"] && "" !== newValue["lineType"] && "-" !== newValue["lineType"] ? newValue["lineType"] : ""; cssArray[media_mobile][selector]["line-height"] = newValue["lineHeight"]["mobile"] + unit; } } if ( undefined !== newValue["letterSpacing"] && "object" == typeof newValue["letterSpacing"] && "family" !== rule["key"] ) { if ( undefined !== newValue["letterSpacing"]["desktop"] && "" !== newValue["letterSpacing"]["desktop"] ) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; var unit = undefined !== newValue["spacingType"] && "" !== newValue["spacingType"] ? newValue["spacingType"] : ""; cssArray[rule["media"]][selector][ "letter-spacing" ] = newValue["letterSpacing"]["desktop"] + unit; } if ( undefined !== newValue["letterSpacing"]["tablet"] && "" !== newValue["letterSpacing"]["tablet"] ) { selector = undefined !== rule["selector"]["tablet"] ? rule["selector"]["tablet"] : rule["selector"]; // Define properties. if (undefined == cssArray[media_tablet]) cssArray[media_tablet] = {}; if (undefined == cssArray[media_tablet][selector]) cssArray[media_tablet][selector] = {}; var unit = undefined !== newValue["spacingType"] && "" !== newValue["spacingType"] ? newValue["spacingType"] : ""; cssArray[media_tablet][selector]["letter-spacing"] = newValue["letterSpacing"]["tablet"] + unit; } if ( undefined !== newValue["letterSpacing"]["mobile"] && "" !== newValue["letterSpacing"]["mobile"] ) { selector = undefined !== rule["selector"]["mobile"] ? rule["selector"]["mobile"] : rule["selector"]; // Define properties. if (undefined == cssArray[media_mobile]) cssArray[media_mobile] = {}; if (undefined == cssArray[media_mobile][selector]) cssArray[media_mobile][selector] = {}; var unit = undefined !== newValue["spacingType"] && "" !== newValue["spacingType"] ? newValue["spacingType"] : ""; cssArray[media_mobile][selector]["letter-spacing"] = newValue["letterSpacing"]["mobile"] + unit; } } if ( undefined !== newValue["family"] && "" !== newValue["family"] ) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; if ( undefined !== newValue["google"] && newValue["google"] && typeof WebFont !== "undefined" && WebFont ) { var link = newValue["family"]; if ( "family" === rule["key"] && newValue["variant"] ) { link += ":" + newValue["variant"].toString(); } else if ( newValue["variant"] && "" !== newValue["variant"] ) { link += ":" + newValue["variant"]; } WebFont.load({ google: { families: [link] } }); } cssArray[rule["media"]][selector]["font-family"] = "inherit" !== newValue["family"] ? newValue["family"] : ""; } if ( undefined !== newValue["style"] && "family" !== rule["key"] ) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; cssArray[rule["media"]][selector]["font-style"] = newValue["style"]; } if ( undefined !== newValue["weight"] && "family" !== rule["key"] ) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; cssArray[rule["media"]][selector]["font-weight"] = newValue["weight"]; } if ( undefined !== newValue["transform"] && "" !== newValue["transform"] && "family" !== rule["key"] ) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; cssArray[rule["media"]][selector]["text-transform"] = newValue["transform"]; } if ( undefined !== newValue["color"] && "family" !== rule["key"] ) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; var color_type = ""; if (newValue["color"].includes("palette")) { color_type = "var(--global-" + newValue["color"] + ")"; } else { color_type = newValue["color"]; } cssArray[rule["media"]][selector]["color"] = color_type; } } }); // Loop into the sorted array to build CSS string. _.each(cssArray, function (selectors, media) { if ("global" !== media) css += media + "{"; _.each(selectors, function (properties, selector) { css += selector + "{"; _.each(properties, function (value, property) { css += property + ":" + value + ";"; }); css += "}"; }); if ("global" !== media) css += "}"; }); // Add CSS string to <style> tag. $style.html(css); }, live_css_background: function (key, rules, newValue) { var styleID = "kadence-customize-preview-css-" + key, $style = $("#" + styleID), css = "", media_tablet = "@media screen and (max-width: 1023px)", media_mobile = "@media screen and (max-width: 499px)", selector, cssArray = {}; // Create <style> tag if doesn't exist. if (0 === $style.length) { $style = $(document.createElement("style")); $style.attr("id", styleID); $style.attr("type", "text/css"); // Append <style> tag to <head>. $style.appendTo($("head")); } _.each(rules, function (rule) { if ( undefined == rule["property"] || undefined == rule["selector"] ) { return; } rule["media"] = rule["media"] || "global"; rule["pattern"] = rule["pattern"] || "$"; if ("object" == typeof newValue) { if (undefined !== newValue["desktop"]) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; var background_type = undefined !== newValue["desktop"]["type"] && "" !== newValue["desktop"]["type"] ? newValue["desktop"]["type"] : "color"; var color_type = ""; if ( undefined !== newValue["desktop"]["color"] && "" !== newValue["desktop"]["color"] ) { if ( newValue["desktop"]["color"].includes("palette") ) { color_type = "var(--global-" + newValue["desktop"]["color"] + ")"; } else { color_type = newValue["desktop"]["color"]; } } if ("image" === background_type) { var imageValue = undefined !== newValue["desktop"]["image"] && undefined !== newValue["desktop"]["image"]["url"] && "" !== newValue["desktop"]["image"]["url"] ? "url(" + newValue["desktop"]["image"]["url"] + ")" : false; if (imageValue) { cssArray[rule["media"]][selector][ "background-color" ] = color_type; cssArray[rule["media"]][selector][ "background-image" ] = imageValue; cssArray[rule["media"]][selector][ "background-repeat" ] = undefined !== newValue["desktop"]["image"][ "repeat" ] && "" !== newValue["desktop"]["image"]["repeat"] ? newValue["desktop"]["image"]["repeat"] : "inherit"; cssArray[rule["media"]][selector][ "background-size" ] = undefined !== newValue["desktop"]["image"]["size"] && "" !== newValue["desktop"]["image"]["size"] ? newValue["desktop"]["image"]["size"] : "inherit"; cssArray[rule["media"]][selector][ "background-position" ] = undefined !== newValue["desktop"]["image"][ "position" ] && undefined !== newValue["desktop"]["image"][ "position" ]["x"] && "" !== newValue["desktop"]["image"][ "position" ]["x"] ? `${ newValue["desktop"]["image"][ "position" ]["x"] * 100 }% ${ newValue["desktop"]["image"][ "position" ]["y"] * 100 }%` : "center"; cssArray[rule["media"]][selector][ "background-attachment" ] = undefined !== newValue["desktop"]["image"][ "attachment" ] && "" !== newValue["desktop"]["image"][ "attachment" ] ? newValue["desktop"]["image"][ "attachment" ] : "inherit"; } else { if ("" !== color_type) { cssArray[rule["media"]][selector][ "background" ] = color_type; } } } else if ("gradient" === background_type) { var gradientValue = undefined !== newValue["desktop"]["gradient"] && "" !== newValue["desktop"]["gradient"] ? newValue["desktop"]["gradient"] : false; if ("" !== gradientValue) { cssArray[rule["media"]][selector][ "background" ] = gradientValue; } } else { if ("" !== color_type) { cssArray[rule["media"]][selector][ "background" ] = color_type; } } } if (undefined !== newValue["tablet"]) { selector = undefined !== rule["selector"]["tablet"] ? rule["selector"]["tablet"] : rule["selector"]; // Define properties. if (undefined == cssArray[media_tablet]) cssArray[media_tablet] = {}; if (undefined == cssArray[media_tablet][selector]) cssArray[media_tablet][selector] = {}; var background_type = undefined !== newValue["tablet"]["type"] && "" !== newValue["tablet"]["type"] ? newValue["tablet"]["type"] : "color"; var color_type = ""; if ( undefined !== newValue["tablet"]["color"] && "" !== newValue["tablet"]["color"] ) { if ( newValue["tablet"]["color"].includes("palette") ) { color_type = "var(--global-" + newValue["tablet"]["color"] + ")"; } else { color_type = newValue["tablet"]["color"]; } } if ("image" === background_type) { var imageValue = undefined !== newValue["tablet"]["image"] && undefined !== newValue["tablet"]["image"]["url"] && "" !== newValue["tablet"]["image"]["url"] ? "url(" + newValue["tablet"]["image"]["url"] + ")" : false; if (imageValue) { cssArray[media_tablet][selector][ "background-color" ] = color_type; cssArray[media_tablet][selector][ "background-image" ] = imageValue; cssArray[media_tablet][selector][ "background-repeat" ] = undefined !== newValue["tablet"]["image"]["repeat"] && "" !== newValue["tablet"]["image"]["repeat"] ? newValue["tablet"]["image"]["repeat"] : "inherit"; cssArray[media_tablet][selector][ "background-size" ] = undefined !== newValue["tablet"]["image"]["size"] && "" !== newValue["tablet"]["image"]["size"] ? newValue["tablet"]["image"]["size"] : "inherit"; cssArray[media_tablet][selector][ "background-position" ] = undefined !== newValue["tablet"]["image"][ "position" ] && undefined !== newValue["tablet"]["image"]["position"][ "x" ] && "" !== newValue["tablet"]["image"]["position"][ "x" ] ? `${ newValue["tablet"]["image"][ "position" ]["x"] * 100 }% ${ newValue["tablet"]["image"][ "position" ]["y"] * 100 }%` : "center"; cssArray[media_tablet][selector][ "background-attachment" ] = undefined !== newValue["tablet"]["image"][ "attachment" ] && "" !== newValue["tablet"]["image"][ "attachment" ] ? newValue["tablet"]["image"][ "attachment" ] : "inherit"; } else { if ("" !== color_type) { cssArray[media_tablet][selector][ "background" ] = color_type; } } } else if ("gradient" === background_type) { var gradientValue = undefined !== newValue["tablet"]["gradient"] && "" !== newValue["tablet"]["gradient"] ? newValue["tablet"]["gradient"] : false; if ("" !== gradientValue) { cssArray[rule["media"]][selector][ "background" ] = gradientValue; } } else { if ("" !== color_type) { cssArray[media_tablet][selector]["background"] = color_type; } } } if (undefined !== newValue["mobile"]) { selector = undefined !== rule["selector"]["mobile"] ? rule["selector"]["mobile"] : rule["selector"]; // Define properties. if (undefined == cssArray[media_mobile]) cssArray[media_mobile] = {}; if (undefined == cssArray[media_mobile][selector]) cssArray[media_mobile][selector] = {}; var background_type = undefined !== newValue["mobile"]["type"] && "" !== newValue["mobile"]["type"] ? newValue["mobile"]["type"] : "color"; var color_type = ""; if ( undefined !== newValue["mobile"]["color"] && "" !== newValue["mobile"]["color"] ) { if ( newValue["mobile"]["color"].includes("palette") ) { color_type = "var(--global-" + newValue["mobile"]["color"] + ")"; } else { color_type = newValue["mobile"]["color"]; } } if ("image" === background_type) { var imageValue = undefined !== newValue["mobile"]["image"] && undefined !== newValue["mobile"]["image"]["url"] && "" !== newValue["mobile"]["image"]["url"] ? "url(" + newValue["mobile"]["image"]["url"] + ")" : false; if (imageValue) { cssArray[media_mobile][selector][ "background-color" ] = color_type; cssArray[media_mobile][selector][ "background-image" ] = imageValue; cssArray[media_mobile][selector][ "background-repeat" ] = undefined !== newValue["mobile"]["image"]["repeat"] && "" !== newValue["mobile"]["image"]["repeat"] ? newValue["mobile"]["image"]["repeat"] : "inherit"; cssArray[media_mobile][selector][ "background-size" ] = undefined !== newValue["mobile"]["image"]["size"] && "" !== newValue["mobile"]["image"]["size"] ? newValue["mobile"]["image"]["size"] : "inherit"; cssArray[media_mobile][selector][ "background-position" ] = undefined !== newValue["mobile"]["image"][ "position" ] && undefined !== newValue["mobile"]["image"]["position"][ "x" ] && "" !== newValue["mobile"]["image"]["position"][ "x" ] ? `${ newValue["mobile"]["image"][ "position" ]["x"] * 100 }% ${ newValue["mobile"]["image"][ "position" ]["y"] * 100 }%` : "inherit"; cssArray[media_mobile][selector][ "background-attachment" ] = undefined !== newValue["mobile"]["image"][ "attachment" ] && "" !== newValue["mobile"]["image"][ "attachment" ] ? newValue["mobile"]["image"][ "attachment" ] : "inherit"; } else { if ("" !== color_type) { cssArray[media_mobile][selector][ "background" ] = color_type; } } } else if ("gradient" === background_type) { var gradientValue = undefined !== newValue["mobile"]["gradient"] && "" !== newValue["mobile"]["gradient"] ? newValue["mobile"]["gradient"] : false; if ("" !== gradientValue) { cssArray[rule["media"]][selector][ "background" ] = gradientValue; } } else { if ("" !== color_type) { cssArray[media_mobile][selector]["background"] = color_type; } } } } }); // Loop into the sorted array to build CSS string. _.each(cssArray, function (selectors, media) { if ("global" !== media) css += media + "{"; _.each(selectors, function (properties, selector) { css += selector + "{"; _.each(properties, function (value, property) { css += property + ":" + value + ";"; }); css += "}"; }); if ("global" !== media) css += "}"; }); // Add CSS string to <style> tag. $style.html(css); }, live_css_border: function (key, rules, newValue) { var styleID = "kadence-customize-preview-css-" + key, $style = $("#" + styleID), css = "", media_tablet = "@media screen and (max-width: 1023px)", media_mobile = "@media screen and (max-width: 499px)", selector, property, cssArray = {}; // Create <style> tag if doesn't exist. if (0 === $style.length) { $style = $(document.createElement("style")); $style.attr("id", styleID); $style.attr("type", "text/css"); // Append <style> tag to <head>. $style.appendTo($("head")); } _.each(rules, function (rule) { if ( undefined == rule["property"] || undefined == rule["selector"] ) { return; } rule["media"] = rule["media"] || "global"; rule["pattern"] = rule["pattern"] || "$"; if ("object" == typeof newValue) { if (undefined !== newValue["desktop"]) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; property = undefined !== rule["property"]["desktop"] ? rule["property"]["desktop"] : rule["property"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; var border_style = undefined !== newValue["desktop"]["style"] && "" !== newValue["desktop"]["style"] ? newValue["desktop"]["style"] : "undefined"; if ("undefined" !== border_style) { var color_type = ""; if ( undefined !== newValue["desktop"]["color"] && "" !== newValue["desktop"]["color"] ) { if ( newValue["desktop"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["desktop"]["color"] + ")"; } else { color_type = newValue["desktop"]["color"]; } } if ("" !== color_type) { cssArray[rule["media"]][selector][property] = (newValue["desktop"]["width"] ? newValue["desktop"]["width"] : "0") + newValue["desktop"]["unit"] + " " + border_style + " " + color_type; } else { cssArray[rule["media"]][selector][property] = (newValue["desktop"]["width"] ? newValue["desktop"]["width"] : "0") + newValue["desktop"]["unit"] + " " + border_style + " " + "transparent"; } } } if ( undefined !== newValue["tablet"] && undefined !== newValue["tablet"]["width"] && "" !== newValue["tablet"]["width"] ) { selector = undefined !== rule["selector"]["tablet"] ? rule["selector"]["tablet"] : rule["selector"]; property = undefined !== rule["property"]["tablet"] ? rule["property"]["tablet"] : rule["property"]; // Define properties. if (undefined == cssArray[media_tablet]) cssArray[media_tablet] = {}; if (undefined == cssArray[media_tablet][selector]) cssArray[media_tablet][selector] = {}; var tablet_border_style = undefined !== newValue["tablet"]["style"] && "" !== newValue["tablet"]["style"] ? newValue["tablet"]["style"] : ""; var desktop_border_style = undefined !== newValue["desktop"]["style"] && "" !== newValue["desktop"]["style"] ? newValue["desktop"]["style"] : ""; var border_style = "undefined"; if ("" !== tablet_border_style) { border_style = tablet_border_style; } else if ("" !== desktop_border_style) { border_style = desktop_border_style; } if ("undefined" !== border_style) { var color_type = ""; var width = newValue["desktop"]["width"] ? newValue["desktop"]["width"] : "0"; var unit = newValue["desktop"]["unit"] ? newValue["desktop"]["unit"] : "px"; if ( undefined !== newValue["tablet"]["color"] && "" !== newValue["tablet"]["color"] ) { if ( newValue["tablet"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["tablet"]["color"] + ")"; } else { color_type = newValue["tablet"]["color"]; } } else if ( undefined !== newValue["desktop"]["color"] && "" !== newValue["desktop"]["color"] ) { if ( newValue["desktop"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["desktop"]["color"] + ")"; } else { color_type = newValue["desktop"]["color"]; } } if ("" !== color_type) { cssArray[media_tablet][selector][property] = ("" !== newValue["tablet"]["width"] ? newValue["tablet"]["width"] : width) + (newValue["tablet"]["unit"] ? newValue["tablet"]["unit"] : unit) + " " + border_style + " " + color_type; } else { cssArray[media_tablet][selector][property] = ("" !== newValue["tablet"]["width"] ? newValue["tablet"]["width"] : width) + (newValue["tablet"]["unit"] ? newValue["tablet"]["unit"] : unit) + " " + border_style + " " + "transparent"; } } } if ( undefined !== newValue["mobile"] && undefined !== newValue["mobile"]["width"] && "" !== newValue["mobile"]["width"] ) { selector = undefined !== rule["selector"]["mobile"] ? rule["selector"]["mobile"] : rule["selector"]; property = undefined !== rule["property"]["mobile"] ? rule["property"]["mobile"] : rule["property"]; // Define properties. if (undefined == cssArray[media_mobile]) cssArray[media_mobile] = {}; if (undefined == cssArray[media_mobile][selector]) cssArray[media_mobile][selector] = {}; var mobile_border_style = undefined !== newValue["mobile"]["style"] && "" !== newValue["mobile"]["style"] ? newValue["mobile"]["style"] : ""; var tablet_border_style = undefined !== newValue?.["tablet"]?.["style"] && "" !== newValue?.["tablet"]?.["style"] ? newValue["tablet"]["style"] : ""; var desktop_border_style = undefined !== newValue?.["desktop"]?.["style"] && "" !== newValue?.["desktop"]?.["style"] ? newValue["desktop"]["style"] : ""; var border_style = "undefined"; if ("" !== mobile_border_style) { border_style = mobile_border_style; } else if ("" !== tablet_border_style) { border_style = tablet_border_style; } else if ("" !== desktop_border_style) { border_style = desktop_border_style; } if ("undefined" !== border_style) { var color_type = ""; var deskWidth = newValue["desktop"]["width"] ? newValue["desktop"]["width"] : "0"; var deskUnit = newValue["desktop"]["unit"] ? newValue["desktop"]["unit"] : "px"; var width = newValue["tablet"] && newValue["tablet"]["width"] ? newValue["tablet"]["width"] : deskWidth; var unit = newValue["tablet"] && newValue["tablet"]["unit"] ? newValue["tablet"]["unit"] : deskUnit; if ( undefined !== newValue["mobile"]["color"] && "" !== newValue["mobile"]["color"] ) { if ( newValue["mobile"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["mobile"]["color"] + ")"; } else { color_type = newValue["mobile"]["color"]; } } else if ( undefined !== newValue["tablet"] && undefined !== newValue["tablet"]["color"] && "" !== newValue["tablet"]["color"] ) { if ( newValue["tablet"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["tablet"]["color"] + ")"; } else { color_type = newValue["tablet"]["color"]; } } else if ( undefined !== newValue["desktop"]["color"] && "" !== newValue["desktop"]["color"] ) { if ( newValue["desktop"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["desktop"]["color"] + ")"; } else { color_type = newValue["desktop"]["color"]; } } if ("" !== color_type) { cssArray[media_mobile][selector][property] = ("" !== newValue["mobile"]["width"] ? newValue["mobile"]["width"] : width) + (newValue["mobile"]["unit"] ? newValue["mobile"]["unit"] : unit) + " " + border_style + " " + color_type; } else { cssArray[media_mobile][selector][property] = ("" !== newValue["mobile"]["width"] ? newValue["mobile"]["width"] : width) + (newValue["mobile"]["unit"] ? newValue["mobile"]["unit"] : unit) + " " + border_style + " " + "transparent"; } } } if (undefined !== newValue["style"]) { selector = rule["selector"]; property = rule["property"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; var border_style = undefined !== newValue["style"] && "" !== newValue["style"] ? newValue["style"] : "none"; //if ( 'none' !== border_style ) { var color_type = ""; if ( undefined !== newValue["color"] && "" !== newValue["color"] ) { if (newValue["color"].includes("palette")) { color_type = "var(--global-" + newValue["color"] + ")"; } else { color_type = newValue["color"]; } } if ("" !== color_type) { cssArray[rule["media"]][selector][property] = (newValue["width"] ? newValue["width"] : "0") + newValue["unit"] + " " + border_style + " " + color_type; } else { cssArray[rule["media"]][selector][property] = (newValue["width"] ? newValue["width"] : "0") + newValue["unit"] + " " + border_style + " " + "transparent"; } //} } } }); // Loop into the sorted array to build CSS string. _.each(cssArray, function (selectors, media) { if ("global" !== media) css += media + "{"; _.each(selectors, function (properties, selector) { css += selector + "{"; _.each(properties, function (value, property) { css += property + ":" + value + ";"; }); css += "}"; }); if ("global" !== media) css += "}"; }); // Add CSS string to <style> tag. $style.html(css); }, live_css_boxshadow: function (key, rules, newValue) { var styleID = "kadence-customize-preview-css-" + key, $style = $("#" + styleID), css = "", media_tablet = "@media screen and (max-width: 1023px)", media_mobile = "@media screen and (max-width: 499px)", selector, property, cssArray = {}; // Create <style> tag if doesn't exist. if (0 === $style.length) { $style = $(document.createElement("style")); $style.attr("id", styleID); $style.attr("type", "text/css"); // Append <style> tag to <head>. $style.appendTo($("head")); } _.each(rules, function (rule) { if ( undefined == rule["property"] || undefined == rule["selector"] ) { return; } rule["media"] = rule["media"] || "global"; rule["pattern"] = rule["pattern"] || "$"; if (newValue?.disabled) { selector = rule["selector"]; property = rule["property"]; if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; cssArray[rule["media"]][selector][property] = "none"; } else if ("object" == typeof newValue) { if (undefined !== newValue["desktop"]) { selector = undefined !== rule["selector"]["desktop"] ? rule["selector"]["desktop"] : rule["selector"]; property = undefined !== rule["property"]["desktop"] ? rule["property"]["desktop"] : rule["property"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; var border_style = undefined !== newValue["desktop"]["style"] && "" !== newValue["desktop"]["style"] ? newValue["desktop"]["style"] : "undefined"; if ("undefined" !== border_style) { var color_type = ""; if ( undefined !== newValue["desktop"]["color"] && "" !== newValue["desktop"]["color"] ) { if ( newValue["desktop"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["desktop"]["color"] + ")"; } else { color_type = newValue["desktop"]["color"]; } } if ("" !== color_type) { cssArray[rule["media"]][selector][property] = (newValue["desktop"]["width"] ? newValue["desktop"]["width"] : "0") + newValue["desktop"]["unit"] + " " + border_style + " " + color_type; } else { cssArray[rule["media"]][selector][property] = (newValue["desktop"]["width"] ? newValue["desktop"]["width"] : "0") + newValue["desktop"]["unit"] + " " + border_style + " " + "transparent"; } } } if (undefined !== newValue["tablet"]) { selector = undefined !== rule["selector"]["tablet"] ? rule["selector"]["tablet"] : rule["selector"]; property = undefined !== rule["property"]["tablet"] ? rule["property"]["tablet"] : rule["property"]; // Define properties. if (undefined == cssArray[media_tablet]) cssArray[media_tablet] = {}; if (undefined == cssArray[media_tablet][selector]) cssArray[media_tablet][selector] = {}; var border_style = undefined !== newValue["tablet"]["style"] && "" !== newValue["tablet"]["style"] ? newValue["tablet"]["style"] : newValue["desktop"]["style"]; var border_style_show = undefined !== newValue["tablet"]["style"] && "" !== newValue["tablet"]["style"] ? newValue["tablet"]["style"] : "undefined"; if ("undefined" !== border_style_show) { var color_type = ""; var width = newValue["desktop"]["width"] ? newValue["desktop"]["width"] : "0"; var unit = newValue["desktop"]["unit"] ? newValue["desktop"]["unit"] : "px"; if ( undefined !== newValue["tablet"]["color"] && "" !== newValue["tablet"]["color"] ) { if ( newValue["tablet"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["tablet"]["color"] + ")"; } else { color_type = newValue["tablet"]["color"]; } } else if ( undefined !== newValue["desktop"]["color"] && "" !== newValue["desktop"]["color"] ) { if ( newValue["desktop"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["desktop"]["color"] + ")"; } else { color_type = newValue["desktop"]["color"]; } } if ("" !== color_type) { cssArray[media_tablet][selector][property] = (newValue["tablet"]["width"] ? newValue["tablet"]["width"] : width) + (newValue["tablet"]["unit"] ? newValue["tablet"]["unit"] : unit) + " " + border_style + " " + color_type; } else { cssArray[media_tablet][selector][property] = (newValue["tablet"]["width"] ? newValue["tablet"]["width"] : width) + (newValue["tablet"]["unit"] ? newValue["tablet"]["unit"] : unit) + " " + border_style + " " + "transparent"; } } } if (undefined !== newValue["mobile"]) { selector = undefined !== rule["selector"]["mobile"] ? rule["selector"]["mobile"] : rule["selector"]; property = undefined !== rule["property"]["mobile"] ? rule["property"]["mobile"] : rule["property"]; // Define properties. if (undefined == cssArray[media_mobile]) cssArray[media_mobile] = {}; if (undefined == cssArray[media_mobile][selector]) cssArray[media_mobile][selector] = {}; var border_style = undefined !== newValue["mobile"]["style"] && "" !== newValue["mobile"]["style"] ? newValue["mobile"]["style"] : newValue["desktop"]["style"]; var border_style_show = undefined !== newValue["mobile"]["style"] && "" !== newValue["mobile"]["style"] ? newValue["mobile"]["style"] : "undefined"; if ("undefined" !== border_style_show) { var color_type = ""; var deskWidth = newValue["desktop"]["width"] ? newValue["desktop"]["width"] : "0"; var deskUnit = newValue["desktop"]["unit"] ? newValue["desktop"]["unit"] : "px"; var width = newValue["tablet"] && newValue["tablet"]["width"] ? newValue["tablet"]["width"] : deskWidth; var unit = newValue["tablet"] && newValue["tablet"]["unit"] ? newValue["tablet"]["unit"] : deskUnit; if ( undefined !== newValue["mobile"]["color"] && "" !== newValue["mobile"]["color"] ) { if ( newValue["mobile"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["mobile"]["color"] + ")"; } else { color_type = newValue["mobile"]["color"]; } } else if ( undefined !== newValue["tablet"] && undefined !== newValue["tablet"]["color"] && "" !== newValue["tablet"]["color"] ) { if ( newValue["tablet"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["tablet"]["color"] + ")"; } else { color_type = newValue["tablet"]["color"]; } } else if ( undefined !== newValue["desktop"]["color"] && "" !== newValue["desktop"]["color"] ) { if ( newValue["desktop"]["color"].includes( "palette" ) ) { color_type = "var(--global-" + newValue["desktop"]["color"] + ")"; } else { color_type = newValue["desktop"]["color"]; } } if ("" !== color_type) { cssArray[media_mobile][selector][property] = (newValue["mobile"]["width"] ? newValue["mobile"]["width"] : width) + (newValue["mobile"]["unit"] ? newValue["mobile"]["unit"] : unit) + " " + border_style + " " + color_type; } else { cssArray[media_mobile][selector][property] = (newValue["mobile"]["width"] ? newValue["mobile"]["width"] : width) + (newValue["mobile"]["unit"] ? newValue["mobile"]["unit"] : unit) + " " + border_style + " " + "transparent"; } } } if (undefined !== newValue["color"]) { selector = rule["selector"]; property = rule["property"]; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][selector]) cssArray[rule["media"]][selector] = {}; var inset = undefined !== newValue["inset"] && newValue["inset"] ? "inset" : ""; //if ( 'none' !== border_style ) { var color_type = ""; if ( undefined !== newValue["color"] && "" !== newValue["color"] ) { if (newValue["color"].includes("palette")) { color_type = "var(--global-" + newValue["color"] + ")"; } else { color_type = newValue["color"]; } } if ("" !== color_type) { cssArray[rule["media"]][selector][property] = (inset ? inset + " " : "") + (newValue["hOffset"] ? newValue["hOffset"] : "0") + "px " + (newValue["vOffset"] ? newValue["vOffset"] : "0") + "px " + (newValue["blur"] ? newValue["blur"] : "0") + "px " + (newValue["spread"] ? newValue["spread"] : "0") + "px " + " " + color_type; } else { cssArray[rule["media"]][selector][property] = (inset ? inset + " " : "") + (newValue["hOffset"] ? newValue["hOffset"] : "0") + "px " + (newValue["vOffset"] ? newValue["vOffset"] : "0") + "px " + (newValue["blur"] ? newValue["blur"] : "0") + "px " + (newValue["spread"] ? newValue["spread"] : "0") + "px " + " " + "transparent"; } //} } } }); // Loop into the sorted array to build CSS string. _.each(cssArray, function (selectors, media) { if ("global" !== media) css += media + "{"; _.each(selectors, function (properties, selector) { css += selector + "{"; _.each(properties, function (value, property) { css += property + ":" + value + ";"; }); css += "}"; }); if ("global" !== media) css += "}"; }); // Add CSS string to <style> tag. $style.html(css); }, live_css: function (key, rules, newValue) { if (rules?.[0]?.["id"] === "base_font_family") { key = "base_font_family"; } var styleID = "kadence-customize-preview-css-" + key, $style = $("#" + styleID), css = "", media_tablet = "@media screen and (max-width: 1023px)", media_mobile = "@media screen and (max-width: 499px)", cssArray = {}; // Create <style> tag if doesn't exist. if (0 === $style.length) { $style = $(document.createElement("style")); $style.attr("id", styleID); $style.attr("type", "text/css"); // Append <style> tag to <head>. $style.appendTo($("head")); } _.each(rules, function (rule) { var formattedValue; if ( undefined == rule["property"] || undefined == rule["selector"] ) { return; } rule["media"] = rule["media"] || "global"; rule["pattern"] = rule["pattern"] || "$"; if ("object" == typeof newValue) { if ( undefined !== rule["key"] && "measure" === rule["key"] ) { if ( "object" == typeof newValue["size"] && undefined !== newValue["size"]["desktop"] ) { if (undefined !== newValue["size"]["desktop"]) { var unit = undefined !== newValue?.["unit"] && undefined !== newValue?.["unit"]?.["desktop"] ? newValue["unit"]["desktop"] : "px"; formattedValue = ("" !== newValue["size"]["desktop"][0] ? newValue["size"]["desktop"][0] : "0") + unit + " " + ("" !== newValue["size"]["desktop"][1] ? newValue["size"]["desktop"][1] : "0") + unit + " " + ("" !== newValue["size"]["desktop"][2] ? newValue["size"]["desktop"][2] : "0") + unit + " " + ("" !== newValue["size"]["desktop"][3] ? newValue["size"]["desktop"][3] : "0") + unit; // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if ( undefined == cssArray[rule["media"]][rule["selector"]] ) cssArray[rule["media"]][rule["selector"]] = {}; cssArray[rule["media"]][rule["selector"]][ rule["property"] ] = formattedValue; } if (undefined !== newValue["size"]["tablet"]) { var unit = undefined !== newValue?.["unit"]?.["tablet"] ? newValue["unit"]["tablet"] : ""; formattedValue = ("" !== newValue["size"]["tablet"][0] ? newValue["size"]["tablet"][0] : "0") + unit + " " + ("" !== newValue["size"]["tablet"][1] ? newValue["size"]["tablet"][1] : "0") + unit + " " + ("" !== newValue["size"]["tablet"][2] ? newValue["size"]["tablet"][2] : "0") + unit + " " + ("" !== newValue["size"]["tablet"][3] ? newValue["size"]["tablet"][3] : "0") + unit; // Define properties. if (undefined == cssArray[media_tablet]) cssArray[media_tablet] = {}; if ( undefined == cssArray[media_tablet][rule["selector"]] ) cssArray[media_tablet][rule["selector"]] = {}; cssArray[media_tablet][rule["selector"]][ rule["property"] ] = formattedValue; } if (undefined !== newValue["size"]["mobile"]) { var unit = undefined !== newValue?.["unit"]?.["mobile"] ? newValue["unit"]["mobile"] : ""; formattedValue = rule["pattern"].replace( "$", newValue["size"]["mobile"] + unit ); formattedValue = ("" !== newValue["size"]["mobile"][0] ? newValue["size"]["mobile"][0] : "0") + unit + " " + ("" !== newValue["size"]["mobile"][1] ? newValue["size"]["mobile"][1] : "0") + unit + " " + ("" !== newValue["size"]["mobile"][2] ? newValue["size"]["mobile"][2] : "0") + unit + " " + ("" !== newValue["size"]["mobile"][3] ? newValue["size"]["mobile"][3] : "0") + unit; // Define properties. if (undefined == cssArray[media_mobile]) cssArray[media_mobile] = {}; if ( undefined == cssArray[media_mobile][rule["selector"]] ) cssArray[media_mobile][rule["selector"]] = {}; cssArray[media_mobile][rule["selector"]][ rule["property"] ] = formattedValue; } } else { formattedValue = (newValue["size"] && "" !== newValue["size"][0] ? newValue["size"][0] : "0") + (newValue["unit"] ? newValue["unit"] : "px") + " " + (newValue["size"] && "" !== newValue["size"][1] ? newValue["size"][1] : "0") + (newValue["unit"] ? newValue["unit"] : "px") + " " + (newValue["size"] && "" !== newValue["size"][2] ? newValue["size"][2] : "0") + (newValue["unit"] ? newValue["unit"] : "px") + " " + (newValue["size"] && "" !== newValue["size"][3] ? newValue["size"][3] : "0") + (newValue["unit"] ? newValue["unit"] : "px"); formattedValue = rule["pattern"].replace( "$", formattedValue ); // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if ( undefined == cssArray[rule["media"]][rule["selector"]] ) cssArray[rule["media"]][rule["selector"]] = {}; cssArray[rule["media"]][rule["selector"]][ rule["property"] ] = formattedValue; } } else if ( undefined !== rule["key"] && undefined !== newValue[rule["key"]] ) { // Fetch the property newValue using the key from setting value. if ("object" == typeof newValue[rule["key"]]) { if ( undefined !== newValue[rule["key"]]["color"] && "" !== newValue[rule["key"]]["color"] ) { var color_type = undefined !== newValue[rule["key"]]["is_palette"] && "" !== newValue[rule["key"]]["is_palette"] ? "var(--global-" + newValue[rule["key"]]["is_palette"] + ")" : newValue[rule["key"]]["color"]; formattedValue = rule["pattern"].replace( "$", color_type ); // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if ( undefined == cssArray[rule["media"]][rule["selector"]] ) cssArray[rule["media"]][rule["selector"]] = {}; cssArray[rule["media"]][rule["selector"]][ rule["property"] ] = formattedValue; } if ( undefined !== newValue[rule["key"]]["desktop"] ) { var unit = undefined !== newValue["unit"]["desktop"] ? newValue["unit"]["desktop"] : ""; formattedValue = rule["pattern"].replace( "$", newValue[rule["key"]]["desktop"] + unit ); // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if ( undefined == cssArray[rule["media"]][rule["selector"]] ) cssArray[rule["media"]][rule["selector"]] = {}; cssArray[rule["media"]][rule["selector"]][ rule["property"] ] = formattedValue; } if (undefined !== newValue[rule["key"]]["tablet"]) { var unit = undefined !== newValue["unit"]["tablet"] ? newValue["unit"]["tablet"] : ""; formattedValue = rule["pattern"].replace( "$", newValue[rule["key"]]["tablet"] + unit ); // Define properties. if (undefined == cssArray[media_tablet]) cssArray[media_tablet] = {}; if ( undefined == cssArray[media_tablet][rule["selector"]] ) cssArray[media_tablet][rule["selector"]] = {}; cssArray[media_tablet][rule["selector"]][ rule["property"] ] = formattedValue; } if (undefined !== newValue[rule["key"]]["mobile"]) { var unit = undefined !== newValue["unit"]["mobile"] ? newValue["unit"]["mobile"] : ""; formattedValue = rule["pattern"].replace( "$", newValue[rule["key"]]["mobile"] + unit ); // Define properties. if (undefined == cssArray[media_mobile]) cssArray[media_mobile] = {}; if ( undefined == cssArray[media_mobile][rule["selector"]] ) cssArray[media_mobile][rule["selector"]] = {}; cssArray[media_mobile][rule["selector"]][ rule["property"] ] = formattedValue; } } else { if (rule["key"] === "size") { formattedValue = newValue[rule["key"]] + (newValue["unit"] ? newValue["unit"] : "px"); } else if ( typeof newValue[rule["key"]] === "string" && newValue[rule["key"]].includes("palette") ) { formattedValue = "var(--global-" + newValue[rule["key"]] + ")"; } else { formattedValue = newValue[rule["key"]]; } formattedValue = rule["pattern"].replace( "$", formattedValue ); // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if ( undefined == cssArray[rule["media"]][rule["selector"]] ) cssArray[rule["media"]][rule["selector"]] = {}; cssArray[rule["media"]][rule["selector"]][ rule["property"] ] = formattedValue; } } } else { // Define new value based on the specified pattern. formattedValue = rule["pattern"].replace("$", newValue); // Define properties. if (undefined == cssArray[rule["media"]]) cssArray[rule["media"]] = {}; if (undefined == cssArray[rule["media"]][rule["selector"]]) cssArray[rule["media"]][rule["selector"]] = {}; cssArray[rule["media"]][rule["selector"]][ rule["property"] ] = formattedValue; } }); // Loop into the sorted array to build CSS string. _.each(cssArray, function (selectors, media) { if ("global" !== media) css += media + "{"; _.each(selectors, function (properties, selector) { css += selector + "{"; _.each(properties, function (value, property) { css += property + ":" + value + ";"; }); css += "}"; }); if ("global" !== media) css += "}"; }); // Add CSS string to <style> tag. $style.html(css); }, live_class: function (key, rules, newValue) { _.each(rules, function (rule) { var formattedValue; if (undefined == rule["selector"]) { return; } rule["pattern"] = rule["pattern"] || "$"; if ("object" == typeof newValue) { if ( undefined !== rule["key"] && undefined !== newValue[rule["key"]] ) { // Fetch the property newValue using the key from setting value. if ("object" == typeof newValue[rule["key"]]) { if ( undefined !== newValue[rule["key"]]["desktop"] && "" !== newValue[rule["key"]]["desktop"] ) { if (undefined !== rule["pattern"]["desktop"]) { var regex = new RegExp( rule["pattern"]["desktop"].replace( "$", "[\\w\\-]+" ), "i" ); var device_pattern = rule["pattern"]["desktop"]; } else { var regex = new RegExp( rule["pattern"].replace( "$", "[\\w\\-]+" ), "i" ); var device_pattern = rule["pattern"]; } if (undefined !== rule["selector"]["desktop"]) { var items = document.querySelectorAll( rule["selector"]["desktop"] ); } else { var items = document.querySelectorAll( rule["selector"] ); } formattedValue = device_pattern.replace( "$", newValue[rule["key"]]["desktop"] ); items.forEach(function (item) { if (item.className.match(regex)) { item.className = item.className.replace( regex, formattedValue ); } else { item.className += " " + formattedValue; } }); } if ( undefined !== newValue[rule["key"]]["tablet"] && "" !== newValue[rule["key"]]["tablet"] ) { if (undefined !== rule["pattern"]["tablet"]) { var regex = new RegExp( rule["pattern"]["tablet"].replace( "$", "[\\w\\-]+" ), "i" ); var device_pattern = rule["pattern"]["tablet"]; } else { var regex = new RegExp( rule["pattern"].replace( "$", "[\\w\\-]+" ), "i" ); var device_pattern = rule["pattern"]; } if (undefined !== rule["selector"]["tablet"]) { var items = document.querySelectorAll( rule["selector"]["tablet"] ); } else { var items = document.querySelectorAll( rule["selector"] ); } formattedValue = device_pattern.replace( "$", newValue[rule["key"]]["tablet"] ); items.forEach(function (item) { if (item.className.match(regex)) { item.className = item.className.replace( regex, formattedValue ); } else { item.className += " " + formattedValue; } }); } if ( undefined !== newValue[rule["key"]]["mobile"] && "" !== newValue[rule["key"]]["mobile"] ) { if (undefined !== rule["pattern"]["mobile"]) { var regex = new RegExp( rule["pattern"]["mobile"].replace( "$", "[\\w\\-]+" ), "i" ); var device_pattern = rule["pattern"]["mobile"]; } else { var regex = new RegExp( rule["pattern"].replace( "$", "[\\w\\-]+" ), "i" ); var device_pattern = rule["pattern"]; } if (undefined !== rule["selector"]["mobile"]) { var items = document.querySelectorAll( rule["selector"]["mobile"] ); } else { var items = document.querySelectorAll( rule["selector"] ); } formattedValue = device_pattern.replace( "$", newValue[rule["key"]]["mobile"] ); items.forEach(function (item) { if (item.className.match(regex)) { item.className = item.className.replace( regex, formattedValue ); } else { item.className += " " + formattedValue; } }); } } else { var regex = new RegExp( rule["pattern"].replace("$", "[\\w\\-]+"), "i" ), items = document.querySelectorAll( rule["selector"] ), formattedValue = rule["pattern"].replace( "$", newValue[rule["key"]] ); items.forEach(function (item) { if (item.className.match(regex)) { item.className = item.className.replace( regex, formattedValue ); } else { item.className += " " + formattedValue; } }); } } else { if ( undefined !== newValue["desktop"] && "" !== newValue["desktop"] ) { if (undefined !== rule["pattern"]["desktop"]) { var regex = new RegExp( rule["pattern"]["desktop"].replace( "$", "[\\w\\-]+" ), "i" ); var device_pattern = rule["pattern"]["desktop"]; } else { var regex = new RegExp( rule["pattern"].replace("$", "[\\w\\-]+"), "i" ); var device_pattern = rule["pattern"]; } if (undefined !== rule["selector"]["desktop"]) { var items = document.querySelectorAll( rule["selector"]["desktop"] ); } else { var items = document.querySelectorAll( rule["selector"] ); } formattedValue = device_pattern.replace( "$", newValue["desktop"] ); items.forEach(function (item) { if (item.className.match(regex)) { item.className = item.className.replace( regex, formattedValue ); } else { item.className += " " + formattedValue; } }); } if ( undefined !== newValue["tablet"] && "" !== newValue["tablet"] ) { if (undefined !== rule["pattern"]["tablet"]) { var regex = new RegExp( rule["pattern"]["tablet"].replace( "$", "[\\w\\-]+" ), "i" ); var device_pattern = rule["pattern"]["tablet"]; } else { var regex = new RegExp( rule["pattern"].replace("$", "[\\w\\-]+"), "i" ); var device_pattern = rule["pattern"]; } if (undefined !== rule["selector"]["tablet"]) { var items = document.querySelectorAll( rule["selector"]["tablet"] ); } else { var items = document.querySelectorAll( rule["selector"] ); } formattedValue = device_pattern.replace( "$", newValue["tablet"] ); items.forEach(function (item) { if (item.className.match(regex)) { item.className = item.className.replace( regex, formattedValue ); } else { item.className += " " + formattedValue; } }); } if ( undefined !== newValue["mobile"] && "" !== newValue["mobile"] ) { if (undefined !== rule["pattern"]["mobile"]) { var regex = new RegExp( rule["pattern"]["mobile"].replace( "$", "[\\w\\-]+" ), "i" ); var device_pattern = rule["pattern"]["mobile"]; } else { var regex = new RegExp( rule["pattern"].replace("$", "[\\w\\-]+"), "i" ); var device_pattern = rule["pattern"]; } if (undefined !== rule["selector"]["mobile"]) { var items = document.querySelectorAll( rule["selector"]["mobile"] ); } else { var items = document.querySelectorAll( rule["selector"] ); } formattedValue = device_pattern.replace( "$", newValue["mobile"] ); items.forEach(function (item) { if (item.className.match(regex)) { item.className = item.className.replace( regex, formattedValue ); } else { item.className += " " + formattedValue; } }); } } } else { var regex = new RegExp( rule["pattern"].replace("$", "[\\w\\-]+"), "i" ), items = document.querySelectorAll(rule["selector"]), formattedValue = rule["pattern"].replace("$", newValue); items.forEach(function (item) { if (item.className.match(regex)) { item.className = item.className.replace( regex, formattedValue ); } else { item.className += " " + formattedValue; } }); } }); }, live_palette: function (key, rules, newValue) { var palette = JSON.parse(newValue); var active = palette && palette["active"] ? palette["active"] : "palette"; if (palette && palette[active]) { _.each(palette[active], function (color) { if (color.slug == "palette10" && color.color == "#FfFfFf") { document.documentElement.style.setProperty( "--global-" + color.slug, "oklch(from var(--global-palette1) calc(l + 0.10 * (1 - l)) calc(c * 1.00) calc(h + 180) / 100%)" ); } else if (color.slug && color.color) { document.documentElement.style.setProperty( "--global-" + color.slug, color.color ); } }); } }, live_global: function (key, rules, newValue) { _.each(rules, function (rule) { var formattedValue; if ( undefined == rule["property"] || undefined == rule["selector"] ) { return; } rule["media"] = rule["media"] || "global"; rule["pattern"] = rule["pattern"] || "$"; if ("object" == typeof newValue) { if ( undefined !== rule["key"] && undefined !== newValue[rule["key"]] ) { // Fetch the property newValue using the key from setting value. if ( typeof newValue[rule["key"]] === "string" && newValue[rule["key"]].includes("palette") && !newValue[rule["key"]].includes("gradient") ) { formattedValue = "var(--global-" + newValue[rule["key"]] + ")"; } else { formattedValue = newValue[rule["key"]]; } formattedValue = rule["pattern"].replace( "$", formattedValue ); // Define properties. document.documentElement.style.setProperty( rule["selector"], formattedValue ); } } }); }, live_html: function (key, rules, newValue) { _.each(rules, function (rule) { var value = newValue; if (undefined == rule["selector"]) return; rule["pattern"] = rule["pattern"] || "$"; var elements = document.querySelectorAll(rule["selector"]), formattedValue = rule["pattern"].replace("$", value); // Change innerHTML on all targeted elements. elements.forEach(function (element) { if (undefined !== rule["property"]) { element.setAttribute(rule["property"], formattedValue); } else { element.innerHTML = formattedValue; } }); }); }, }; if ( kadenceCustomizerPreviewData && kadenceCustomizerPreviewData.liveControl ) { _.each( kadenceCustomizerPreviewData.liveControl, function (liveControl, key) { var eachLiveControl = {}; _.each(liveControl, function (rule) { var type = rule["type"]; if (undefined == eachLiveControl[type]) eachLiveControl[type] = []; eachLiveControl[type].push(rule); }); wp.customize(key, function (value) { value.bind(function (newValue) { _.each(eachLiveControl, function (rule, type) { var functionName = "live_".concat(type); kadenceCustomizer[functionName]( key, rule, newValue ); }); }); }); } ); } $(document).on("customize-preview-menu-refreshed", function (e, params) { if (params.wpNavMenuArgs.show_toggles) { window.kadence.initMobileToggleSub(); } }); })(jQuery); js/kadence-customizer-preview.min.js 0000644 00000076647 15151531434 0013601 0 ustar 00 (function(t){"use strict";var e=t(window),a=t(document),i=t("body");wp.customize("blogname",function(e){e.bind(function(e){t(".site-title").text(e)})}),wp.customize("blogdescription",function(e){e.bind(function(e){t(".site-description").text(e)})}),wp.customize.bind("preview-ready",function(){var i=window.parent===window?null:window.parent;a.on("click",".site-header-focus-item .item-customizer-focus, .builder-item-focus .edit-row-action",function(a){a.preventDefault(),a.stopPropagation();var e=t(this).closest(".site-header-focus-item"),l=e.attr("data-section")||"";l&&i.wp.customize.section(l)&&i.wp.customize.section(l).focus()}),a.on("click",".site-footer-focus-item .item-customizer-focus",function(a){a.preventDefault(),a.stopPropagation();var e=t(this).closest(".site-footer-focus-item"),l=e.attr("data-section")||"";l&&i.wp.customize.section(l)&&i.wp.customize.section(l).focus()})}),document.addEventListener("DOMContentLoaded",function(){-1!=navigator.userAgent.toLowerCase().indexOf("safari/")&&-1<navigator.userAgent.toLowerCase().indexOf("chrome");var e="undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&wp.customize.widgetsPreview&&wp.customize.widgetsPreview.WidgetPartial;e&&wp.customize.selectiveRefresh.bind("partial-content-rendered",function(e){"header_desktop_items"===e.partial.id&&window.kadence.initToggleDrawer(),window.kadence.initTransHeaderPadding(),"undefined"!=typeof window.kadence.initStickyHeader&&(window.kadence.initStickyHeader(),window.kadence.initScrollToTop())})});var l={calculate_preferred_value_with_viewports:function(e){var t=e.minFontSize,a=e.maxFontSize,i=e.minScreenSize,l=e.maxScreenSize,o=e.fontSizeUnit||"px",d=e.screenSizeUnit||"px";if(!t||!a||!i||!l)return"";var r=t,s=a;if("px"===o&&(r=t/16,s=a/16,o="rem"),"rem"===o||"em"===o){var n=1600*(s-r)/(l-i),c=r-n/1600*i,p=Math.round(1e4*c)/1e4,m=Math.round(1e4*n)/1e4;return p+o+" + "+m+"vw"}var n=100*((a-t)/(l-i)),c=t-n*i/100,p=Math.round(1e4*c)/1e4,m=Math.round(1e4*n)/1e4;return p+o+" + "+m+"vw"},generate_clamp_value:function(e){var t=!0===e.clamped;if(t){var a=e.minFontSize,i=e.maxFontSize,l=e.fontSizeUnit||"px",o=this.calculate_preferred_value_with_viewports(e);if(o&&a&&i)return"clamp("+a+l+", "+o+", "+i+l+")"}return""},live_css_typography:function(e,a,i){var o,d="kadence-customize-preview-css-"+e,r=t("#"+d),s="",n={};0===r.length&&(r=t(document.createElement("style")),r.attr("id",d),r.attr("type","text/css"),r.appendTo(t("head"))),_.each(a,function(e){if(null!=e.property&&null!=e.selector&&(e.media=e.media||"global",e.pattern=e.pattern||"$","object"==typeof i)){let r="";if(void 0!==i.clamped&&!0===i.clamped&&(r=l.generate_clamp_value(i)),r)o=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][o]&&(n[e.media][o]={}),n[e.media][o]["font-size"]=r;else if(void 0!==i.size&&"object"==typeof i.size&&"family"!==e.key){if(void 0!==i.size.desktop&&""!==i.size.desktop){o=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][o]&&(n[e.media][o]={});var t=void 0!==i.sizeType&&""!==i.sizeType?i.sizeType:"px";n[e.media][o]["font-size"]=i.size.desktop+t}if(void 0!==i.size.tablet&&""!==i.size.tablet){o=void 0===e.selector.tablet?e.selector:e.selector.tablet,null==n["@media screen and (max-width: 1023px)"]&&(n["@media screen and (max-width: 1023px)"]={}),null==n["@media screen and (max-width: 1023px)"][o]&&(n["@media screen and (max-width: 1023px)"][o]={});var t=void 0!==i.sizeType&&""!==i.sizeType?i.sizeType:"px";n["@media screen and (max-width: 1023px)"][o]["font-size"]=i.size.tablet+t}if(void 0!==i.size.mobile&&""!==i.size.mobile){o=void 0===e.selector.mobile?e.selector:e.selector.mobile,null==n["@media screen and (max-width: 499px)"]&&(n["@media screen and (max-width: 499px)"]={}),null==n["@media screen and (max-width: 499px)"][o]&&(n["@media screen and (max-width: 499px)"][o]={});var t=void 0!==i.sizeType&&""!==i.sizeType?i.sizeType:"px";n["@media screen and (max-width: 499px)"][o]["font-size"]=i.size.mobile+t}}if(void 0!==i.lineHeight&&"object"==typeof i.lineHeight&&"family"!==e.key){if(void 0!==i.lineHeight.desktop&&""!==i.lineHeight.desktop){o=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][o]&&(n[e.media][o]={});var t=void 0!==i.lineType&&""!==i.lineType&&"-"!==i.lineType?i.lineType:"";n[e.media][o]["line-height"]=i.lineHeight.desktop+t}if(void 0!==i.lineHeight.tablet&&""!==i.lineHeight.tablet){o=void 0===e.selector.tablet?e.selector:e.selector.tablet,null==n["@media screen and (max-width: 1023px)"]&&(n["@media screen and (max-width: 1023px)"]={}),null==n["@media screen and (max-width: 1023px)"][o]&&(n["@media screen and (max-width: 1023px)"][o]={});var t=void 0!==i.lineType&&""!==i.lineType&&"-"!==i.lineType?i.lineType:"";n["@media screen and (max-width: 1023px)"][o]["line-height"]=i.lineHeight.tablet+t}if(void 0!==i.lineHeight.mobile&&""!==i.lineHeight.mobile){o=void 0===e.selector.mobile?e.selector:e.selector.mobile,null==n["@media screen and (max-width: 499px)"]&&(n["@media screen and (max-width: 499px)"]={}),null==n["@media screen and (max-width: 499px)"][o]&&(n["@media screen and (max-width: 499px)"][o]={});var t=void 0!==i.lineType&&""!==i.lineType&&"-"!==i.lineType?i.lineType:"";n["@media screen and (max-width: 499px)"][o]["line-height"]=i.lineHeight.mobile+t}}if(void 0!==i.letterSpacing&&"object"==typeof i.letterSpacing&&"family"!==e.key){if(void 0!==i.letterSpacing.desktop&&""!==i.letterSpacing.desktop){o=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][o]&&(n[e.media][o]={});var t=void 0!==i.spacingType&&""!==i.spacingType?i.spacingType:"";n[e.media][o]["letter-spacing"]=i.letterSpacing.desktop+t}if(void 0!==i.letterSpacing.tablet&&""!==i.letterSpacing.tablet){o=void 0===e.selector.tablet?e.selector:e.selector.tablet,null==n["@media screen and (max-width: 1023px)"]&&(n["@media screen and (max-width: 1023px)"]={}),null==n["@media screen and (max-width: 1023px)"][o]&&(n["@media screen and (max-width: 1023px)"][o]={});var t=void 0!==i.spacingType&&""!==i.spacingType?i.spacingType:"";n["@media screen and (max-width: 1023px)"][o]["letter-spacing"]=i.letterSpacing.tablet+t}if(void 0!==i.letterSpacing.mobile&&""!==i.letterSpacing.mobile){o=void 0===e.selector.mobile?e.selector:e.selector.mobile,null==n["@media screen and (max-width: 499px)"]&&(n["@media screen and (max-width: 499px)"]={}),null==n["@media screen and (max-width: 499px)"][o]&&(n["@media screen and (max-width: 499px)"][o]={});var t=void 0!==i.spacingType&&""!==i.spacingType?i.spacingType:"";n["@media screen and (max-width: 499px)"][o]["letter-spacing"]=i.letterSpacing.mobile+t}}if(void 0!==i.family&&""!==i.family){if(o=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][o]&&(n[e.media][o]={}),void 0!==i.google&&i.google&&"undefined"!=typeof WebFont&&WebFont){var a=i.family;"family"===e.key&&i.variant?a+=":"+i.variant.toString():i.variant&&""!==i.variant&&(a+=":"+i.variant),WebFont.load({google:{families:[a]}})}n[e.media][o]["font-family"]="inherit"===i.family?"":i.family}if(void 0!==i.style&&"family"!==e.key&&(o=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][o]&&(n[e.media][o]={}),n[e.media][o]["font-style"]=i.style),void 0!==i.weight&&"family"!==e.key&&(o=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][o]&&(n[e.media][o]={}),n[e.media][o]["font-weight"]=i.weight),void 0!==i.transform&&""!==i.transform&&"family"!==e.key&&(o=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][o]&&(n[e.media][o]={}),n[e.media][o]["text-transform"]=i.transform),void 0!==i.color&&"family"!==e.key){o=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][o]&&(n[e.media][o]={});var d="";d=i.color.includes("palette")?"var(--global-"+i.color+")":i.color,n[e.media][o].color=d}}}),_.each(n,function(e,t){"global"!==t&&(s+=t+"{"),_.each(e,function(e,t){s+=t+"{",_.each(e,function(e,t){s+=t+":"+e+";"}),s+="}"}),"global"!==t&&(s+="}")}),r.html(s)},live_css_background:function(e,a,i){var l,o="kadence-customize-preview-css-"+e,d=t("#"+o),r="",s={};0===d.length&&(d=t(document.createElement("style")),d.attr("id",o),d.attr("type","text/css"),d.appendTo(t("head"))),_.each(a,function(e){if(null!=e.property&&null!=e.selector&&(e.media=e.media||"global",e.pattern=e.pattern||"$","object"==typeof i)){if(void 0!==i.desktop){l=void 0===e.selector.desktop?e.selector:e.selector.desktop,null==s[e.media]&&(s[e.media]={}),null==s[e.media][l]&&(s[e.media][l]={});var t=void 0!==i.desktop.type&&""!==i.desktop.type?i.desktop.type:"color",a="";if(void 0!==i.desktop.color&&""!==i.desktop.color&&(i.desktop.color.includes("palette")?a="var(--global-"+i.desktop.color+")":a=i.desktop.color),"image"===t){var o=void 0!==i.desktop.image&&void 0!==i.desktop.image.url&&""!==i.desktop.image.url&&"url("+i.desktop.image.url+")";o?(s[e.media][l]["background-color"]=a,s[e.media][l]["background-image"]=o,s[e.media][l]["background-repeat"]=void 0!==i.desktop.image.repeat&&""!==i.desktop.image.repeat?i.desktop.image.repeat:"inherit",s[e.media][l]["background-size"]=void 0!==i.desktop.image.size&&""!==i.desktop.image.size?i.desktop.image.size:"inherit",s[e.media][l]["background-position"]=void 0!==i.desktop.image.position&&void 0!==i.desktop.image.position.x&&""!==i.desktop.image.position.x?`${100*i.desktop.image.position.x}% ${100*i.desktop.image.position.y}%`:"center",s[e.media][l]["background-attachment"]=void 0!==i.desktop.image.attachment&&""!==i.desktop.image.attachment?i.desktop.image.attachment:"inherit"):""!==a&&(s[e.media][l].background=a)}else if("gradient"===t){var d=void 0!==i.desktop.gradient&&""!==i.desktop.gradient&&i.desktop.gradient;""!==d&&(s[e.media][l].background=d)}else""!==a&&(s[e.media][l].background=a)}if(void 0!==i.tablet){l=void 0===e.selector.tablet?e.selector:e.selector.tablet,null==s["@media screen and (max-width: 1023px)"]&&(s["@media screen and (max-width: 1023px)"]={}),null==s["@media screen and (max-width: 1023px)"][l]&&(s["@media screen and (max-width: 1023px)"][l]={});var t=void 0!==i.tablet.type&&""!==i.tablet.type?i.tablet.type:"color",a="";if(void 0!==i.tablet.color&&""!==i.tablet.color&&(i.tablet.color.includes("palette")?a="var(--global-"+i.tablet.color+")":a=i.tablet.color),"image"===t){var o=void 0!==i.tablet.image&&void 0!==i.tablet.image.url&&""!==i.tablet.image.url&&"url("+i.tablet.image.url+")";o?(s["@media screen and (max-width: 1023px)"][l]["background-color"]=a,s["@media screen and (max-width: 1023px)"][l]["background-image"]=o,s["@media screen and (max-width: 1023px)"][l]["background-repeat"]=void 0!==i.tablet.image.repeat&&""!==i.tablet.image.repeat?i.tablet.image.repeat:"inherit",s["@media screen and (max-width: 1023px)"][l]["background-size"]=void 0!==i.tablet.image.size&&""!==i.tablet.image.size?i.tablet.image.size:"inherit",s["@media screen and (max-width: 1023px)"][l]["background-position"]=void 0!==i.tablet.image.position&&void 0!==i.tablet.image.position.x&&""!==i.tablet.image.position.x?`${100*i.tablet.image.position.x}% ${100*i.tablet.image.position.y}%`:"center",s["@media screen and (max-width: 1023px)"][l]["background-attachment"]=void 0!==i.tablet.image.attachment&&""!==i.tablet.image.attachment?i.tablet.image.attachment:"inherit"):""!==a&&(s["@media screen and (max-width: 1023px)"][l].background=a)}else if("gradient"===t){var d=void 0!==i.tablet.gradient&&""!==i.tablet.gradient&&i.tablet.gradient;""!==d&&(s[e.media][l].background=d)}else""!==a&&(s["@media screen and (max-width: 1023px)"][l].background=a)}if(void 0!==i.mobile){l=void 0===e.selector.mobile?e.selector:e.selector.mobile,null==s["@media screen and (max-width: 499px)"]&&(s["@media screen and (max-width: 499px)"]={}),null==s["@media screen and (max-width: 499px)"][l]&&(s["@media screen and (max-width: 499px)"][l]={});var t=void 0!==i.mobile.type&&""!==i.mobile.type?i.mobile.type:"color",a="";if(void 0!==i.mobile.color&&""!==i.mobile.color&&(i.mobile.color.includes("palette")?a="var(--global-"+i.mobile.color+")":a=i.mobile.color),"image"===t){var o=void 0!==i.mobile.image&&void 0!==i.mobile.image.url&&""!==i.mobile.image.url&&"url("+i.mobile.image.url+")";o?(s["@media screen and (max-width: 499px)"][l]["background-color"]=a,s["@media screen and (max-width: 499px)"][l]["background-image"]=o,s["@media screen and (max-width: 499px)"][l]["background-repeat"]=void 0!==i.mobile.image.repeat&&""!==i.mobile.image.repeat?i.mobile.image.repeat:"inherit",s["@media screen and (max-width: 499px)"][l]["background-size"]=void 0!==i.mobile.image.size&&""!==i.mobile.image.size?i.mobile.image.size:"inherit",s["@media screen and (max-width: 499px)"][l]["background-position"]=void 0!==i.mobile.image.position&&void 0!==i.mobile.image.position.x&&""!==i.mobile.image.position.x?`${100*i.mobile.image.position.x}% ${100*i.mobile.image.position.y}%`:"inherit",s["@media screen and (max-width: 499px)"][l]["background-attachment"]=void 0!==i.mobile.image.attachment&&""!==i.mobile.image.attachment?i.mobile.image.attachment:"inherit"):""!==a&&(s["@media screen and (max-width: 499px)"][l].background=a)}else if("gradient"===t){var d=void 0!==i.mobile.gradient&&""!==i.mobile.gradient&&i.mobile.gradient;""!==d&&(s[e.media][l].background=d)}else""!==a&&(s["@media screen and (max-width: 499px)"][l].background=a)}}}),_.each(s,function(e,t){"global"!==t&&(r+=t+"{"),_.each(e,function(e,t){r+=t+"{",_.each(e,function(e,t){r+=t+":"+e+";"}),r+="}"}),"global"!==t&&(r+="}")}),d.html(r)},live_css_border:function(e,a,i){var l,o,d="kadence-customize-preview-css-"+e,r=t("#"+d),s="",n={};0===r.length&&(r=t(document.createElement("style")),r.attr("id",d),r.attr("type","text/css"),r.appendTo(t("head"))),_.each(a,function(e){if(null!=e.property&&null!=e.selector&&(e.media=e.media||"global",e.pattern=e.pattern||"$","object"==typeof i)){if(void 0!==i.desktop){l=void 0===e.selector.desktop?e.selector:e.selector.desktop,o=void 0===e.property.desktop?e.property:e.property.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][l]&&(n[e.media][l]={});var t=void 0!==i.desktop.style&&""!==i.desktop.style?i.desktop.style:"undefined";if("undefined"!==t){var a="";void 0!==i.desktop.color&&""!==i.desktop.color&&(i.desktop.color.includes("palette")?a="var(--global-"+i.desktop.color+")":a=i.desktop.color),n[e.media][l][o]=""===a?(i.desktop.width?i.desktop.width:"0")+i.desktop.unit+" "+t+" transparent":(i.desktop.width?i.desktop.width:"0")+i.desktop.unit+" "+t+" "+a}}if(void 0!==i.tablet&&void 0!==i.tablet.width&&""!==i.tablet.width){l=void 0===e.selector.tablet?e.selector:e.selector.tablet,o=void 0===e.property.tablet?e.property:e.property.tablet,null==n["@media screen and (max-width: 1023px)"]&&(n["@media screen and (max-width: 1023px)"]={}),null==n["@media screen and (max-width: 1023px)"][l]&&(n["@media screen and (max-width: 1023px)"][l]={});var d=void 0!==i.tablet.style&&""!==i.tablet.style?i.tablet.style:"",r=void 0!==i.desktop.style&&""!==i.desktop.style?i.desktop.style:"",t="undefined";if(""===d?""!==r&&(t=r):t=d,"undefined"!==t){var a="",s=i.desktop.width?i.desktop.width:"0",c=i.desktop.unit?i.desktop.unit:"px";void 0!==i.tablet.color&&""!==i.tablet.color?i.tablet.color.includes("palette")?a="var(--global-"+i.tablet.color+")":a=i.tablet.color:void 0!==i.desktop.color&&""!==i.desktop.color&&(i.desktop.color.includes("palette")?a="var(--global-"+i.desktop.color+")":a=i.desktop.color),n["@media screen and (max-width: 1023px)"][l][o]=""===a?(""===i.tablet.width?s:i.tablet.width)+(i.tablet.unit?i.tablet.unit:c)+" "+t+" transparent":(""===i.tablet.width?s:i.tablet.width)+(i.tablet.unit?i.tablet.unit:c)+" "+t+" "+a}}if(void 0!==i.mobile&&void 0!==i.mobile.width&&""!==i.mobile.width){l=void 0===e.selector.mobile?e.selector:e.selector.mobile,o=void 0===e.property.mobile?e.property:e.property.mobile,null==n["@media screen and (max-width: 499px)"]&&(n["@media screen and (max-width: 499px)"]={}),null==n["@media screen and (max-width: 499px)"][l]&&(n["@media screen and (max-width: 499px)"][l]={});var p=void 0!==i.mobile.style&&""!==i.mobile.style?i.mobile.style:"",d=void 0!==i?.["tablet"]?.["style"]&&""!==i?.["tablet"]?.["style"]?i.tablet.style:"",r=void 0!==i?.["desktop"]?.["style"]&&""!==i?.["desktop"]?.["style"]?i.desktop.style:"",t="undefined";if(""===p?""===d?""!==r&&(t=r):t=d:t=p,"undefined"!==t){var a="",m=i.desktop.width?i.desktop.width:"0",b=i.desktop.unit?i.desktop.unit:"px",s=i.tablet&&i.tablet.width?i.tablet.width:m,c=i.tablet&&i.tablet.unit?i.tablet.unit:b;void 0!==i.mobile.color&&""!==i.mobile.color?i.mobile.color.includes("palette")?a="var(--global-"+i.mobile.color+")":a=i.mobile.color:void 0!==i.tablet&&void 0!==i.tablet.color&&""!==i.tablet.color?i.tablet.color.includes("palette")?a="var(--global-"+i.tablet.color+")":a=i.tablet.color:void 0!==i.desktop.color&&""!==i.desktop.color&&(i.desktop.color.includes("palette")?a="var(--global-"+i.desktop.color+")":a=i.desktop.color),n["@media screen and (max-width: 499px)"][l][o]=""===a?(""===i.mobile.width?s:i.mobile.width)+(i.mobile.unit?i.mobile.unit:c)+" "+t+" transparent":(""===i.mobile.width?s:i.mobile.width)+(i.mobile.unit?i.mobile.unit:c)+" "+t+" "+a}}if(void 0!==i.style){l=e.selector,o=e.property,null==n[e.media]&&(n[e.media]={}),null==n[e.media][l]&&(n[e.media][l]={});var t=void 0!==i.style&&""!==i.style?i.style:"none",a="";void 0!==i.color&&""!==i.color&&(i.color.includes("palette")?a="var(--global-"+i.color+")":a=i.color),n[e.media][l][o]=""===a?(i.width?i.width:"0")+i.unit+" "+t+" transparent":(i.width?i.width:"0")+i.unit+" "+t+" "+a}}}),_.each(n,function(e,t){"global"!==t&&(s+=t+"{"),_.each(e,function(e,t){s+=t+"{",_.each(e,function(e,t){s+=t+":"+e+";"}),s+="}"}),"global"!==t&&(s+="}")}),r.html(s)},live_css_boxshadow:function(e,a,i){var l,o,d="kadence-customize-preview-css-"+e,r=t("#"+d),s="",n={};0===r.length&&(r=t(document.createElement("style")),r.attr("id",d),r.attr("type","text/css"),r.appendTo(t("head"))),_.each(a,function(e){if(null!=e.property&&null!=e.selector)if(e.media=e.media||"global",e.pattern=e.pattern||"$",i?.disabled)l=e.selector,o=e.property,null==n[e.media]&&(n[e.media]={}),null==n[e.media][l]&&(n[e.media][l]={}),n[e.media][l][o]="none";else if("object"==typeof i){if(void 0!==i.desktop){l=void 0===e.selector.desktop?e.selector:e.selector.desktop,o=void 0===e.property.desktop?e.property:e.property.desktop,null==n[e.media]&&(n[e.media]={}),null==n[e.media][l]&&(n[e.media][l]={});var t=void 0!==i.desktop.style&&""!==i.desktop.style?i.desktop.style:"undefined";if("undefined"!==t){var a="";void 0!==i.desktop.color&&""!==i.desktop.color&&(i.desktop.color.includes("palette")?a="var(--global-"+i.desktop.color+")":a=i.desktop.color),n[e.media][l][o]=""===a?(i.desktop.width?i.desktop.width:"0")+i.desktop.unit+" "+t+" transparent":(i.desktop.width?i.desktop.width:"0")+i.desktop.unit+" "+t+" "+a}}if(void 0!==i.tablet){l=void 0===e.selector.tablet?e.selector:e.selector.tablet,o=void 0===e.property.tablet?e.property:e.property.tablet,null==n["@media screen and (max-width: 1023px)"]&&(n["@media screen and (max-width: 1023px)"]={}),null==n["@media screen and (max-width: 1023px)"][l]&&(n["@media screen and (max-width: 1023px)"][l]={});var t=void 0!==i.tablet.style&&""!==i.tablet.style?i.tablet.style:i.desktop.style,d=void 0!==i.tablet.style&&""!==i.tablet.style?i.tablet.style:"undefined";if("undefined"!==d){var a="",r=i.desktop.width?i.desktop.width:"0",s=i.desktop.unit?i.desktop.unit:"px";void 0!==i.tablet.color&&""!==i.tablet.color?i.tablet.color.includes("palette")?a="var(--global-"+i.tablet.color+")":a=i.tablet.color:void 0!==i.desktop.color&&""!==i.desktop.color&&(i.desktop.color.includes("palette")?a="var(--global-"+i.desktop.color+")":a=i.desktop.color),n["@media screen and (max-width: 1023px)"][l][o]=""===a?(i.tablet.width?i.tablet.width:r)+(i.tablet.unit?i.tablet.unit:s)+" "+t+" transparent":(i.tablet.width?i.tablet.width:r)+(i.tablet.unit?i.tablet.unit:s)+" "+t+" "+a}}if(void 0!==i.mobile){l=void 0===e.selector.mobile?e.selector:e.selector.mobile,o=void 0===e.property.mobile?e.property:e.property.mobile,null==n["@media screen and (max-width: 499px)"]&&(n["@media screen and (max-width: 499px)"]={}),null==n["@media screen and (max-width: 499px)"][l]&&(n["@media screen and (max-width: 499px)"][l]={});var t=void 0!==i.mobile.style&&""!==i.mobile.style?i.mobile.style:i.desktop.style,d=void 0!==i.mobile.style&&""!==i.mobile.style?i.mobile.style:"undefined";if("undefined"!==d){var a="",c=i.desktop.width?i.desktop.width:"0",p=i.desktop.unit?i.desktop.unit:"px",r=i.tablet&&i.tablet.width?i.tablet.width:c,s=i.tablet&&i.tablet.unit?i.tablet.unit:p;void 0!==i.mobile.color&&""!==i.mobile.color?i.mobile.color.includes("palette")?a="var(--global-"+i.mobile.color+")":a=i.mobile.color:void 0!==i.tablet&&void 0!==i.tablet.color&&""!==i.tablet.color?i.tablet.color.includes("palette")?a="var(--global-"+i.tablet.color+")":a=i.tablet.color:void 0!==i.desktop.color&&""!==i.desktop.color&&(i.desktop.color.includes("palette")?a="var(--global-"+i.desktop.color+")":a=i.desktop.color),n["@media screen and (max-width: 499px)"][l][o]=""===a?(i.mobile.width?i.mobile.width:r)+(i.mobile.unit?i.mobile.unit:s)+" "+t+" transparent":(i.mobile.width?i.mobile.width:r)+(i.mobile.unit?i.mobile.unit:s)+" "+t+" "+a}}if(void 0!==i.color){l=e.selector,o=e.property,null==n[e.media]&&(n[e.media]={}),null==n[e.media][l]&&(n[e.media][l]={});var m=void 0!==i.inset&&i.inset?"inset":"",a="";void 0!==i.color&&""!==i.color&&(i.color.includes("palette")?a="var(--global-"+i.color+")":a=i.color),n[e.media][l][o]=""===a?(m?m+" ":"")+(i.hOffset?i.hOffset:"0")+"px "+(i.vOffset?i.vOffset:"0")+"px "+(i.blur?i.blur:"0")+"px "+(i.spread?i.spread:"0")+"px transparent":(m?m+" ":"")+(i.hOffset?i.hOffset:"0")+"px "+(i.vOffset?i.vOffset:"0")+"px "+(i.blur?i.blur:"0")+"px "+(i.spread?i.spread:"0")+"px "+a}}}),_.each(n,function(e,t){"global"!==t&&(s+=t+"{"),_.each(e,function(e,t){s+=t+"{",_.each(e,function(e,t){s+=t+":"+e+";"}),s+="}"}),"global"!==t&&(s+="}")}),r.html(s)},live_css:function(e,a,i){"base_font_family"===a?.[0]?.["id"]&&(e="base_font_family");var l="kadence-customize-preview-css-"+e,o=t("#"+l),d="",r={};0===o.length&&(o=t(document.createElement("style")),o.attr("id",l),o.attr("type","text/css"),o.appendTo(t("head"))),_.each(a,function(e){var t;if(null!=e.property&&null!=e.selector)if(e.media=e.media||"global",e.pattern=e.pattern||"$","object"!=typeof i)t=e.pattern.replace("$",i),null==r[e.media]&&(r[e.media]={}),null==r[e.media][e.selector]&&(r[e.media][e.selector]={}),r[e.media][e.selector][e.property]=t;else if(void 0!==e.key&&"measure"===e.key){if("object"==typeof i.size&&void 0!==i.size.desktop){if(void 0!==i.size.desktop){var a=void 0!==i?.["unit"]&&void 0!==i?.["unit"]?.["desktop"]?i.unit.desktop:"px";t=(""===i.size.desktop[0]?"0":i.size.desktop[0])+a+" "+(""===i.size.desktop[1]?"0":i.size.desktop[1])+a+" "+(""===i.size.desktop[2]?"0":i.size.desktop[2])+a+" "+(""===i.size.desktop[3]?"0":i.size.desktop[3])+a,null==r[e.media]&&(r[e.media]={}),null==r[e.media][e.selector]&&(r[e.media][e.selector]={}),r[e.media][e.selector][e.property]=t}if(void 0!==i.size.tablet){var a=void 0===i?.["unit"]?.["tablet"]?"":i.unit.tablet;t=(""===i.size.tablet[0]?"0":i.size.tablet[0])+a+" "+(""===i.size.tablet[1]?"0":i.size.tablet[1])+a+" "+(""===i.size.tablet[2]?"0":i.size.tablet[2])+a+" "+(""===i.size.tablet[3]?"0":i.size.tablet[3])+a,null==r["@media screen and (max-width: 1023px)"]&&(r["@media screen and (max-width: 1023px)"]={}),null==r["@media screen and (max-width: 1023px)"][e.selector]&&(r["@media screen and (max-width: 1023px)"][e.selector]={}),r["@media screen and (max-width: 1023px)"][e.selector][e.property]=t}if(void 0!==i.size.mobile){var a=void 0===i?.["unit"]?.["mobile"]?"":i.unit.mobile;t=e.pattern.replace("$",i.size.mobile+a),t=(""===i.size.mobile[0]?"0":i.size.mobile[0])+a+" "+(""===i.size.mobile[1]?"0":i.size.mobile[1])+a+" "+(""===i.size.mobile[2]?"0":i.size.mobile[2])+a+" "+(""===i.size.mobile[3]?"0":i.size.mobile[3])+a,null==r["@media screen and (max-width: 499px)"]&&(r["@media screen and (max-width: 499px)"]={}),null==r["@media screen and (max-width: 499px)"][e.selector]&&(r["@media screen and (max-width: 499px)"][e.selector]={}),r["@media screen and (max-width: 499px)"][e.selector][e.property]=t}}else t=(i.size&&""!==i.size[0]?i.size[0]:"0")+(i.unit?i.unit:"px")+" "+(i.size&&""!==i.size[1]?i.size[1]:"0")+(i.unit?i.unit:"px")+" "+(i.size&&""!==i.size[2]?i.size[2]:"0")+(i.unit?i.unit:"px")+" "+(i.size&&""!==i.size[3]?i.size[3]:"0")+(i.unit?i.unit:"px"),t=e.pattern.replace("$",t),null==r[e.media]&&(r[e.media]={}),null==r[e.media][e.selector]&&(r[e.media][e.selector]={}),r[e.media][e.selector][e.property]=t;}else if(void 0!==e.key&&void 0!==i[e.key])if("object"==typeof i[e.key]){if(void 0!==i[e.key].color&&""!==i[e.key].color){var l=void 0!==i[e.key].is_palette&&""!==i[e.key].is_palette?"var(--global-"+i[e.key].is_palette+")":i[e.key].color;t=e.pattern.replace("$",l),null==r[e.media]&&(r[e.media]={}),null==r[e.media][e.selector]&&(r[e.media][e.selector]={}),r[e.media][e.selector][e.property]=t}if(void 0!==i[e.key].desktop){var a=void 0===i.unit.desktop?"":i.unit.desktop;t=e.pattern.replace("$",i[e.key].desktop+a),null==r[e.media]&&(r[e.media]={}),null==r[e.media][e.selector]&&(r[e.media][e.selector]={}),r[e.media][e.selector][e.property]=t}if(void 0!==i[e.key].tablet){var a=void 0===i.unit.tablet?"":i.unit.tablet;t=e.pattern.replace("$",i[e.key].tablet+a),null==r["@media screen and (max-width: 1023px)"]&&(r["@media screen and (max-width: 1023px)"]={}),null==r["@media screen and (max-width: 1023px)"][e.selector]&&(r["@media screen and (max-width: 1023px)"][e.selector]={}),r["@media screen and (max-width: 1023px)"][e.selector][e.property]=t}if(void 0!==i[e.key].mobile){var a=void 0===i.unit.mobile?"":i.unit.mobile;t=e.pattern.replace("$",i[e.key].mobile+a),null==r["@media screen and (max-width: 499px)"]&&(r["@media screen and (max-width: 499px)"]={}),null==r["@media screen and (max-width: 499px)"][e.selector]&&(r["@media screen and (max-width: 499px)"][e.selector]={}),r["@media screen and (max-width: 499px)"][e.selector][e.property]=t}}else t="size"===e.key?i[e.key]+(i.unit?i.unit:"px"):"string"==typeof i[e.key]&&i[e.key].includes("palette")?"var(--global-"+i[e.key]+")":i[e.key],t=e.pattern.replace("$",t),null==r[e.media]&&(r[e.media]={}),null==r[e.media][e.selector]&&(r[e.media][e.selector]={}),r[e.media][e.selector][e.property]=t}),_.each(r,function(e,t){"global"!==t&&(d+=t+"{"),_.each(e,function(e,t){d+=t+"{",_.each(e,function(e,t){d+=t+":"+e+";"}),d+="}"}),"global"!==t&&(d+="}")}),o.html(d)},live_class:function(e,t,a){_.each(t,function(e){var t;if(null!=e.selector)if(e.pattern=e.pattern||"$","object"!=typeof a){var i=new RegExp(e.pattern.replace("$","[\\w\\-]+"),"i"),l=document.querySelectorAll(e.selector),t=e.pattern.replace("$",a);l.forEach(function(e){e.className.match(i)?e.className=e.className.replace(i,t):e.className+=" "+t})}else if(void 0===e.key||void 0===a[e.key]){if(void 0!==a.desktop&&""!==a.desktop){if(void 0!==e.pattern.desktop)var i=new RegExp(e.pattern.desktop.replace("$","[\\w\\-]+"),"i"),o=e.pattern.desktop;else var i=new RegExp(e.pattern.replace("$","[\\w\\-]+"),"i"),o=e.pattern;if(void 0!==e.selector.desktop)var l=document.querySelectorAll(e.selector.desktop);else var l=document.querySelectorAll(e.selector);t=o.replace("$",a.desktop),l.forEach(function(e){e.className.match(i)?e.className=e.className.replace(i,t):e.className+=" "+t})}if(void 0!==a.tablet&&""!==a.tablet){if(void 0!==e.pattern.tablet)var i=new RegExp(e.pattern.tablet.replace("$","[\\w\\-]+"),"i"),o=e.pattern.tablet;else var i=new RegExp(e.pattern.replace("$","[\\w\\-]+"),"i"),o=e.pattern;if(void 0!==e.selector.tablet)var l=document.querySelectorAll(e.selector.tablet);else var l=document.querySelectorAll(e.selector);t=o.replace("$",a.tablet),l.forEach(function(e){e.className.match(i)?e.className=e.className.replace(i,t):e.className+=" "+t})}if(void 0!==a.mobile&&""!==a.mobile){if(void 0!==e.pattern.mobile)var i=new RegExp(e.pattern.mobile.replace("$","[\\w\\-]+"),"i"),o=e.pattern.mobile;else var i=new RegExp(e.pattern.replace("$","[\\w\\-]+"),"i"),o=e.pattern;if(void 0!==e.selector.mobile)var l=document.querySelectorAll(e.selector.mobile);else var l=document.querySelectorAll(e.selector);t=o.replace("$",a.mobile),l.forEach(function(e){e.className.match(i)?e.className=e.className.replace(i,t):e.className+=" "+t})}}else if("object"==typeof a[e.key]){if(void 0!==a[e.key].desktop&&""!==a[e.key].desktop){if(void 0!==e.pattern.desktop)var i=new RegExp(e.pattern.desktop.replace("$","[\\w\\-]+"),"i"),o=e.pattern.desktop;else var i=new RegExp(e.pattern.replace("$","[\\w\\-]+"),"i"),o=e.pattern;if(void 0!==e.selector.desktop)var l=document.querySelectorAll(e.selector.desktop);else var l=document.querySelectorAll(e.selector);t=o.replace("$",a[e.key].desktop),l.forEach(function(e){e.className.match(i)?e.className=e.className.replace(i,t):e.className+=" "+t})}if(void 0!==a[e.key].tablet&&""!==a[e.key].tablet){if(void 0!==e.pattern.tablet)var i=new RegExp(e.pattern.tablet.replace("$","[\\w\\-]+"),"i"),o=e.pattern.tablet;else var i=new RegExp(e.pattern.replace("$","[\\w\\-]+"),"i"),o=e.pattern;if(void 0!==e.selector.tablet)var l=document.querySelectorAll(e.selector.tablet);else var l=document.querySelectorAll(e.selector);t=o.replace("$",a[e.key].tablet),l.forEach(function(e){e.className.match(i)?e.className=e.className.replace(i,t):e.className+=" "+t})}if(void 0!==a[e.key].mobile&&""!==a[e.key].mobile){if(void 0!==e.pattern.mobile)var i=new RegExp(e.pattern.mobile.replace("$","[\\w\\-]+"),"i"),o=e.pattern.mobile;else var i=new RegExp(e.pattern.replace("$","[\\w\\-]+"),"i"),o=e.pattern;if(void 0!==e.selector.mobile)var l=document.querySelectorAll(e.selector.mobile);else var l=document.querySelectorAll(e.selector);t=o.replace("$",a[e.key].mobile),l.forEach(function(e){e.className.match(i)?e.className=e.className.replace(i,t):e.className+=" "+t})}}else{var i=new RegExp(e.pattern.replace("$","[\\w\\-]+"),"i"),l=document.querySelectorAll(e.selector),t=e.pattern.replace("$",a[e.key]);l.forEach(function(e){e.className.match(i)?e.className=e.className.replace(i,t):e.className+=" "+t})}})},live_palette:function(e,t,a){var i=JSON.parse(a),l=i&&i.active?i.active:"palette";i&&i[l]&&_.each(i[l],function(e){"palette10"==e.slug&&"#FfFfFf"==e.color?document.documentElement.style.setProperty("--global-"+e.slug,"oklch(from var(--global-palette1) calc(l + 0.10 * (1 - l)) calc(c * 1.00) calc(h + 180) / 100%)"):e.slug&&e.color&&document.documentElement.style.setProperty("--global-"+e.slug,e.color)})},live_global:function(e,t,a){_.each(t,function(e){var t;null==e.property||null==e.selector||(e.media=e.media||"global",e.pattern=e.pattern||"$","object"==typeof a&&void 0!==e.key&&void 0!==a[e.key]&&(t="string"==typeof a[e.key]&&a[e.key].includes("palette")&&!a[e.key].includes("gradient")?"var(--global-"+a[e.key]+")":a[e.key],t=e.pattern.replace("$",t),document.documentElement.style.setProperty(e.selector,t)))})},live_html:function(e,t,a){_.each(t,function(e){if(null!=e.selector){e.pattern=e.pattern||"$";var t=document.querySelectorAll(e.selector),i=e.pattern.replace("$",a);t.forEach(function(t){void 0===e.property?t.innerHTML=i:t.setAttribute(e.property,i)})}})}};kadenceCustomizerPreviewData&&kadenceCustomizerPreviewData.liveControl&&_.each(kadenceCustomizerPreviewData.liveControl,function(e,t){var a={};_.each(e,function(e){var t=e.type;null==a[t]&&(a[t]=[]),a[t].push(e)}),wp.customize(t,function(e){e.bind(function(e){_.each(a,function(a,i){var o="live_".concat(i);l[o](t,a,e)})})})}),t(document).on("customize-preview-menu-refreshed",function(t,e){e.wpNavMenuArgs.show_toggles&&window.kadence.initMobileToggleSub()})})(jQuery); js/generate-google-font-variants.js 0000644 00000002562 15151531434 0013362 0 ustar 00 /** * manually run this file to generate array for google fonts inc/customizer/google-font-variants.php file) * run the script on a page with a div with class .google-fonts class. * you'll also need to put in a google webfonts api key. */ $.getJSON('https://www.googleapis.com/webfonts/v1/webfonts?key={{API_KEY}}', function(data) { $.each( data.items, function( index, font ) { var category = []; category.push( font.category ); var variants = font.variants; var weights = font.variants.slice(); var styles = ['normal']; for( var i = 0; i < weights.length; i++){ if ( weights[i].includes('italic') ) { weights.splice(i, 1); } }; if ( variants.includes('italic') ) { styles.push('italic'); } $('.google-fonts').append("'" + font.family + "' => array( 'v' => array("); for(var i = 0; i < variants.length; i++) { if( 0 === i ) { $('.google-fonts').append("'" + variants[i] + "'"); } else { $('.google-fonts').append(",'" + variants[i] + "'"); } } $('.google-fonts').append(")" + ",'c' => array("); for(var i = 0; i < category.length; i++) { if( 0 === i ) { $('.google-fonts').append("'" + category[i] + "'"); } else { $('.google-fonts').append(",'" + category[i] + "'"); } } $('.google-fonts').append(")" + "),"); }); }); css/rtl-kadence-customizer.css 0000644 00000002074 15151531434 0012446 0 ustar 00 @media (min-width: 1660px) { .rtl #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, .rtl #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { right: 18%; left: 0; } } .rtl .customize-control-kadence_blank_control .kadence-builder-tab-toggle { left: 10px; right: auto; } .rtl .kadence-builder-item > .kadence-builder-item-icon { margin-right: 0; margin-left: -10px; } .rtl .kadence-builder-item > .kadence-builder-item-icon.kadence-move-icon { margin-right: -10px; margin-left: 0; } .rtl .kadence-builder-item > .kadence-builder-item-icon svg.dashicons-arrow-right-alt2 { transform: rotate(180deg); } .rtl .kadence-builder-areas.popup-vertical-group { padding-left: 20px; padding-right: 0; } .rtl #customize-theme-controls .add-new-menu-item, #customize-theme-controls .add-new-widget { float: right; } .rtl .footer-column-row .kadence-builder-area:last-child { border-right: 1px dashed #A0AEC0; } .rtl .footer-column-row .kadence-builder-area:first-child { border-right: 0; } css/kadence-customizer.css 0000644 00000005430 15151531434 0011646 0 ustar 00 .customize-control:not(.customize-control-kadence_blank_control):not(.customize-control-kadence_tab_control) + .customize-control { border-top: 1px solid #ddd; padding-top: 10px; } .kadence-builder-hide .customize-control-kadence_blank_control .kadence-builder-show-button.kadence-builder-tab-toggle { visibility: visible; opacity: 1; } .kadence-builder-is-active .preview-desktop #customize-preview, .kadence-builder-is-active .preview-tablet #customize-preview { height: auto; } .customize-control-kadence_blank_control .customize-control-description { position: relative; } .customize-control-kadence_blank_control .kadence-builder-tab-toggle { position: absolute; right: 10px; top: 5px; z-index: 1000; display: flex; align-items: center; } .customize-control-kadence_blank_control .kadence-builder-tab-toggle span.dashicons { font-size: 12px; vertical-align: middle; line-height: 20px; } .customize-control-kadence_blank_control .kadence-builder-show-button.kadence-builder-tab-toggle { visibility: hidden; margin-bottom: 20px; opacity: 0; bottom: 100%; top: auto; } #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder .customize-control { margin: 0; padding: 0; } #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder .customize-control .description { padding: 0 20px; } .kadence-compontent-tabs { display: flex; width: auto; margin-top: -15px; margin-left: -24px; margin-right: -24px; padding: 0; margin-bottom: 0; border-bottom: 1px solid #ccc; } .kadence-compontent-tabs .kadence-compontent-tabs-button { flex: 1 1 0; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; text-transform: uppercase; height: 40px; margin: 0; margin-bottom: -1px; box-sizing: content-box; padding: 0 10px; cursor: pointer; border: 0; background: transparent; border-bottom: 4px solid transparent; border-radius: 0; border-top-left-radius: 2px; border-top-right-radius: 2px; } .kadence-compontent-tabs .kadence-compontent-tabs-button:not(:first-child) { margin-left: 0px; } .kadence-compontent-tabs .kadence-compontent-tabs-button:hover { box-shadow: none !important; } .kadence-compontent-tabs .kadence-compontent-tabs-button:not(.nav-tab-active):hover { background: #e5e5e5 !important; color: #444 !important; border-bottom-color: #f9f9f9; } .kadence-compontent-tabs .kadence-compontent-tabs-button.nav-tab-active { border-bottom-color: #007cba; background: #f9f9f9; color: #000; } .kadence-compontent-tabs .kadence-compontent-tabs-button.nav-tab-active:focus { outline: 0; box-shadow: none; } css/rtl-kadence-customizer.scss 0000644 00000002102 15151531434 0012621 0 ustar 00 // Builder. @media (min-width: 1660px) { .rtl #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder, .rtl #customize-theme-controls #sub-accordion-section-kadence_customizer_footer_builder { right: 18%; left: 0; } } .rtl .customize-control-kadence_blank_control .kadence-builder-tab-toggle { left:10px; right:auto; } .rtl .kadence-builder-item>.kadence-builder-item-icon { margin-right: 0; margin-left: -10px; } .rtl .kadence-builder-item>.kadence-builder-item-icon.kadence-move-icon { margin-right: -10px; margin-left: 0; } .rtl .kadence-builder-item>.kadence-builder-item-icon svg.dashicons-arrow-right-alt2 { transform: rotate(180deg); } .rtl .kadence-builder-areas.popup-vertical-group { padding-left: 20px; padding-right: 0; } .rtl #customize-theme-controls .add-new-menu-item, #customize-theme-controls .add-new-widget { float: right; } .rtl .footer-column-row .kadence-builder-area:last-child { border-right: 1px dashed #A0AEC0; } .rtl .footer-column-row .kadence-builder-area:first-child { border-right: 0; } css/kadence-customizer-preview.scss 0000644 00000004254 15151531434 0013513 0 ustar 00 .primary-menu-container .customize-partial-edit-shortcut { display:none; } .secondary-menu-container .customize-partial-edit-shortcut { display:none; } .footer-menu-container .customize-partial-edit-shortcut { display:none; } span.customize-partial-edit-shortcut.customize-partial-edit-shortcut-header_desktop_items { display: none; } .site-branding .site-title, .site-branding .site-description { .customize-partial-edit-shortcut { display: none !important; } } .menu-toggle-open .customize-partial-edit-shortcut { display: none; } .mobile-menu-container .customize-partial-edit-shortcut { display:none; } .site-header-focus-item { outline: 2px solid transparent; position: relative; transition: all 0.3s; box-shadow: 0 2px 1px rgba(46,68,83,0); .customize-partial-edit-shortcut{ opacity: 0; left:0; transition: all 0.3s; button { border-radius: 0; border: 0; box-shadow: none; } } } .site-header-focus-item:hover { outline: 2px solid #0085ba!important; box-shadow: 0 2px 1px rgba(46,68,83,.15); > * > .customize-partial-edit-shortcut{ opacity: 1; } } .site-footer-focus-item { outline: 2px solid transparent; position: relative; transition: all 0.3s; box-shadow: 0 2px 1px rgba(46,68,83,0); .customize-partial-edit-shortcut{ opacity: 0; left:0; transition: all 0.3s; button { border-radius: 0; border: 0; box-shadow: none; } } } .site-footer-focus-item:hover { outline: 2px solid #0085ba!important; box-shadow: 0 2px 1px rgba(46,68,83,.15); > * > .customize-partial-edit-shortcut{ opacity: 1; } > * > *:first-child > .customize-partial-edit-shortcut{ opacity: 1; } } .site-header-row-container-inner > .customize-partial-edit-shortcut button { left: 0; } .site-footer-row-container-inner > .customize-partial-edit-shortcut button { left: 0; } .site-header-row-layout-contained .site-header-row-container-inner > .customize-partial-edit-shortcut button { left: calc(-30px + -1.5rem); } .site-footer-row-layout-contained .site-footer-row-container-inner > .customize-partial-edit-shortcut button { left: calc(-30px + -1.5rem); } #kt-scroll-up .customize-partial-edit-shortcut { display: none; } css/kadence-customizer-preview.css 0000644 00000004675 15151531434 0013337 0 ustar 00 .primary-menu-container .customize-partial-edit-shortcut { display: none; } .secondary-menu-container .customize-partial-edit-shortcut { display: none; } .footer-menu-container .customize-partial-edit-shortcut { display: none; } span.customize-partial-edit-shortcut.customize-partial-edit-shortcut-header_desktop_items { display: none; } .site-branding .site-title .customize-partial-edit-shortcut, .site-branding .site-description .customize-partial-edit-shortcut { display: none !important; } .menu-toggle-open .customize-partial-edit-shortcut { display: none; } .mobile-menu-container .customize-partial-edit-shortcut { display: none; } .site-header-focus-item { outline: 2px solid transparent; position: relative; transition: all 0.3s; box-shadow: 0 2px 1px rgba(46, 68, 83, 0); } .site-header-focus-item .customize-partial-edit-shortcut { opacity: 0; left: 0; transition: all 0.3s; } .site-header-focus-item .customize-partial-edit-shortcut button { border-radius: 0; border: 0; box-shadow: none; } .site-header-focus-item:hover { outline: 2px solid #0085ba !important; box-shadow: 0 2px 1px rgba(46, 68, 83, 0.15); } .site-header-focus-item:hover > * > .customize-partial-edit-shortcut { opacity: 1; } .site-footer-focus-item { outline: 2px solid transparent; position: relative; transition: all 0.3s; box-shadow: 0 2px 1px rgba(46, 68, 83, 0); } .site-footer-focus-item .customize-partial-edit-shortcut { opacity: 0; left: 0; transition: all 0.3s; } .site-footer-focus-item .customize-partial-edit-shortcut button { border-radius: 0; border: 0; box-shadow: none; } .site-footer-focus-item:hover { outline: 2px solid #0085ba !important; box-shadow: 0 2px 1px rgba(46, 68, 83, 0.15); } .site-footer-focus-item:hover > * > .customize-partial-edit-shortcut { opacity: 1; } .site-footer-focus-item:hover > * > *:first-child > .customize-partial-edit-shortcut { opacity: 1; } .site-header-row-container-inner > .customize-partial-edit-shortcut button { left: 0; } .site-footer-row-container-inner > .customize-partial-edit-shortcut button { left: 0; } .site-header-row-layout-contained .site-header-row-container-inner > .customize-partial-edit-shortcut button { left: calc(-30px - 1.5rem); } .site-footer-row-layout-contained .site-footer-row-container-inner > .customize-partial-edit-shortcut button { left: calc(-30px - 1.5rem); } #kt-scroll-up .customize-partial-edit-shortcut { display: none; } css/kadence-customizer.scss 0000644 00000004515 15151531434 0012034 0 ustar 00 .customize-control:not(.customize-control-kadence_blank_control):not(.customize-control-kadence_tab_control) + .customize-control { border-top: 1px solid #ddd; padding-top: 10px; } .kadence-builder-hide .customize-control-kadence_blank_control .kadence-builder-show-button.kadence-builder-tab-toggle { visibility: visible; opacity: 1; } .kadence-builder-is-active .preview-desktop #customize-preview, .kadence-builder-is-active .preview-tablet #customize-preview { height: auto; } // Top Tabs .customize-control-kadence_blank_control { .customize-control-description { position:relative; } .kadence-builder-tab-toggle { position: absolute; right: 10px; top: 5px; z-index: 1000; display: flex; align-items: center; span.dashicons { font-size: 12px; vertical-align: middle; line-height: 20px; } } .kadence-builder-show-button.kadence-builder-tab-toggle { visibility: hidden; margin-bottom: 20px; opacity: 0; bottom: 100%; top: auto; } } #customize-theme-controls #sub-accordion-section-kadence_customizer_header_builder .customize-control { margin: 0; padding: 0; .description { padding: 0 20px; } } .kadence-compontent-tabs { display: flex; width:auto; margin-top: -15px; margin-left: -24px; margin-right: -24px; padding: 0; margin-bottom: 0; border-bottom: 1px solid #ccc; .kadence-compontent-tabs-button { flex: 1 1 0;; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; font-size: 11px; font-weight: 600; font-style: normal; text-transform: uppercase; height: 40px; margin: 0; margin-bottom: -1px; box-sizing: content-box; padding: 0 10px; cursor: pointer; border: 0; background: transparent; border-bottom: 4px solid transparent; border-radius: 0; border-top-left-radius: 2px; border-top-right-radius: 2px; &:not(:first-child) { margin-left: 0px; } &:hover { box-shadow: none !important; } &:not(.nav-tab-active):hover { background: #e5e5e5 !important; color: #444 !important; border-bottom-color: #f9f9f9; } &.nav-tab-active { border-bottom-color: #007cba; background: #f9f9f9; color:#000; &:focus { outline: 0; box-shadow: none; } } } } google-font-variants.php 0000644 00000557325 15151531434 0011345 0 ustar 00 <?php /** * Returns an array of Google fonts and their properties for the frontend font selector * Generated automatically by GitHub Action */ return array('ABeeZee' => array('v' => array('regular','italic'), 'c' => array('sans-serif')),'ADLaM Display' => array('v' => array('regular'), 'c' => array('display')),'AR One Sans' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Abel' => array('v' => array('regular'), 'c' => array('sans-serif')),'Abhaya Libre' => array('v' => array('regular','500','600','700','800'), 'c' => array('serif')),'Aboreto' => array('v' => array('regular'), 'c' => array('display')),'Abril Fatface' => array('v' => array('regular'), 'c' => array('display')),'Abyssinica SIL' => array('v' => array('regular'), 'c' => array('serif')),'Aclonica' => array('v' => array('regular'), 'c' => array('sans-serif')),'Acme' => array('v' => array('regular'), 'c' => array('sans-serif')),'Actor' => array('v' => array('regular'), 'c' => array('sans-serif')),'Adamina' => array('v' => array('regular'), 'c' => array('serif')),'Advent Pro' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Afacad' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Afacad Flux' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Agbalumo' => array('v' => array('regular'), 'c' => array('display')),'Agdasima' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Agu Display' => array('v' => array('regular'), 'c' => array('display')),'Aguafina Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Akatab' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Akaya Kanadaka' => array('v' => array('regular'), 'c' => array('display')),'Akaya Telivigala' => array('v' => array('regular'), 'c' => array('display')),'Akronim' => array('v' => array('regular'), 'c' => array('display')),'Akshar' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Aladin' => array('v' => array('regular'), 'c' => array('display')),'Alan Sans' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Alata' => array('v' => array('regular'), 'c' => array('sans-serif')),'Alatsi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Albert Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Aldrich' => array('v' => array('regular'), 'c' => array('sans-serif')),'Alef' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Alegreya' => array('v' => array('regular','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Alegreya SC' => array('v' => array('regular','italic','500','500italic','700','700italic','800','800italic','900','900italic'), 'c' => array('serif')),'Alegreya Sans' => array('v' => array('100','100italic','300','300italic','regular','italic','500','500italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Alegreya Sans SC' => array('v' => array('100','100italic','300','300italic','regular','italic','500','500italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Aleo' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Alex Brush' => array('v' => array('regular'), 'c' => array('handwriting')),'Alexandria' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Alfa Slab One' => array('v' => array('regular'), 'c' => array('display')),'Alice' => array('v' => array('regular'), 'c' => array('serif')),'Alike' => array('v' => array('regular'), 'c' => array('serif')),'Alike Angular' => array('v' => array('regular'), 'c' => array('serif')),'Alkalami' => array('v' => array('regular'), 'c' => array('serif')),'Alkatra' => array('v' => array('regular','500','600','700'), 'c' => array('display')),'Allan' => array('v' => array('regular','700'), 'c' => array('display')),'Allerta' => array('v' => array('regular'), 'c' => array('sans-serif')),'Allerta Stencil' => array('v' => array('regular'), 'c' => array('sans-serif')),'Allison' => array('v' => array('regular'), 'c' => array('handwriting')),'Allura' => array('v' => array('regular'), 'c' => array('handwriting')),'Almarai' => array('v' => array('300','regular','700','800'), 'c' => array('sans-serif')),'Almendra' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Almendra Display' => array('v' => array('regular'), 'c' => array('display')),'Almendra SC' => array('v' => array('regular'), 'c' => array('serif')),'Alumni Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Alumni Sans Collegiate One' => array('v' => array('regular','italic'), 'c' => array('sans-serif')),'Alumni Sans Inline One' => array('v' => array('regular','italic'), 'c' => array('display')),'Alumni Sans Pinstripe' => array('v' => array('regular','italic'), 'c' => array('sans-serif')),'Alumni Sans SC' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Amarante' => array('v' => array('regular'), 'c' => array('display')),'Amaranth' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Amarna' => array('v' => array('100','200','300','regular','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Amatic SC' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Amethysta' => array('v' => array('regular'), 'c' => array('serif')),'Amiko' => array('v' => array('regular','600','700'), 'c' => array('sans-serif')),'Amiri' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Amiri Quran' => array('v' => array('regular'), 'c' => array('serif')),'Amita' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Anaheim' => array('v' => array('regular','500','600','700','800'), 'c' => array('sans-serif')),'Ancizar Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Ancizar Serif' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Andada Pro' => array('v' => array('regular','500','600','700','800','italic','500italic','600italic','700italic','800italic'), 'c' => array('serif')),'Andika' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Anek Bangla' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Anek Devanagari' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Anek Gujarati' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Anek Gurmukhi' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Anek Kannada' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Anek Latin' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Anek Malayalam' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Anek Odia' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Anek Tamil' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Anek Telugu' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Angkor' => array('v' => array('regular'), 'c' => array('display')),'Annapurna SIL' => array('v' => array('regular','700'), 'c' => array('serif')),'Annie Use Your Telescope' => array('v' => array('regular'), 'c' => array('handwriting')),'Anonymous Pro' => array('v' => array('regular','italic','700','700italic'), 'c' => array('monospace')),'Anta' => array('v' => array('regular'), 'c' => array('sans-serif')),'Antic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Antic Didone' => array('v' => array('regular'), 'c' => array('serif')),'Antic Slab' => array('v' => array('regular'), 'c' => array('serif')),'Anton' => array('v' => array('regular'), 'c' => array('sans-serif')),'Anton SC' => array('v' => array('regular'), 'c' => array('sans-serif')),'Antonio' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Anuphan' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Anybody' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('display')),'Aoboshi One' => array('v' => array('regular'), 'c' => array('serif')),'Arapey' => array('v' => array('regular','italic'), 'c' => array('serif')),'Arbutus' => array('v' => array('regular'), 'c' => array('serif')),'Arbutus Slab' => array('v' => array('regular'), 'c' => array('serif')),'Architects Daughter' => array('v' => array('regular'), 'c' => array('handwriting')),'Archivo' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Archivo Black' => array('v' => array('regular'), 'c' => array('sans-serif')),'Archivo Narrow' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Are You Serious' => array('v' => array('regular'), 'c' => array('handwriting')),'Aref Ruqaa' => array('v' => array('regular','700'), 'c' => array('serif')),'Aref Ruqaa Ink' => array('v' => array('regular','700'), 'c' => array('serif')),'Arima' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('display')),'Arimo' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Arizonia' => array('v' => array('regular'), 'c' => array('handwriting')),'Armata' => array('v' => array('regular'), 'c' => array('sans-serif')),'Arsenal' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Arsenal SC' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Artifika' => array('v' => array('regular'), 'c' => array('serif')),'Arvo' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Arya' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Asap' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Asap Condensed' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Asar' => array('v' => array('regular'), 'c' => array('serif')),'Asimovian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Asset' => array('v' => array('regular'), 'c' => array('display')),'Assistant' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Asta Sans' => array('v' => array('300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Astloch' => array('v' => array('regular','700'), 'c' => array('display')),'Asul' => array('v' => array('regular','700'), 'c' => array('serif')),'Athiti' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Atkinson Hyperlegible' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Atkinson Hyperlegible Mono' => array('v' => array('200','300','regular','500','600','700','800','200italic','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Atkinson Hyperlegible Next' => array('v' => array('200','300','regular','500','600','700','800','200italic','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Atma' => array('v' => array('300','regular','500','600','700'), 'c' => array('display')),'Atomic Age' => array('v' => array('regular'), 'c' => array('display')),'Aubrey' => array('v' => array('regular'), 'c' => array('display')),'Audiowide' => array('v' => array('regular'), 'c' => array('display')),'Autour One' => array('v' => array('regular'), 'c' => array('display')),'Average' => array('v' => array('regular'), 'c' => array('serif')),'Average Sans' => array('v' => array('regular'), 'c' => array('sans-serif')),'Averia Gruesa Libre' => array('v' => array('regular'), 'c' => array('display')),'Averia Libre' => array('v' => array('300','300italic','regular','italic','700','700italic'), 'c' => array('display')),'Averia Sans Libre' => array('v' => array('300','300italic','regular','italic','700','700italic'), 'c' => array('display')),'Averia Serif Libre' => array('v' => array('300','300italic','regular','italic','700','700italic'), 'c' => array('display')),'Azeret Mono' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('monospace')),'B612' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'B612 Mono' => array('v' => array('regular','italic','700','700italic'), 'c' => array('monospace')),'BBH Bartle' => array('v' => array('regular'), 'c' => array('sans-serif')),'BBH Bogle' => array('v' => array('regular'), 'c' => array('sans-serif')),'BBH Hegarty' => array('v' => array('regular'), 'c' => array('sans-serif')),'BIZ UDGothic' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'BIZ UDMincho' => array('v' => array('regular','700'), 'c' => array('serif')),'BIZ UDPGothic' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'BIZ UDPMincho' => array('v' => array('regular','700'), 'c' => array('serif')),'Babylonica' => array('v' => array('regular'), 'c' => array('handwriting')),'Bacasime Antique' => array('v' => array('regular'), 'c' => array('serif')),'Bad Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Badeen Display' => array('v' => array('regular'), 'c' => array('display')),'Bagel Fat One' => array('v' => array('regular'), 'c' => array('display')),'Bahiana' => array('v' => array('regular'), 'c' => array('display')),'Bahianita' => array('v' => array('regular'), 'c' => array('display')),'Bai Jamjuree' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('sans-serif')),'Bakbak One' => array('v' => array('regular'), 'c' => array('display')),'Ballet' => array('v' => array('regular'), 'c' => array('handwriting')),'Baloo 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Baloo Bhai 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Baloo Bhaijaan 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Baloo Bhaina 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Baloo Chettan 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Baloo Da 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Baloo Paaji 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Baloo Tamma 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Baloo Tammudu 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Baloo Thambi 2' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Balsamiq Sans' => array('v' => array('regular','italic','700','700italic'), 'c' => array('display')),'Balthazar' => array('v' => array('regular'), 'c' => array('serif')),'Bangers' => array('v' => array('regular'), 'c' => array('display')),'Barlow' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Barlow Condensed' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Barlow Semi Condensed' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Barriecito' => array('v' => array('regular'), 'c' => array('display')),'Barrio' => array('v' => array('regular'), 'c' => array('display')),'Basic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Baskervville' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Baskervville SC' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Battambang' => array('v' => array('100','300','regular','700','900'), 'c' => array('display')),'Baumans' => array('v' => array('regular'), 'c' => array('display')),'Bayon' => array('v' => array('regular'), 'c' => array('sans-serif')),'Be Vietnam Pro' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Beau Rivage' => array('v' => array('regular'), 'c' => array('handwriting')),'Bebas Neue' => array('v' => array('regular'), 'c' => array('sans-serif')),'Beiruti' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Belanosima' => array('v' => array('regular','600','700'), 'c' => array('sans-serif')),'Belgrano' => array('v' => array('regular'), 'c' => array('serif')),'Bellefair' => array('v' => array('regular'), 'c' => array('serif')),'Belleza' => array('v' => array('regular'), 'c' => array('sans-serif')),'Bellota' => array('v' => array('300','300italic','regular','italic','700','700italic'), 'c' => array('display')),'Bellota Text' => array('v' => array('300','300italic','regular','italic','700','700italic'), 'c' => array('display')),'BenchNine' => array('v' => array('300','regular','700'), 'c' => array('sans-serif')),'Benne' => array('v' => array('regular'), 'c' => array('serif')),'Bentham' => array('v' => array('regular'), 'c' => array('serif')),'Berkshire Swash' => array('v' => array('regular'), 'c' => array('handwriting')),'Besley' => array('v' => array('regular','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Beth Ellen' => array('v' => array('regular'), 'c' => array('handwriting')),'Bevan' => array('v' => array('regular','italic'), 'c' => array('serif')),'BhuTuka Expanded One' => array('v' => array('regular'), 'c' => array('serif')),'Big Shoulders' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Big Shoulders Inline' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Big Shoulders Stencil' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bigelow Rules' => array('v' => array('regular'), 'c' => array('display')),'Bigshot One' => array('v' => array('regular'), 'c' => array('display')),'Bilbo' => array('v' => array('regular'), 'c' => array('handwriting')),'Bilbo Swash Caps' => array('v' => array('regular'), 'c' => array('handwriting')),'BioRhyme' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('serif')),'BioRhyme Expanded' => array('v' => array('200','300','regular','700','800'), 'c' => array('serif')),'Birthstone' => array('v' => array('regular'), 'c' => array('handwriting')),'Birthstone Bounce' => array('v' => array('regular','500'), 'c' => array('handwriting')),'Biryani' => array('v' => array('200','300','regular','600','700','800','900'), 'c' => array('sans-serif')),'Bitcount' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Grid Double' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Grid Double Ink' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Grid Single' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Grid Single Ink' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Ink' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Prop Double' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Prop Double Ink' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Prop Single' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Prop Single Ink' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Single' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitcount Single Ink' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Bitter' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Black And White Picture' => array('v' => array('regular'), 'c' => array('display')),'Black Han Sans' => array('v' => array('regular'), 'c' => array('sans-serif')),'Black Ops One' => array('v' => array('regular'), 'c' => array('display')),'Blaka' => array('v' => array('regular'), 'c' => array('display')),'Blaka Hollow' => array('v' => array('regular'), 'c' => array('display')),'Blaka Ink' => array('v' => array('regular'), 'c' => array('display')),'Blinker' => array('v' => array('100','200','300','regular','600','700','800','900'), 'c' => array('sans-serif')),'Bodoni Moda' => array('v' => array('regular','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Bodoni Moda SC' => array('v' => array('regular','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Bokor' => array('v' => array('regular'), 'c' => array('display')),'Boldonse' => array('v' => array('regular'), 'c' => array('display')),'Bona Nova' => array('v' => array('regular','italic','700'), 'c' => array('serif')),'Bona Nova SC' => array('v' => array('regular','italic','700'), 'c' => array('serif')),'Bonbon' => array('v' => array('regular'), 'c' => array('handwriting')),'Bonheur Royale' => array('v' => array('regular'), 'c' => array('handwriting')),'Boogaloo' => array('v' => array('regular'), 'c' => array('display')),'Borel' => array('v' => array('regular'), 'c' => array('handwriting')),'Bowlby One' => array('v' => array('regular'), 'c' => array('display')),'Bowlby One SC' => array('v' => array('regular'), 'c' => array('display')),'Braah One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Brawler' => array('v' => array('regular','700'), 'c' => array('serif')),'Bree Serif' => array('v' => array('regular'), 'c' => array('serif')),'Bricolage Grotesque' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Bruno Ace' => array('v' => array('regular'), 'c' => array('display')),'Bruno Ace SC' => array('v' => array('regular'), 'c' => array('display')),'Brygada 1918' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Bubblegum Sans' => array('v' => array('regular'), 'c' => array('display')),'Bubbler One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Buda' => array('v' => array('300'), 'c' => array('display')),'Buenard' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Bungee' => array('v' => array('regular'), 'c' => array('display')),'Bungee Hairline' => array('v' => array('regular'), 'c' => array('display')),'Bungee Inline' => array('v' => array('regular'), 'c' => array('display')),'Bungee Outline' => array('v' => array('regular'), 'c' => array('display')),'Bungee Shade' => array('v' => array('regular'), 'c' => array('display')),'Bungee Spice' => array('v' => array('regular'), 'c' => array('display')),'Bungee Tint' => array('v' => array('regular'), 'c' => array('display')),'Butcherman' => array('v' => array('regular'), 'c' => array('display')),'Butterfly Kids' => array('v' => array('regular'), 'c' => array('handwriting')),'Bytesized' => array('v' => array('regular'), 'c' => array('sans-serif')),'Cabin' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Cabin Condensed' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Cabin Sketch' => array('v' => array('regular','700'), 'c' => array('display')),'Cactus Classical Serif' => array('v' => array('regular'), 'c' => array('serif')),'Caesar Dressing' => array('v' => array('regular'), 'c' => array('display')),'Cagliostro' => array('v' => array('regular'), 'c' => array('sans-serif')),'Cairo' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Cairo Play' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Cal Sans' => array('v' => array('regular'), 'c' => array('sans-serif')),'Caladea' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Calistoga' => array('v' => array('regular'), 'c' => array('display')),'Calligraffitti' => array('v' => array('regular'), 'c' => array('handwriting')),'Cambay' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Cambo' => array('v' => array('regular'), 'c' => array('serif')),'Candal' => array('v' => array('regular'), 'c' => array('sans-serif')),'Cantarell' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Cantata One' => array('v' => array('regular'), 'c' => array('serif')),'Cantora One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Caprasimo' => array('v' => array('regular'), 'c' => array('display')),'Capriola' => array('v' => array('regular'), 'c' => array('sans-serif')),'Caramel' => array('v' => array('regular'), 'c' => array('handwriting')),'Carattere' => array('v' => array('regular'), 'c' => array('handwriting')),'Cardo' => array('v' => array('regular','italic','700'), 'c' => array('serif')),'Carlito' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Carme' => array('v' => array('regular'), 'c' => array('sans-serif')),'Carrois Gothic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Carrois Gothic SC' => array('v' => array('regular'), 'c' => array('sans-serif')),'Carter One' => array('v' => array('regular'), 'c' => array('display')),'Cascadia Code' => array('v' => array('200','300','regular','500','600','700','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Cascadia Mono' => array('v' => array('200','300','regular','500','600','700','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Castoro' => array('v' => array('regular','italic'), 'c' => array('serif')),'Castoro Titling' => array('v' => array('regular'), 'c' => array('display')),'Catamaran' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Caudex' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Cause' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('handwriting')),'Caveat' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Caveat Brush' => array('v' => array('regular'), 'c' => array('handwriting')),'Cedarville Cursive' => array('v' => array('regular'), 'c' => array('handwriting')),'Ceviche One' => array('v' => array('regular'), 'c' => array('display')),'Chakra Petch' => array('v' => array('300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('sans-serif')),'Changa' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Changa One' => array('v' => array('regular','italic'), 'c' => array('display')),'Chango' => array('v' => array('regular'), 'c' => array('display')),'Charis SIL' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Charm' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Charmonman' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Chathura' => array('v' => array('100','300','regular','700','800'), 'c' => array('sans-serif')),'Chau Philomene One' => array('v' => array('regular','italic'), 'c' => array('sans-serif')),'Chela One' => array('v' => array('regular'), 'c' => array('display')),'Chelsea Market' => array('v' => array('regular'), 'c' => array('display')),'Chenla' => array('v' => array('regular'), 'c' => array('display')),'Cherish' => array('v' => array('regular'), 'c' => array('handwriting')),'Cherry Bomb One' => array('v' => array('regular'), 'c' => array('display')),'Cherry Cream Soda' => array('v' => array('regular'), 'c' => array('display')),'Cherry Swash' => array('v' => array('regular','700'), 'c' => array('display')),'Chewy' => array('v' => array('regular'), 'c' => array('display')),'Chicle' => array('v' => array('regular'), 'c' => array('display')),'Chilanka' => array('v' => array('regular'), 'c' => array('handwriting')),'Chiron GoRound TC' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Chiron Hei HK' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Chiron Sung HK' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Chivo' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Chivo Mono' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('monospace')),'Chocolate Classical Sans' => array('v' => array('regular'), 'c' => array('sans-serif')),'Chokokutai' => array('v' => array('regular'), 'c' => array('display')),'Chonburi' => array('v' => array('regular'), 'c' => array('display')),'Cinzel' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('serif')),'Cinzel Decorative' => array('v' => array('regular','700','900'), 'c' => array('display')),'Clicker Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Climate Crisis' => array('v' => array('regular'), 'c' => array('display')),'Coda' => array('v' => array('regular','800'), 'c' => array('display')),'Codystar' => array('v' => array('300','regular'), 'c' => array('display')),'Coiny' => array('v' => array('regular'), 'c' => array('display')),'Combo' => array('v' => array('regular'), 'c' => array('display')),'Comfortaa' => array('v' => array('300','regular','500','600','700'), 'c' => array('display')),'Comforter' => array('v' => array('regular'), 'c' => array('handwriting')),'Comforter Brush' => array('v' => array('regular'), 'c' => array('handwriting')),'Comic Neue' => array('v' => array('300','300italic','regular','italic','700','700italic'), 'c' => array('handwriting')),'Comic Relief' => array('v' => array('regular','700'), 'c' => array('display')),'Coming Soon' => array('v' => array('regular'), 'c' => array('handwriting')),'Comme' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Commissioner' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Concert One' => array('v' => array('regular'), 'c' => array('display')),'Condiment' => array('v' => array('regular'), 'c' => array('handwriting')),'Content' => array('v' => array('regular','700'), 'c' => array('display')),'Contrail One' => array('v' => array('regular'), 'c' => array('display')),'Convergence' => array('v' => array('regular'), 'c' => array('sans-serif')),'Cookie' => array('v' => array('regular'), 'c' => array('handwriting')),'Copse' => array('v' => array('regular'), 'c' => array('serif')),'Coral Pixels' => array('v' => array('regular'), 'c' => array('display')),'Corben' => array('v' => array('regular','700'), 'c' => array('display')),'Corinthia' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Cormorant' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Cormorant Garamond' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Cormorant Infant' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Cormorant SC' => array('v' => array('300','regular','500','600','700'), 'c' => array('serif')),'Cormorant Unicase' => array('v' => array('300','regular','500','600','700'), 'c' => array('serif')),'Cormorant Upright' => array('v' => array('300','regular','500','600','700'), 'c' => array('serif')),'Cossette Texte' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Cossette Titre' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Courgette' => array('v' => array('regular'), 'c' => array('handwriting')),'Courier Prime' => array('v' => array('regular','italic','700','700italic'), 'c' => array('monospace')),'Cousine' => array('v' => array('regular','italic','700','700italic'), 'c' => array('monospace')),'Coustard' => array('v' => array('regular','900'), 'c' => array('serif')),'Covered By Your Grace' => array('v' => array('regular'), 'c' => array('handwriting')),'Crafty Girls' => array('v' => array('regular'), 'c' => array('handwriting')),'Creepster' => array('v' => array('regular'), 'c' => array('display')),'Crete Round' => array('v' => array('regular','italic'), 'c' => array('serif')),'Crimson Pro' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Crimson Text' => array('v' => array('regular','italic','600','600italic','700','700italic'), 'c' => array('serif')),'Croissant One' => array('v' => array('regular'), 'c' => array('display')),'Crushed' => array('v' => array('regular'), 'c' => array('display')),'Cuprum' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Cute Font' => array('v' => array('regular'), 'c' => array('display')),'Cutive' => array('v' => array('regular'), 'c' => array('serif')),'Cutive Mono' => array('v' => array('regular'), 'c' => array('monospace')),'DM Mono' => array('v' => array('300','300italic','regular','italic','500','500italic'), 'c' => array('monospace')),'DM Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'DM Serif Display' => array('v' => array('regular','italic'), 'c' => array('serif')),'DM Serif Text' => array('v' => array('regular','italic'), 'c' => array('serif')),'Dai Banna SIL' => array('v' => array('300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('serif')),'Damion' => array('v' => array('regular'), 'c' => array('handwriting')),'Dancing Script' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Danfo' => array('v' => array('regular'), 'c' => array('serif')),'Dangrek' => array('v' => array('regular'), 'c' => array('display')),'Darker Grotesque' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Darumadrop One' => array('v' => array('regular'), 'c' => array('display')),'David Libre' => array('v' => array('regular','500','700'), 'c' => array('serif')),'Dawning of a New Day' => array('v' => array('regular'), 'c' => array('handwriting')),'Days One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Dekko' => array('v' => array('regular'), 'c' => array('handwriting')),'Dela Gothic One' => array('v' => array('regular'), 'c' => array('display')),'Delicious Handrawn' => array('v' => array('regular'), 'c' => array('handwriting')),'Delius' => array('v' => array('regular'), 'c' => array('handwriting')),'Delius Swash Caps' => array('v' => array('regular'), 'c' => array('handwriting')),'Delius Unicase' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Della Respira' => array('v' => array('regular'), 'c' => array('serif')),'Denk One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Devonshire' => array('v' => array('regular'), 'c' => array('handwriting')),'Dhurjati' => array('v' => array('regular'), 'c' => array('sans-serif')),'Didact Gothic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Diphylleia' => array('v' => array('regular'), 'c' => array('serif')),'Diplomata' => array('v' => array('regular'), 'c' => array('display')),'Diplomata SC' => array('v' => array('regular'), 'c' => array('display')),'Do Hyeon' => array('v' => array('regular'), 'c' => array('sans-serif')),'Dokdo' => array('v' => array('regular'), 'c' => array('display')),'Domine' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Donegal One' => array('v' => array('regular'), 'c' => array('serif')),'Dongle' => array('v' => array('300','regular','700'), 'c' => array('sans-serif')),'Doppio One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Dorsa' => array('v' => array('regular'), 'c' => array('sans-serif')),'Dosis' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'DotGothic16' => array('v' => array('regular'), 'c' => array('sans-serif')),'Doto' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Dr Sugiyama' => array('v' => array('regular'), 'c' => array('handwriting')),'Duru Sans' => array('v' => array('regular'), 'c' => array('sans-serif')),'DynaPuff' => array('v' => array('regular','500','600','700'), 'c' => array('display')),'Dynalight' => array('v' => array('regular'), 'c' => array('display')),'EB Garamond' => array('v' => array('regular','500','600','700','800','italic','500italic','600italic','700italic','800italic'), 'c' => array('serif')),'Eagle Lake' => array('v' => array('regular'), 'c' => array('handwriting')),'East Sea Dokdo' => array('v' => array('regular'), 'c' => array('handwriting')),'Eater' => array('v' => array('regular'), 'c' => array('display')),'Economica' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Eczar' => array('v' => array('regular','500','600','700','800'), 'c' => array('serif')),'Edu AU VIC WA NT Arrows' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu AU VIC WA NT Dots' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu AU VIC WA NT Guides' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu AU VIC WA NT Hand' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu AU VIC WA NT Pre' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu NSW ACT Cursive' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu NSW ACT Foundation' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu NSW ACT Hand Pre' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu QLD Beginner' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu QLD Hand' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu SA Beginner' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu SA Hand' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu TAS Beginner' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu VIC WA NT Beginner' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu VIC WA NT Hand' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'Edu VIC WA NT Hand Pre' => array('v' => array('regular','500','600','700'), 'c' => array('handwriting')),'El Messiri' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Electrolize' => array('v' => array('regular'), 'c' => array('sans-serif')),'Elms Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Elsie' => array('v' => array('regular','900'), 'c' => array('display')),'Elsie Swash Caps' => array('v' => array('regular','900'), 'c' => array('display')),'Emblema One' => array('v' => array('regular'), 'c' => array('display')),'Emilys Candy' => array('v' => array('regular'), 'c' => array('display')),'Encode Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Encode Sans Condensed' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Encode Sans Expanded' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Encode Sans SC' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Encode Sans Semi Condensed' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Encode Sans Semi Expanded' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Engagement' => array('v' => array('regular'), 'c' => array('handwriting')),'Englebert' => array('v' => array('regular'), 'c' => array('sans-serif')),'Enriqueta' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Ephesis' => array('v' => array('regular'), 'c' => array('handwriting')),'Epilogue' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Epunda Sans' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Epunda Slab' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Erica One' => array('v' => array('regular'), 'c' => array('display')),'Esteban' => array('v' => array('regular'), 'c' => array('serif')),'Estonia' => array('v' => array('regular'), 'c' => array('handwriting')),'Euphoria Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Ewert' => array('v' => array('regular'), 'c' => array('display')),'Exile' => array('v' => array('regular'), 'c' => array('display')),'Exo' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Exo 2' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Expletus Sans' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('display')),'Explora' => array('v' => array('regular'), 'c' => array('handwriting')),'Faculty Glyphic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Fahkwang' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('sans-serif')),'Familjen Grotesk' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Fanwood Text' => array('v' => array('regular','italic'), 'c' => array('serif')),'Farro' => array('v' => array('300','regular','500','700'), 'c' => array('sans-serif')),'Farsan' => array('v' => array('regular'), 'c' => array('display')),'Fascinate' => array('v' => array('regular'), 'c' => array('display')),'Fascinate Inline' => array('v' => array('regular'), 'c' => array('display')),'Faster One' => array('v' => array('regular'), 'c' => array('display')),'Fasthand' => array('v' => array('regular'), 'c' => array('display')),'Fauna One' => array('v' => array('regular'), 'c' => array('serif')),'Faustina' => array('v' => array('300','regular','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('serif')),'Federant' => array('v' => array('regular'), 'c' => array('display')),'Federo' => array('v' => array('regular'), 'c' => array('sans-serif')),'Felipa' => array('v' => array('regular'), 'c' => array('handwriting')),'Fenix' => array('v' => array('regular'), 'c' => array('serif')),'Festive' => array('v' => array('regular'), 'c' => array('handwriting')),'Figtree' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Finger Paint' => array('v' => array('regular'), 'c' => array('display')),'Finlandica' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Fira Code' => array('v' => array('300','regular','500','600','700'), 'c' => array('monospace')),'Fira Mono' => array('v' => array('regular','500','700'), 'c' => array('monospace')),'Fira Sans' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Fira Sans Condensed' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Fira Sans Extra Condensed' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Fjalla One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Fjord One' => array('v' => array('regular'), 'c' => array('serif')),'Flamenco' => array('v' => array('300','regular'), 'c' => array('display')),'Flavors' => array('v' => array('regular'), 'c' => array('display')),'Fleur De Leah' => array('v' => array('regular'), 'c' => array('handwriting')),'Flow Block' => array('v' => array('regular'), 'c' => array('display')),'Flow Circular' => array('v' => array('regular'), 'c' => array('display')),'Flow Rounded' => array('v' => array('regular'), 'c' => array('display')),'Foldit' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Fondamento' => array('v' => array('regular','italic'), 'c' => array('handwriting')),'Fontdiner Swanky' => array('v' => array('regular'), 'c' => array('display')),'Forum' => array('v' => array('regular'), 'c' => array('display')),'Fragment Mono' => array('v' => array('regular','italic'), 'c' => array('monospace')),'Francois One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Frank Ruhl Libre' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('serif')),'Fraunces' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Freckle Face' => array('v' => array('regular'), 'c' => array('display')),'Fredericka the Great' => array('v' => array('regular'), 'c' => array('display')),'Fredoka' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Freehand' => array('v' => array('regular'), 'c' => array('display')),'Freeman' => array('v' => array('regular'), 'c' => array('display')),'Fresca' => array('v' => array('regular'), 'c' => array('sans-serif')),'Frijole' => array('v' => array('regular'), 'c' => array('display')),'Fruktur' => array('v' => array('regular','italic'), 'c' => array('display')),'Fugaz One' => array('v' => array('regular'), 'c' => array('display')),'Fuggles' => array('v' => array('regular'), 'c' => array('handwriting')),'Funnel Display' => array('v' => array('300','regular','500','600','700','800'), 'c' => array('display')),'Funnel Sans' => array('v' => array('300','regular','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Fustat' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Fuzzy Bubbles' => array('v' => array('regular','700'), 'c' => array('handwriting')),'GFS Didot' => array('v' => array('regular'), 'c' => array('serif')),'GFS Neohellenic' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Ga Maamli' => array('v' => array('regular'), 'c' => array('display')),'Gabarito' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('display')),'Gabriela' => array('v' => array('regular'), 'c' => array('serif')),'Gaegu' => array('v' => array('300','regular','700'), 'c' => array('handwriting')),'Gafata' => array('v' => array('regular'), 'c' => array('sans-serif')),'Gajraj One' => array('v' => array('regular'), 'c' => array('display')),'Galada' => array('v' => array('regular'), 'c' => array('display')),'Galdeano' => array('v' => array('regular'), 'c' => array('sans-serif')),'Galindo' => array('v' => array('regular'), 'c' => array('display')),'Gamja Flower' => array('v' => array('regular'), 'c' => array('handwriting')),'Gantari' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Gasoek One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Gayathri' => array('v' => array('100','regular','700'), 'c' => array('sans-serif')),'Geist' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Geist Mono' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('monospace')),'Gelasio' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Gemunu Libre' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Genos' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Gentium Book Plus' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Gentium Plus' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Geo' => array('v' => array('regular','italic'), 'c' => array('sans-serif')),'Geologica' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Geom' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Georama' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Geostar' => array('v' => array('regular'), 'c' => array('display')),'Geostar Fill' => array('v' => array('regular'), 'c' => array('display')),'Germania One' => array('v' => array('regular'), 'c' => array('display')),'Gideon Roman' => array('v' => array('regular'), 'c' => array('display')),'Gidole' => array('v' => array('regular'), 'c' => array('sans-serif')),'Gidugu' => array('v' => array('regular'), 'c' => array('sans-serif')),'Gilda Display' => array('v' => array('regular'), 'c' => array('serif')),'Girassol' => array('v' => array('regular'), 'c' => array('display')),'Give You Glory' => array('v' => array('regular'), 'c' => array('handwriting')),'Glass Antiqua' => array('v' => array('regular'), 'c' => array('display')),'Glegoo' => array('v' => array('regular','700'), 'c' => array('serif')),'Gloock' => array('v' => array('regular'), 'c' => array('serif')),'Gloria Hallelujah' => array('v' => array('regular'), 'c' => array('handwriting')),'Glory' => array('v' => array('100','200','300','regular','500','600','700','800','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Gluten' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Goblin One' => array('v' => array('regular'), 'c' => array('display')),'Gochi Hand' => array('v' => array('regular'), 'c' => array('handwriting')),'Goldman' => array('v' => array('regular','700'), 'c' => array('display')),'Golos Text' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Google Sans' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Google Sans Code' => array('v' => array('300','regular','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('monospace')),'Google Sans Flex' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Gorditas' => array('v' => array('regular','700'), 'c' => array('display')),'Gothic A1' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Gotu' => array('v' => array('regular'), 'c' => array('sans-serif')),'Goudy Bookletter 1911' => array('v' => array('regular'), 'c' => array('serif')),'Gowun Batang' => array('v' => array('regular','700'), 'c' => array('serif')),'Gowun Dodum' => array('v' => array('regular'), 'c' => array('sans-serif')),'Graduate' => array('v' => array('regular'), 'c' => array('serif')),'Grand Hotel' => array('v' => array('regular'), 'c' => array('handwriting')),'Grandiflora One' => array('v' => array('regular'), 'c' => array('serif')),'Grandstander' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('display')),'Grape Nuts' => array('v' => array('regular'), 'c' => array('handwriting')),'Gravitas One' => array('v' => array('regular'), 'c' => array('display')),'Great Vibes' => array('v' => array('regular'), 'c' => array('handwriting')),'Grechen Fuemen' => array('v' => array('regular'), 'c' => array('handwriting')),'Grenze' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('serif')),'Grenze Gotisch' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Grey Qo' => array('v' => array('regular'), 'c' => array('handwriting')),'Griffy' => array('v' => array('regular'), 'c' => array('display')),'Gruppo' => array('v' => array('regular'), 'c' => array('sans-serif')),'Gudea' => array('v' => array('regular','italic','700'), 'c' => array('sans-serif')),'Gugi' => array('v' => array('regular'), 'c' => array('display')),'Gulzar' => array('v' => array('regular'), 'c' => array('serif')),'Gupter' => array('v' => array('regular','500','700'), 'c' => array('serif')),'Gurajada' => array('v' => array('regular'), 'c' => array('sans-serif')),'Gwendolyn' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Habibi' => array('v' => array('regular'), 'c' => array('serif')),'Hachi Maru Pop' => array('v' => array('regular'), 'c' => array('handwriting')),'Hahmlet' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Halant' => array('v' => array('300','regular','500','600','700'), 'c' => array('serif')),'Hammersmith One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Hanalei' => array('v' => array('regular'), 'c' => array('display')),'Hanalei Fill' => array('v' => array('regular'), 'c' => array('display')),'Handjet' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Handlee' => array('v' => array('regular'), 'c' => array('handwriting')),'Hanken Grotesk' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Hanuman' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Happy Monkey' => array('v' => array('regular'), 'c' => array('display')),'Harmattan' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Headland One' => array('v' => array('regular'), 'c' => array('serif')),'Hedvig Letters Sans' => array('v' => array('regular'), 'c' => array('sans-serif')),'Hedvig Letters Serif' => array('v' => array('regular'), 'c' => array('serif')),'Heebo' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Henny Penny' => array('v' => array('regular'), 'c' => array('display')),'Hepta Slab' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Herr Von Muellerhoff' => array('v' => array('regular'), 'c' => array('handwriting')),'Hi Melody' => array('v' => array('regular'), 'c' => array('handwriting')),'Hina Mincho' => array('v' => array('regular'), 'c' => array('serif')),'Hind' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Hind Guntur' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Hind Madurai' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Hind Mysuru' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Hind Siliguri' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Hind Vadodara' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Holtwood One SC' => array('v' => array('regular'), 'c' => array('serif')),'Homemade Apple' => array('v' => array('regular'), 'c' => array('handwriting')),'Homenaje' => array('v' => array('regular'), 'c' => array('sans-serif')),'Honk' => array('v' => array('regular'), 'c' => array('display')),'Host Grotesk' => array('v' => array('300','regular','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Hubballi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Hubot Sans' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Huninn' => array('v' => array('regular'), 'c' => array('sans-serif')),'Hurricane' => array('v' => array('regular'), 'c' => array('handwriting')),'IBM Plex Mono' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('monospace')),'IBM Plex Sans' => array('v' => array('100','200','300','regular','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'IBM Plex Sans Arabic' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'IBM Plex Sans Condensed' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('sans-serif')),'IBM Plex Sans Devanagari' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'IBM Plex Sans Hebrew' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'IBM Plex Sans JP' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'IBM Plex Sans KR' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'IBM Plex Sans Thai' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'IBM Plex Sans Thai Looped' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'IBM Plex Serif' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('serif')),'IM Fell DW Pica' => array('v' => array('regular','italic'), 'c' => array('serif')),'IM Fell DW Pica SC' => array('v' => array('regular'), 'c' => array('serif')),'IM Fell Double Pica' => array('v' => array('regular','italic'), 'c' => array('serif')),'IM Fell Double Pica SC' => array('v' => array('regular'), 'c' => array('serif')),'IM Fell English' => array('v' => array('regular','italic'), 'c' => array('serif')),'IM Fell English SC' => array('v' => array('regular'), 'c' => array('serif')),'IM Fell French Canon' => array('v' => array('regular','italic'), 'c' => array('serif')),'IM Fell French Canon SC' => array('v' => array('regular'), 'c' => array('serif')),'IM Fell Great Primer' => array('v' => array('regular','italic'), 'c' => array('serif')),'IM Fell Great Primer SC' => array('v' => array('regular'), 'c' => array('serif')),'Iansui' => array('v' => array('regular'), 'c' => array('handwriting')),'Ibarra Real Nova' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Iceberg' => array('v' => array('regular'), 'c' => array('display')),'Iceland' => array('v' => array('regular'), 'c' => array('display')),'Imbue' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Imperial Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Imprima' => array('v' => array('regular'), 'c' => array('sans-serif')),'Inclusive Sans' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Inconsolata' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('monospace')),'Inder' => array('v' => array('regular'), 'c' => array('sans-serif')),'Indie Flower' => array('v' => array('regular'), 'c' => array('handwriting')),'Ingrid Darling' => array('v' => array('regular'), 'c' => array('handwriting')),'Inika' => array('v' => array('regular','700'), 'c' => array('serif')),'Inknut Antiqua' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('serif')),'Inria Sans' => array('v' => array('300','300italic','regular','italic','700','700italic'), 'c' => array('sans-serif')),'Inria Serif' => array('v' => array('300','300italic','regular','italic','700','700italic'), 'c' => array('serif')),'Inspiration' => array('v' => array('regular'), 'c' => array('handwriting')),'Instrument Sans' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Instrument Serif' => array('v' => array('regular','italic'), 'c' => array('serif')),'Intel One Mono' => array('v' => array('300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('monospace')),'Inter' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Inter Tight' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Irish Grover' => array('v' => array('regular'), 'c' => array('display')),'Island Moments' => array('v' => array('regular'), 'c' => array('handwriting')),'Istok Web' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Italiana' => array('v' => array('regular'), 'c' => array('sans-serif')),'Italianno' => array('v' => array('regular'), 'c' => array('handwriting')),'Itim' => array('v' => array('regular'), 'c' => array('handwriting')),'Jacquard 12' => array('v' => array('regular'), 'c' => array('display')),'Jacquard 12 Charted' => array('v' => array('regular'), 'c' => array('display')),'Jacquard 24' => array('v' => array('regular'), 'c' => array('display')),'Jacquard 24 Charted' => array('v' => array('regular'), 'c' => array('display')),'Jacquarda Bastarda 9' => array('v' => array('regular'), 'c' => array('display')),'Jacquarda Bastarda 9 Charted' => array('v' => array('regular'), 'c' => array('display')),'Jacques Francois' => array('v' => array('regular'), 'c' => array('serif')),'Jacques Francois Shadow' => array('v' => array('regular'), 'c' => array('display')),'Jaini' => array('v' => array('regular'), 'c' => array('display')),'Jaini Purva' => array('v' => array('regular'), 'c' => array('display')),'Jaldi' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Jaro' => array('v' => array('regular'), 'c' => array('sans-serif')),'Jersey 10' => array('v' => array('regular'), 'c' => array('display')),'Jersey 10 Charted' => array('v' => array('regular'), 'c' => array('display')),'Jersey 15' => array('v' => array('regular'), 'c' => array('display')),'Jersey 15 Charted' => array('v' => array('regular'), 'c' => array('display')),'Jersey 20' => array('v' => array('regular'), 'c' => array('display')),'Jersey 20 Charted' => array('v' => array('regular'), 'c' => array('display')),'Jersey 25' => array('v' => array('regular'), 'c' => array('display')),'Jersey 25 Charted' => array('v' => array('regular'), 'c' => array('display')),'JetBrains Mono' => array('v' => array('100','200','300','regular','500','600','700','800','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('monospace')),'Jim Nightshade' => array('v' => array('regular'), 'c' => array('handwriting')),'Joan' => array('v' => array('regular'), 'c' => array('serif')),'Jockey One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Jolly Lodger' => array('v' => array('regular'), 'c' => array('display')),'Jomhuria' => array('v' => array('regular'), 'c' => array('display')),'Jomolhari' => array('v' => array('regular'), 'c' => array('serif')),'Josefin Sans' => array('v' => array('100','200','300','regular','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Josefin Slab' => array('v' => array('100','200','300','regular','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Jost' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Joti One' => array('v' => array('regular'), 'c' => array('display')),'Jua' => array('v' => array('regular'), 'c' => array('sans-serif')),'Judson' => array('v' => array('regular','italic','700'), 'c' => array('serif')),'Julee' => array('v' => array('regular'), 'c' => array('handwriting')),'Julius Sans One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Junge' => array('v' => array('regular'), 'c' => array('serif')),'Jura' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Just Another Hand' => array('v' => array('regular'), 'c' => array('handwriting')),'Just Me Again Down Here' => array('v' => array('regular'), 'c' => array('handwriting')),'K2D' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic'), 'c' => array('sans-serif')),'Kablammo' => array('v' => array('regular'), 'c' => array('display')),'Kadwa' => array('v' => array('regular','700'), 'c' => array('serif')),'Kaisei Decol' => array('v' => array('regular','500','700'), 'c' => array('serif')),'Kaisei HarunoUmi' => array('v' => array('regular','500','700'), 'c' => array('serif')),'Kaisei Opti' => array('v' => array('regular','500','700'), 'c' => array('serif')),'Kaisei Tokumin' => array('v' => array('regular','500','700','800'), 'c' => array('serif')),'Kalam' => array('v' => array('300','regular','700'), 'c' => array('handwriting')),'Kalnia' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('serif')),'Kalnia Glaze' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('display')),'Kameron' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Kanchenjunga' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Kanit' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Kantumruy Pro' => array('v' => array('100','200','300','regular','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Kapakana' => array('v' => array('300','regular'), 'c' => array('handwriting')),'Karantina' => array('v' => array('300','regular','700'), 'c' => array('display')),'Karla' => array('v' => array('200','300','regular','500','600','700','800','200italic','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Karla Tamil Inclined' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Karla Tamil Upright' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Karma' => array('v' => array('300','regular','500','600','700'), 'c' => array('serif')),'Katibeh' => array('v' => array('regular'), 'c' => array('display')),'Kaushan Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Kavivanar' => array('v' => array('regular'), 'c' => array('handwriting')),'Kavoon' => array('v' => array('regular'), 'c' => array('display')),'Kay Pho Du' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Kdam Thmor Pro' => array('v' => array('regular'), 'c' => array('sans-serif')),'Keania One' => array('v' => array('regular'), 'c' => array('display')),'Kedebideri' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Kelly Slab' => array('v' => array('regular'), 'c' => array('display')),'Kenia' => array('v' => array('regular'), 'c' => array('display')),'Khand' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Khmer' => array('v' => array('regular'), 'c' => array('sans-serif')),'Khula' => array('v' => array('300','regular','600','700','800'), 'c' => array('sans-serif')),'Kings' => array('v' => array('regular'), 'c' => array('handwriting')),'Kirang Haerang' => array('v' => array('regular'), 'c' => array('display')),'Kite One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Kiwi Maru' => array('v' => array('300','regular','500'), 'c' => array('serif')),'Klee One' => array('v' => array('regular','600'), 'c' => array('handwriting')),'Knewave' => array('v' => array('regular'), 'c' => array('display')),'KoHo' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('sans-serif')),'Kodchasan' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('sans-serif')),'Kode Mono' => array('v' => array('regular','500','600','700'), 'c' => array('monospace')),'Koh Santepheap' => array('v' => array('100','300','regular','700','900'), 'c' => array('serif')),'Kolker Brush' => array('v' => array('regular'), 'c' => array('handwriting')),'Konkhmer Sleokchher' => array('v' => array('regular'), 'c' => array('display')),'Kosugi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Kosugi Maru' => array('v' => array('regular'), 'c' => array('sans-serif')),'Kotta One' => array('v' => array('regular'), 'c' => array('serif')),'Koulen' => array('v' => array('regular'), 'c' => array('display')),'Kranky' => array('v' => array('regular'), 'c' => array('display')),'Kreon' => array('v' => array('300','regular','500','600','700'), 'c' => array('serif')),'Kristi' => array('v' => array('regular'), 'c' => array('handwriting')),'Krona One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Krub' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('sans-serif')),'Kufam' => array('v' => array('regular','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Kulim Park' => array('v' => array('200','200italic','300','300italic','regular','italic','600','600italic','700','700italic'), 'c' => array('sans-serif')),'Kumar One' => array('v' => array('regular'), 'c' => array('display')),'Kumar One Outline' => array('v' => array('regular'), 'c' => array('display')),'Kumbh Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Kurale' => array('v' => array('regular'), 'c' => array('serif')),'LXGW Marker Gothic' => array('v' => array('regular'), 'c' => array('sans-serif')),'LXGW WenKai Mono TC' => array('v' => array('300','regular','700'), 'c' => array('monospace')),'LXGW WenKai TC' => array('v' => array('300','regular','700'), 'c' => array('handwriting')),'La Belle Aurore' => array('v' => array('regular'), 'c' => array('handwriting')),'Labrada' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Lacquer' => array('v' => array('regular'), 'c' => array('display')),'Laila' => array('v' => array('300','regular','500','600','700'), 'c' => array('serif')),'Lakki Reddy' => array('v' => array('regular'), 'c' => array('handwriting')),'Lalezar' => array('v' => array('regular'), 'c' => array('sans-serif')),'Lancelot' => array('v' => array('regular'), 'c' => array('display')),'Langar' => array('v' => array('regular'), 'c' => array('display')),'Lateef' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('serif')),'Lato' => array('v' => array('100','100italic','300','300italic','regular','italic','700','700italic','900','900italic'), 'c' => array('sans-serif')),'Lavishly Yours' => array('v' => array('regular'), 'c' => array('handwriting')),'League Gothic' => array('v' => array('regular'), 'c' => array('sans-serif')),'League Script' => array('v' => array('regular'), 'c' => array('handwriting')),'League Spartan' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Leckerli One' => array('v' => array('regular'), 'c' => array('handwriting')),'Ledger' => array('v' => array('regular'), 'c' => array('serif')),'Lekton' => array('v' => array('regular','italic','700'), 'c' => array('monospace')),'Lemon' => array('v' => array('regular'), 'c' => array('display')),'Lemonada' => array('v' => array('300','regular','500','600','700'), 'c' => array('display')),'Lexend' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Lexend Deca' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Lexend Exa' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Lexend Giga' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Lexend Mega' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Lexend Peta' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Lexend Tera' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Lexend Zetta' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Libertinus Keyboard' => array('v' => array('regular'), 'c' => array('display')),'Libertinus Math' => array('v' => array('regular'), 'c' => array('display')),'Libertinus Mono' => array('v' => array('regular'), 'c' => array('monospace')),'Libertinus Sans' => array('v' => array('regular','italic','700'), 'c' => array('sans-serif')),'Libertinus Serif' => array('v' => array('regular','italic','600','600italic','700','700italic'), 'c' => array('serif')),'Libertinus Serif Display' => array('v' => array('regular'), 'c' => array('display')),'Libre Barcode 128' => array('v' => array('regular'), 'c' => array('display')),'Libre Barcode 128 Text' => array('v' => array('regular'), 'c' => array('display')),'Libre Barcode 39' => array('v' => array('regular'), 'c' => array('display')),'Libre Barcode 39 Extended' => array('v' => array('regular'), 'c' => array('display')),'Libre Barcode 39 Extended Text' => array('v' => array('regular'), 'c' => array('display')),'Libre Barcode 39 Text' => array('v' => array('regular'), 'c' => array('display')),'Libre Barcode EAN13 Text' => array('v' => array('regular'), 'c' => array('display')),'Libre Baskerville' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Libre Bodoni' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Libre Caslon Display' => array('v' => array('regular'), 'c' => array('serif')),'Libre Caslon Text' => array('v' => array('regular','italic','700'), 'c' => array('serif')),'Libre Franklin' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Licorice' => array('v' => array('regular'), 'c' => array('handwriting')),'Life Savers' => array('v' => array('regular','700','800'), 'c' => array('display')),'Lilex' => array('v' => array('100','200','300','regular','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('monospace')),'Lilita One' => array('v' => array('regular'), 'c' => array('display')),'Lily Script One' => array('v' => array('regular'), 'c' => array('display')),'Limelight' => array('v' => array('regular'), 'c' => array('display')),'Linden Hill' => array('v' => array('regular','italic'), 'c' => array('serif')),'Linefont' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Lisu Bosa' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('serif')),'Liter' => array('v' => array('regular'), 'c' => array('sans-serif')),'Literata' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Liu Jian Mao Cao' => array('v' => array('regular'), 'c' => array('handwriting')),'Livvic' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','900','900italic'), 'c' => array('sans-serif')),'Lobster' => array('v' => array('regular'), 'c' => array('display')),'Lobster Two' => array('v' => array('regular','italic','700','700italic'), 'c' => array('display')),'Londrina Outline' => array('v' => array('regular'), 'c' => array('display')),'Londrina Shadow' => array('v' => array('regular'), 'c' => array('display')),'Londrina Sketch' => array('v' => array('regular'), 'c' => array('display')),'Londrina Solid' => array('v' => array('100','300','regular','900'), 'c' => array('display')),'Long Cang' => array('v' => array('regular'), 'c' => array('handwriting')),'Lora' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Love Light' => array('v' => array('regular'), 'c' => array('handwriting')),'Love Ya Like A Sister' => array('v' => array('regular'), 'c' => array('display')),'Loved by the King' => array('v' => array('regular'), 'c' => array('handwriting')),'Lovers Quarrel' => array('v' => array('regular'), 'c' => array('handwriting')),'Luckiest Guy' => array('v' => array('regular'), 'c' => array('display')),'Lugrasimo' => array('v' => array('regular'), 'c' => array('handwriting')),'Lumanosimo' => array('v' => array('regular'), 'c' => array('handwriting')),'Lunasima' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Lusitana' => array('v' => array('regular','700'), 'c' => array('serif')),'Lustria' => array('v' => array('regular'), 'c' => array('serif')),'Luxurious Roman' => array('v' => array('regular'), 'c' => array('display')),'Luxurious Script' => array('v' => array('regular'), 'c' => array('handwriting')),'M PLUS 1' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'M PLUS 1 Code' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('monospace')),'M PLUS 1p' => array('v' => array('100','300','regular','500','700','800','900'), 'c' => array('sans-serif')),'M PLUS 2' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'M PLUS Code Latin' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'M PLUS Rounded 1c' => array('v' => array('100','300','regular','500','700','800','900'), 'c' => array('sans-serif')),'Ma Shan Zheng' => array('v' => array('regular'), 'c' => array('handwriting')),'Macondo' => array('v' => array('regular'), 'c' => array('display')),'Macondo Swash Caps' => array('v' => array('regular'), 'c' => array('display')),'Mada' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Madimi One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Magra' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Maiden Orange' => array('v' => array('regular'), 'c' => array('serif')),'Maitree' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('serif')),'Major Mono Display' => array('v' => array('regular'), 'c' => array('monospace')),'Mako' => array('v' => array('regular'), 'c' => array('sans-serif')),'Mali' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('handwriting')),'Mallanna' => array('v' => array('regular'), 'c' => array('sans-serif')),'Maname' => array('v' => array('regular'), 'c' => array('serif')),'Mandali' => array('v' => array('regular'), 'c' => array('sans-serif')),'Manjari' => array('v' => array('100','regular','700'), 'c' => array('sans-serif')),'Manrope' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Mansalva' => array('v' => array('regular'), 'c' => array('handwriting')),'Manuale' => array('v' => array('300','regular','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('serif')),'Manufacturing Consent' => array('v' => array('regular'), 'c' => array('display')),'Marcellus' => array('v' => array('regular'), 'c' => array('serif')),'Marcellus SC' => array('v' => array('regular'), 'c' => array('serif')),'Marck Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Margarine' => array('v' => array('regular'), 'c' => array('display')),'Marhey' => array('v' => array('300','regular','500','600','700'), 'c' => array('display')),'Markazi Text' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Marko One' => array('v' => array('regular'), 'c' => array('serif')),'Marmelad' => array('v' => array('regular'), 'c' => array('sans-serif')),'Martel' => array('v' => array('200','300','regular','600','700','800','900'), 'c' => array('serif')),'Martel Sans' => array('v' => array('200','300','regular','600','700','800','900'), 'c' => array('sans-serif')),'Martian Mono' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('monospace')),'Marvel' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Matangi' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Mate' => array('v' => array('regular','italic'), 'c' => array('serif')),'Mate SC' => array('v' => array('regular'), 'c' => array('serif')),'Matemasie' => array('v' => array('regular'), 'c' => array('sans-serif')),'Material Icons' => array('v' => array('regular'), 'c' => array('monospace')),'Material Icons Outlined' => array('v' => array('regular'), 'c' => array('monospace')),'Material Icons Round' => array('v' => array('regular'), 'c' => array('monospace')),'Material Icons Sharp' => array('v' => array('regular'), 'c' => array('monospace')),'Material Icons Two Tone' => array('v' => array('regular'), 'c' => array('monospace')),'Material Symbols' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('monospace')),'Material Symbols Outlined' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('monospace')),'Material Symbols Rounded' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('monospace')),'Material Symbols Sharp' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('monospace')),'Maven Pro' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('sans-serif')),'McLaren' => array('v' => array('regular'), 'c' => array('display')),'Mea Culpa' => array('v' => array('regular'), 'c' => array('handwriting')),'Meddon' => array('v' => array('regular'), 'c' => array('handwriting')),'MedievalSharp' => array('v' => array('regular'), 'c' => array('display')),'Medula One' => array('v' => array('regular'), 'c' => array('display')),'Meera Inimai' => array('v' => array('regular'), 'c' => array('sans-serif')),'Megrim' => array('v' => array('regular'), 'c' => array('display')),'Meie Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Menbere' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Meow Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Merienda' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('handwriting')),'Merriweather' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Merriweather Sans' => array('v' => array('300','regular','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Metal' => array('v' => array('regular'), 'c' => array('display')),'Metal Mania' => array('v' => array('regular'), 'c' => array('display')),'Metamorphous' => array('v' => array('regular'), 'c' => array('display')),'Metrophobic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Michroma' => array('v' => array('regular'), 'c' => array('sans-serif')),'Micro 5' => array('v' => array('regular'), 'c' => array('display')),'Micro 5 Charted' => array('v' => array('regular'), 'c' => array('display')),'Milonga' => array('v' => array('regular'), 'c' => array('display')),'Miltonian' => array('v' => array('regular'), 'c' => array('display')),'Miltonian Tattoo' => array('v' => array('regular'), 'c' => array('display')),'Mina' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Mingzat' => array('v' => array('regular'), 'c' => array('sans-serif')),'Miniver' => array('v' => array('regular'), 'c' => array('display')),'Miriam Libre' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Mirza' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Miss Fajardose' => array('v' => array('regular'), 'c' => array('handwriting')),'Mitr' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Mochiy Pop One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Mochiy Pop P One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Modak' => array('v' => array('regular'), 'c' => array('display')),'Modern Antiqua' => array('v' => array('regular'), 'c' => array('display')),'Moderustic' => array('v' => array('300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Mogra' => array('v' => array('regular'), 'c' => array('display')),'Mohave' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Moirai One' => array('v' => array('regular'), 'c' => array('display')),'Molengo' => array('v' => array('regular'), 'c' => array('sans-serif')),'Molle' => array('v' => array('italic'), 'c' => array('handwriting')),'Momo Signature' => array('v' => array('regular'), 'c' => array('sans-serif')),'Momo Trust Display' => array('v' => array('regular'), 'c' => array('sans-serif')),'Momo Trust Sans' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Mona Sans' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Monda' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Monofett' => array('v' => array('regular'), 'c' => array('monospace')),'Monomakh' => array('v' => array('regular'), 'c' => array('display')),'Monomaniac One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Monoton' => array('v' => array('regular'), 'c' => array('display')),'Monsieur La Doulaise' => array('v' => array('regular'), 'c' => array('handwriting')),'Montaga' => array('v' => array('regular'), 'c' => array('serif')),'Montagu Slab' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('serif')),'MonteCarlo' => array('v' => array('regular'), 'c' => array('handwriting')),'Montez' => array('v' => array('regular'), 'c' => array('handwriting')),'Montserrat' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Montserrat Alternates' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Montserrat Underline' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Moo Lah Lah' => array('v' => array('regular'), 'c' => array('display')),'Mooli' => array('v' => array('regular'), 'c' => array('sans-serif')),'Moon Dance' => array('v' => array('regular'), 'c' => array('handwriting')),'Moul' => array('v' => array('regular'), 'c' => array('display')),'Moulpali' => array('v' => array('regular'), 'c' => array('sans-serif')),'Mountains of Christmas' => array('v' => array('regular','700'), 'c' => array('display')),'Mouse Memoirs' => array('v' => array('regular'), 'c' => array('sans-serif')),'Mozilla Headline' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Mozilla Text' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Mr Bedfort' => array('v' => array('regular'), 'c' => array('handwriting')),'Mr Dafoe' => array('v' => array('regular'), 'c' => array('handwriting')),'Mr De Haviland' => array('v' => array('regular'), 'c' => array('handwriting')),'Mrs Saint Delafield' => array('v' => array('regular'), 'c' => array('handwriting')),'Mrs Sheppards' => array('v' => array('regular'), 'c' => array('handwriting')),'Ms Madi' => array('v' => array('regular'), 'c' => array('handwriting')),'Mukta' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Mukta Mahee' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Mukta Malar' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Mukta Vaani' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Mulish' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Murecho' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'MuseoModerno' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('display')),'My Soul' => array('v' => array('regular'), 'c' => array('handwriting')),'Mynerve' => array('v' => array('regular'), 'c' => array('handwriting')),'Mystery Quest' => array('v' => array('regular'), 'c' => array('display')),'NTR' => array('v' => array('regular'), 'c' => array('sans-serif')),'Nabla' => array('v' => array('regular'), 'c' => array('display')),'Namdhinggo' => array('v' => array('regular','500','600','700','800'), 'c' => array('serif')),'Nanum Brush Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Nanum Gothic' => array('v' => array('regular','700','800'), 'c' => array('sans-serif')),'Nanum Gothic Coding' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Nanum Myeongjo' => array('v' => array('regular','700','800'), 'c' => array('serif')),'Nanum Pen Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Narnoor' => array('v' => array('regular','500','600','700','800'), 'c' => array('sans-serif')),'Nata Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'National Park' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Neonderthaw' => array('v' => array('regular'), 'c' => array('handwriting')),'Nerko One' => array('v' => array('regular'), 'c' => array('handwriting')),'Neucha' => array('v' => array('regular'), 'c' => array('handwriting')),'Neuton' => array('v' => array('200','300','regular','italic','700','800'), 'c' => array('serif')),'New Amsterdam' => array('v' => array('regular'), 'c' => array('sans-serif')),'New Rocker' => array('v' => array('regular'), 'c' => array('display')),'New Tegomin' => array('v' => array('regular'), 'c' => array('serif')),'News Cycle' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Newsreader' => array('v' => array('200','300','regular','500','600','700','800','200italic','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('serif')),'Niconne' => array('v' => array('regular'), 'c' => array('handwriting')),'Niramit' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('sans-serif')),'Nixie One' => array('v' => array('regular'), 'c' => array('display')),'Nobile' => array('v' => array('regular','italic','500','500italic','700','700italic'), 'c' => array('sans-serif')),'Nokora' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Norican' => array('v' => array('regular'), 'c' => array('handwriting')),'Nosifer' => array('v' => array('regular'), 'c' => array('display')),'Notable' => array('v' => array('regular'), 'c' => array('sans-serif')),'Nothing You Could Do' => array('v' => array('regular'), 'c' => array('handwriting')),'Noticia Text' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Noto Color Emoji' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Emoji' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Noto Kufi Arabic' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Music' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Naskh Arabic' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Noto Nastaliq Urdu' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Noto Rashi Hebrew' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Noto Sans Adlam' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Adlam Unjoined' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Anatolian Hieroglyphs' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Arabic' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Armenian' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Avestan' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Balinese' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Bamum' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Bassa Vah' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Batak' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Bengali' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Bhaiksuki' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Brahmi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Buginese' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Buhid' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Canadian Aboriginal' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Carian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Caucasian Albanian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Chakma' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Cham' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Cherokee' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Chorasmian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Coptic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Cuneiform' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Cypriot' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Cypro Minoan' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Deseret' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Devanagari' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Display' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Noto Sans Duployan' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Noto Sans Egyptian Hieroglyphs' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Elbasan' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Elymaic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Ethiopic' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Georgian' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Glagolitic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Gothic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Grantha' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Gujarati' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Gunjala Gondi' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Gurmukhi' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans HK' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Hanifi Rohingya' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Hanunoo' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Hatran' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Hebrew' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Imperial Aramaic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Indic Siyaq Numbers' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Inscriptional Pahlavi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Inscriptional Parthian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans JP' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Javanese' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans KR' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Kaithi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Kannada' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Kawi' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Kayah Li' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Kharoshthi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Khmer' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Khojki' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Khudawadi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Lao' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Lao Looped' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Lepcha' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Limbu' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Linear A' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Linear B' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Lisu' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Lycian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Lydian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Mahajani' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Malayalam' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Mandaic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Manichaean' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Marchen' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Masaram Gondi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Math' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Mayan Numerals' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Medefaidrin' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Meetei Mayek' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Mende Kikakui' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Meroitic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Miao' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Modi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Mongolian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Mono' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Mro' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Multani' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Myanmar' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans NKo' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans NKo Unjoined' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Nabataean' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Nag Mundari' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Nandinagari' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans New Tai Lue' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Newa' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Nushu' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Ogham' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Ol Chiki' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Old Hungarian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Old Italic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Old North Arabian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Old Permic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Old Persian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Old Sogdian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Old South Arabian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Old Turkic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Oriya' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Osage' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Osmanya' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Pahawh Hmong' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Palmyrene' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Pau Cin Hau' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans PhagsPa' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Phoenician' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Psalter Pahlavi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Rejang' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Runic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans SC' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Samaritan' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Saurashtra' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Sharada' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Shavian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Siddham' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans SignWriting' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Sinhala' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Sogdian' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Sora Sompeng' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Soyombo' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Sundanese' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Sunuwar' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Syloti Nagri' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Symbols' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Symbols 2' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Syriac' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Syriac Eastern' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Syriac Western' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans TC' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Tagalog' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Tagbanwa' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Tai Le' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Tai Tham' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Tai Viet' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Takri' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Tamil' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Tamil Supplement' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Tangsa' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Telugu' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Thaana' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Thai' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Thai Looped' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Noto Sans Tifinagh' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Tirhuta' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Ugaritic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Vai' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Vithkuqi' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Noto Sans Wancho' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Warang Citi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Yi' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Sans Zanabazar Square' => array('v' => array('regular'), 'c' => array('sans-serif')),'Noto Serif' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Noto Serif Ahom' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Armenian' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Balinese' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Bengali' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Devanagari' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Display' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Noto Serif Dives Akuru' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Dogra' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Ethiopic' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Georgian' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Grantha' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Gujarati' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Gurmukhi' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif HK' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Hebrew' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Hentaigana' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif JP' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif KR' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Kannada' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Khitan Small Script' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Khmer' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Khojki' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Noto Serif Lao' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Makasar' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Malayalam' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Myanmar' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif NP Hmong' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Noto Serif Old Uyghur' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Oriya' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Noto Serif Ottoman Siyaq' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif SC' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Sinhala' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif TC' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Tamil' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Noto Serif Tangut' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Telugu' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Thai' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Tibetan' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Noto Serif Todhri' => array('v' => array('regular'), 'c' => array('serif')),'Noto Serif Toto' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Noto Serif Vithkuqi' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Noto Serif Yezidi' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Noto Traditional Nushu' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Noto Znamenny Musical Notation' => array('v' => array('regular'), 'c' => array('sans-serif')),'Nova Cut' => array('v' => array('regular'), 'c' => array('display')),'Nova Flat' => array('v' => array('regular'), 'c' => array('display')),'Nova Mono' => array('v' => array('regular'), 'c' => array('monospace')),'Nova Oval' => array('v' => array('regular'), 'c' => array('display')),'Nova Round' => array('v' => array('regular'), 'c' => array('display')),'Nova Script' => array('v' => array('regular'), 'c' => array('display')),'Nova Slim' => array('v' => array('regular'), 'c' => array('display')),'Nova Square' => array('v' => array('regular'), 'c' => array('display')),'Numans' => array('v' => array('regular'), 'c' => array('sans-serif')),'Nunito' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Nunito Sans' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Nuosu SIL' => array('v' => array('regular'), 'c' => array('sans-serif')),'Odibee Sans' => array('v' => array('regular'), 'c' => array('display')),'Odor Mean Chey' => array('v' => array('regular'), 'c' => array('serif')),'Offside' => array('v' => array('regular'), 'c' => array('display')),'Oi' => array('v' => array('regular'), 'c' => array('display')),'Ojuju' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Old Standard TT' => array('v' => array('regular','italic','700'), 'c' => array('serif')),'Oldenburg' => array('v' => array('regular'), 'c' => array('display')),'Ole' => array('v' => array('regular'), 'c' => array('handwriting')),'Oleo Script' => array('v' => array('regular','700'), 'c' => array('display')),'Oleo Script Swash Caps' => array('v' => array('regular','700'), 'c' => array('display')),'Onest' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Oooh Baby' => array('v' => array('regular'), 'c' => array('handwriting')),'Open Sans' => array('v' => array('300','regular','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Oranienbaum' => array('v' => array('regular'), 'c' => array('serif')),'Orbit' => array('v' => array('regular'), 'c' => array('sans-serif')),'Orbitron' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Oregano' => array('v' => array('regular','italic'), 'c' => array('display')),'Orelega One' => array('v' => array('regular'), 'c' => array('display')),'Orienta' => array('v' => array('regular'), 'c' => array('sans-serif')),'Original Surfer' => array('v' => array('regular'), 'c' => array('display')),'Oswald' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Outfit' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Over the Rainbow' => array('v' => array('regular'), 'c' => array('handwriting')),'Overlock' => array('v' => array('regular','italic','700','700italic','900','900italic'), 'c' => array('display')),'Overlock SC' => array('v' => array('regular'), 'c' => array('display')),'Overpass' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Overpass Mono' => array('v' => array('300','regular','500','600','700'), 'c' => array('monospace')),'Ovo' => array('v' => array('regular'), 'c' => array('serif')),'Oxanium' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('display')),'Oxygen' => array('v' => array('300','regular','700'), 'c' => array('sans-serif')),'Oxygen Mono' => array('v' => array('regular'), 'c' => array('monospace')),'PT Mono' => array('v' => array('regular'), 'c' => array('monospace')),'PT Sans' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'PT Sans Caption' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'PT Sans Narrow' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'PT Serif' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'PT Serif Caption' => array('v' => array('regular','italic'), 'c' => array('serif')),'Pacifico' => array('v' => array('regular'), 'c' => array('handwriting')),'Padauk' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Padyakke Expanded One' => array('v' => array('regular'), 'c' => array('serif')),'Palanquin' => array('v' => array('100','200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Palanquin Dark' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Palette Mosaic' => array('v' => array('regular'), 'c' => array('display')),'Pangolin' => array('v' => array('regular'), 'c' => array('handwriting')),'Paprika' => array('v' => array('regular'), 'c' => array('display')),'Parastoo' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Parisienne' => array('v' => array('regular'), 'c' => array('handwriting')),'Parkinsans' => array('v' => array('300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Passero One' => array('v' => array('regular'), 'c' => array('display')),'Passion One' => array('v' => array('regular','700','900'), 'c' => array('display')),'Passions Conflict' => array('v' => array('regular'), 'c' => array('handwriting')),'Pathway Extreme' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Pathway Gothic One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Patrick Hand' => array('v' => array('regular'), 'c' => array('handwriting')),'Patrick Hand SC' => array('v' => array('regular'), 'c' => array('handwriting')),'Pattaya' => array('v' => array('regular'), 'c' => array('sans-serif')),'Patua One' => array('v' => array('regular'), 'c' => array('display')),'Pavanam' => array('v' => array('regular'), 'c' => array('sans-serif')),'Paytone One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Peddana' => array('v' => array('regular'), 'c' => array('serif')),'Peralta' => array('v' => array('regular'), 'c' => array('serif')),'Permanent Marker' => array('v' => array('regular'), 'c' => array('handwriting')),'Petemoss' => array('v' => array('regular'), 'c' => array('handwriting')),'Petit Formal Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Petrona' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Phetsarath' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Philosopher' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Phudu' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('display')),'Piazzolla' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Piedra' => array('v' => array('regular'), 'c' => array('display')),'Pinyon Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Pirata One' => array('v' => array('regular'), 'c' => array('display')),'Pixelify Sans' => array('v' => array('regular','500','600','700'), 'c' => array('display')),'Plaster' => array('v' => array('regular'), 'c' => array('display')),'Platypi' => array('v' => array('300','regular','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('serif')),'Play' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Playball' => array('v' => array('regular'), 'c' => array('display')),'Playfair' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Playfair Display' => array('v' => array('regular','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Playfair Display SC' => array('v' => array('regular','italic','700','700italic','900','900italic'), 'c' => array('serif')),'Playpen Sans' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('handwriting')),'Playpen Sans Arabic' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('handwriting')),'Playpen Sans Deva' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('handwriting')),'Playpen Sans Hebrew' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('handwriting')),'Playpen Sans Thai' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('handwriting')),'Playwrite AR' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite AR Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite AT' => array('v' => array('100','200','300','regular','100italic','200italic','300italic','italic'), 'c' => array('handwriting')),'Playwrite AT Guides' => array('v' => array('regular','italic'), 'c' => array('handwriting')),'Playwrite AU NSW' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite AU NSW Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite AU QLD' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite AU QLD Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite AU SA' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite AU SA Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite AU TAS' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite AU TAS Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite AU VIC' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite AU VIC Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite BE VLG' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite BE VLG Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite BE WAL' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite BE WAL Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite BR' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite BR Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite CA' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite CA Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite CL' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite CL Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite CO' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite CO Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite CU' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite CU Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite CZ' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite CZ Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite DE Grund' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite DE Grund Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite DE LA' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite DE LA Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite DE SAS' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite DE SAS Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite DE VA' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite DE VA Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite DK Loopet' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite DK Loopet Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite DK Uloopet' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite DK Uloopet Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite ES' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite ES Deco' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite ES Deco Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite ES Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite FR Moderne' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite FR Moderne Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite FR Trad' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite FR Trad Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite GB J' => array('v' => array('100','200','300','regular','100italic','200italic','300italic','italic'), 'c' => array('handwriting')),'Playwrite GB J Guides' => array('v' => array('regular','italic'), 'c' => array('handwriting')),'Playwrite GB S' => array('v' => array('100','200','300','regular','100italic','200italic','300italic','italic'), 'c' => array('handwriting')),'Playwrite GB S Guides' => array('v' => array('regular','italic'), 'c' => array('handwriting')),'Playwrite HR' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite HR Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite HR Lijeva' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite HR Lijeva Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite HU' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite HU Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite ID' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite ID Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite IE' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite IE Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite IN' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite IN Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite IS' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite IS Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite IT Moderna' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite IT Moderna Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite IT Trad' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite IT Trad Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite MX' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite MX Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite NG Modern' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite NG Modern Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite NL' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite NL Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite NO' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite NO Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite NZ' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite NZ Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite PE' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite PE Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite PL' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite PL Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite PT' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite PT Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite RO' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite RO Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite SK' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite SK Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite TZ' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite TZ Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite US Modern' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite US Modern Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite US Trad' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite US Trad Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite VN' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite VN Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Playwrite ZA' => array('v' => array('100','200','300','regular'), 'c' => array('handwriting')),'Playwrite ZA Guides' => array('v' => array('regular'), 'c' => array('handwriting')),'Plus Jakarta Sans' => array('v' => array('200','300','regular','500','600','700','800','200italic','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Pochaevsk' => array('v' => array('regular'), 'c' => array('display')),'Podkova' => array('v' => array('regular','500','600','700','800'), 'c' => array('serif')),'Poetsen One' => array('v' => array('regular'), 'c' => array('display')),'Poiret One' => array('v' => array('regular'), 'c' => array('display')),'Poller One' => array('v' => array('regular'), 'c' => array('display')),'Poltawski Nowy' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Poly' => array('v' => array('regular','italic'), 'c' => array('serif')),'Pompiere' => array('v' => array('regular'), 'c' => array('display')),'Ponnala' => array('v' => array('regular'), 'c' => array('display')),'Ponomar' => array('v' => array('regular'), 'c' => array('display')),'Pontano Sans' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Poor Story' => array('v' => array('regular'), 'c' => array('display')),'Poppins' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Port Lligat Sans' => array('v' => array('regular'), 'c' => array('sans-serif')),'Port Lligat Slab' => array('v' => array('regular'), 'c' => array('serif')),'Potta One' => array('v' => array('regular'), 'c' => array('display')),'Pragati Narrow' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Praise' => array('v' => array('regular'), 'c' => array('handwriting')),'Prata' => array('v' => array('regular'), 'c' => array('serif')),'Preahvihear' => array('v' => array('regular'), 'c' => array('sans-serif')),'Press Start 2P' => array('v' => array('regular'), 'c' => array('display')),'Pridi' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('serif')),'Princess Sofia' => array('v' => array('regular'), 'c' => array('handwriting')),'Prociono' => array('v' => array('regular'), 'c' => array('serif')),'Prompt' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Prosto One' => array('v' => array('regular'), 'c' => array('display')),'Protest Guerrilla' => array('v' => array('regular'), 'c' => array('display')),'Protest Revolution' => array('v' => array('regular'), 'c' => array('display')),'Protest Riot' => array('v' => array('regular'), 'c' => array('display')),'Protest Strike' => array('v' => array('regular'), 'c' => array('display')),'Proza Libre' => array('v' => array('regular','italic','500','500italic','600','600italic','700','700italic','800','800italic'), 'c' => array('sans-serif')),'Public Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Puppies Play' => array('v' => array('regular'), 'c' => array('handwriting')),'Puritan' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Purple Purse' => array('v' => array('regular'), 'c' => array('display')),'Qahiri' => array('v' => array('regular'), 'c' => array('sans-serif')),'Quando' => array('v' => array('regular'), 'c' => array('serif')),'Quantico' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Quattrocento' => array('v' => array('regular','700'), 'c' => array('serif')),'Quattrocento Sans' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Questrial' => array('v' => array('regular'), 'c' => array('sans-serif')),'Quicksand' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Quintessential' => array('v' => array('regular'), 'c' => array('handwriting')),'Qwigley' => array('v' => array('regular'), 'c' => array('handwriting')),'Qwitcher Grypen' => array('v' => array('regular','700'), 'c' => array('handwriting')),'REM' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Racing Sans One' => array('v' => array('regular'), 'c' => array('display')),'Radio Canada' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Radio Canada Big' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Radley' => array('v' => array('regular','italic'), 'c' => array('serif')),'Rajdhani' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Rakkas' => array('v' => array('regular'), 'c' => array('display')),'Raleway' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Raleway Dots' => array('v' => array('regular'), 'c' => array('display')),'Ramabhadra' => array('v' => array('regular'), 'c' => array('sans-serif')),'Ramaraja' => array('v' => array('regular'), 'c' => array('serif')),'Rambla' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Rammetto One' => array('v' => array('regular'), 'c' => array('display')),'Rampart One' => array('v' => array('regular'), 'c' => array('display')),'Ranchers' => array('v' => array('regular'), 'c' => array('display')),'Rancho' => array('v' => array('regular'), 'c' => array('handwriting')),'Ranga' => array('v' => array('regular','700'), 'c' => array('display')),'Rasa' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Rationale' => array('v' => array('regular'), 'c' => array('sans-serif')),'Ravi Prakash' => array('v' => array('regular'), 'c' => array('display')),'Readex Pro' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Recursive' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Red Hat Display' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Red Hat Mono' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('monospace')),'Red Hat Text' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Red Rose' => array('v' => array('300','regular','500','600','700'), 'c' => array('display')),'Redacted' => array('v' => array('regular'), 'c' => array('display')),'Redacted Script' => array('v' => array('300','regular','700'), 'c' => array('display')),'Reddit Mono' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('monospace')),'Reddit Sans' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Reddit Sans Condensed' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Redressed' => array('v' => array('regular'), 'c' => array('handwriting')),'Reem Kufi' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Reem Kufi Fun' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Reem Kufi Ink' => array('v' => array('regular'), 'c' => array('sans-serif')),'Reenie Beanie' => array('v' => array('regular'), 'c' => array('handwriting')),'Reggae One' => array('v' => array('regular'), 'c' => array('display')),'Rethink Sans' => array('v' => array('regular','500','600','700','800','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Revalia' => array('v' => array('regular'), 'c' => array('display')),'Rhodium Libre' => array('v' => array('regular'), 'c' => array('serif')),'Ribeye' => array('v' => array('regular'), 'c' => array('display')),'Ribeye Marrow' => array('v' => array('regular'), 'c' => array('display')),'Righteous' => array('v' => array('regular'), 'c' => array('display')),'Risque' => array('v' => array('regular'), 'c' => array('display')),'Road Rage' => array('v' => array('regular'), 'c' => array('display')),'Roboto' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Roboto Condensed' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Roboto Flex' => array('v' => array('regular'), 'c' => array('sans-serif')),'Roboto Mono' => array('v' => array('100','200','300','regular','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('monospace')),'Roboto Serif' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Roboto Slab' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('serif')),'Rochester' => array('v' => array('regular'), 'c' => array('handwriting')),'Rock 3D' => array('v' => array('regular'), 'c' => array('display')),'Rock Salt' => array('v' => array('regular'), 'c' => array('handwriting')),'RocknRoll One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Rokkitt' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Romanesco' => array('v' => array('regular'), 'c' => array('handwriting')),'Ropa Sans' => array('v' => array('regular','italic'), 'c' => array('sans-serif')),'Rosario' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Rosarivo' => array('v' => array('regular','italic'), 'c' => array('serif')),'Rouge Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Rowdies' => array('v' => array('300','regular','700'), 'c' => array('display')),'Rozha One' => array('v' => array('regular'), 'c' => array('serif')),'Rubik' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Rubik 80s Fade' => array('v' => array('regular'), 'c' => array('display')),'Rubik Beastly' => array('v' => array('regular'), 'c' => array('display')),'Rubik Broken Fax' => array('v' => array('regular'), 'c' => array('display')),'Rubik Bubbles' => array('v' => array('regular'), 'c' => array('display')),'Rubik Burned' => array('v' => array('regular'), 'c' => array('display')),'Rubik Dirt' => array('v' => array('regular'), 'c' => array('display')),'Rubik Distressed' => array('v' => array('regular'), 'c' => array('display')),'Rubik Doodle Shadow' => array('v' => array('regular'), 'c' => array('display')),'Rubik Doodle Triangles' => array('v' => array('regular'), 'c' => array('display')),'Rubik Gemstones' => array('v' => array('regular'), 'c' => array('display')),'Rubik Glitch' => array('v' => array('regular'), 'c' => array('display')),'Rubik Glitch Pop' => array('v' => array('regular'), 'c' => array('display')),'Rubik Iso' => array('v' => array('regular'), 'c' => array('display')),'Rubik Lines' => array('v' => array('regular'), 'c' => array('display')),'Rubik Maps' => array('v' => array('regular'), 'c' => array('display')),'Rubik Marker Hatch' => array('v' => array('regular'), 'c' => array('display')),'Rubik Maze' => array('v' => array('regular'), 'c' => array('display')),'Rubik Microbe' => array('v' => array('regular'), 'c' => array('display')),'Rubik Mono One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Rubik Moonrocks' => array('v' => array('regular'), 'c' => array('display')),'Rubik Pixels' => array('v' => array('regular'), 'c' => array('display')),'Rubik Puddles' => array('v' => array('regular'), 'c' => array('display')),'Rubik Scribble' => array('v' => array('regular'), 'c' => array('display')),'Rubik Spray Paint' => array('v' => array('regular'), 'c' => array('display')),'Rubik Storm' => array('v' => array('regular'), 'c' => array('display')),'Rubik Vinyl' => array('v' => array('regular'), 'c' => array('display')),'Rubik Wet Paint' => array('v' => array('regular'), 'c' => array('display')),'Ruda' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Rufina' => array('v' => array('regular','700'), 'c' => array('serif')),'Ruge Boogie' => array('v' => array('regular'), 'c' => array('handwriting')),'Ruluko' => array('v' => array('regular'), 'c' => array('sans-serif')),'Rum Raisin' => array('v' => array('regular'), 'c' => array('sans-serif')),'Ruslan Display' => array('v' => array('regular'), 'c' => array('display')),'Russo One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Ruthie' => array('v' => array('regular'), 'c' => array('handwriting')),'Ruwudu' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Rye' => array('v' => array('regular'), 'c' => array('display')),'STIX Two Text' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('serif')),'SUSE' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'SUSE Mono' => array('v' => array('100','200','300','regular','500','600','700','800','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Sacramento' => array('v' => array('regular'), 'c' => array('handwriting')),'Sahitya' => array('v' => array('regular','700'), 'c' => array('serif')),'Sail' => array('v' => array('regular'), 'c' => array('display')),'Saira' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Saira Condensed' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Saira Extra Condensed' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Saira Semi Condensed' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Saira Stencil One' => array('v' => array('regular'), 'c' => array('display')),'Salsa' => array('v' => array('regular'), 'c' => array('display')),'Sanchez' => array('v' => array('regular','italic'), 'c' => array('serif')),'Sancreek' => array('v' => array('regular'), 'c' => array('display')),'Sankofa Display' => array('v' => array('regular'), 'c' => array('sans-serif')),'Sansation' => array('v' => array('300','300italic','regular','italic','700','700italic'), 'c' => array('sans-serif')),'Sansita' => array('v' => array('regular','italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Sansita Swashed' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('display')),'Sarabun' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic'), 'c' => array('sans-serif')),'Sarala' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Sarina' => array('v' => array('regular'), 'c' => array('display')),'Sarpanch' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Sassy Frass' => array('v' => array('regular'), 'c' => array('handwriting')),'Satisfy' => array('v' => array('regular'), 'c' => array('handwriting')),'Savate' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Sawarabi Gothic' => array('v' => array('regular'), 'c' => array('sans-serif')),'Sawarabi Mincho' => array('v' => array('regular'), 'c' => array('serif')),'Scada' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Scheherazade New' => array('v' => array('regular','500','600','700'), 'c' => array('serif')),'Schibsted Grotesk' => array('v' => array('regular','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Schoolbell' => array('v' => array('regular'), 'c' => array('handwriting')),'Science Gothic' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Scope One' => array('v' => array('regular'), 'c' => array('serif')),'Seaweed Script' => array('v' => array('regular'), 'c' => array('display')),'Secular One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Sedan' => array('v' => array('regular','italic'), 'c' => array('serif')),'Sedan SC' => array('v' => array('regular'), 'c' => array('serif')),'Sedgwick Ave' => array('v' => array('regular'), 'c' => array('handwriting')),'Sedgwick Ave Display' => array('v' => array('regular'), 'c' => array('handwriting')),'Sekuya' => array('v' => array('regular'), 'c' => array('display')),'Sen' => array('v' => array('regular','500','600','700','800'), 'c' => array('sans-serif')),'Send Flowers' => array('v' => array('regular'), 'c' => array('handwriting')),'Sevillana' => array('v' => array('regular'), 'c' => array('display')),'Seymour One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Shadows Into Light' => array('v' => array('regular'), 'c' => array('handwriting')),'Shadows Into Light Two' => array('v' => array('regular'), 'c' => array('handwriting')),'Shafarik' => array('v' => array('regular'), 'c' => array('display')),'Shalimar' => array('v' => array('regular'), 'c' => array('handwriting')),'Shantell Sans' => array('v' => array('300','regular','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('display')),'Shanti' => array('v' => array('regular'), 'c' => array('sans-serif')),'Share' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Share Tech' => array('v' => array('regular'), 'c' => array('sans-serif')),'Share Tech Mono' => array('v' => array('regular'), 'c' => array('monospace')),'Shippori Antique' => array('v' => array('regular'), 'c' => array('sans-serif')),'Shippori Antique B1' => array('v' => array('regular'), 'c' => array('sans-serif')),'Shippori Mincho' => array('v' => array('regular','500','600','700','800'), 'c' => array('serif')),'Shippori Mincho B1' => array('v' => array('regular','500','600','700','800'), 'c' => array('serif')),'Shizuru' => array('v' => array('regular'), 'c' => array('display')),'Shojumaru' => array('v' => array('regular'), 'c' => array('display')),'Short Stack' => array('v' => array('regular'), 'c' => array('handwriting')),'Shrikhand' => array('v' => array('regular'), 'c' => array('display')),'Siemreap' => array('v' => array('regular'), 'c' => array('sans-serif')),'Sigmar' => array('v' => array('regular'), 'c' => array('display')),'Sigmar One' => array('v' => array('regular'), 'c' => array('display')),'Signika' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Signika Negative' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Silkscreen' => array('v' => array('regular','700'), 'c' => array('display')),'Simonetta' => array('v' => array('regular','italic','900','900italic'), 'c' => array('display')),'Single Day' => array('v' => array('regular'), 'c' => array('display')),'Sintony' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Sirin Stencil' => array('v' => array('regular'), 'c' => array('display')),'Sirivennela' => array('v' => array('regular'), 'c' => array('sans-serif')),'Six Caps' => array('v' => array('regular'), 'c' => array('sans-serif')),'Sixtyfour' => array('v' => array('regular'), 'c' => array('monospace')),'Sixtyfour Convergence' => array('v' => array('regular'), 'c' => array('monospace')),'Skranji' => array('v' => array('regular','700'), 'c' => array('display')),'Slabo 13px' => array('v' => array('regular'), 'c' => array('serif')),'Slabo 27px' => array('v' => array('regular'), 'c' => array('serif')),'Slackey' => array('v' => array('regular'), 'c' => array('display')),'Slackside One' => array('v' => array('regular'), 'c' => array('handwriting')),'Smokum' => array('v' => array('regular'), 'c' => array('display')),'Smooch' => array('v' => array('regular'), 'c' => array('handwriting')),'Smooch Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Smythe' => array('v' => array('regular'), 'c' => array('display')),'Sniglet' => array('v' => array('regular','800'), 'c' => array('display')),'Snippet' => array('v' => array('regular'), 'c' => array('sans-serif')),'Snowburst One' => array('v' => array('regular'), 'c' => array('display')),'Sofadi One' => array('v' => array('regular'), 'c' => array('display')),'Sofia' => array('v' => array('regular'), 'c' => array('handwriting')),'Sofia Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Sofia Sans Condensed' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Sofia Sans Extra Condensed' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Sofia Sans Semi Condensed' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Solitreo' => array('v' => array('regular'), 'c' => array('handwriting')),'Solway' => array('v' => array('300','regular','500','700','800'), 'c' => array('serif')),'Sometype Mono' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('monospace')),'Song Myung' => array('v' => array('regular'), 'c' => array('serif')),'Sono' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Sonsie One' => array('v' => array('regular'), 'c' => array('display')),'Sora' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Sorts Mill Goudy' => array('v' => array('regular','italic'), 'c' => array('serif')),'Sour Gummy' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Source Code Pro' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('monospace')),'Source Sans 3' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Source Serif 4' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Space Grotesk' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Space Mono' => array('v' => array('regular','italic','700','700italic'), 'c' => array('monospace')),'Special Elite' => array('v' => array('regular'), 'c' => array('display')),'Special Gothic' => array('v' => array('regular','500','600','700'), 'c' => array('sans-serif')),'Special Gothic Condensed One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Special Gothic Expanded One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Spectral' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic'), 'c' => array('serif')),'Spectral SC' => array('v' => array('200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic'), 'c' => array('serif')),'Spicy Rice' => array('v' => array('regular'), 'c' => array('display')),'Spinnaker' => array('v' => array('regular'), 'c' => array('sans-serif')),'Spirax' => array('v' => array('regular'), 'c' => array('display')),'Splash' => array('v' => array('regular'), 'c' => array('handwriting')),'Spline Sans' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Spline Sans Mono' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('monospace')),'Squada One' => array('v' => array('regular'), 'c' => array('display')),'Square Peg' => array('v' => array('regular'), 'c' => array('handwriting')),'Sree Krushnadevaraya' => array('v' => array('regular'), 'c' => array('serif')),'Sriracha' => array('v' => array('regular'), 'c' => array('handwriting')),'Srisakdi' => array('v' => array('regular','700'), 'c' => array('display')),'Staatliches' => array('v' => array('regular'), 'c' => array('display')),'Stack Sans Headline' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Stack Sans Notch' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Stack Sans Text' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Stalemate' => array('v' => array('regular'), 'c' => array('handwriting')),'Stalinist One' => array('v' => array('regular'), 'c' => array('display')),'Stardos Stencil' => array('v' => array('regular','700'), 'c' => array('display')),'Stick' => array('v' => array('regular'), 'c' => array('sans-serif')),'Stick No Bills' => array('v' => array('200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Stint Ultra Condensed' => array('v' => array('regular'), 'c' => array('serif')),'Stint Ultra Expanded' => array('v' => array('regular'), 'c' => array('serif')),'Stoke' => array('v' => array('300','regular'), 'c' => array('serif')),'Story Script' => array('v' => array('regular'), 'c' => array('sans-serif')),'Strait' => array('v' => array('regular'), 'c' => array('sans-serif')),'Style Script' => array('v' => array('regular'), 'c' => array('handwriting')),'Stylish' => array('v' => array('regular'), 'c' => array('sans-serif')),'Sue Ellen Francisco' => array('v' => array('regular'), 'c' => array('handwriting')),'Suez One' => array('v' => array('regular'), 'c' => array('serif')),'Sulphur Point' => array('v' => array('300','regular','700'), 'c' => array('sans-serif')),'Sumana' => array('v' => array('regular','700'), 'c' => array('serif')),'Sunflower' => array('v' => array('300','500','700'), 'c' => array('sans-serif')),'Sunshiney' => array('v' => array('regular'), 'c' => array('handwriting')),'Supermercado One' => array('v' => array('regular'), 'c' => array('display')),'Sura' => array('v' => array('regular','700'), 'c' => array('serif')),'Suranna' => array('v' => array('regular'), 'c' => array('serif')),'Suravaram' => array('v' => array('regular'), 'c' => array('serif')),'Suwannaphum' => array('v' => array('100','300','regular','700','900'), 'c' => array('serif')),'Swanky and Moo Moo' => array('v' => array('regular'), 'c' => array('handwriting')),'Syncopate' => array('v' => array('regular','700'), 'c' => array('sans-serif')),'Syne' => array('v' => array('regular','500','600','700','800'), 'c' => array('sans-serif')),'Syne Mono' => array('v' => array('regular'), 'c' => array('monospace')),'Syne Tactile' => array('v' => array('regular'), 'c' => array('display')),'TASA Explorer' => array('v' => array('regular','500','600','700','800'), 'c' => array('sans-serif')),'TASA Orbiter' => array('v' => array('regular','500','600','700','800'), 'c' => array('sans-serif')),'Tac One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Tagesschrift' => array('v' => array('regular'), 'c' => array('display')),'Tai Heritage Pro' => array('v' => array('regular','700'), 'c' => array('serif')),'Tajawal' => array('v' => array('200','300','regular','500','700','800','900'), 'c' => array('sans-serif')),'Tangerine' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Tapestry' => array('v' => array('regular'), 'c' => array('handwriting')),'Taprom' => array('v' => array('regular'), 'c' => array('display')),'Tauri' => array('v' => array('regular'), 'c' => array('sans-serif')),'Taviraj' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('serif')),'Teachers' => array('v' => array('regular','500','600','700','800','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Teko' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Tektur' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('display')),'Telex' => array('v' => array('regular'), 'c' => array('sans-serif')),'Tenali Ramakrishna' => array('v' => array('regular'), 'c' => array('sans-serif')),'Tenor Sans' => array('v' => array('regular'), 'c' => array('sans-serif')),'Text Me One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Texturina' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Thasadith' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'The Girl Next Door' => array('v' => array('regular'), 'c' => array('handwriting')),'The Nautigal' => array('v' => array('regular','700'), 'c' => array('handwriting')),'Tienne' => array('v' => array('regular','700','900'), 'c' => array('serif')),'TikTok Sans' => array('v' => array('300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Tillana' => array('v' => array('regular','500','600','700','800'), 'c' => array('display')),'Tilt Neon' => array('v' => array('regular'), 'c' => array('display')),'Tilt Prism' => array('v' => array('regular'), 'c' => array('display')),'Tilt Warp' => array('v' => array('regular'), 'c' => array('display')),'Timmana' => array('v' => array('regular'), 'c' => array('sans-serif')),'Tinos' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Tiny5' => array('v' => array('regular'), 'c' => array('sans-serif')),'Tiro Bangla' => array('v' => array('regular','italic'), 'c' => array('serif')),'Tiro Devanagari Hindi' => array('v' => array('regular','italic'), 'c' => array('serif')),'Tiro Devanagari Marathi' => array('v' => array('regular','italic'), 'c' => array('serif')),'Tiro Devanagari Sanskrit' => array('v' => array('regular','italic'), 'c' => array('serif')),'Tiro Gurmukhi' => array('v' => array('regular','italic'), 'c' => array('serif')),'Tiro Kannada' => array('v' => array('regular','italic'), 'c' => array('serif')),'Tiro Tamil' => array('v' => array('regular','italic'), 'c' => array('serif')),'Tiro Telugu' => array('v' => array('regular','italic'), 'c' => array('serif')),'Tirra' => array('v' => array('regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Titan One' => array('v' => array('regular'), 'c' => array('display')),'Titillium Web' => array('v' => array('200','200italic','300','300italic','regular','italic','600','600italic','700','700italic','900'), 'c' => array('sans-serif')),'Tomorrow' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('sans-serif')),'Tourney' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('display')),'Trade Winds' => array('v' => array('regular'), 'c' => array('display')),'Train One' => array('v' => array('regular'), 'c' => array('display')),'Triodion' => array('v' => array('regular'), 'c' => array('display')),'Trirong' => array('v' => array('100','100italic','200','200italic','300','300italic','regular','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'), 'c' => array('serif')),'Trispace' => array('v' => array('100','200','300','regular','500','600','700','800'), 'c' => array('sans-serif')),'Trocchi' => array('v' => array('regular'), 'c' => array('serif')),'Trochut' => array('v' => array('regular','italic','700'), 'c' => array('display')),'Truculenta' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Trykker' => array('v' => array('regular'), 'c' => array('serif')),'Tsukimi Rounded' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Tuffy' => array('v' => array('regular','italic','700','700italic'), 'c' => array('sans-serif')),'Tulpen One' => array('v' => array('regular'), 'c' => array('display')),'Turret Road' => array('v' => array('200','300','regular','500','700','800'), 'c' => array('display')),'Twinkle Star' => array('v' => array('regular'), 'c' => array('handwriting')),'Ubuntu' => array('v' => array('300','300italic','regular','italic','500','500italic','700','700italic'), 'c' => array('sans-serif')),'Ubuntu Condensed' => array('v' => array('regular'), 'c' => array('sans-serif')),'Ubuntu Mono' => array('v' => array('regular','italic','700','700italic'), 'c' => array('monospace')),'Ubuntu Sans' => array('v' => array('100','200','300','regular','500','600','700','800','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic'), 'c' => array('sans-serif')),'Ubuntu Sans Mono' => array('v' => array('regular','500','600','700','italic','500italic','600italic','700italic'), 'c' => array('monospace')),'Uchen' => array('v' => array('regular'), 'c' => array('serif')),'Ultra' => array('v' => array('regular'), 'c' => array('serif')),'Unbounded' => array('v' => array('200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Uncial Antiqua' => array('v' => array('regular'), 'c' => array('display')),'Underdog' => array('v' => array('regular'), 'c' => array('display')),'Unica One' => array('v' => array('regular'), 'c' => array('display')),'UnifrakturCook' => array('v' => array('700'), 'c' => array('display')),'UnifrakturMaguntia' => array('v' => array('regular'), 'c' => array('display')),'Unkempt' => array('v' => array('regular','700'), 'c' => array('display')),'Unlock' => array('v' => array('regular'), 'c' => array('display')),'Unna' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'UoqMunThenKhung' => array('v' => array('regular'), 'c' => array('serif')),'Updock' => array('v' => array('regular'), 'c' => array('handwriting')),'Urbanist' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'VT323' => array('v' => array('regular'), 'c' => array('monospace')),'Vampiro One' => array('v' => array('regular'), 'c' => array('display')),'Varela' => array('v' => array('regular'), 'c' => array('sans-serif')),'Varela Round' => array('v' => array('regular'), 'c' => array('sans-serif')),'Varta' => array('v' => array('300','regular','500','600','700'), 'c' => array('sans-serif')),'Vast Shadow' => array('v' => array('regular'), 'c' => array('serif')),'Vazirmatn' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Vend Sans' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('sans-serif')),'Vesper Libre' => array('v' => array('regular','500','700','900'), 'c' => array('serif')),'Viaoda Libre' => array('v' => array('regular'), 'c' => array('display')),'Vibes' => array('v' => array('regular'), 'c' => array('display')),'Vibur' => array('v' => array('regular'), 'c' => array('handwriting')),'Victor Mono' => array('v' => array('100','200','300','regular','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'), 'c' => array('monospace')),'Vidaloka' => array('v' => array('regular'), 'c' => array('serif')),'Viga' => array('v' => array('regular'), 'c' => array('sans-serif')),'Vina Sans' => array('v' => array('regular'), 'c' => array('display')),'Voces' => array('v' => array('regular'), 'c' => array('sans-serif')),'Volkhov' => array('v' => array('regular','italic','700','700italic'), 'c' => array('serif')),'Vollkorn' => array('v' => array('regular','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Vollkorn SC' => array('v' => array('regular','600','700','900'), 'c' => array('serif')),'Voltaire' => array('v' => array('regular'), 'c' => array('sans-serif')),'Vujahday Script' => array('v' => array('regular'), 'c' => array('handwriting')),'WDXL Lubrifont JP N' => array('v' => array('regular'), 'c' => array('sans-serif')),'WDXL Lubrifont SC' => array('v' => array('regular'), 'c' => array('sans-serif')),'WDXL Lubrifont TC' => array('v' => array('regular'), 'c' => array('sans-serif')),'Waiting for the Sunrise' => array('v' => array('regular'), 'c' => array('handwriting')),'Wallpoet' => array('v' => array('regular'), 'c' => array('display')),'Walter Turncoat' => array('v' => array('regular'), 'c' => array('handwriting')),'Warnes' => array('v' => array('regular'), 'c' => array('display')),'Water Brush' => array('v' => array('regular'), 'c' => array('handwriting')),'Waterfall' => array('v' => array('regular'), 'c' => array('handwriting')),'Wavefont' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('display')),'Wellfleet' => array('v' => array('regular'), 'c' => array('serif')),'Wendy One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Whisper' => array('v' => array('regular'), 'c' => array('handwriting')),'WindSong' => array('v' => array('regular','500'), 'c' => array('handwriting')),'Winky Rough' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Winky Sans' => array('v' => array('300','regular','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Wire One' => array('v' => array('regular'), 'c' => array('sans-serif')),'Wittgenstein' => array('v' => array('regular','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('serif')),'Wix Madefor Display' => array('v' => array('regular','500','600','700','800'), 'c' => array('sans-serif')),'Wix Madefor Text' => array('v' => array('regular','italic','500','500italic','600','600italic','700','700italic','800','800italic'), 'c' => array('sans-serif')),'Work Sans' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Workbench' => array('v' => array('regular'), 'c' => array('monospace')),'Xanh Mono' => array('v' => array('regular','italic'), 'c' => array('monospace')),'Yaldevi' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Yanone Kaffeesatz' => array('v' => array('200','300','regular','500','600','700'), 'c' => array('sans-serif')),'Yantramanav' => array('v' => array('100','300','regular','500','700','900'), 'c' => array('sans-serif')),'Yarndings 12' => array('v' => array('regular'), 'c' => array('display')),'Yarndings 12 Charted' => array('v' => array('regular'), 'c' => array('display')),'Yarndings 20' => array('v' => array('regular'), 'c' => array('display')),'Yarndings 20 Charted' => array('v' => array('regular'), 'c' => array('display')),'Yatra One' => array('v' => array('regular'), 'c' => array('display')),'Yellowtail' => array('v' => array('regular'), 'c' => array('handwriting')),'Yeon Sung' => array('v' => array('regular'), 'c' => array('display')),'Yeseva One' => array('v' => array('regular'), 'c' => array('display')),'Yesteryear' => array('v' => array('regular'), 'c' => array('handwriting')),'Yomogi' => array('v' => array('regular'), 'c' => array('handwriting')),'Young Serif' => array('v' => array('regular'), 'c' => array('serif')),'Yrsa' => array('v' => array('300','regular','500','600','700','300italic','italic','500italic','600italic','700italic'), 'c' => array('serif')),'Ysabeau' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Ysabeau Infant' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Ysabeau Office' => array('v' => array('100','200','300','regular','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Ysabeau SC' => array('v' => array('100','200','300','regular','500','600','700','800','900'), 'c' => array('sans-serif')),'Yuji Boku' => array('v' => array('regular'), 'c' => array('serif')),'Yuji Hentaigana Akari' => array('v' => array('regular'), 'c' => array('handwriting')),'Yuji Hentaigana Akebono' => array('v' => array('regular'), 'c' => array('handwriting')),'Yuji Mai' => array('v' => array('regular'), 'c' => array('serif')),'Yuji Syuku' => array('v' => array('regular'), 'c' => array('serif')),'Yusei Magic' => array('v' => array('regular'), 'c' => array('sans-serif')),'ZCOOL KuaiLe' => array('v' => array('regular'), 'c' => array('sans-serif')),'ZCOOL QingKe HuangYou' => array('v' => array('regular'), 'c' => array('sans-serif')),'ZCOOL XiaoWei' => array('v' => array('regular'), 'c' => array('sans-serif')),'Zain' => array('v' => array('200','300','300italic','regular','italic','700','800','900'), 'c' => array('sans-serif')),'Zalando Sans' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Zalando Sans Expanded' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Zalando Sans SemiExpanded' => array('v' => array('200','300','regular','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'), 'c' => array('sans-serif')),'Zen Antique' => array('v' => array('regular'), 'c' => array('serif')),'Zen Antique Soft' => array('v' => array('regular'), 'c' => array('serif')),'Zen Dots' => array('v' => array('regular'), 'c' => array('display')),'Zen Kaku Gothic Antique' => array('v' => array('300','regular','500','700','900'), 'c' => array('sans-serif')),'Zen Kaku Gothic New' => array('v' => array('300','regular','500','700','900'), 'c' => array('sans-serif')),'Zen Kurenaido' => array('v' => array('regular'), 'c' => array('sans-serif')),'Zen Loop' => array('v' => array('regular','italic'), 'c' => array('display')),'Zen Maru Gothic' => array('v' => array('300','regular','500','700','900'), 'c' => array('sans-serif')),'Zen Old Mincho' => array('v' => array('regular','500','600','700','900'), 'c' => array('serif')),'Zen Tokyo Zoo' => array('v' => array('regular'), 'c' => array('display')),'Zeyada' => array('v' => array('regular'), 'c' => array('handwriting')),'Zhi Mang Xing' => array('v' => array('regular'), 'c' => array('handwriting')),'Zilla Slab' => array('v' => array('300','300italic','regular','italic','500','500italic','600','600italic','700','700italic'), 'c' => array('serif')),'Zilla Slab Highlight' => array('v' => array('regular','700'), 'c' => array('serif'))); options/general-layout-options.php 0000644 00000021263 15151531434 0013377 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'content_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'general_layout', 'priority' => 20, 'label' => esc_html__( 'Content Max Width', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-container, .site-header-row-layout-contained', 'property' => 'max-width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'content_width' ), 'input_attrs' => array( 'min' => array( 'px' => 400, 'em' => 30, 'rem' => 30, ), 'max' => array( 'px' => 2000, 'em' => 140, 'rem' => 140, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'content_edge_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'general_layout', 'priority' => 20, 'label' => esc_html__( 'Content Left/Right Edge Spacing', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-container, .site-header-row-layout-contained, .site-footer-row-layout-contained, .entry-hero-layout-contained, .alignfull>.wp-block-cover__inner-container, .alignwide>.wp-block-cover__inner-container', 'property' => 'padding-left', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '.site-container, .site-header-row-layout-contained, .site-footer-row-layout-contained, .entry-hero-layout-contained, .alignfull>.wp-block-cover__inner-container, .alignwide>.wp-block-cover__inner-container', 'property' => 'padding-right', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'content_edge_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vw' => 0, ), 'max' => array( 'px' => 200, 'em' => 12, 'rem' => 12, 'vw' => 40, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), 'responsive' => true, ), ), 'content_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'general_layout', 'priority' => 20, 'label' => esc_html__( 'Content Top and Bottom Spacing', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.content-area', 'property' => 'margin-top', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '.content-area', 'property' => 'margin-bottom', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'content_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vw' => 0, ), 'max' => array( 'px' => 200, 'em' => 12, 'rem' => 12, 'vw' => 40, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), 'responsive' => true, ), ), 'content_narrow_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'general_layout', 'priority' => 20, 'label' => esc_html__( 'Narrow Layout Content Max Width', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.content-width-narrow .content-container.site-container', 'property' => 'max-width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'content_narrow_width' ), 'input_attrs' => array( 'min' => array( 'px' => 300, 'em' => 20, 'rem' => 20, 'vw' => 20, ), 'max' => array( 'px' => 2000, 'em' => 140, 'rem' => 140, 'vw' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vw' ), 'responsive' => false, ), ), 'info_general_single_boxed' => array( 'control_type' => 'kadence_title_control', 'section' => 'general_layout', 'priority' => 21, 'label' => esc_html__( 'Single Post Boxed', 'kadence' ), 'settings' => false, ), 'boxed_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'general_layout', 'priority' => 22, 'label' => esc_html__( 'Single Post Boxed Spacing', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.entry-content-wrap', 'property' => 'padding', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'boxed_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => true, ), ), 'boxed_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'general_layout', 'priority' => 22, 'label' => esc_html__( 'Single Post Boxed Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.entry.single-entry', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'boxed_shadow' ), ), 'boxed_border_radius' => array( 'control_type' => 'kadence_measure_control', 'section' => 'general_layout', 'priority' => 22, 'label' => esc_html__( 'Single Post Boxed Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.entry.single-entry', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), ), 'default' => kadence()->default( 'boxed_border_radius' ), 'input_attrs' => array( 'responsive' => false, ), ), 'info_general_archive_boxed' => array( 'control_type' => 'kadence_title_control', 'section' => 'general_layout', 'priority' => 22, 'label' => esc_html__( 'Archive Grid Boxed', 'kadence' ), 'settings' => false, ), 'boxed_grid_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'general_layout', 'priority' => 22, 'label' => esc_html__( 'Archive Grid Boxed Spacing', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.loop-entry .entry-content-wrap', 'property' => 'padding', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'boxed_grid_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => true, ), ), 'boxed_grid_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'general_layout', 'priority' => 22, 'label' => esc_html__( 'Archive Grid Boxed Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.entry.loop-entry', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'boxed_grid_shadow' ), ), 'boxed_grid_border_radius' => array( 'control_type' => 'kadence_measure_control', 'section' => 'general_layout', 'priority' => 22, 'label' => esc_html__( 'Archive Grid Boxed Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.entry.loop-entry', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), array( 'type' => 'css', 'selector' => '.entry.loop-entry:after', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), ), 'default' => kadence()->default( 'boxed_grid_border_radius' ), 'input_attrs' => array( 'responsive' => false, ), ), ); Theme_Customizer::add_settings( $settings ); options/outline-button-options.php 0000644 00000014076 15151531434 0013443 0 ustar 00 <?php /** * Outline Button Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'buttons_outline_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'outline_button', 'label' => esc_html__( 'Text Colors', 'kadence' ), 'default' => kadence()->default( 'buttons_outline_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.button.button-style-outline:not(.has-text-color), .button.kb-btn-global-outline', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.button.button-style-outline:not(.has-text-color):hover, .button.kb-btn-global-outline:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'buttons_outline_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'outline_button', 'label' => esc_html__( 'Border Colors', 'kadence' ), 'default' => kadence()->default( 'buttons_outline_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.button.button-style-outline, .button.kb-btn-global-outline', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.button.button-style-outline:hover, .button.kb-btn-global-outline:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'buttons_outline_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'outline_button', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'buttons_outline_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.button.button-style-outline, .button.kb-btn-global-outline', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => true, 'color' => false, ), ), 'buttons_outline_border_radius' => array( 'control_type' => 'kadence_range_control', 'section' => 'outline_button', 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.button.button-style-outline, .button.kb-btn-global-outline', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'buttons_outline_border_radius' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, '%' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, '%' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', '%' ), 'responsive' => true, ), ), 'buttons_outline_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'outline_button', 'label' => esc_html__( 'Font', 'kadence' ), 'default' => kadence()->default( 'buttons_outline_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.button.button-style-outline, .button.kb-btn-global-outline', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'buttons_outline_typography', 'options' => 'no-color', ), ), 'buttons_outline_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'outline_button', 'priority' => 10, 'default' => kadence()->default( 'buttons_outline_padding' ), 'label' => esc_html__( 'Padding', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.button.button-style-outline, .button.kb-btn-global-outline', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => true, ), ), 'buttons_outline_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'outline_button', 'priority' => 20, 'label' => esc_html__( 'Button Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.button.button-style-outline, .button.kb-btn-global-outline', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'buttons_outline_shadow' ), ), 'buttons_outline_shadow_hover' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'outline_button', 'priority' => 20, 'label' => esc_html__( 'Button Hover State Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.button.button-style-outline:hover, .button.kb-btn-global-outline:hover', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'buttons_outline_shadow_hover' ), ), ) ); options/general-colors-options.php 0000644 00000006757 15151531434 0013376 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'info_background' => array( 'control_type' => 'kadence_title_control', 'section' => 'general_colors', 'label' => esc_html__( 'Backgrounds', 'kadence' ), 'settings' => false, ), 'site_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'general_colors', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'site_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Site Background', 'kadence' ), ), ), 'content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'general_colors', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.content-bg, body.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Content Background', 'kadence' ), ), ), 'above_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'general_colors', 'label' => esc_html__( 'Title Above Content Background', 'kadence' ), 'default' => kadence()->default( 'above_title_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.wp-site-blocks .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Title Above Content Background', 'kadence' ), ), ), 'above_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'general_colors', 'label' => esc_html__( 'Title Above Content Overlay Color', 'kadence' ), 'default' => kadence()->default( 'above_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.entry-hero-container-inner .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'info_links' => array( 'control_type' => 'kadence_title_control', 'section' => 'general_colors', 'label' => esc_html__( 'Content Links', 'kadence' ), 'settings' => false, ), 'link_color' => array( 'control_type' => 'kadence_color_link_control', 'section' => 'general_colors', 'transport' => 'refresh', 'label' => esc_html__( 'Links Color', 'kadence' ), 'default' => kadence()->default( 'link_color' ), 'live_method' => array( array( 'type' => 'css_link', 'selector' => 'a', 'property' => 'color', 'pattern' => 'link-style-$', 'key' => 'base', ), ), ), ) ); options/lifter-course-archive-layout-options.php 0000644 00000041476 15151531434 0016174 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'course_archive_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'course_archive', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'course_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'course_archive_design', ), 'active' => 'general', ), ), 'course_archive_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'course_archive_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'course_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'course_archive_design', ), 'active' => 'design', ), ), 'info_course_archive_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'course_archive', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'info_course_archive_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'course_archive_design', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'course_archive_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'course_archive', 'priority' => 3, 'default' => kadence()->default( 'course_archive_title' ), 'label' => esc_html__( 'Show Archive Title?', 'kadence' ), 'transport' => 'refresh', ), 'course_archive_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_archive', 'label' => esc_html__( 'Archive Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'course_archive_title_layout' ), 'context' => array( array( 'setting' => 'course_archive_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'course_archive_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_archive', 'priority' => 4, 'default' => kadence()->default( 'course_archive_title_inner_layout' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'course_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.course-archive-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'course_archive_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_archive', 'label' => esc_html__( 'Course Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'course_archive_title_align' ), 'context' => array( array( 'setting' => 'course_archive_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.course-archive-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'course_archive_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'course_archive', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'course_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .course-archive-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'course_archive_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'course_archive_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'course_archive', 'priority' => 6, 'default' => kadence()->default( 'course_archive_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'course_archive_title_elements', 'title' => 'course_archive_title_element_title', 'breadcrumb' => 'course_archive_title_element_breadcrumb', 'description' => 'course_archive_title_element_description', ), ), 'course_archive_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'course_archive_design', 'label' => esc_html__( 'Title Color', 'kadence' ), 'default' => kadence()->default( 'course_archive_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.course-archive-title h1', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), 'course_archive_title_description_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'course_archive_design', 'label' => esc_html__( 'Description Colors', 'kadence' ), 'default' => kadence()->default( 'course_archive_title_description_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.course-archive-title .archive-description', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.course-archive-title .archive-description a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'course_archive_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'course_archive_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'course_archive_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.course-archive-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.course-archive-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'course_archive_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'course_archive_design', 'label' => esc_html__( 'Archive Title Background', 'kadence' ), 'default' => kadence()->default( 'course_archive_title_background' ), 'context' => array( array( 'setting' => 'course_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .course-archive-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Archive Title Background', 'kadence' ), ), ), 'course_archive_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'course_archive_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'course_archive_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.course-archive-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'course_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'course_archive_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'course_archive_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'course_archive_title_border' ), 'context' => array( array( 'setting' => 'course_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'course_archive_title_top_border', 'border_bottom' => 'course_archive_title_bottom_border', ), 'live_method' => array( 'course_archive_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.course-archive-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'course_archive_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.course-archive-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_course_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'course_archive', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'info_course_archive_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'course_archive_design', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'course_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_archive', 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'course_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'course_archive_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_archive', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'course_archive_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.post-type-archive-course', 'pattern' => 'content-style-$', 'key' => '', ), array( 'type' => 'class', 'selector' => 'body.tax-course_cat', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'gridBoxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'gridUnboxed', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'course_archive_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_archive', 'priority' => 20, 'label' => esc_html__( 'Course Archive Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( 'course_archive_columns' ), 'input_attrs' => array( 'layout' => array( '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), ), 'responsive' => false, ), ), 'course_archive_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'course_archive_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'course_archive_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-course, body.tax-course_cat', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Archive Background', 'kadence' ), ), ), 'course_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'course_archive_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'course_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-course .content-bg, body.tax-course_cat .content-bg, body.tax-course_cat.content-style-unboxed .site, body.post-type-archive-course.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Archive Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-logo-options.php 0000644 00000035634 15151531434 0012644 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'logo_settings' => array( 'control_type' => 'kadence_blank_control', 'section' => 'title_tagline', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'logo_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'title_tagline', 'priority' => 5, 'label' => esc_html__( 'Logo Max Width', 'kadence' ), 'description' => esc_html__( 'Define the maxium width for the logo', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'custom_logo', 'operator' => '!empty', 'value' => '', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .custom-logo', 'property' => 'max-width', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '#masthead .site-branding a.brand img.svg-logo-image', 'property' => 'width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'logo_width' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vw' => 2, '%' => 2, ), 'max' => array( 'px' => 800, 'em' => 50, 'rem' => 50, 'vw' => 80, '%' => 80, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vw' ), ), ), 'info_transparent_logo_in_use' => array( 'control_type' => 'kadence_title_control', 'section' => 'title_tagline', 'priority' => 5, 'description' => esc_html__( '*NOTICE Custom transparent logo will show on pages that have the transparent header enabled. Change that in your transparent header settings.', 'kadence' ), 'settings' => false, 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), array( 'setting' => 'transparent_header_custom_logo', 'operator' => '=', 'value' => true, ), ), ), 'use_mobile_logo' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'title_tagline', 'transport' => 'refresh', 'priority' => 6, 'default' => kadence()->default( 'use_mobile_logo' ), 'label' => esc_html__( 'Different Logo for Mobile?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => '__device', 'operator' => 'in', 'value' => array( 'tablet', 'mobile' ), ), ), ), 'mobile_logo' => array( 'control_type' => 'media', 'section' => 'title_tagline', 'transport' => 'refresh', 'priority' => 6, 'mime_type' => 'image', 'default' => '', 'label' => esc_html__( 'Mobile Logo', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'use_mobile_logo', 'operator' => '=', 'value' => true, ), array( 'setting' => '__device', 'operator' => 'in', 'value' => array( 'tablet', 'mobile' ), ), ), ), 'use_logo_icon' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'title_tagline', 'transport' => 'refresh', 'priority' => 6, 'default' => kadence()->default( 'use_logo_icon' ), 'label' => esc_html__( 'Use Logo Icon?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'custom_logo', 'operator' => 'empty', 'value' => '', ), ), 'partial' => array( 'selector' => '#masthead', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_markup', ), ), 'logo_icon' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'title_tagline', 'priority' => 6, 'default' => kadence()->default( 'logo_icon' ), 'label' => esc_html__( 'Logo Icon', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'custom_logo', 'operator' => 'empty', 'value' => '', ), array( 'setting' => 'use_logo_icon', 'operator' => '=', 'value' => true, ), ), 'partial' => array( 'selector' => '.logo-icon', 'container_inclusive' => false, 'render_callback' => 'Kadence\logo_icon', ), 'input_attrs' => array( 'layout' => array( 'logoArrow' => array( 'icon' => 'logoArrow', ), 'logoCircle' => array( 'icon' => 'logoCircle', ), 'logoLine' => array( 'icon' => 'logoLine', ), 'custom' => array( 'name' => __( 'Custom', 'kadence' ), ), ), 'responsive' => false, 'class' => 'radio-icon-padding', ), ), 'logo_icon_custom' => array( 'control_type' => 'kadence_textarea_control', 'section' => 'title_tagline', 'priority' => 6, 'default' => kadence()->default( 'logo_icon_custom' ), 'partial' => array( 'selector' => '.logo-icon', 'container_inclusive' => true, 'render_callback' => 'Kadence\logo_icon', ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'custom_logo', 'operator' => 'empty', 'value' => '', ), array( 'setting' => 'use_logo_icon', 'operator' => '=', 'value' => true, ), array( 'setting' => 'logo_icon', 'operator' => '=', 'value' => 'custom', ), ), 'input_attrs' => array( 'id' => 'logo_icon_custom', ), ), 'logo_icon_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'title_tagline', 'priority' => 6, 'label' => esc_html__( 'Logo Icon Width', 'kadence' ), 'description' => esc_html__( 'Define the width for the logo icon', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'custom_logo', 'operator' => 'empty', 'value' => '', ), array( 'setting' => 'use_logo_icon', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .logo-icon', 'property' => 'max-width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'logo_icon_width' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vw' => 2, '%' => 2, ), 'max' => array( 'px' => 800, 'em' => 50, 'rem' => 50, 'vw' => 80, '%' => 80, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vw' ), ), ), 'logo_icon_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'title_tagline', 'label' => esc_html__( 'Logo Icon Color', 'kadence' ), 'default' => kadence()->default( 'logo_icon_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .logo-icon', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'custom_logo', 'operator' => 'empty', 'value' => '', ), array( 'setting' => 'use_logo_icon', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), 'logo_layout' => array( 'control_type' => 'kadence_multi_radio_icon_control', 'section' => 'title_tagline', 'priority' => 6, 'default' => kadence()->default( 'logo_layout' ), 'label' => esc_html__( 'Logo Layout', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'partial' => array( 'selector' => '#masthead', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_markup', ), ), 'brand_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'title_tagline', 'label' => esc_html__( 'Site Title Font', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'title', ), ), 'default' => kadence()->default( 'brand_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => array( 'desktop' => '#main-header .site-branding .site-title', 'tablet' => '#mobile-header .site-branding .site-title', 'mobile' => '#mobile-header .site-branding .site-title', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'brand_typography', ), ), 'brand_typography_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'title_tagline', 'label' => esc_html__( 'Site Title Hover and Active Colors', 'kadence' ), 'default' => kadence()->default( 'brand_typography_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .site-branding .site-title:hover', 'pattern' => '$', 'property' => 'color', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '#main-header .header-html a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => 'body.home #masthead .site-branding .site-title', 'pattern' => '$', 'property' => 'color', 'key' => 'active', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'title', ), ), 'input_attrs' => array( 'colors' => array( 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Color', 'kadence' ), 'palette' => true, ), ), ), ), // Logo Tagline Typography. 'brand_tag_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'title_tagline', 'label' => esc_html__( 'Site Tagline Font', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'tagline', ), ), 'default' => kadence()->default( 'brand_tag_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => array( 'desktop' => '#masthead .site-branding .site-description', 'tablet' => '#masthead .site-branding .site-description', 'mobile' => '#masthead .site-branding .site-description', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'brand_tag_typography', ), ), 'header_logo_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'title_tagline', 'priority' => 15, 'default' => kadence()->default( 'header_logo_padding' ), 'label' => esc_html__( 'Padding', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-branding', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 6, 'rem' => 6, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => true, ), ), 'logo_link_to_site_icon' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'title_tagline', 'settings' => false, 'priority' => 25, 'label' => esc_html__( 'Site Icon', 'kadence' ), 'input_attrs' => array( 'section' => 'kadence_customizer_site_identity', ), ), 'site_logo_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'site_identity', 'settings' => false, 'priority' => 5, 'label' => esc_html__( 'Site Title and Logo Control', 'kadence' ), 'input_attrs' => array( 'section' => 'title_tagline', ), ), 'post_archive_home_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'static_front_page', 'transport' => 'refresh', 'default' => kadence()->default( 'post_archive_home_title' ), 'label' => esc_html__( 'Show site name for page title', 'kadence' ), 'context' => array( array( 'setting' => 'show_on_front', 'operator' => '==', 'value' => 'posts', ), ), ), ); Theme_Customizer::add_settings( $settings ); options/footer-builder-options.php 0000644 00000014120 15151531434 0013363 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <!-- <div class="kadence-build-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab preview-desktop kadence-build-tabs-button" data-device="desktop"> <span class="dashicons dashicons-desktop"></span> <span><?php esc_html_e( 'Desktop', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab preview-tablet preview-mobile kadence-build-tabs-button" data-device="tablet"> <span class="dashicons dashicons-smartphone"></span> <span><?php esc_html_e( 'Tablet / Mobile', 'kadence' ); ?></span> </a> </div> --> <span class="button button-secondary kadence-builder-hide-button kadence-builder-tab-toggle"><span class="dashicons dashicons-no"></span><?php esc_html_e( 'Hide', 'kadence' ); ?></span> <span class="button button-secondary kadence-builder-show-button kadence-builder-tab-toggle"><span class="dashicons dashicons-edit"></span><?php esc_html_e( 'Footer Builder', 'kadence' ); ?></span> <?php $builder_tabs = ob_get_clean(); ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'footer_builder' => array( 'control_type' => 'kadence_blank_control', 'section' => 'footer_builder', 'settings' => false, 'description' => $builder_tabs, ), 'footer_items' => array( 'control_type' => 'kadence_builder_control', 'section' => 'footer_builder', 'default' => kadence()->default( 'footer_items' ), 'partial' => array( 'selector' => '#colophon', 'container_inclusive' => true, 'render_callback' => 'Kadence\footer_markup', ), 'choices' => array( 'footer-navigation' => array( 'name' => esc_html__( 'Footer Navigation', 'kadence' ), 'section' => 'kadence_customizer_footer_navigation', ), 'footer-social' => array( 'name' => esc_html__( 'Social', 'kadence' ), 'section' => 'kadence_customizer_footer_social', ), 'footer-html' => array( 'name' => esc_html__( 'Copyright', 'kadence' ), 'section' => 'kadence_customizer_footer_html', ), 'footer-widget1' => array( 'name' => esc_html__( 'Widget 1', 'kadence' ), 'section' => 'sidebar-widgets-footer1', ), 'footer-widget2' => array( 'name' => esc_html__( 'Widget 2', 'kadence' ), 'section' => 'sidebar-widgets-footer2', ), 'footer-widget3' => array( 'name' => esc_html__( 'Widget 3', 'kadence' ), 'section' => 'sidebar-widgets-footer3', ), 'footer-widget4' => array( 'name' => esc_html__( 'Widget 4', 'kadence' ), 'section' => 'sidebar-widgets-footer4', ), 'footer-widget5' => array( 'name' => esc_html__( 'Widget 5', 'kadence' ), 'section' => 'sidebar-widgets-footer5', ), 'footer-widget6' => array( 'name' => esc_html__( 'Widget 6', 'kadence' ), 'section' => 'sidebar-widgets-footer6', ), ), 'input_attrs' => array( 'group' => 'footer_items', 'rows' => array( 'top', 'middle', 'bottom' ), 'zones' => array( 'top' => array( 'top_1' => esc_html__( 'Top - 1', 'kadence' ), 'top_2' => esc_html__( 'Top - 2', 'kadence' ), 'top_3' => esc_html__( 'Top - 3', 'kadence' ), 'top_4' => esc_html__( 'Top - 4', 'kadence' ), 'top_5' => esc_html__( 'Top - 5', 'kadence' ), ), 'middle' => array( 'middle_1' => esc_html__( 'Middle - 1', 'kadence' ), 'middle_2' => esc_html__( 'Middle - 2', 'kadence' ), 'middle_3' => esc_html__( 'Middle - 3', 'kadence' ), 'middle_4' => esc_html__( 'Middle - 4', 'kadence' ), 'middle_5' => esc_html__( 'Middle - 5', 'kadence' ), ), 'bottom' => array( 'bottom_1' => esc_html__( 'Bottom - 1', 'kadence' ), 'bottom_2' => esc_html__( 'Bottom - 2', 'kadence' ), 'bottom_3' => esc_html__( 'Bottom - 3', 'kadence' ), 'bottom_4' => esc_html__( 'Bottom - 4', 'kadence' ), 'bottom_5' => esc_html__( 'Bottom - 5', 'kadence' ), ), ), ), ), 'footer_tab_settings' => array( 'control_type' => 'kadence_blank_control', 'section' => 'footer_layout', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'footer_available_items' => array( 'control_type' => 'kadence_available_control', 'section' => 'footer_layout', 'settings' => false, 'input_attrs' => array( 'group' => 'footer_items', 'zones' => array( 'top', 'middle', 'bottom' ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), ), 'footer_wrap_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'footer_layout', 'label' => esc_html__( 'Footer Background', 'kadence' ), 'default' => kadence()->default( 'footer_wrap_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#colophon', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'tooltip' => __( 'Footer Background', 'kadence' ), ), ), 'enable_footer_on_bottom' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'footer_layout', 'default' => kadence()->default( 'enable_footer_on_bottom' ), 'label' => esc_html__( 'Keep footer on bottom of screen', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), ), ); Theme_Customizer::add_settings( $settings ); options/footer-widget6-options.php 0000644 00000005721 15151531434 0013315 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'footer_widget6_breaker' => array( 'control_type' => 'kadence_blank_control', 'section' => 'sidebar-widgets-footer6', 'settings' => false, 'priority' => 5, 'description' => $compontent_tabs, ), 'footer_widget6_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer6', 'label' => esc_html__( 'Content Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget6_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget6', 'pattern' => array( 'desktop' => 'content-align-$', 'tablet' => 'content-tablet-align-$', 'mobile' => 'content-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'footer_widget6_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer6', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget6_vertical_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget6', 'pattern' => array( 'desktop' => 'content-valign-$', 'tablet' => 'content-tablet-valign-$', 'mobile' => 'content-mobile-valign-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/woo-store-notice-options.php 0000644 00000007543 15151531434 0013671 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'woocommerce_store_notice_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'woocommerce_store_notice', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'woocommerce_store_notice', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'woocommerce_store_notice_design', ), 'active' => 'general', ), ), 'woocommerce_store_notice_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'woocommerce_store_notice_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'woocommerce_store_notice', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'woocommerce_store_notice_design', ), 'active' => 'design', ), ), 'woo_store_notice_placement' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_store_notice', 'transport' => 'refresh', 'default' => kadence()->default( 'woo_store_notice_placement' ), 'label' => esc_html__( 'Store Notice Placement', 'kadence' ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Hangs down over the top of the header', 'kadence' ), 'name' => __( 'Hang Over Top', 'kadence' ), 'icon' => '', ), 'above' => array( 'tooltip' => __( 'Placed above the Header', 'kadence' ), 'name' => __( 'Above', 'kadence' ), 'icon' => '', ), 'bottom' => array( 'tooltip' => __( 'Stuck to the Bottom of the screen', 'kadence' ), 'name' => __( 'Bottom', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'woo_store_notice_hide_dismiss' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'woocommerce_store_notice', 'default' => kadence()->default( 'woo_store_notice_hide_dismiss' ), 'label' => esc_html__( 'Disable Dismiss Button?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'woo_store_notice_placement', 'operator' => '=', 'value' => 'above', ), ), ), 'woo_store_notice_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'woocommerce_store_notice_design', 'label' => esc_html__( 'Notice Font', 'kadence' ), 'default' => kadence()->default( 'woo_store_notice_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.woocommerce-demo-store .woocommerce-store-notice, .woocommerce-demo-store .woocommerce-store-notice a', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'woo_store_notice_font', ), ), 'woo_store_notice_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'woocommerce_store_notice_design', 'label' => esc_html__( 'Background Color', 'kadence' ), 'default' => kadence()->default( 'woo_store_notice_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.woocommerce-demo-store .woocommerce-store-notice', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/my-account-layout-options.php 0000644 00000003305 15151531434 0014036 0 ustar 00 <?php /** * Product Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'info_woo_account_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'account_layout', 'priority' => 2, 'label' => esc_html__( 'My Account Navigation', 'kadence' ), 'settings' => false, ), 'woo_account_navigation_avatar' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'account_layout', 'priority' => 3, 'default' => kadence()->default( 'woo_account_navigation_avatar' ), 'label' => esc_html__( 'Show User Name and Avatar?', 'kadence' ), 'transport' => 'refresh', ), 'woo_account_navigation_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'account_layout', 'label' => esc_html__( 'Navigation Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'woo_account_navigation_layout' ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Positioned on Left Content', 'kadence' ), 'name' => __( 'Left', 'kadence' ), 'icon' => '', ), 'above' => array( 'tooltip' => __( 'Positioned on Top Content', 'kadence' ), 'name' => __( 'Above', 'kadence' ), 'icon' => '', ), 'right' => array( 'tooltip' => __( 'Positioned on Right Content', 'kadence' ), 'name' => __( 'Right', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), ); Theme_Customizer::add_settings( $settings ); options/post-layout-options.php 0000644 00000106253 15151531434 0012752 0 ustar 00 <?php /** * Post Layout Options. * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $kadence_post_settings = array( 'post_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'post_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'post_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'post_layout_design', ), 'active' => 'general', ), ), 'post_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'post_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'post_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'post_layout_design', ), 'active' => 'design', ), ), 'info_post_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_layout', 'priority' => 2, 'label' => esc_html__( 'Post Title', 'kadence' ), 'settings' => false, ), 'info_post_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_layout_design', 'priority' => 2, 'label' => esc_html__( 'Post Title', 'kadence' ), 'settings' => false, ), 'post_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 3, 'default' => kadence()->default( 'post_title' ), 'label' => esc_html__( 'Show Post Title?', 'kadence' ), 'transport' => 'refresh', ), 'post_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'label' => esc_html__( 'Post Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'post_title_layout' ), 'context' => array( array( 'setting' => 'post_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'post_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'priority' => 4, 'default' => kadence()->default( 'post_title_inner_layout' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'post_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.post-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'post_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'label' => esc_html__( 'Post Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'post_title_align' ), 'context' => array( array( 'setting' => 'post_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.post-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'post_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'post_layout', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'post_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .post-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'post_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'post_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'post_layout', 'priority' => 6, 'default' => kadence()->default( 'post_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'post_title_elements', 'title' => 'post_title_element_title', 'breadcrumb' => 'post_title_element_breadcrumb', 'meta' => 'post_title_element_meta', 'categories' => 'post_title_element_categories', 'excerpt' => 'post_title_element_excerpt', ), 'input_attrs' => array( 'defaults' => array( 'categories' => kadence()->default( 'post_title_element_categories' ), 'title' => kadence()->default( 'post_title_element_title' ), 'meta' => kadence()->default( 'post_title_element_meta' ), 'excerpt' => kadence()->default( 'post_title_element_excerpt' ), 'breadcrumb' => kadence()->default( 'post_title_element_breadcrumb' ), ), 'dividers' => array( 'dot' => array( 'icon' => 'dot', ), 'slash' => array( 'icon' => 'slash', ), 'dash' => array( 'icon' => 'dash', ), 'vline' => array( 'icon' => 'vline', ), 'customicon' => array( 'icon' => 'hours', ), ), ), ), 'post_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Post Title Font', 'kadence' ), 'default' => kadence()->default( 'post_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.wp-site-blocks .post-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'post_title_font', 'headingInherit' => true, ), ), 'post_title_category_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Category Colors', 'kadence' ), 'default' => kadence()->default( 'post_title_category_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.post-title .entry-taxonomies, .post-title .entry-taxonomies a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.post-title .entry-taxonomies a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.post-title .entry-taxonomies .category-style-pill a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.post-title .entry-taxonomies .category-style-pill a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'post_title_category_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Category Font', 'kadence' ), 'default' => kadence()->default( 'post_title_category_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.post-title .entry-taxonomies, .post-title .entry-taxonomies a', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'post_title_category_font', 'options' => 'no-color', ), ), 'post_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'post_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.post-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.post-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'post_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'post_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.post-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'post_title_breadcrumb_font', 'options' => 'no-color', ), ), 'post_title_meta_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Meta Colors', 'kadence' ), 'default' => kadence()->default( 'post_title_meta_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.post-title .entry-meta', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.post-title .entry-meta a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'post_title_meta_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Meta Font', 'kadence' ), 'default' => kadence()->default( 'post_title_meta_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.post-title .entry-meta', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'post_title_meta_font', 'options' => 'no-color', ), ), 'post_title_excerpt_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Excerpt Colors', 'kadence' ), 'default' => kadence()->default( 'post_title_meta_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.post-title .title-entry-excerpt', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.post-title .title-entry-excerpt a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'post_title_excerpt_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Excerpt Font', 'kadence' ), 'default' => kadence()->default( 'post_title_excerpt_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.post-title .title-entry-excerpt', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'post_title_excerpt_font', 'options' => 'no-color', ), ), 'post_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Post Title Background', 'kadence' ), 'default' => kadence()->default( 'post_title_background' ), 'context' => array( array( 'setting' => 'post_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .post-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Post Title Background', 'kadence' ), ), ), 'post_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout_design', 'default' => kadence()->default( 'post_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'post_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'post_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'post_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.post-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'post_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'post_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'post_title_border' ), 'context' => array( array( 'setting' => 'post_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'post_title_top_border', 'border_bottom' => 'post_title_bottom_border', ), 'live_method' => array( 'post_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.post-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'post_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.post-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_post_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_layout', 'priority' => 10, 'label' => esc_html__( 'Default Post Layout', 'kadence' ), 'settings' => false, ), 'info_post_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_layout_design', 'priority' => 10, 'label' => esc_html__( 'Default Post Layout', 'kadence' ), 'settings' => false, ), 'post_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'label' => esc_html__( 'Default Post Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'post_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'post_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'post_layout', 'label' => esc_html__( 'Post Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'post_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'post_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'post_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'post_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'label' => esc_html__( 'Content Vertical Spacing', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'post_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'post_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'default' => kadence()->default( 'post_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ), 'post_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'post_feature_position' ), 'context' => array( array( 'setting' => 'post_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'post_feature_width' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'label' => esc_html__( 'Featured Image Width', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'post_feature_width' ), 'context' => array( array( 'setting' => 'post_feature', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_feature_position', 'operator' => '=', 'value' => 'behind', ), ), 'input_attrs' => array( 'layout' => array( 'wide' => array( 'name' => __( 'Wide', 'kadence' ), ), 'full' => array( 'name' => __( 'Stretch Full', 'kadence' ), ), ), 'responsive' => false, ), ), 'post_feature_caption' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'default' => kadence()->default( 'post_feature_caption' ), 'label' => esc_html__( 'Show Featured Image Caption?', 'kadence' ), 'context' => array( array( 'setting' => 'post_feature', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_feature_position', 'operator' => '!=', 'value' => 'behind', ), ), 'transport' => 'refresh', ), 'post_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'post_feature_ratio' ), 'context' => array( array( 'setting' => 'post_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'post_tags' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'default' => kadence()->default( 'post_tags' ), 'label' => esc_html__( 'Show Post Tags?', 'kadence' ), 'transport' => 'refresh', ), 'post_footer_area_boxed' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'post_footer_area_boxed' ), 'label' => esc_html__( 'Show Footer Area in Boxed Mode?', 'kadence' ), 'context' => array( array( 'setting' => 'post_content_style', 'operator' => '=', 'value' => 'boxed', ), ), ), 'post_author_box' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'default' => kadence()->default( 'post_author_box' ), 'label' => esc_html__( 'Show Post Author Box?', 'kadence' ), 'transport' => 'refresh', ), 'post_author_box_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'label' => esc_html__( 'Author Box Style', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'post_author_box_style' ), 'context' => array( array( 'setting' => 'post_author_box', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Normal', 'kadence' ), ), 'center' => array( 'name' => __( 'Center', 'kadence' ), ), ), 'responsive' => false, ), ), 'post_author_box_link' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'post_author_box_link' ), 'label' => esc_html__( 'Use Author Archive Link?', 'kadence' ), 'context' => array( array( 'setting' => 'post_author_box', 'operator' => '=', 'value' => true, ), ), ), 'post_navigation' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'default' => kadence()->default( 'post_navigation' ), 'label' => esc_html__( 'Show Post Navigation?', 'kadence' ), 'transport' => 'refresh', ), 'post_related' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'default' => kadence()->default( 'post_related' ), 'label' => esc_html__( 'Show Related Posts?', 'kadence' ), 'transport' => 'refresh', ), 'post_related_carousel_dots' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'default' => kadence()->default( 'post_related_carousel_dots' ), 'label' => esc_html__( 'Show Related Posts Pagination Dots?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'post_related', 'operator' => '=', 'value' => true, ), ), ), 'post_related_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_layout', 'priority' => 20, 'label' => esc_html__( 'Related Posts Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( 'post_related_columns' ), 'context' => array( array( 'setting' => 'post_related', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), ), 'responsive' => false, ), ), 'post_related_title' => array( 'control_type' => 'kadence_text_control', 'section' => 'post_layout', 'priority' => 20, 'sanitize' => 'sanitize_text_field', 'label' => esc_html__( 'Related Posts Title', 'kadence' ), 'default' => kadence()->default( 'post_related_title' ), 'partial' => array( 'selector' => '.entry-related-title', 'container_inclusive' => true, 'render_callback' => 'Kadence\related_posts_title', ), 'context' => array( array( 'setting' => 'post_related', 'operator' => '=', 'value' => true, ), ), ), 'post_related_orderby' => array( 'control_type' => 'kadence_select_control', 'section' => 'post_layout', 'label' => esc_html__( 'Related Posts Order By', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'post_related_orderby' ), 'input_attrs' => array( 'options' => array( '' => array( 'name' => __( 'Random (default)', 'kadence' ), ), 'ID' => array( 'name' => __( 'Post ID', 'kadence' ), ), 'author' => array( 'name' => __( 'Author', 'kadence' ), ), 'title' => array( 'name' => __( 'Post Title', 'kadence' ), ), 'name' => array( 'name' => __( 'Post Slug', 'kadence' ), ), 'date' => array( 'name' => __( 'Post Date', 'kadence' ), ), 'modified' => array( 'name' => __( 'Date Modified', 'kadence' ), ), 'parent' => array( 'name' => __( 'Parent Post ID', 'kadence' ), ), 'comment_count' => array( 'name' => __( 'Comment Count', 'kadence' ), ), 'menu_order' => array( 'name' => __( 'Menu Order', 'kadence' ), ), ), ), ), 'post_related_order' => array( 'control_type' => 'kadence_select_control', 'section' => 'post_layout', 'label' => esc_html__( 'Related Posts Order', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'post_related_order' ), 'input_attrs' => array( 'options' => array( '' => array( 'name' => __( 'Descending (default)', 'kadence' ), ), 'ASC' => array( 'name' => __( 'Ascending', 'kadence' ), ), ), ), ), 'post_related_carousel_loop' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'default' => kadence()->default( 'post_related_carousel_loop' ), 'label' => esc_html__( 'Endlessly Loop Related Carousel?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'post_related', 'operator' => '=', 'value' => true, ), ), ), 'post_comments' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'default' => kadence()->default( 'post_comments' ), 'label' => esc_html__( 'Show Comments?', 'kadence' ), 'transport' => 'refresh', ), 'post_comments_date' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_layout', 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'post_comments_date' ), 'label' => esc_html__( 'Show Comment Date?', 'kadence' ), 'context' => array( array( 'setting' => 'post_comments', 'operator' => '=', 'value' => true, ), ), ), 'post_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'post_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Post Background', 'kadence' ), ), ), 'post_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'post_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single .content-bg, body.single.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Post Content Background', 'kadence' ), ), ), 'info_post_related_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Related Posts Section', 'kadence' ), 'settings' => false, 'context' => array( array( 'setting' => 'post_related', 'operator' => '=', 'value' => true, ), ), ), 'post_related_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Related Posts Section Title Font', 'kadence' ), 'default' => kadence()->default( 'post_related_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.wp-site-blocks .entry-related h2.entry-related-title', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'post_related_title_font', 'headingInherit' => true, ), 'context' => array( array( 'setting' => 'post_related', 'operator' => '=', 'value' => true, ), ), ), 'post_related_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'post_layout_design', 'label' => esc_html__( 'Related Posts Section Background', 'kadence' ), 'default' => kadence()->default( 'post_related_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single .entry-related', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'context' => array( array( 'setting' => 'post_related', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'tooltip' => __( 'Related Posts Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $kadence_post_settings ); options/general-social-options.php 0000644 00000040701 15151531434 0013332 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-description"> <h2><?php echo esc_html__( 'Social Network Links', 'kadence' ); ?></h2> </div> <?php $compontent_description = ob_get_clean(); $settings = [ 'social_settings' => [ 'control_type' => 'kadence_blank_control', 'section' => 'general_social', 'settings' => false, 'priority' => 1, 'description' => $compontent_description, ], 'social_links_open_new_tab' => [ 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_social', 'default' => kadence()->default( 'social_links_open_new_tab' ), 'label' => esc_html__( 'Open Social Links in New Tab', 'kadence' ), ], 'facebook_link' => [ 'control_type' => 'kadence_text_control', 'sanitize' => 'esc_url_raw', 'section' => 'general_social', 'default' => kadence()->default( 'facebook_link' ), 'label' => esc_html__( 'Facebook', 'kadence' ), ], 'twitter_link' => [ 'control_type' => 'kadence_text_control', 'sanitize' => 'esc_url_raw', 'section' => 'general_social', 'default' => kadence()->default( 'twitter_link' ), 'label' => esc_html__( 'X formerly Twitter', 'kadence' ), ], 'youtube_link' => [ 'control_type' => 'kadence_text_control', 'sanitize' => 'esc_url_raw', 'section' => 'general_social', 'default' => kadence()->default( 'youtube_link' ), 'label' => esc_html__( 'YouTube', 'kadence' ), ], 'instagram_link' => [ 'control_type' => 'kadence_text_control', 'sanitize' => 'esc_url_raw', 'section' => 'general_social', 'default' => kadence()->default( 'instagram_link' ), 'label' => esc_html__( 'Instagram', 'kadence' ), ], 'pinterest_link' => [ 'control_type' => 'kadence_text_control', 'sanitize' => 'esc_url_raw', 'section' => 'general_social', 'default' => kadence()->default( 'pinterest_link' ), 'label' => esc_html__( 'Pinterest', 'kadence' ), ], '500px_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( '500px_link' ), 'label' => esc_html__( '500PX', 'kadence' ), ], 'amazon_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'amazon_link' ), 'label' => esc_html__( 'Amazon', 'kadence' ), ], 'anchor_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'anchor_link' ), 'label' => esc_html__( 'Anchor', 'kadence' ), ], 'apple_podcasts_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'apple_podcasts_link' ), 'label' => esc_html__( 'Apple Podcast', 'kadence' ), ], 'bandcamp_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'bandcamp_link' ), 'label' => esc_html__( 'Bandcamp', 'kadence' ), ], 'behance_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'behance_link' ), 'label' => esc_html__( 'Behance', 'kadence' ), ], 'bluesky_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'bluesky_link' ), 'label' => esc_html__( 'Bluesky', 'kadence' ), ], 'bookbub_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'bookbub_link' ), 'label' => esc_html__( 'Bookbub', 'kadence' ), ], 'discord_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'discord_link' ), 'label' => esc_html__( 'Discord', 'kadence' ), ], 'dribbble_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'dribbble_link' ), 'label' => esc_html__( 'Dribbble', 'kadence' ), ], 'email_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'sanitize_text_field', 'default' => kadence()->default( 'email_link' ), 'label' => esc_html__( 'Email', 'kadence' ), ], 'facebook_group_link' => [ 'control_type' => 'kadence_text_control', 'sanitize' => 'esc_url_raw', 'section' => 'general_social', 'default' => kadence()->default( 'facebook_group_link' ), 'label' => esc_html__( 'Facebook Group', 'kadence' ), ], 'flickr_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'flickr_link' ), 'label' => esc_html__( 'Flickr', 'kadence' ), ], 'flipboard_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'flipboard_link' ), 'label' => esc_html__( 'Flipboard', 'kadence' ), ], 'fstoppers_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'fstoppers_link' ), 'label' => esc_html__( 'Fstoppers', 'kadence' ), ], 'github_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'github_link' ), 'label' => esc_html__( 'GitHub', 'kadence' ), ], 'goodreads_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'goodreads_link' ), 'label' => esc_html__( 'Goodreads', 'kadence' ), ], 'google_reviews_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'google_reviews_link' ), 'label' => esc_html__( 'Google Reviews', 'kadence' ), ], 'imdb_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'imdb_link' ), 'label' => esc_html__( 'IMDB', 'kadence' ), ], 'imgur_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'imgur_link' ), 'label' => esc_html__( 'Imgur', 'kadence' ), ], 'line_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'line_link' ), 'label' => esc_html__( 'Line', 'kadence' ), ], 'linkedin_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'linkedin_link' ), 'label' => esc_html__( 'Linkedin', 'kadence' ), ], 'mastodon_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'mastodon_link' ), 'label' => esc_html__( 'Mastodon', 'kadence' ), ], 'medium_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'medium_link' ), 'label' => esc_html__( 'medium', 'kadence' ), ], 'mewe_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'mewe_link' ), 'label' => esc_html__( 'MeWe', 'kadence' ), ], 'parler_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'parler_link' ), 'label' => esc_html__( 'Parler', 'kadence' ), ], 'patreon_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'patreon_link' ), 'label' => esc_html__( 'Patreon', 'kadence' ), ], 'phone_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'sanitize_text_field', 'default' => kadence()->default( 'phone_link' ), 'label' => esc_html__( 'Phone', 'kadence' ), ], 'quora_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'quora_link' ), 'label' => esc_html__( 'Quora', 'kadence' ), ], 'ravelry_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'ravelry_link' ), 'label' => esc_html__( 'Ravelry', 'kadence' ), ], 'reddit_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'reddit_link' ), 'label' => esc_html__( 'Reddit', 'kadence' ), ], 'rss_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'rss_link' ), 'label' => esc_html__( 'RSS', 'kadence' ), ], 'rumble_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'rumble_link' ), 'label' => esc_html__( 'Rumble', 'kadence' ), ], 'snapchat_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'snapchat_link' ), 'label' => esc_html__( 'Snapchat', 'kadence' ), ], 'soundcloud_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'soundcloud_link' ), 'label' => esc_html__( 'SoundCloud', 'kadence' ), ], 'spotify_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'spotify_link' ), 'label' => esc_html__( 'Spotify', 'kadence' ), ], 'steam_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'steam_link' ), 'label' => esc_html__( 'Steam', 'kadence' ), ], 'strava_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'strava_link' ), 'label' => esc_html__( 'Strava', 'kadence' ), ], 'telegram_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'telegram_link' ), 'label' => esc_html__( 'Telegram', 'kadence' ), ], 'threads_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'threads_link' ), 'label' => esc_html__( 'Threads', 'kadence' ), ], 'tiktok_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'tiktok_link' ), 'label' => esc_html__( 'Tiktok', 'kadence' ), ], 'trip_advisor_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'trip_advisor_link' ), 'label' => esc_html__( 'Trip Advisor', 'kadence' ), ], 'tumblr_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'tumblr_link' ), 'label' => esc_html__( 'Tumblr', 'kadence' ), ], 'twitch_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'twitch_link' ), 'label' => esc_html__( 'Twitch', 'kadence' ), ], 'vero_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'vero_link' ), 'label' => esc_html__( 'Vero', 'kadence' ), ], 'vimeo_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'vimeo_link' ), 'label' => esc_html__( 'Vimeo', 'kadence' ), ], 'vk_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'vk_link' ), 'label' => esc_html__( 'VK', 'kadence' ), ], 'whatsapp_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'whatsapp_link' ), 'label' => esc_html__( 'WhatsApp', 'kadence' ), ], 'wordpress_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'wordpress_link' ), 'label' => esc_html__( 'WordPress', 'kadence' ), ], 'xing_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'xing_link' ), 'label' => esc_html__( 'Xing', 'kadence' ), ], 'yelp_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'yelp_link' ), 'label' => esc_html__( 'Yelp', 'kadence' ), ], 'custom1_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'custom1_link' ), 'label' => esc_html__( 'Custom 1', 'kadence' ), ], 'custom2_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'custom2_link' ), 'label' => esc_html__( 'Custom 2', 'kadence' ), ], 'custom3_link' => [ 'control_type' => 'kadence_text_control', 'section' => 'general_social', 'sanitize' => 'esc_url_raw', 'default' => kadence()->default( 'custom3_link' ), 'label' => esc_html__( 'Custom 3', 'kadence' ), ], ]; Theme_Customizer::add_settings( $settings ); options/transparent-header-options.php 0000644 00000071014 15151531434 0014235 0 ustar 00 <?php /** * Header Top Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $kadence_trans_settings = array( 'transparent_header_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'transparent_header', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'transparent_header', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'transparent_header_design', ), 'active' => 'general', ), ), 'transparent_header_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'transparent_header_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'transparent_header', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'transparent_header_design', ), 'active' => 'design', ), ), 'transparent_header_enable' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'transparent_header', 'priority' => 5, 'default' => kadence()->default( 'transparent_header_enable' ), 'label' => esc_html__( 'Enable Transparent Header?', 'kadence' ), 'transport' => 'refresh', ), 'transparent_header_archive' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'transparent_header', 'priority' => 5, 'default' => kadence()->default( 'transparent_header_archive' ), 'label' => esc_html__( 'Disable Search and Archives?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), ), 'transparent_header_page' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'transparent_header', 'priority' => 5, 'default' => kadence()->default( 'transparent_header_page' ), 'label' => esc_html__( 'Disable on Pages?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), ), 'transparent_header_post' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'transparent_header', 'priority' => 5, 'default' => kadence()->default( 'transparent_header_post' ), 'label' => esc_html__( 'Disable on Posts?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), ), 'transparent_header_device' => array( 'control_type' => 'kadence_check_icon_control', 'section' => 'transparent_header', 'priority' => 10, 'transport' => 'refresh', 'default' => kadence()->default( 'transparent_header_device' ), 'label' => esc_html__( 'Enable for:', 'kadence' ), 'context' => array( array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'options' => array( 'desktop' => array( 'name' => __( 'Desktop', 'kadence' ), 'icon' => 'desktop', ), 'mobile' => array( 'name' => __( 'Mobile', 'kadence' ), 'icon' => 'smartphone', ), ), ), ), 'transparent_header_custom_logo' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'transparent_header', 'transport' => 'refresh', 'priority' => 12, 'default' => kadence()->default( 'transparent_header_custom_logo' ), 'label' => esc_html__( 'Different Logo for Transparent Header?', 'kadence' ), 'context' => array( array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), ), 'transparent_header_logo' => array( 'control_type' => 'media', 'section' => 'transparent_header', 'transport' => 'refresh', 'priority' => 12, 'mime_type' => 'image', 'default' => '', 'label' => esc_html__( 'Transparent Header Logo', 'kadence' ), 'context' => array( array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), array( 'setting' => 'transparent_header_custom_logo', 'operator' => '=', 'value' => true, ), ), ), 'transparent_header_logo_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'transparent_header', 'priority' => 12, 'label' => esc_html__( 'Logo Max Width', 'kadence' ), 'description' => esc_html__( 'Define the maxium width for the logo', 'kadence' ), 'context' => array( array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), array( 'setting' => 'transparent_header_custom_logo', 'operator' => '=', 'value' => true, ), array( 'setting' => 'transparent_header_logo', 'operator' => '!empty', 'value' => '', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header #main-header .site-branding img', 'property' => 'max-width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'transparent_header_logo_width' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vw' => 2, '%' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vw' => 80, '%' => 80, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vw', '%' ), ), ), 'transparent_header_custom_mobile_logo' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'transparent_header', 'transport' => 'refresh', 'priority' => 12, 'default' => kadence()->default( 'use_mobile_logo' ), 'label' => esc_html__( 'Different Logo for Mobile?', 'kadence' ), 'context' => array( array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), array( 'setting' => 'transparent_header_custom_logo', 'operator' => '=', 'value' => true, ), array( 'setting' => 'transparent_header_logo', 'operator' => '!empty', 'value' => '', ), array( 'setting' => '__device', 'operator' => 'in', 'value' => array( 'tablet', 'mobile' ), ), ), ), 'transparent_header_mobile_logo' => array( 'control_type' => 'media', 'section' => 'transparent_header', 'transport' => 'refresh', 'priority' => 12, 'mime_type' => 'image', 'default' => '', 'label' => esc_html__( 'Mobile Logo', 'kadence' ), 'context' => array( array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), array( 'setting' => 'transparent_header_custom_mobile_logo', 'operator' => '=', 'value' => true, ), array( 'setting' => 'transparent_header_custom_logo', 'operator' => '=', 'value' => true, ), array( 'setting' => '__device', 'operator' => 'in', 'value' => array( 'tablet', 'mobile' ), ), ), ), 'transparent_logo_icon_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Logo Icon Color', 'kadence' ), 'default' => kadence()->default( 'transparent_logo_icon_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header #main-header .site-branding .logo-icon', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), ), ), ), 'transparent_header_site_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Site Title Color', 'kadence' ), 'default' => kadence()->default( 'transparent_header_site_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header #main-header .site-branding .site-title, .transparent-header #main-header .site-branding .site-description, .mobile-transparent-header #mobile-header .site-branding .site-title, .mobile-transparent-header #mobile-header .site-branding .site-description', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), ), ), ), 'transparent_header_navigation_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Navigation Colors', 'kadence' ), 'default' => kadence()->default( 'transparent_header_navigation_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header .header-navigation .header-menu-container > ul > li.menu-item > a, .transparent-header .mobile-toggle-open-container .menu-toggle-open, .transparent-header .search-toggle-open-container .search-toggle-open', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.transparent-header .header-navigation .header-menu-container > ul > li.menu-item > a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.transparent-header .header-navigation .header-menu-container > ul > li.menu-item.current-menu-item > a, .transparent-header .header-navigation .header-menu-container > ul > li.menu-item.current_page_item > a', 'property' => 'color', 'pattern' => '$', 'key' => 'active', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Color', 'kadence' ), 'palette' => true, ), ), ), ), 'transparent_header_navigation_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Navigation Items Background', 'kadence' ), 'default' => kadence()->default( 'transparent_header_navigation_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header .header-menu-container > ul > li.menu-item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.transparent-header .header-menu-container > ul > li.menu-item > a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.transparent-header .header-menu-container > ul > li.menu-item.current-menu-item > a, .transparent-header .header-menu-container > ul > li.menu-item.current_page_item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'active', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Background', 'kadence' ), 'palette' => true, ), ), ), ), 'transparent_header_button_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Button Colors', 'kadence' ), 'default' => kadence()->default( 'transparent_header_button_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-button, .mobile-transparent-header .mobile-header-button-wrap .mobile-header-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-button:hover, .mobile-transparent-header .mobile-header-button-wrap .mobile-header-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-button, .mobile-transparent-header .mobile-header-button-wrap .mobile-header-button', 'property' => 'background', 'pattern' => '$', 'key' => 'background', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-button:hover, .mobile-transparent-header .mobile-header-button-wrap .mobile-header-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'backgroundHover', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-button, .mobile-transparent-header .mobile-header-button-wrap .mobile-header-button', 'property' => 'border-color', 'pattern' => '$', 'key' => 'border', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-button:hover, .mobile-transparent-header .mobile-header-button-wrap .mobile-header-button:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'borderHover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'background' => array( 'tooltip' => __( 'Background', 'kadence' ), 'palette' => true, ), 'backgroundHover' => array( 'tooltip' => __( 'Background Hover', 'kadence' ), 'palette' => true, ), 'border' => array( 'tooltip' => __( 'Border', 'kadence' ), 'palette' => true, ), 'borderHover' => array( 'tooltip' => __( 'Border Hover', 'kadence' ), 'palette' => true, ), ), ), ), 'transparent_header_social_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Social Colors', 'kadence' ), 'default' => kadence()->default( 'transparent_header_social_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header .header-social-wrap a.social-button, .mobile-transparent-header #mobile-header .header-mobile-social-wrap a.social-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.transparent-header .header-social-wrap a.social-button:hover, .mobile-transparent-header #mobile-header .header-mobile-social-wrap a.social-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.transparent-header .header-social-wrap a.social-button, .mobile-transparent-header #mobile-header .header-mobile-social-wrap a.social-button', 'property' => 'background', 'pattern' => '$', 'key' => 'background', ), array( 'type' => 'css', 'selector' => '.transparent-header .header-social-wrap a.social-button:hover, .mobile-transparent-header #mobile-header .header-mobile-social-wrap a.social-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'backgroundHover', ), array( 'type' => 'css', 'selector' => '.transparent-header .header-social-wrap a.social-button, .mobile-transparent-header #mobile-header .header-mobile-social-wrap a.social-button', 'property' => 'border-color', 'pattern' => '$', 'key' => 'border', ), array( 'type' => 'css', 'selector' => '.transparent-header .header-social-wrap a.social-button:hover, .mobile-transparent-header #mobile-header .header-mobile-social-wrap a.social-button:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'borderHover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'background' => array( 'tooltip' => __( 'Background', 'kadence' ), 'palette' => true, ), 'backgroundHover' => array( 'tooltip' => __( 'Background Hover', 'kadence' ), 'palette' => true, ), 'border' => array( 'tooltip' => __( 'Border', 'kadence' ), 'palette' => true, ), 'borderHover' => array( 'tooltip' => __( 'Border Hover', 'kadence' ), 'palette' => true, ), ), ), ), 'transparent_header_html_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'HTML Colors', 'kadence' ), 'default' => kadence()->default( 'transparent_header_html_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-html,.mobile-transparent-header .mobile-html', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-html a, .mobile-transparent-header .mobile-html a', 'property' => 'color', 'pattern' => '$', 'key' => 'link', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-html a:hover, .mobile-transparent-header .mobile-html a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__device', 'operator' => '==', 'value' => 'desktop', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'link' => array( 'tooltip' => __( 'Link Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover', 'kadence' ), 'palette' => true, ), ), ), ), 'transparent_header_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Transparent Header Background', 'kadence' ), 'default' => kadence()->default( 'transparent_header_background' ), 'context' => array( array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => array( 'desktop' => '.transparent-header #wrapper #masthead', 'tablet' => '.mobile-transparent-header #wrapper #masthead', 'mobile' => '.mobile-transparent-header #wrapper #masthead', ), 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Transparent Header Background', 'kadence' ), ), ), 'transparent_header_bottom_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Bottom Border', 'kadence' ), 'default' => kadence()->default( 'transparent_header_bottom_border' ), 'context' => array( array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.transparent-header #wrapper #masthead', 'tablet' => '.mobile-transparent-header #wrapper #masthead', 'mobile' => '.mobile-transparent-header #wrapper #masthead', ), 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ); if ( class_exists( 'woocommerce' ) ) { $kadence_trans_settings = array_merge( $kadence_trans_settings, array( 'transparent_header_product' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'transparent_header', 'priority' => 5, 'default' => kadence()->default( 'transparent_header_product' ), 'label' => esc_html__( 'Disable on Products?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), ), 'transparent_header_cart_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Cart Colors', 'kadence' ), 'default' => kadence()->default( 'transparent_header_cart_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-cart-wrap .header-cart-button, .mobile-transparent-header #mobile-header .header-mobile-cart-wrap .header-cart-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-cart-wrap .header-cart-button:hover, .mobile-transparent-header #mobile-header .header-mobile-cart-wrap .header-cart-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-cart-wrap .header-cart-button, .mobile-transparent-header #mobile-header .header-mobile-cart-wrap .header-cart-button', 'property' => 'background', 'pattern' => '$', 'key' => 'background', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-cart-wrap .header-cart-button:hover, .mobile-transparent-header #mobile-header .header-mobile-cart-wrap .header-cart-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'backgroundHover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'background' => array( 'tooltip' => __( 'Background', 'kadence' ), 'palette' => true, ), 'backgroundHover' => array( 'tooltip' => __( 'Background Hover', 'kadence' ), 'palette' => true, ), ), ), ), 'transparent_header_cart_total_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'transparent_header_design', 'label' => esc_html__( 'Cart Total Colors', 'kadence' ), 'default' => kadence()->default( 'transparent_header_cart_total_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-cart-wrap .header-cart-button .header-cart-total, .mobile-transparent-header #mobile-header .header-mobile-cart-wrap .header-cart-button .header-cart-total', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-cart-wrap .header-cart-button:hover .header-cart-total, .mobile-transparent-header #mobile-header .header-mobile-cart-wrap .header-cart-button:hover .header-cart-total', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-cart-wrap .header-cart-button .header-cart-total, .mobile-transparent-header #mobile-header .header-mobile-cart-wrap .header-cart-button .header-cart-total', 'property' => 'background', 'pattern' => '$', 'key' => 'background', ), array( 'type' => 'css', 'selector' => '.transparent-header #main-header .header-cart-wrap .header-cart-button:hover .header-cart-total, .mobile-transparent-header #mobile-header .header-mobile-cart-wrap .header-cart-button:hover .header-cart-total', 'property' => 'background', 'pattern' => '$', 'key' => 'backgroundHover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'background' => array( 'tooltip' => __( 'Background', 'kadence' ), 'palette' => true, ), 'backgroundHover' => array( 'tooltip' => __( 'Background Hover', 'kadence' ), 'palette' => true, ), ), ), ), ) ); } $kadence_trans_post_types = kadence()->get_post_types_objects(); $kadence_trans_extras_post_types = array(); $kadence_trans_add_extras = false; foreach ( $kadence_trans_post_types as $post_type_item ) { $post_type_name = $post_type_item->name; $post_type_label = $post_type_item->label; $ignore_type = kadence()->get_transparent_post_types_to_ignore(); if ( ! in_array( $post_type_name, $ignore_type, true ) ) { $kadence_trans_add_extras = true; $kadence_trans_extras_post_types[ 'transparent_header_' . $post_type_name ] = array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'transparent_header', 'priority' => 5, 'default' => true, 'label' => esc_html__( 'Disable on', 'kadence' ) . ' ' . $post_type_label . '?', 'transport' => 'refresh', 'context' => array( array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), ); if ( 'tribe_events' === $post_type_name ) { $kadence_trans_extras_post_types[ 'transparent_header_tribe_events_archive' ] = array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'transparent_header', 'priority' => 5, 'default' => true, 'label' => esc_html__( 'Disable on Events Archive?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), ); } } } if ( $kadence_trans_add_extras ) { $kadence_trans_settings = array_merge( $kadence_trans_settings, $kadence_trans_extras_post_types ); } Theme_Customizer::add_settings( $kadence_trans_settings ); options/header-social-options.php 0000644 00000025660 15151531434 0013154 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'header_social_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_social', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_social', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_social_design', ), 'active' => 'general', ), ), 'header_social_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_social_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_social', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_social_design', ), 'active' => 'design', ), ), 'header_social_items' => array( 'control_type' => 'kadence_social_control', 'section' => 'header_social', 'priority' => 6, 'default' => kadence()->default( 'header_social_items' ), 'label' => esc_html__( 'Social Items', 'kadence' ), 'partial' => array( 'selector' => '.header-social-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_social', ), ), 'header_social_show_label' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_social', 'priority' => 8, 'default' => kadence()->default( 'header_social_show_label' ), 'label' => esc_html__( 'Show Icon Label?', 'kadence' ), 'partial' => array( 'selector' => '.header-social-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_social', ), ), 'header_social_item_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_social', 'label' => esc_html__( 'Item Spacing', 'kadence' ), 'default' => kadence()->default( 'header_social_item_spacing' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-social-wrap .header-social-inner-wrap', 'property' => 'gap', 'pattern' => '$', 'key' => 'size', ), ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 50, 'em' => 3, 'rem' => 3, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'header_social_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_social_design', 'priority' => 10, 'default' => kadence()->default( 'header_social_style' ), 'label' => esc_html__( 'Social Style', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.header-social-inner-wrap', 'pattern' => 'social-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'filled' => array( 'name' => __( 'Filled', 'kadence' ), ), 'outline' => array( 'name' => __( 'Outline', 'kadence' ), ), ), 'responsive' => false, ), ), 'header_social_icon_size' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_social_design', 'label' => esc_html__( 'Icon Size', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-social-wrap .header-social-inner-wrap', 'property' => 'font-size', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_social_icon_size' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'header_social_brand' => array( 'control_type' => 'kadence_select_control', 'section' => 'header_social_design', 'transport' => 'refresh', 'default' => kadence()->default( 'header_social_brand' ), 'label' => esc_html__( 'Use Brand Colors?', 'kadence' ), 'input_attrs' => array( 'options' => array( '' => array( 'name' => __( 'No', 'kadence' ), ), 'always' => array( 'name' => __( 'Yes', 'kadence' ), ), 'onhover' => array( 'name' => __( 'On Hover', 'kadence' ), ), 'untilhover' => array( 'name' => __( 'Until Hover', 'kadence' ), ), ), ), ), 'header_social_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_social_design', 'label' => esc_html__( 'Colors', 'kadence' ), 'default' => kadence()->default( 'header_social_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-social-wrap a.social-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#main-header .header-social-wrap a.social-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_social_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_social_design', 'label' => esc_html__( 'Background Colors', 'kadence' ), 'default' => kadence()->default( 'header_social_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-social-wrap a.social-button', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#main-header .header-social-wrap a.social-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'header_social_style', 'operator' => '=', 'value' => 'filled', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_social_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_social_design', 'label' => esc_html__( 'Border Colors', 'kadence' ), 'default' => kadence()->default( 'header_social_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-social-wrap a.social-button', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#main-header .header-social-wrap a.social-button:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_social_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'header_social_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'header_social_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.header-social-wrap a.social-button', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'header_social_border_radius' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_social_design', 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-social-wrap a.social-button', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_social_border_radius' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, '%' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, '%' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', '%' ), 'responsive' => false, ), ), 'header_social_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'header_social_design', 'label' => esc_html__( 'Font', 'kadence' ), 'context' => array( array( 'setting' => 'header_social_show_label', 'operator' => '=', 'value' => true, ), ), 'default' => kadence()->default( 'header_social_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.header-social-wrap a.social-button .social-label', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'header_social_typography', 'options' => 'no-color', ), ), 'header_social_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_social_design', 'priority' => 10, 'default' => kadence()->default( 'header_social_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-social-wrap', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'header_social_link_to_social_links' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'header_social', 'settings' => false, 'priority' => 25, 'label' => esc_html__( 'Set Social Links', 'kadence' ), 'input_attrs' => array( 'section' => 'kadence_customizer_general_social', ), ), ); Theme_Customizer::add_settings( $settings ); options/footer-middle-options.php 0000644 00000047273 15151531434 0013212 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); ob_start(); ?> <div class="kadence-compontent-description"> <p style="margin:0"><?php echo esc_html__( 'Title and Content settings affect legacy widgets. For block editor widgets use settings in the editor.', 'kadence' ); ?></p> </div> <?php $component_description = ob_get_clean(); $settings = array( 'footer_middle_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'footer_middle', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'footer_middle_contain' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_middle', 'priority' => 4, 'default' => kadence()->default( 'footer_middle_contain' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-middle-footer-wrap', 'pattern' => array( 'desktop' => 'site-footer-row-layout-$', 'tablet' => 'site-footer-row-tablet-layout-$', 'mobile' => 'site-footer-row-mobile-layout-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), ), ), 'footer_middle_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_middle', 'label' => esc_html__( 'Columns', 'kadence' ), 'priority' => 5, //'transport' => 'refresh', 'default' => kadence()->default( 'footer_middle_columns' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'partial' => array( 'selector' => '#colophon', 'container_inclusive' => true, 'render_callback' => 'Kadence\footer_markup', ), 'input_attrs' => array( 'layout' => array( '1' => array( 'name' => __( '1', 'kadence' ), ), '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), '5' => array( 'name' => __( '5', 'kadence' ), ), ), 'responsive' => false, 'footer' => 'middle', ), ), 'footer_middle_layout' => array( 'control_type' => 'kadence_row_control', 'section' => 'footer_middle', 'label' => esc_html__( 'Layout', 'kadence' ), 'priority' => 5, //'transport' => 'refresh', 'default' => kadence()->default( 'footer_middle_layout' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-middle-footer-inner-wrap', 'pattern' => array( 'desktop' => 'site-footer-row-column-layout-$', 'tablet' => 'site-footer-row-tablet-column-layout-$', 'mobile' => 'site-footer-row-mobile-column-layout-$', ), 'key' => '', ), ), 'input_attrs' => array( 'responsive' => true, 'footer' => 'middle', ), ), 'footer_middle_collapse' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_middle', 'priority' => 5, 'default' => kadence()->default( 'footer_middle_collapse' ), 'label' => esc_html__( 'Row Collapse', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => '__device', 'operator' => 'in', 'value' => array( 'tablet', 'mobile' ), ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-middle-footer-inner-wrap', 'pattern' => 'ft-ro-collapse-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Left to Right', 'kadence' ), 'icon' => '', ), 'rtl' => array( 'name' => __( 'Right to Left', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, 'footer' => 'middle', ), ), 'footer_middle_direction' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_middle', 'priority' => 5, 'default' => kadence()->default( 'footer_middle_direction' ), 'label' => esc_html__( 'Column Direction', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-middle-footer-inner-wrap', 'pattern' => array( 'desktop' => 'ft-ro-dir-$', 'tablet' => 'ft-ro-t-dir-$', 'mobile' => 'ft-ro-m-dir-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'row' => array( 'tooltip' => __( 'Left to Right', 'kadence' ), 'name' => __( 'Row', 'kadence' ), 'icon' => '', ), 'column' => array( 'tooltip' => __( 'Top to Bottom', 'kadence' ), 'name' => __( 'Column', 'kadence' ), 'icon' => '', ), ), 'responsive' => true, 'footer' => 'middle', ), ), 'footer_middle_column_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_middle', 'priority' => 5, 'label' => esc_html__( 'Column Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'property' => 'grid-column-gap', 'selector' => '#colophon .site-middle-footer-inner-wrap', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'property' => 'grid-row-gap', 'selector' => '#colophon .site-middle-footer-inner-wrap', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_middle_column_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_middle_widget_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_middle', 'priority' => 5, 'label' => esc_html__( 'Widget Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'property' => 'margin-bottom', 'selector' => '.site-middle-footer-inner-wrap .widget', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_middle_widget_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_middle_top_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_middle', 'priority' => 5, 'label' => esc_html__( 'Top Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-middle-footer-inner-wrap', 'pattern' => '$', 'property' => 'padding-top', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_middle_top_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_middle_bottom_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_middle', 'priority' => 5, 'label' => esc_html__( 'Bottom Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-middle-footer-inner-wrap', 'pattern' => '$', 'property' => 'padding-bottom', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_middle_bottom_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_middle_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_middle', 'priority' => 5, 'label' => esc_html__( 'Min Height', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-middle-footer-inner-wrap', 'pattern' => '$', 'property' => 'min-height', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_middle_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 400, 'em' => 12, 'rem' => 12, 'vh' => 40, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'footer_middle_widget_settings' => array( 'control_type' => 'kadence_blank_control', 'section' => 'footer_middle', 'settings' => false, 'priority' => 1, 'description' => $component_description, 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), ), 'footer_middle_widget_title' => array( 'control_type' => 'kadence_typography_control', 'section' => 'footer_middle', 'label' => esc_html__( 'Widget Titles', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'footer_middle_widget_title' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.site-middle-footer-wrap .site-footer-row-container-inner .widget-title', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'footer_middle_widget_title', ), ), 'footer_middle_widget_content' => array( 'control_type' => 'kadence_typography_control', 'section' => 'footer_middle', 'label' => esc_html__( 'Widget Content', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'footer_middle_widget_content' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.site-middle-footer-wrap .site-footer-row-container-inner', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'footer_middle_widget_content', ), ), 'footer_middle_link_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'footer_middle', 'label' => esc_html__( 'Link Colors', 'kadence' ), 'default' => kadence()->default( 'footer_middle_link_colors' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-footer .site-middle-footer-wrap a:where(:not(.button):not(.wp-block-button__link):not(.wp-element-button))', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.site-footer .site-middle-footer-wrap a:where(:not(.button):not(.wp-block-button__link):not(.wp-element-button)):hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'footer_middle_link_style' => array( 'control_type' => 'kadence_select_control', 'section' => 'footer_middle', 'default' => kadence()->default( 'footer_middle_link_style' ), 'label' => esc_html__( 'Link Style', 'kadence' ), 'input_attrs' => array( 'options' => array( 'plain' => array( 'name' => __( 'Underline on Hover', 'kadence' ), ), 'normal' => array( 'name' => __( 'Underline', 'kadence' ), ), 'noline' => array( 'name' => __( 'No Underline', 'kadence' ), ), ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-middle-footer-inner-wrap', 'pattern' => 'ft-ro-lstyle-$', 'key' => '', ), ), ), 'footer_middle_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'footer_middle', 'label' => esc_html__( 'Middle Row Background', 'kadence' ), 'default' => kadence()->default( 'footer_middle_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.site-middle-footer-wrap .site-footer-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Middle Row Background', 'kadence' ), ), ), 'footer_middle_column_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'footer_middle', 'label' => esc_html__( 'Column Border', 'kadence' ), 'default' => kadence()->default( 'footer_middle_column_border' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.site-middle-footer-inner-wrap .site-footer-section:not(:last-child):after', 'pattern' => '$', 'property' => 'border-right', 'pattern' => '$', 'key' => 'border', ), ), ), 'footer_middle_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'footer_middle', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'footer_middle_border' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'settings' => array( 'border_top' => 'footer_middle_top_border', 'border_bottom' => 'footer_middle_bottom_border', ), 'live_method' => array( 'footer_middle_top_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-middle-footer-wrap .site-footer-row-container-inner', 'tablet' => '.site-middle-footer-wrap .site-footer-row-container-inner', 'mobile' => '.site-middle-footer-wrap .site-footer-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-top', 'pattern' => '$', 'key' => 'border', ), ), 'footer_middle_bottom_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-middle-footer-wrap .site-footer-row-container-inner', 'tablet' => '.site-middle-footer-wrap .site-footer-row-container-inner', 'mobile' => '.site-middle-footer-wrap .site-footer-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), // 'footer_middle_top_border' => array( // 'control_type' => 'kadence_border_control', // 'section' => 'footer_middle', // 'label' => esc_html__( 'Top Border', 'kadence' ), // 'default' => kadence()->default( 'footer_middle_top_border' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), // 'live_method' => array( // array( // 'type' => 'css_border', // 'selector' => array( // 'desktop' => '.site-middle-footer-wrap .site-footer-row-container-inner', // 'tablet' => '.site-middle-footer-wrap .site-footer-row-container-inner', // 'mobile' => '.site-middle-footer-wrap .site-footer-row-container-inner', // ), // 'pattern' => array( // 'desktop' => '$', // 'tablet' => '$', // 'mobile' => '$', // ), // 'property' => 'border-top', // 'pattern' => '$', // 'key' => 'border', // ), // ), // ), // 'footer_middle_bottom_border' => array( // 'control_type' => 'kadence_border_control', // 'section' => 'footer_middle', // 'label' => esc_html__( 'Bottom Border', 'kadence' ), // 'default' => kadence()->default( 'footer_middle_bottom_border' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), // 'live_method' => array( // array( // 'type' => 'css_border', // 'selector' => array( // 'desktop' => '.site-middle-footer-wrap .site-footer-row-container-inner', // 'tablet' => '.site-middle-footer-wrap .site-footer-row-container-inner', // 'mobile' => '.site-middle-footer-wrap .site-footer-row-container-inner', // ), // 'pattern' => array( // 'desktop' => '$', // 'tablet' => '$', // 'mobile' => '$', // ), // 'property' => 'border-bottom', // 'pattern' => '$', // 'key' => 'border', // ), // ), // ), ); Theme_Customizer::add_settings( $settings ); options/header-mobile-nav-options.php 0000644 00000021612 15151531434 0013724 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'mobile_navigation_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'mobile_navigation', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'mobile_navigation_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'mobile_navigation', 'settings' => false, 'priority' => 5, 'label' => esc_html__( 'Select Menu', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'section' => 'menu_locations', ), ), 'mobile_navigation_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_navigation', 'label' => esc_html__( 'Colors', 'kadence' ), 'default' => kadence()->default( 'mobile_navigation_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-navigation ul li:not(.menu-item-has-children) > a, .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.mobile-navigation ul li:not(.menu-item-has-children) > a:hover, .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.mobile-navigation ul li.current-menu-item:not(.menu-item-has-children) > a, .mobile-navigation ul li.current-menu-item.menu-item-has-children > .drawer-nav-drop-wrap', 'property' => 'color', 'pattern' => '$', 'key' => 'active', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Color', 'kadence' ), 'palette' => true, ), ), ), ), 'mobile_navigation_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_navigation', 'priority' => 20, 'label' => esc_html__( 'Background', 'kadence' ), 'default' => kadence()->default( 'mobile_navigation_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-navigation ul li:not(.menu-item-has-children) > a, .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.mobile-navigation ul li:not(.menu-item-has-children) > a:hover, .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.mobile-navigation ul li.current-menu-item:not(.menu-item-has-children) > a, .mobile-navigation ul li.current-menu-item.menu-item-has-children > .drawer-nav-drop-wrap', 'property' => 'background', 'pattern' => '$', 'key' => 'active', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Background', 'kadence' ), 'palette' => true, ), ), ), ), 'mobile_navigation_divider' => array( 'control_type' => 'kadence_border_control', 'section' => 'mobile_navigation', 'priority' => 20, 'label' => esc_html__( 'Item Divider', 'kadence' ), 'default' => kadence()->default( 'mobile_navigation_divider' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.mobile-navigation ul li.menu-item-has-children .drawer-nav-drop-wrap, .mobile-navigation ul li:not(.menu-item-has-children) a ', 'pattern' => '$', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), array( 'type' => 'css_border', 'selector' => '.mobile-navigation ul li.menu-item-has-children .drawer-nav-drop-wrap button', 'pattern' => '$', 'property' => 'border-left', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'mobile_navigation_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'mobile_navigation', 'priority' => 20, 'label' => esc_html__( 'Font', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'mobile_navigation_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.mobile-navigation ul li', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'mobile_navigation_typography', 'options' => 'no-color', ), ), 'mobile_navigation_vertical_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'mobile_navigation', 'priority' => 20, 'label' => esc_html__( 'Items Vertical Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-navigation ul li a', 'property' => 'padding-top', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '.mobile-navigation ul li a', 'property' => 'padding-bottom', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'mobile_navigation_vertical_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vh' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, 'vh' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 0.01, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), 'responsive' => false, ), ), 'mobile_navigation_collapse' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'mobile_navigation', 'priority' => 20, 'default' => kadence()->default( 'mobile_navigation_collapse' ), 'label' => esc_html__( 'Collapse sub menu items?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'partial' => array( 'selector' => '#mobile-site-navigation', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_navigation', ), ), 'mobile_navigation_parent_toggle' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'mobile_navigation', 'priority' => 20, 'default' => kadence()->default( 'mobile_navigation_parent_toggle' ), 'label' => esc_html__( 'Entire parent menu item expands sub menu', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'mobile_navigation_collapse', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.mobile-navigation', 'pattern' => 'drawer-navigation-parent-toggle-$', 'key' => '', ), ), ), ); Theme_Customizer::add_settings( $settings ); options/post-archive-layout-options.php 0000644 00000061222 15151531435 0014366 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'post_archive_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'post_archive', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'post_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'post_archive_design', ), 'active' => 'general', ), ), 'post_archive_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'post_archive_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'post_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'post_archive_design', ), 'active' => 'design', ), ), 'info_post_archive_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_archive', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'info_post_archive_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_archive_design', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'post_archive_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'post_archive', 'priority' => 3, 'default' => kadence()->default( 'post_archive_title' ), 'label' => esc_html__( 'Show Archive Title?', 'kadence' ), 'transport' => 'refresh', ), 'post_archive_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_archive', 'label' => esc_html__( 'Archive Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'post_archive_title_layout' ), 'context' => array( array( 'setting' => 'post_archive_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'name' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'post_archive_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_archive', 'priority' => 4, 'default' => kadence()->default( 'post_archive_title_inner_layout' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'post_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.post-archive-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'post_archive_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_archive', 'label' => esc_html__( 'Post Archive Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'post_archive_title_align' ), 'context' => array( array( 'setting' => 'post_archive_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.post-archive-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'post_archive_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'post_archive', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'post_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .post-archive-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'post_archive_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'post_archive_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'post_archive', 'priority' => 6, 'default' => kadence()->default( 'post_archive_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'post_archive_title_elements', 'title' => 'post_archive_title_element_title', 'breadcrumb' => 'post_archive_title_element_breadcrumb', 'description' => 'post_archive_title_element_description', ), ), 'post_archive_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Title Color', 'kadence' ), 'default' => kadence()->default( 'post_archive_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.wp-site-blocks .post-archive-title h1', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), 'post_archive_title_description_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Description Colors', 'kadence' ), 'default' => kadence()->default( 'post_archive_title_description_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.post-archive-title .archive-description', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.post-archive-title .archive-description a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'post_archive_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'post_archive_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.post-archive-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.post-archive-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'post_archive_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Archive Title Background', 'kadence' ), 'default' => kadence()->default( 'post_archive_title_background' ), 'context' => array( array( 'setting' => 'post_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .post-archive-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Post Title Background', 'kadence' ), ), ), 'post_archive_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'post_archive_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.post-archive-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'post_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'post_archive_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'post_archive_title_border' ), 'context' => array( array( 'setting' => 'post_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'post_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'post_archive_title_top_border', 'border_bottom' => 'post_archive_title_bottom_border', ), 'live_method' => array( 'post_archive_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.post-archive-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'post_archive_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.post-archive-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_post_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_archive', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'info_post_archive_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_archive_design', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'post_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_archive', 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'post_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'name' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'name' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'name' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'post_archive_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'post_archive', 'label' => esc_html__( 'Post Archive Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'post_archive_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'post_archive_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_archive', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'post_archive_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.archive', 'pattern' => 'content-style-$', 'key' => '', ), array( 'type' => 'class', 'selector' => 'body.blog', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'gridBoxed', 'name' => __( 'Boxed', 'kadence' ), ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'gridUnboxed', 'name' => __( 'Unboxed', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'post_archive_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_archive', 'priority' => 10, 'label' => esc_html__( 'Post Archive Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( 'post_archive_columns' ), 'input_attrs' => array( 'layout' => array( '1' => array( 'name' => __( '1', 'kadence' ), ), '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), ), 'responsive' => false, ), ), 'post_archive_item_image_placement' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_archive', 'label' => esc_html__( 'Item Image Placement', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'post_archive_item_image_placement' ), 'context' => array( array( 'setting' => 'post_archive_columns', 'operator' => '=', 'value' => '1', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.post-archive.grid-cols', 'pattern' => 'item-image-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'beside' => array( 'name' => __( 'Beside', 'kadence' ), ), 'above' => array( 'name' => __( 'Above', 'kadence' ), ), ), 'responsive' => false, ), ), 'post_archive_item_vertical_alignment' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'post_archive', 'label' => esc_html__( 'Content Vertical Alignment', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'post_archive_item_vertical_alignment' ), 'context' => array( array( 'setting' => 'post_archive_columns', 'operator' => '=', 'value' => '1', ), array( 'setting' => 'post_archive_item_image_placement', 'operator' => '=', 'value' => 'beside', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.post-archive.grid-cols', 'pattern' => 'item-content-vertical-align-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'name' => __( 'Top', 'kadence' ), ), 'center' => array( 'name' => __( 'Center', 'kadence' ), ), ), 'responsive' => false, ), ), 'info_post_archive_item_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'post_archive', 'priority' => 12, 'label' => esc_html__( 'Post Item Layout', 'kadence' ), 'settings' => false, ), 'post_archive_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'post_archive', 'priority' => 12, 'default' => kadence()->default( 'post_archive_elements' ), 'label' => esc_html__( 'Post Item Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'post_archive_elements', 'feature' => 'post_archive_element_feature', 'categories' => 'post_archive_element_categories', 'title' => 'post_archive_element_title', 'meta' => 'post_archive_element_meta', 'excerpt' => 'post_archive_element_excerpt', 'readmore' => 'post_archive_element_readmore', ), 'input_attrs' => array( 'groupe' => 'post_archive_elements', 'sortable' => false, 'defaults' => array( 'feature' => kadence()->default( 'post_archive_element_feature' ), 'categories' => kadence()->default( 'post_archive_element_categories' ), 'title' => kadence()->default( 'post_archive_element_title' ), 'meta' => kadence()->default( 'post_archive_element_meta' ), 'excerpt' => kadence()->default( 'post_archive_element_excerpt' ), 'readmore' => kadence()->default( 'post_archive_element_readmore' ), ), 'dividers' => array( 'dot' => array( 'icon' => 'dot', ), 'slash' => array( 'icon' => 'slash', ), 'dash' => array( 'icon' => 'dash', ), 'vline' => array( 'icon' => 'vline', ), 'customicon' => array( 'icon' => 'hours', ), ), ), ), 'post_archive_item_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Post Item Title Font', 'kadence' ), 'default' => kadence()->default( 'post_archive_item_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.loop-entry.type-post h2.entry-title', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'post_archive_item_title_font', 'headingInherit' => true, ), ), 'post_archive_item_category_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Item Category Colors', 'kadence' ), 'default' => kadence()->default( 'post_archive_item_category_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.loop-entry.type-post .entry-taxonomies, .loop-entry.type-post .entry-taxonomies a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.loop-entry.type-post .entry-taxonomies a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.loop-entry.type-post .entry-taxonomies .category-style-pill a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.loop-entry.type-post .entry-taxonomies .category-style-pill a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'post_archive_item_category_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Item Category Font', 'kadence' ), 'default' => kadence()->default( 'post_archive_item_category_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.loop-entry.type-post .entry-taxonomies', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'post_archive_item_category_font', 'options' => 'no-color', ), ), 'post_archive_item_meta_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Item Meta Colors', 'kadence' ), 'default' => kadence()->default( 'post_archive_item_meta_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.loop-entry.type-post .entry-meta', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.loop-entry.type-post .entry-meta a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'post_archive_item_meta_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Item Meta Font', 'kadence' ), 'default' => kadence()->default( 'post_archive_item_meta_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.loop-entry.type-post .entry-meta', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'post_archive_item_meta_font', 'options' => 'no-color', ), ), 'post_archive_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'post_archive_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.archive, body.blog', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Post Background', 'kadence' ), ), ), 'post_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'post_archive_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'post_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.blog .content-bg, body.archive .content-bg, body.archive.content-style-unboxed .site, body.blog.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Archive Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-html-options.php 0000644 00000011160 15151531435 0012635 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'header_html_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_html', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_html', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_html_design', ), 'active' => 'general', ), ), 'header_html_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_html_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_html', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_html_design', ), 'active' => 'design', ), ), 'header_html_content' => array( 'control_type' => 'kadence_editor_control', 'section' => 'header_html', 'sanitize' => 'wp_kses_post', 'priority' => 4, 'default' => kadence()->default( 'header_html_content' ), 'partial' => array( 'selector' => '.header-html', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_html', ), 'input_attrs' => array( 'id' => 'header_html', ), ), 'header_html_wpautop' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_html', 'default' => kadence()->default( 'header_html_wpautop' ), 'label' => esc_html__( 'Automatically Add Paragraphs', 'kadence' ), 'partial' => array( 'selector' => '.header-html', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_html', ), ), 'header_html_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'header_html_design', 'label' => esc_html__( 'Font', 'kadence' ), 'default' => kadence()->default( 'header_html_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '#main-header .header-html', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'header_html_typography', ), ), 'header_html_link_style' => array( 'control_type' => 'kadence_select_control', 'section' => 'header_html_design', 'default' => kadence()->default( 'header_html_link_style' ), 'label' => esc_html__( 'Link Style', 'kadence' ), 'input_attrs' => array( 'options' => array( 'normal' => array( 'name' => __( 'Underline', 'kadence' ), ), 'plain' => array( 'name' => __( 'No Underline', 'kadence' ), ), ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#main-header .header-html', 'pattern' => 'inner-link-style-$', 'key' => '', ), ), ), 'header_html_link_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_html_design', 'label' => esc_html__( 'Link Colors', 'kadence' ), 'default' => kadence()->default( 'header_html_link_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-html a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#main-header .header-html a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_html_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_html_design', 'priority' => 10, 'default' => kadence()->default( 'header_html_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-html', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), ); Theme_Customizer::add_settings( $settings ); options/general-button-options.php 0000644 00000016241 15151531435 0013376 0 ustar 00 <?php /** * Primary Button Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'buttons_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'general_buttons', 'label' => esc_html__( 'Text Colors', 'kadence' ), 'default' => kadence()->default( 'buttons_color' ), 'live_method' => array( array( 'type' => 'global', 'selector' => '--global-palette-btn', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'global', 'selector' => '--global-palette-btn-hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'buttons_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'general_buttons', 'label' => esc_html__( 'Background Colors', 'kadence' ), 'default' => kadence()->default( 'buttons_background' ), 'live_method' => array( array( 'type' => 'global', 'selector' => '--global-palette-btn-bg', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'global', 'selector' => '--global-palette-btn-bg-hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'buttons_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'general_buttons', 'label' => esc_html__( 'Border Colors', 'kadence' ), 'default' => kadence()->default( 'buttons_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => 'button, .button, .wp-block-button__link, input[type="button"], input[type="reset"], input[type="submit"]', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => 'button:hover, .button:hover, .wp-block-button__link:hover, input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'buttons_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'general_buttons', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'buttons_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => 'button, .button, .wp-block-button__link, input[type="button"], input[type="reset"], input[type="submit"]', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => true, 'color' => false, ), ), 'buttons_border_radius' => array( 'control_type' => 'kadence_range_control', 'section' => 'general_buttons', 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => 'button, .button, .wp-block-button__link, input[type="button"], input[type="reset"], input[type="submit"]', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'buttons_border_radius' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, '%' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, '%' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', '%' ), 'responsive' => true, ), ), 'buttons_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_buttons', 'label' => esc_html__( 'Font', 'kadence' ), 'default' => kadence()->default( 'buttons_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'button, .button, .wp-block-button__link, input[type="button"], input[type="reset"], input[type="submit"]', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'buttons_typography', 'options' => 'no-color', ), ), 'buttons_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'general_buttons', 'priority' => 10, 'default' => kadence()->default( 'buttons_padding' ), 'label' => esc_html__( 'Padding', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => 'button, .button, .wp-block-button__link, input[type="button"], input[type="reset"], input[type="submit"]', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => true, ), ), 'buttons_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'general_buttons', 'priority' => 20, 'label' => esc_html__( 'Button Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => 'button, .button, .wp-block-button__link, input[type="button"], input[type="reset"], input[type="submit"]', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'buttons_shadow' ), ), 'buttons_shadow_hover' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'general_buttons', 'priority' => 20, 'label' => esc_html__( 'Button Hover State Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => 'button:hover, .button:hover, .wp-block-button__link:hover, input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'buttons_shadow_hover' ), ), ) ); options/footer-widget3-options.php 0000644 00000005721 15151531435 0013313 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'footer_widget3_breaker' => array( 'control_type' => 'kadence_blank_control', 'section' => 'sidebar-widgets-footer3', 'settings' => false, 'priority' => 5, 'description' => $compontent_tabs, ), 'footer_widget3_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer3', 'label' => esc_html__( 'Content Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget3_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget3', 'pattern' => array( 'desktop' => 'content-align-$', 'tablet' => 'content-tablet-align-$', 'mobile' => 'content-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'footer_widget3_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer3', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget3_vertical_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget3', 'pattern' => array( 'desktop' => 'content-valign-$', 'tablet' => 'content-tablet-valign-$', 'mobile' => 'content-mobile-valign-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/lifter-dashboard-layout-options.php 0000644 00000003723 15151531435 0015176 0 ustar 00 <?php /** * Product Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'info_llms_dashboard_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'llms_dashboard_layout', 'priority' => 2, 'label' => esc_html__( 'Dashboard Navigation', 'kadence' ), 'settings' => false, ), 'llms_dashboard_navigation_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_dashboard_layout', 'label' => esc_html__( 'Navigation Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'llms_dashboard_navigation_layout' ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Positioned on Left Content', 'kadence' ), 'name' => __( 'Left', 'kadence' ), 'icon' => '', ), 'above' => array( 'tooltip' => __( 'Positioned on Top Content', 'kadence' ), 'name' => __( 'Above', 'kadence' ), 'icon' => '', ), 'right' => array( 'tooltip' => __( 'Positioned on Right Content', 'kadence' ), 'name' => __( 'Right', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'llms_dashboard_archive_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_dashboard_layout', 'priority' => 20, 'label' => esc_html__( 'Course and Membership Items Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( 'llms_dashboard_archive_columns' ), 'input_attrs' => array( 'layout' => array( '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), ), 'responsive' => false, ), ), ); Theme_Customizer::add_settings( $settings ); options/tutor-course-archive-layout-options.php 0000644 00000035707 15151531435 0016065 0 ustar 00 <?php /** * Tutor Course Layout * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'courses_archive_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'courses_archive_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'courses_archive_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'courses_archive_layout_design', ), 'active' => 'general', ), ), 'courses_archive_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'courses_archive_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'courses_archive_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'courses_archive_layout_design', ), 'active' => 'design', ), ), 'info_courses_archive_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'courses_archive_layout', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'info_courses_archive_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'courses_archive_layout_design', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'courses_archive_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'courses_archive_layout', 'priority' => 3, 'default' => kadence()->default( 'courses_archive_title' ), 'label' => esc_html__( 'Show Archive Title?', 'kadence' ), 'transport' => 'refresh', ), 'courses_archive_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'courses_archive_layout', 'label' => esc_html__( 'Archive Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'courses_archive_title_layout' ), 'context' => array( array( 'setting' => 'courses_archive_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'courses_archive_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'courses_archive_layout', 'priority' => 4, 'default' => kadence()->default( 'courses_archive_title_inner_layout' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.course-archive-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'courses_archive_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'courses_archive_layout', 'label' => esc_html__( 'Course Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'courses_archive_title_align' ), 'context' => array( array( 'setting' => 'courses_archive_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.course-archive-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'courses_archive_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'courses_archive_layout', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .course-archive-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'courses_archive_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'courses_archive_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'courses_archive_layout', 'priority' => 6, 'default' => kadence()->default( 'courses_archive_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'courses_archive_title_elements', 'title' => 'courses_archive_title_element_title', 'breadcrumb' => 'courses_archive_title_element_breadcrumb', ), ), 'courses_archive_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'courses_archive_layout_design', 'label' => esc_html__( 'Title Color', 'kadence' ), 'default' => kadence()->default( 'courses_archive_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.courses-archive-title h1', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), 'courses_archive_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'courses_archive_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'courses_archive_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.courses-archive-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.courses-archive-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'courses_archive_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'courses_archive_layout_design', 'label' => esc_html__( 'Archive Title Background', 'kadence' ), 'default' => kadence()->default( 'courses_archive_title_background' ), 'context' => array( array( 'setting' => 'courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .courses-archive-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Archive Title Background', 'kadence' ), ), ), 'courses_archive_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'courses_archive_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'courses_archive_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.courses-archive-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'courses_archive_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'courses_archive_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'courses_archive_title_border' ), 'context' => array( array( 'setting' => 'courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'courses_archive_title_top_border', 'border_bottom' => 'courses_archive_title_bottom_border', ), 'live_method' => array( 'courses_archive_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.courses-archive-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'courses_archive_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.courses-archive-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_courses_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'courses_archive_layout', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'info_courses_archive_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'courses_archive_layout_design', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'courses_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'courses_archive_layout', 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'courses_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'courses_archive_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'courses_archive_layout', 'label' => esc_html__( 'Archive Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'courses_archive_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'courses_archive_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'courses_archive_layout_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'courses_archive_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-courses, body.tax-courses_cat', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Archive Background', 'kadence' ), ), ), 'courses_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'courses_archive_layout_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'courses_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-courses .content-bg, body.tax-courses_cat .content-bg, body.tax-courses_cat.content-style-unboxed .site, body.post-type-archive-courses.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Archive Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/forum-layout-options.php 0000644 00000061776 15151531435 0013130 0 ustar 00 <?php /** * Product Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'forum_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'forum_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'forum_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'forum_layout_design', ), 'active' => 'general', ), ), 'forum_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'forum_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'forum_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'forum_layout_design', ), 'active' => 'design', ), ), 'info_forum_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'forum_layout', 'priority' => 2, 'label' => esc_html__( 'Forum Title', 'kadence' ), 'settings' => false, ), 'info_forum_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'forum_layout_design', 'priority' => 2, 'label' => esc_html__( 'Forum Title', 'kadence' ), 'settings' => false, ), 'forum_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'forum_layout', 'priority' => 3, 'default' => kadence()->default( 'forum_title' ), 'label' => esc_html__( 'Show Forum Title?', 'kadence' ), 'transport' => 'refresh', ), 'forum_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_layout', 'label' => esc_html__( 'Forum Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'forum_title_layout' ), 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'forum_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_layout', 'priority' => 4, 'default' => kadence()->default( 'forum_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.forum-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'forum_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_layout', 'label' => esc_html__( 'Forum Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'forum_title_align' ), 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.forum-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'forum_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'forum_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .forum-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'forum_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'forum_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'forum_layout', 'priority' => 6, 'default' => kadence()->default( 'forum_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'forum_title_elements', 'title' => 'forum_title_element_title', 'breadcrumb' => 'forum_title_element_breadcrumb', 'search' => 'forum_title_element_search', 'description' => 'forum_title_element_description', ), 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'forum_title_element', ), ), 'forum_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Forum Title Font', 'kadence' ), 'default' => kadence()->default( 'forum_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.forum-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'forum_title_font', 'headingInherit' => true, ), ), 'forum_title_search_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Search Bar Width', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-title .bbp-search-form', 'property' => 'width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'forum_title_search_width' ), 'input_attrs' => array( 'min' => array( 'px' => 100, 'em' => 4, 'rem' => 4, ), 'max' => array( 'px' => 600, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'forum_title_search_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Input Text Colors', 'kadence' ), 'default' => kadence()->default( 'forum_title_search_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-title .bbp-search-form input.search-field, .forum-title .bbp-search-form .kadence-search-icon-wrap', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.forum-title .bbp-search-form input.search-field:focus, .forum-title .bbp-search-form input.search-submit:hover ~ .kadence-search-icon-wrap', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_title_search_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Input Background', 'kadence' ), 'default' => kadence()->default( 'forum_title_search_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-title .bbp-search-form input.search-field', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.forum-title .bbp-search-form input.search-field:focus', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_title_search_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'forum_title_search_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.forum-title .bbp-search-form input.search-field', 'pattern' => '$', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'forum_title_search_border_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Input Border Color', 'kadence' ), 'default' => kadence()->default( 'forum_title_search_border_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-title .bbp-search-form input.search-field', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.forum-title .bbp-search-form input.search-field:focus', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_title_search_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Font', 'kadence' ), 'default' => kadence()->default( 'forum_title_search_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.forum-title .bbp-search-form input.search-field', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'forum_title_search_typography', 'options' => 'no-color', ), ), 'forum_title_search_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'forum_layout_design', 'default' => kadence()->default( 'forum_title_search_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-title .bbp-search-form form', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'forum_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'forum_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.forum-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'forum_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.forum-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'forum_title_breadcrumb_font', 'options' => 'no-color', ), ), 'forum_title_description_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Description Colors', 'kadence' ), 'default' => kadence()->default( 'forum_title_description_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-title .title-entry-description', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.forum-title .title-entry-description a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_title_description_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Description Font', 'kadence' ), 'default' => kadence()->default( 'forum_title_description_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.forum-title .title-entry-description', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'forum_title_description_font', 'options' => 'no-color', ), ), 'forum_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Forum Above Area Background', 'kadence' ), 'default' => kadence()->default( 'forum_title_background' ), 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .forum-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Forum Title Background', 'kadence' ), ), ), 'forum_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'forum_layout_design', 'default' => kadence()->default( 'forum_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'forum_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'forum_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'forum_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'forum_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'forum_title_border' ), 'context' => array( array( 'setting' => 'forum_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'forum_title_top_border', 'border_bottom' => 'forum_title_bottom_border', ), 'live_method' => array( 'forum_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.forum-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'forum_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.forum-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_forum_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'forum_layout', 'priority' => 10, 'label' => esc_html__( 'Forum Layout', 'kadence' ), 'settings' => false, ), 'info_forum_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'forum_layout_design', 'priority' => 10, 'label' => esc_html__( 'Forum Layout', 'kadence' ), 'settings' => false, ), 'forum_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_layout', 'label' => esc_html__( 'Forum Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'forum_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'forum_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'forum_layout', 'label' => esc_html__( 'Forum Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'forum_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'forum_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'forum_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-forum', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'forum_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'forum_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-forum', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'forum_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'forum_layout_design', 'priority' => 20, 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'forum_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-forum', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Forum Background', 'kadence' ), ), ), 'forum_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'forum_layout_design', 'priority' => 20, 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'forum_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-forum .content-bg, body.single-forum.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Forum Content Background', 'kadence' ), ), ), ) ); options/learndash-focus-options.php 0000644 00000005175 15151531435 0013532 0 ustar 00 <?php /** * Focus Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'sfwd-focus_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_topic_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_topic_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_topic_layout_design', ), 'active' => 'general', ), ), 'sfwd-focus_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_topic_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_topic_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_topic_layout_design', ), 'active' => 'design', ), ), 'info_sfwd-focus_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_topic_layout', 'priority' => 2, 'label' => esc_html__( 'Focus Title', 'kadence' ), 'settings' => false, ), 'info_sfwd-focus_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_topic_layout_design', 'priority' => 2, 'label' => esc_html__( 'Focus Title', 'kadence' ), 'settings' => false, ), 'sfwd-focus_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_topic_layout', 'priority' => 3, 'default' => kadence()->default( 'sfwd-focus_title' ), 'label' => esc_html__( 'Show Title in Focus Mode?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-focus_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_topic_layout_design', 'label' => esc_html__( 'Topic Title Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-focus_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-focus-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'sfwd-focus_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'sfwd-focus_title_font', 'headingInherit' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/search-layout-options.php 0000644 00000052227 15151531435 0013234 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'search_archive_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'search', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'search', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'search_design', ), 'active' => 'general', ), ), 'search_archive_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'search_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'search', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'search_design', ), 'active' => 'design', ), ), 'info_search_archive_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'search', 'priority' => 2, 'label' => esc_html__( 'Search Results Title', 'kadence' ), 'settings' => false, ), 'info_search_archive_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'search_design', 'priority' => 2, 'label' => esc_html__( 'Search Results Title', 'kadence' ), 'settings' => false, ), 'search_archive_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'search', 'priority' => 3, 'default' => kadence()->default( 'search_archive_title' ), 'label' => esc_html__( 'Show Search Results Title?', 'kadence' ), 'transport' => 'refresh', ), 'search_archive_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'search', 'label' => esc_html__( 'Search Results Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'search_archive_title_layout' ), 'context' => array( array( 'setting' => 'search_archive_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'name' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'search_archive_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'search', 'priority' => 4, 'default' => kadence()->default( 'search_archive_title_inner_layout' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'search_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'search_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.search-archive-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'search_archive_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'search', 'label' => esc_html__( 'Search Results Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'search_archive_title_align' ), 'context' => array( array( 'setting' => 'search_archive_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.search-archive-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'search_archive_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'search', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'search_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'search_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .search-archive-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'search_archive_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'search_archive_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'search_design', 'label' => esc_html__( 'Title Color', 'kadence' ), 'default' => kadence()->default( 'search_archive_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.search-archive-title h1', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), 'search_archive_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'search_design', 'label' => esc_html__( 'Archive Title Background', 'kadence' ), 'default' => kadence()->default( 'search_archive_title_background' ), 'context' => array( array( 'setting' => 'search_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'search_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .search-archive-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Post Title Background', 'kadence' ), ), ), 'search_archive_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'search_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'search_archive_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.search-archive-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'search_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'search_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'search_archive_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'search_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'search_archive_title_border' ), 'context' => array( array( 'setting' => 'search_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'search_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'search_archive_title_top_border', 'border_bottom' => 'search_archive_title_bottom_border', ), 'live_method' => array( 'search_archive_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.search-archive-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'search_archive_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.search-archive-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_search_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'search', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'info_search_archive_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'search_design', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'search_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'search', 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'search_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'name' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'name' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'name' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'search_archive_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'search', 'label' => esc_html__( 'Post Archive Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'search_archive_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'search_archive_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'search', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'search_archive_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.search-results', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'gridBoxed', 'name' => __( 'Boxed', 'kadence' ), ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'gridUnboxed', 'name' => __( 'Unboxed', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'search_archive_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'search', 'priority' => 10, 'label' => esc_html__( 'Search Result Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( 'search_archive_columns' ), 'input_attrs' => array( 'layout' => array( '1' => array( 'name' => __( '1', 'kadence' ), ), '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), ), 'responsive' => false, ), ), 'search_archive_item_image_placement' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'search', 'label' => esc_html__( 'Item Image Placement', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'search_archive_item_image_placement' ), 'context' => array( array( 'setting' => 'search_archive_columns', 'operator' => '=', 'value' => '1', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.search-archive.grid-cols', 'pattern' => 'item-image-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'beside' => array( 'name' => __( 'Beside', 'kadence' ), ), 'above' => array( 'name' => __( 'Above', 'kadence' ), ), ), 'responsive' => false, ), ), 'info_search_archive_item_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'search', 'priority' => 12, 'label' => esc_html__( 'Search Item Layout', 'kadence' ), 'settings' => false, ), 'search_archive_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'search', 'priority' => 12, 'default' => kadence()->default( 'search_archive_elements' ), 'label' => esc_html__( 'Search Item Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'search_archive_elements', 'feature' => 'search_archive_element_feature', 'categories' => 'search_archive_element_categories', 'title' => 'search_archive_element_title', 'meta' => 'search_archive_element_meta', 'excerpt' => 'search_archive_element_excerpt', 'readmore' => 'search_archive_element_readmore', ), 'input_attrs' => array( 'groupe' => 'search_archive_elements', 'sortable' => false, 'defaults' => array( 'feature' => kadence()->default( 'search_archive_element_feature' ), 'categories' => kadence()->default( 'search_archive_element_categories' ), 'title' => kadence()->default( 'search_archive_element_title' ), 'meta' => kadence()->default( 'search_archive_element_meta' ), 'excerpt' => kadence()->default( 'search_archive_element_excerpt' ), 'readmore' => kadence()->default( 'search_archive_element_readmore' ), ), 'dividers' => array( 'dot' => array( 'icon' => 'dot', ), 'slash' => array( 'icon' => 'slash', ), 'dash' => array( 'icon' => 'dash', ), 'vline' => array( 'icon' => 'vline', ), 'customicon' => array( 'icon' => 'hours', ), ), ), ), 'search_archive_item_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'search_design', 'label' => esc_html__( 'Search Item Title Font', 'kadence' ), 'default' => kadence()->default( 'search_archive_item_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'body.search-results .loop-entry h2.entry-title', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'search_archive_item_title_font', 'headingInherit' => true, ), ), 'search_archive_item_category_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'search_design', 'label' => esc_html__( 'Item Category Colors', 'kadence' ), 'default' => kadence()->default( 'search_archive_item_category_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => 'body.search-results .loop-entry .entry-taxonomies, .loop-entry .entry-taxonomies a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => 'body.search-results .loop-entry .entry-taxonomies a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => 'body.search-results .loop-entry .entry-taxonomies .category-style-pill a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => 'body.search-results .loop-entry .entry-taxonomies .category-style-pill a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'search_archive_item_category_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'search_design', 'label' => esc_html__( 'Item Category Font', 'kadence' ), 'default' => kadence()->default( 'search_archive_item_category_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'body.search-results .loop-entry .entry-taxonomies', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'search_archive_item_category_font', 'options' => 'no-color', ), ), 'search_archive_item_meta_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'search_design', 'label' => esc_html__( 'Item Meta Colors', 'kadence' ), 'default' => kadence()->default( 'search_archive_item_meta_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => 'body.search-results .loop-entry .entry-meta', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => 'body.search-results .loop-entry .entry-meta a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'search_archive_item_meta_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'search_design', 'label' => esc_html__( 'Item Meta Font', 'kadence' ), 'default' => kadence()->default( 'search_archive_item_meta_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'body.search-results .loop-entry .entry-meta', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'search_archive_item_meta_font', 'options' => 'no-color', ), ), 'search_archive_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'search_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'search_archive_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.search-results', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Search Results Background', 'kadence' ), ), ), 'search_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'search_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'search_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.search-results .content-bg, body.search-results.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Search Results Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/general-comments-options.php 0000644 00000001634 15151531435 0013710 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'comment_form_before_list' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_comments', 'default' => kadence()->default( 'comment_form_before_list' ), 'label' => esc_html__( 'Move Comments input above comment list.', 'kadence' ), 'transport' => 'refresh', ), 'comment_form_remove_web' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_comments', 'default' => kadence()->default( 'comment_form_remove_web' ), 'label' => esc_html__( 'Remove Comments Website field.', 'kadence' ), 'transport' => 'refresh', ), ) ); options/lifter-lesson-layout-options.php 0000644 00000047230 15151531435 0014553 0 ustar 00 <?php /** * Product Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'lesson_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'lesson_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'lesson_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'lesson_layout_design', ), 'active' => 'general', ), ), 'lesson_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'lesson_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'lesson_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'lesson_layout_design', ), 'active' => 'design', ), ), 'info_lesson_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'lesson_layout', 'priority' => 2, 'label' => esc_html__( 'Lesson Title', 'kadence' ), 'settings' => false, ), 'info_lesson_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'lesson_layout_design', 'priority' => 2, 'label' => esc_html__( 'Lesson Title', 'kadence' ), 'settings' => false, ), 'lesson_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'lesson_layout', 'priority' => 3, 'default' => kadence()->default( 'lesson_title' ), 'label' => esc_html__( 'Show Lesson Title?', 'kadence' ), 'transport' => 'refresh', ), 'lesson_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'lesson_layout', 'label' => esc_html__( 'Lesson Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'lesson_title_layout' ), 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'lesson_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'lesson_layout', 'priority' => 4, 'default' => kadence()->default( 'lesson_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'lesson_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.lesson-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'lesson_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'lesson_layout', 'label' => esc_html__( 'Lesson Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'lesson_title_align' ), 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.lesson-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'lesson_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'lesson_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'lesson_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .lesson-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'lesson_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'lesson_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'lesson_layout', 'priority' => 6, 'default' => kadence()->default( 'lesson_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'lesson_title_elements', 'title' => 'lesson_title_element_title', 'breadcrumb' => 'lesson_title_element_breadcrumb', ), 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'lesson_title_element', ), ), 'lesson_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'lesson_layout_design', 'label' => esc_html__( 'Lesson Title Font', 'kadence' ), 'default' => kadence()->default( 'lesson_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.lesson-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'lesson_title_font', 'headingInherit' => true, ), ), 'lesson_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'lesson_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'lesson_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.lesson-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.lesson-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'lesson_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'lesson_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'lesson_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.lesson-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'lesson_title_breadcrumb_font', 'options' => 'no-color', ), ), 'lesson_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'lesson_layout_design', 'label' => esc_html__( 'Lesson Above Area Background', 'kadence' ), 'default' => kadence()->default( 'lesson_title_background' ), 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'lesson_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .lesson-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Lesson Title Background', 'kadence' ), ), ), 'lesson_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'lesson_layout_design', 'default' => kadence()->default( 'lesson_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'lesson_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'lesson_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'lesson_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'lesson_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.lesson-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'lesson_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'lesson_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'lesson_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'lesson_title_border' ), 'context' => array( array( 'setting' => 'lesson_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'lesson_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'lesson_title_top_border', 'border_bottom' => 'lesson_title_bottom_border', ), 'live_method' => array( 'lesson_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.lesson-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'lesson_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.lesson-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_lesson_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'lesson_layout', 'priority' => 10, 'label' => esc_html__( 'Lesson Layout', 'kadence' ), 'settings' => false, ), 'info_lesson_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'lesson_layout_design', 'priority' => 10, 'label' => esc_html__( 'Lesson Layout', 'kadence' ), 'settings' => false, ), 'lesson_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'lesson_layout', 'label' => esc_html__( 'Lesson Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'lesson_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'lesson_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'lesson_layout', 'label' => esc_html__( 'Lesson Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'lesson_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'lesson_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'lesson_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'lesson_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-lesson', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'lesson_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'lesson_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'lesson_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-lesson', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'lesson_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'lesson_layout', 'priority' => 20, 'default' => kadence()->default( 'lesson_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ), 'lesson_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'lesson_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'lesson_feature_position' ), 'context' => array( array( 'setting' => 'lesson_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'lesson_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'lesson_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'lesson_feature_ratio' ), 'context' => array( array( 'setting' => 'lesson_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-lesson .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'lesson_comments' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'lesson_layout', 'priority' => 20, 'default' => kadence()->default( 'lesson_comments' ), 'label' => esc_html__( 'Show Comments?', 'kadence' ), 'transport' => 'refresh', ), 'lesson_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'lesson_layout_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'lesson_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-lesson', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Lesson Background', 'kadence' ), ), ), 'lesson_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'lesson_layout_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'lesson_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-lesson .content-bg, body.single-lesson.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Lesson Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/footer-top-options.php 0000644 00000046611 15151531435 0012552 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); ob_start(); ?> <div class="kadence-compontent-description"> <p style="margin:0"><?php echo esc_html__( 'Title and Content settings affect legacy widgets. For block editor widgets use settings in the editor.', 'kadence' ); ?></p> </div> <?php $component_description = ob_get_clean(); $settings = array( 'footer_top_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'footer_top', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'footer_top_contain' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_top', 'priority' => 4, 'default' => kadence()->default( 'footer_top_contain' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-top-footer-wrap', 'pattern' => array( 'desktop' => 'site-footer-row-layout-$', 'tablet' => 'site-footer-row-tablet-layout-$', 'mobile' => 'site-footer-row-mobile-layout-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), ), ), 'footer_top_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_top', 'label' => esc_html__( 'Columns', 'kadence' ), 'priority' => 5, //'transport' => 'refresh', 'default' => kadence()->default( 'footer_top_columns' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'partial' => array( 'selector' => '#colophon', 'container_inclusive' => true, 'render_callback' => 'Kadence\footer_markup', ), 'input_attrs' => array( 'layout' => array( '1' => array( 'name' => __( '1', 'kadence' ), ), '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), '5' => array( 'name' => __( '5', 'kadence' ), ), ), 'responsive' => false, 'footer' => 'top', ), ), 'footer_top_layout' => array( 'control_type' => 'kadence_row_control', 'section' => 'footer_top', 'label' => esc_html__( 'Layout', 'kadence' ), 'priority' => 5, //'transport' => 'refresh', 'default' => kadence()->default( 'footer_top_layout' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-top-footer-inner-wrap', 'pattern' => array( 'desktop' => 'site-footer-row-column-layout-$', 'tablet' => 'site-footer-row-tablet-column-layout-$', 'mobile' => 'site-footer-row-mobile-column-layout-$', ), 'key' => '', ), ), 'input_attrs' => array( 'responsive' => true, 'footer' => 'top', ), ), 'footer_top_collapse' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_top', 'priority' => 5, 'default' => kadence()->default( 'footer_top_collapse' ), 'label' => esc_html__( 'Row Collapse', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => '__device', 'operator' => 'in', 'value' => array( 'tablet', 'mobile' ), ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-top-footer-inner-wrap', 'pattern' => 'ft-ro-collapse-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Left to Right', 'kadence' ), 'icon' => '', ), 'rtl' => array( 'name' => __( 'Right to Left', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, 'footer' => 'top', ), ), 'footer_top_direction' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_top', 'priority' => 5, 'default' => kadence()->default( 'footer_top_direction' ), 'label' => esc_html__( 'Column Direction', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-top-footer-inner-wrap', 'pattern' => array( 'desktop' => 'ft-ro-dir-$', 'tablet' => 'ft-ro-t-dir-$', 'mobile' => 'ft-ro-m-dir-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'row' => array( 'tooltip' => __( 'Left to Right', 'kadence' ), 'name' => __( 'Row', 'kadence' ), 'icon' => '', ), 'column' => array( 'tooltip' => __( 'Top to Bottom', 'kadence' ), 'name' => __( 'Column', 'kadence' ), 'icon' => '', ), ), 'responsive' => true, 'footer' => 'top', ), ), 'footer_top_column_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_top', 'priority' => 5, 'label' => esc_html__( 'Column Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'property' => 'grid-column-gap', 'selector' => '#colophon .site-top-footer-inner-wrap', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'property' => 'grid-row-gap', 'selector' => '#colophon .site-top-footer-inner-wrap', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_top_column_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_top_widget_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_top', 'priority' => 5, 'label' => esc_html__( 'Widget Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'property' => 'margin-bottom', 'selector' => '.site-top-footer-inner-wrap .widget', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_top_widget_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_top_top_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_top', 'priority' => 5, 'label' => esc_html__( 'Top Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-top-footer-inner-wrap', 'pattern' => '$', 'property' => 'padding-top', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_top_top_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_top_bottom_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_top', 'priority' => 5, 'label' => esc_html__( 'Bottom Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-top-footer-inner-wrap', 'pattern' => '$', 'property' => 'padding-bottom', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_top_bottom_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_top_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_top', 'priority' => 5, 'label' => esc_html__( 'Min Height', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-top-footer-inner-wrap', 'pattern' => '$', 'property' => 'min-height', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_top_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 400, 'em' => 12, 'rem' => 12, 'vh' => 40, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'footer_top_widget_settings' => array( 'control_type' => 'kadence_blank_control', 'section' => 'footer_top', 'settings' => false, 'priority' => 1, 'description' => $component_description, 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), ), 'footer_top_widget_title' => array( 'control_type' => 'kadence_typography_control', 'section' => 'footer_top', 'label' => esc_html__( 'Widget Titles', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'footer_top_widget_title' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.site-top-footer-wrap .site-footer-row-container-inner .widget-title', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'footer_top_widget_title', ), ), 'footer_top_widget_content' => array( 'control_type' => 'kadence_typography_control', 'section' => 'footer_top', 'label' => esc_html__( 'Widget Content', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'footer_top_widget_content' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.site-top-footer-wrap .site-footer-row-container-inner', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'footer_top_widget_content', ), ), 'footer_top_link_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'footer_top', 'label' => esc_html__( 'Link Colors', 'kadence' ), 'default' => kadence()->default( 'footer_top_link_colors' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-footer .site-top-footer-wrap a:where(:not(.button):not(.wp-block-button__link):not(.wp-element-button))', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.site-footer .site-top-footer-wrap a:where(:not(.button):not(.wp-block-button__link):not(.wp-element-button)):hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'footer_top_link_style' => array( 'control_type' => 'kadence_select_control', 'section' => 'footer_top', 'default' => kadence()->default( 'footer_top_link_style' ), 'label' => esc_html__( 'Link Style', 'kadence' ), 'input_attrs' => array( 'options' => array( 'plain' => array( 'name' => __( 'Underline on Hover', 'kadence' ), ), 'normal' => array( 'name' => __( 'Underline', 'kadence' ), ), 'noline' => array( 'name' => __( 'No Underline', 'kadence' ), ), ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-top-footer-inner-wrap', 'pattern' => 'ft-ro-lstyle-$', 'key' => '', ), ), ), 'footer_top_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'footer_top', 'label' => esc_html__( 'Top Row Background', 'kadence' ), 'default' => kadence()->default( 'footer_top_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.site-top-footer-wrap .site-footer-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Top Row Background', 'kadence' ), ), ), 'footer_top_column_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'footer_top', 'label' => esc_html__( 'Column Border', 'kadence' ), 'default' => kadence()->default( 'footer_top_column_border' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.site-top-footer-inner-wrap .site-footer-section:not(:last-child):after', 'pattern' => '$', 'property' => 'border-right', 'pattern' => '$', 'key' => 'border', ), ), ), 'footer_top_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'footer_top', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'footer_top_border' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'settings' => array( 'border_top' => 'footer_top_top_border', 'border_bottom' => 'footer_top_bottom_border', ), 'live_method' => array( 'footer_top_top_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-top-footer-wrap .site-footer-row-container-inner', 'tablet' => '.site-top-footer-wrap .site-footer-row-container-inner', 'mobile' => '.site-top-footer-wrap .site-footer-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-top', 'pattern' => '$', 'key' => 'border', ), ), 'footer_top_bottom_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-top-footer-wrap .site-footer-row-container-inner', 'tablet' => '.site-top-footer-wrap .site-footer-row-container-inner', 'mobile' => '.site-top-footer-wrap .site-footer-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), // 'footer_top_top_border' => array( // 'control_type' => 'kadence_border_control', // 'section' => 'footer_top', // 'label' => esc_html__( 'Top Border', 'kadence' ), // 'default' => kadence()->default( 'footer_top_top_border' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), // 'live_method' => array( // array( // 'type' => 'css_border', // 'selector' => array( // 'desktop' => '.site-top-footer-wrap .site-footer-row-container-inner', // 'tablet' => '.site-top-footer-wrap .site-footer-row-container-inner', // 'mobile' => '.site-top-footer-wrap .site-footer-row-container-inner', // ), // 'pattern' => array( // 'desktop' => '$', // 'tablet' => '$', // 'mobile' => '$', // ), // 'property' => 'border-top', // 'pattern' => '$', // 'key' => 'border', // ), // ), // ), // 'footer_top_bottom_border' => array( // 'control_type' => 'kadence_border_control', // 'section' => 'footer_top', // 'label' => esc_html__( 'Bottom Border', 'kadence' ), // 'default' => kadence()->default( 'footer_top_bottom_border' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), // 'live_method' => array( // array( // 'type' => 'css_border', // 'selector' => array( // 'desktop' => '.site-top-footer-wrap .site-footer-row-container-inner', // 'tablet' => '.site-top-footer-wrap .site-footer-row-container-inner', // 'mobile' => '.site-top-footer-wrap .site-footer-row-container-inner', // ), // 'pattern' => array( // 'desktop' => '$', // 'tablet' => '$', // 'mobile' => '$', // ), // 'property' => 'border-bottom', // 'pattern' => '$', // 'key' => 'border', // ), // ), // ), ); Theme_Customizer::add_settings( $settings ); options/product-archive-layout-options.php 0000644 00000105222 15151531435 0015060 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'product_archive_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'woocommerce_product_catalog', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'woocommerce_product_catalog', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'woocommerce_product_catalog_design', ), 'active' => 'general', ), ), 'product_archive_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'woocommerce_product_catalog_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'woocommerce_product_catalog', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'woocommerce_product_catalog_design', ), 'active' => 'design', ), ), 'info_product_archive_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'woocommerce_product_catalog', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'info_product_archive_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'woocommerce_product_catalog_design', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'product_archive_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'woocommerce_product_catalog', 'priority' => 3, 'default' => kadence()->default( 'product_archive_title' ), 'label' => esc_html__( 'Show Archive Title?', 'kadence' ), 'transport' => 'refresh', ), 'product_archive_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'label' => esc_html__( 'Archive Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'product_archive_title_layout' ), 'context' => array( array( 'setting' => 'product_archive_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'product_archive_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'priority' => 4, 'default' => kadence()->default( 'product_archive_title_inner_layout' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'product_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'product_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.product-archive-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'product_archive_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'label' => esc_html__( 'Product Archive Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'product_archive_title_align' ), 'context' => array( array( 'setting' => 'product_archive_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.product-archive-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'product_archive_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'woocommerce_product_catalog', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'product_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'product_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .product-archive-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'product_archive_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'product_archive_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'woocommerce_product_catalog', 'priority' => 6, 'default' => kadence()->default( 'product_archive_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'product_archive_title_elements', 'title' => 'product_archive_title_element_title', 'breadcrumb' => 'product_archive_title_element_breadcrumb', 'description' => 'product_archive_title_element_description', ), ), 'product_archive_title_heading_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Title Font', 'kadence' ), 'default' => kadence()->default( 'product_archive_title_heading_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.product-archive-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'product_archive_title_heading_font', 'options' => 'no-color', ), ), 'product_archive_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Title Color', 'kadence' ), 'default' => kadence()->default( 'product_archive_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.product-archive-title h1', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), 'product_archive_title_description_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Description Colors', 'kadence' ), 'default' => kadence()->default( 'product_archive_title_description_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.product-archive-title .archive-description', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.product-archive-title .archive-description a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'product_archive_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'product_archive_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.product-archive-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.product-archive-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'product_archive_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Archive Title Background', 'kadence' ), 'default' => kadence()->default( 'product_archive_title_background' ), 'context' => array( array( 'setting' => 'product_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'product_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .product-archive-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Product Archive Title Background', 'kadence' ), ), ), 'product_archive_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'product_archive_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.product-archive-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'product_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'product_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'product_archive_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'product_archive_title_border' ), 'context' => array( array( 'setting' => 'product_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'product_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'product_archive_title_top_border', 'border_bottom' => 'product_archive_title_bottom_border', ), 'live_method' => array( 'product_archive_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.product-archive-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'product_archive_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.product-archive-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_product_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'info_product_archive_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'woocommerce_product_catalog_design', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'product_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 7, 'default' => kadence()->default( 'product_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'product_archive_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'woocommerce_product_catalog', 'label' => esc_html__( 'Product Archive Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 7, 'default' => kadence()->default( 'product_archive_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'product_archive_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'label' => esc_html__( 'Content Style', 'kadence' ), 'default' => kadence()->default( 'product_archive_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.post-type-archive-product', 'pattern' => 'content-style-$', 'key' => '', ), array( 'type' => 'class', 'selector' => 'body.tax-product_cat', 'pattern' => 'content-style-$', 'key' => '', ), array( 'type' => 'class', 'selector' => 'body.tax-product_tag', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'gridBoxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'gridUnboxed', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'product_archive_show_results_count' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'default' => kadence()->default( 'product_archive_show_results_count' ), 'label' => esc_html__( 'Show Archive Results Count?', 'kadence' ), 'transport' => 'refresh', ), 'product_archive_show_order' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'default' => kadence()->default( 'product_archive_show_order' ), 'label' => esc_html__( 'Show Archive Sorting Dropdown?', 'kadence' ), 'transport' => 'refresh', ), 'product_archive_toggle' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'default' => kadence()->default( 'product_archive_toggle' ), 'label' => esc_html__( 'Show Archive Grid/List Toggle?', 'kadence' ), 'transport' => 'refresh', ), 'product_archive_default_view' => [ 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'default' => kadence()->default( 'product_archive_default_view' ), 'label' => esc_html__( 'Default Archive View', 'kadence' ), 'transport' => 'refresh', 'context' => [ [ 'setting' => 'product_archive_toggle', 'operator' => '=', 'value' => false, ], ], 'input_attrs' => [ 'layout' => [ 'grid' => [ 'tooltip' => __( 'Grid', 'kadence' ), 'icon' => 'grid', ], 'list' => [ 'tooltip' => __( 'List', 'kadence' ), 'dashicon' => 'list-view', ], ], 'responsive' => false, ], ], 'product_archive_image_hover_switch' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'transport' => 'refresh', 'label' => esc_html__( 'Product Image Hover Switch', 'kadence' ), 'default' => kadence()->default( 'product_archive_image_hover_switch' ), 'input_attrs' => array( 'layout' => array( 'none' => array( 'tooltip' => __( 'None', 'kadence' ), 'name' => __( 'None', 'kadence' ), ), 'fade' => array( 'tooltip' => __( 'Fade to second image', 'kadence' ), 'name' => __( 'Fade', 'kadence' ), ), 'slide' => array( 'tooltip' => __( 'Slide to second image', 'kadence' ), 'name' => __( 'Slide', 'kadence' ), ), 'zoom' => array( 'tooltip' => __( 'Zoom into second image', 'kadence' ), 'name' => __( 'Zoom', 'kadence' ), ), 'flip' => array( 'tooltip' => __( 'Flip to second image', 'kadence' ), 'name' => __( 'Flip', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col kadence-auto-height', ), ), 'product_archive_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'transport' => 'refresh', 'label' => esc_html__( 'Button Action Style', 'kadence' ), 'default' => kadence()->default( 'product_archive_style' ), 'input_attrs' => array( 'layout' => array( 'action-on-hover' => array( 'tooltip' => __( 'Slide up on hover', 'kadence' ), 'name' => __( 'Bottom Slide Up', 'kadence' ), ), 'action-visible' => array( 'tooltip' => __( 'On the Bottom Always Visible', 'kadence' ), 'name' => __( 'Always Visible', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-tiny-text', ), ), 'product_archive_button_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'transport' => 'refresh', 'label' => esc_html__( 'Button Style', 'kadence' ), 'default' => kadence()->default( 'product_archive_button_style' ), 'input_attrs' => array( 'layout' => array( 'text' => array( 'tooltip' => __( 'Bold text with arrow icon.', 'kadence' ), 'name' => __( 'Text with Arrow', 'kadence' ), ), 'button' => array( 'tooltip' => __( 'Show as standard button', 'kadence' ), 'name' => __( 'Button', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-tiny-text', ), ), 'product_archive_button_align' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'woocommerce_product_catalog', 'priority' => 7, 'default' => kadence()->default( 'product_archive_button_align' ), 'label' => esc_html__( 'Align Button at Bottom?', 'kadence' ), 'transport' => 'refresh', ), 'product_archive_mobile_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'woocommerce_product_catalog', 'priority' => 15, 'transport' => 'refresh', 'label' => esc_html__( 'Mobile Columns Layout', 'kadence' ), 'default' => kadence()->default( 'product_archive_mobile_columns' ), 'input_attrs' => array( 'layout' => array( 'default' => array( 'tooltip' => '', 'name' => __( 'One Column', 'kadence' ), ), 'twocolumn' => array( 'tooltip' => '', 'name' => __( 'Two Columns', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-tiny-text', ), ), 'product_archive_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Product Archive Title Font', 'kadence' ), 'default' => kadence()->default( 'product_archive_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.woocommerce ul.products li.product h3, .woocommerce ul.products li.product .product-details .woocommerce-loop-product__title, .woocommerce ul.products li.product .product-details .woocommerce-loop-category__title, .wc-block-grid__products .wc-block-grid__product .wc-block-grid__product-title', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'product_archive_title_font', ), ), 'product_archive_price_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Product Archive Price Font', 'kadence' ), 'default' => kadence()->default( 'product_archive_price_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.woocommerce ul.products li.product .product-details .price', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'product_archive_price_font', ), ), 'product_archive_button_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Product Archive Button Colors', 'kadence' ), 'default' => kadence()->default( 'product_archive_button_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button), .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button), .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button):hover, .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button):hover, .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'product_archive_button_style', 'operator' => '=', 'value' => 'button', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'product_archive_button_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Product Archive Button Background Colors', 'kadence' ), 'default' => kadence()->default( 'product_archive_button_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button), .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button), .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button):hover, .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button):hover, .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'product_archive_button_style', 'operator' => '=', 'value' => 'button', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'product_archive_button_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Product Archive Button Border Colors', 'kadence' ), 'default' => kadence()->default( 'product_archive_button_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button), .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button), .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button):hover, .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button):hover, .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'product_archive_button_style', 'operator' => '=', 'value' => 'button', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'product_archive_button_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Product Archive Button Border', 'kadence' ), 'default' => kadence()->default( 'product_archive_button_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button), .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button), .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'context' => array( array( 'setting' => 'product_archive_button_style', 'operator' => '=', 'value' => 'button', ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'product_archive_button_radius' => array( 'control_type' => 'kadence_measure_control', 'section' => 'woocommerce_product_catalog_design', 'priority' => 10, 'default' => kadence()->default( 'product_archive_button_radius' ), 'label' => esc_html__( 'Product Archive Button Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button), .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button), .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), ), 'context' => array( array( 'setting' => 'product_archive_button_style', 'operator' => '=', 'value' => 'button', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'product_archive_button_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Product Archive Button Font', 'kadence' ), 'default' => kadence()->default( 'product_archive_button_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button), .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button), .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'product_archive_button_style', 'operator' => '=', 'value' => 'button', ), ), 'input_attrs' => array( 'id' => 'header_button_typography', 'options' => 'no-color', ), ), 'product_archive_button_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Product Archive Button Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button), .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button), .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'context' => array( array( 'setting' => 'product_archive_button_style', 'operator' => '=', 'value' => 'button', ), ), 'default' => kadence()->default( 'product_archive_button_shadow' ), ), 'product_archive_button_shadow_hover' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Product Archive Button Hover State Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.woocommerce ul.products.woo-archive-btn-button .product-action-wrap .button:not(.kb-button):hover, .woocommerce ul.products li.woo-archive-btn-button .button:not(.kb-button):hover, .wc-block-grid__product.woo-archive-btn-button .product-details .wc-block-grid__product-add-to-cart .wp-block-button__link:hover', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'context' => array( array( 'setting' => 'product_archive_button_style', 'operator' => '=', 'value' => 'button', ), ), 'default' => kadence()->default( 'product_archive_button_shadow_hover' ), ), 'product_archive_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'product_archive_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Product Archive Background', 'kadence' ), ), ), 'product_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'woocommerce_product_catalog_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'product_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-product .content-bg, body.tax-product_cat .content-bg, body.tax-product_tag .content-bg, body.tax-product_cat.content-style-unboxed .site, body.tax-product_tag.content-style-unboxed .site, body.post-type-archive-product.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Archive Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-builder-options.php 0000644 00000032171 15151531435 0013324 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-build-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab preview-desktop kadence-build-tabs-button" data-device="desktop"> <span class="dashicons dashicons-desktop"></span> <span><?php esc_html_e( 'Desktop', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab preview-tablet preview-mobile kadence-build-tabs-button" data-device="tablet"> <span class="dashicons dashicons-smartphone"></span> <span><?php esc_html_e( 'Tablet / Mobile', 'kadence' ); ?></span> </a> </div> <span class="button button-secondary kadence-builder-hide-button kadence-builder-tab-toggle"><span class="dashicons dashicons-no"></span><?php esc_html_e( 'Hide', 'kadence' ); ?></span> <span class="button button-secondary kadence-builder-show-button kadence-builder-tab-toggle"><span class="dashicons dashicons-edit"></span><?php esc_html_e( 'Header Builder', 'kadence' ); ?></span> <?php $builder_tabs = ob_get_clean(); ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'header_builder' => array( 'control_type' => 'kadence_blank_control', 'section' => 'header_builder', 'settings' => false, 'description' => $builder_tabs, 'context' => array( array( 'setting' => 'blocks_header', 'operator' => '!=', 'value' => true, ), ), ), 'header_desktop_items' => array( 'control_type' => 'kadence_builder_control', 'section' => 'header_builder', 'default' => kadence()->default( 'header_desktop_items' ), 'context' => array( array( 'setting' => '__device', 'value' => 'desktop', ), array( 'setting' => 'blocks_header', 'operator' => '!=', 'value' => true, ), ), 'partial' => array( 'selector' => '#masthead', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_markup', ), 'choices' => array( 'logo' => array( 'name' => esc_html__( 'Logo', 'kadence' ), 'section' => 'title_tagline', ), 'navigation' => array( 'name' => esc_html__( 'Primary Navigation', 'kadence' ), 'section' => 'kadence_customizer_primary_navigation', ), 'navigation-2' => array( 'name' => esc_html__( 'Secondary Navigation', 'kadence' ), 'section' => 'kadence_customizer_secondary_navigation', ), 'search' => array( 'name' => esc_html__( 'Search', 'kadence' ), 'section' => 'kadence_customizer_header_search', ), 'button' => array( 'name' => esc_html__( 'Button', 'kadence' ), 'section' => 'kadence_customizer_header_button', ), 'social' => array( 'name' => esc_html__( 'Social', 'kadence' ), 'section' => 'kadence_customizer_header_social', ), 'html' => array( 'name' => esc_html__( 'HTML', 'kadence' ), 'section' => 'kadence_customizer_header_html', ), ), 'input_attrs' => array( 'group' => 'header_desktop_items', 'rows' => array( 'top', 'main', 'bottom' ), 'zones' => array( 'top' => array( 'top_left' => is_rtl() ? esc_html__( 'Top - Right', 'kadence' ) : esc_html__( 'Top - Left', 'kadence' ), 'top_left_center' => is_rtl() ? esc_html__( 'Top - Right Center', 'kadence' ) : esc_html__( 'Top - Left Center', 'kadence' ), 'top_center' => esc_html__( 'Top - Center', 'kadence' ), 'top_right_center' => is_rtl() ? esc_html__( 'Top - Left Center', 'kadence' ) : esc_html__( 'Top - Right Center', 'kadence' ), 'top_right' => is_rtl() ? esc_html__( 'Top - Left', 'kadence' ) : esc_html__( 'Top - Right', 'kadence' ), ), 'main' => array( 'main_left' => is_rtl() ? esc_html__( 'Main - Right', 'kadence' ) : esc_html__( 'Main - Left', 'kadence' ), 'main_left_center' => is_rtl() ? esc_html__( 'Main - Right Center', 'kadence' ) : esc_html__( 'Main - Left Center', 'kadence' ), 'main_center' => esc_html__( 'Main - Center', 'kadence' ), 'main_right_center' => is_rtl() ? esc_html__( 'Main - Left Center', 'kadence' ) : esc_html__( 'Main - Right Center', 'kadence' ), 'main_right' => is_rtl() ? esc_html__( 'Main - Left', 'kadence' ) : esc_html__( 'Main - Right', 'kadence' ), ), 'bottom' => array( 'bottom_left' => is_rtl() ? esc_html__( 'Bottom - Right', 'kadence' ) : esc_html__( 'Bottom - Left', 'kadence' ), 'bottom_left_center' => is_rtl() ? esc_html__( 'Bottom - Right Center', 'kadence' ) : esc_html__( 'Bottom - Left Center', 'kadence' ), 'bottom_center' => esc_html__( 'Bottom - Center', 'kadence' ), 'bottom_right_center' => is_rtl() ? esc_html__( 'Bottom - Left Center', 'kadence' ) : esc_html__( 'Bottom - Right Center', 'kadence' ), 'bottom_right' => is_rtl() ? esc_html__( 'Bottom - Left', 'kadence' ) : esc_html__( 'Bottom - Right', 'kadence' ), ), ), ), ), 'header_tab_settings' => array( 'control_type' => 'kadence_blank_control', 'section' => 'header_layout', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, 'context' => array( array( 'setting' => 'blocks_header', 'operator' => '!=', 'value' => true, ), ), ), 'header_desktop_available_items' => array( 'control_type' => 'kadence_available_control', 'section' => 'header_layout', 'settings' => false, 'input_attrs' => array( 'group' => 'header_desktop_items', 'zones' => array( 'top', 'main', 'bottom' ), ), 'context' => array( array( 'setting' => '__device', 'value' => 'desktop', ), array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'blocks_header', 'operator' => '!=', 'value' => true, ), ), ), 'header_mobile_items' => array( 'control_type' => 'kadence_builder_control', 'section' => 'header_builder', 'transport' => 'refresh', 'default' => kadence()->default( 'header_mobile_items' ), 'context' => array( array( 'setting' => '__device', 'operator' => 'in', 'value' => array( 'tablet', 'mobile' ), ), array( 'setting' => 'blocks_header', 'operator' => '!=', 'value' => true, ), ), 'partial' => array( 'selector' => '#mobile-header', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_header', ), 'choices' => array( 'mobile-logo' => array( 'name' => esc_html__( 'Logo', 'kadence' ), 'section' => 'title_tagline', ), 'mobile-navigation' => array( 'name' => esc_html__( 'Mobile Navigation', 'kadence' ), 'section' => 'kadence_customizer_mobile_navigation', ), // 'mobile-navigation2' => array( // 'name' => esc_html__( 'Horizontal Navigation', 'kadence' ), // 'section' => 'mobile_horizontal_navigation', // ), 'search' => array( 'name' => esc_html__( 'Search Toggle', 'kadence' ), 'section' => 'kadence_customizer_header_search', ), 'mobile-button' => array( 'name' => esc_html__( 'Button', 'kadence' ), 'section' => 'kadence_customizer_mobile_button', ), 'mobile-social' => array( 'name' => esc_html__( 'Social', 'kadence' ), 'section' => 'kadence_customizer_mobile_social', ), 'mobile-html' => array( 'name' => esc_html__( 'HTML', 'kadence' ), 'section' => 'kadence_customizer_mobile_html', ), 'popup-toggle' => array( 'name' => esc_html__( 'Trigger', 'kadence' ), 'section' => 'kadence_customizer_mobile_trigger', ), ), 'input_attrs' => array( 'group' => 'header_mobile_items', 'rows' => array( 'popup', 'top', 'main', 'bottom' ), 'zones' => array( 'popup' => array( 'popup_content' => esc_html__( 'Popup Content', 'kadence' ), ), 'top' => array( 'top_left' => is_rtl() ? esc_html__( 'Top - Right', 'kadence' ) : esc_html__( 'Top - Left', 'kadence' ), 'top_center' => esc_html__( 'Top - Center', 'kadence' ), 'top_right' => is_rtl() ? esc_html__( 'Top - Left', 'kadence' ) : esc_html__( 'Top - Right', 'kadence' ), ), 'main' => array( 'main_left' => is_rtl() ? esc_html__( 'Main - Right', 'kadence' ) : esc_html__( 'Main - Left', 'kadence' ), 'main_center' => esc_html__( 'Main - Center', 'kadence' ), 'main_right' => is_rtl() ? esc_html__( 'Main - Left', 'kadence' ) : esc_html__( 'Main - Right', 'kadence' ), ), 'bottom' => array( 'bottom_left' => is_rtl() ? esc_html__( 'Bottom - Right', 'kadence' ) : esc_html__( 'Bottom - Left', 'kadence' ), 'bottom_center' => esc_html__( 'Bottom - Center', 'kadence' ), 'bottom_right' => is_rtl() ? esc_html__( 'Bottom - Left', 'kadence' ) : esc_html__( 'Bottom - Right', 'kadence' ), ), ), ), ), 'header_mobile_available_items' => array( 'control_type' => 'kadence_available_control', 'section' => 'header_layout', 'settings' => false, 'input_attrs' => array( 'group' => 'header_mobile_items', 'zones' => array( 'popup', 'top', 'main', 'bottom' ), ), 'context' => array( array( 'setting' => '__device', 'operator' => 'in', 'value' => array( 'tablet', 'mobile' ), ), array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'blocks_header', 'operator' => '!=', 'value' => true, ), ), ), 'header_transparent_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'header_layout', 'settings' => false, 'priority' => 20, 'label' => esc_html__( 'Transparent Header', 'kadence' ), 'input_attrs' => array( 'section' => 'kadence_customizer_transparent_header', ), 'context' => array( array( 'setting' => 'blocks_header', 'operator' => '!=', 'value' => true, ), ), ), 'header_sticky_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'header_layout', 'settings' => false, 'priority' => 20, 'label' => esc_html__( 'Sticky Header', 'kadence' ), 'input_attrs' => array( 'section' => 'kadence_customizer_header_sticky', ), 'context' => array( array( 'setting' => 'blocks_header', 'operator' => '!=', 'value' => true, ), ), ), 'header_wrap_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_layout', 'label' => esc_html__( 'Header Background', 'kadence' ), 'default' => kadence()->default( 'header_wrap_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#masthead', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'tooltip' => __( 'Header Background', 'kadence' ), ), ), 'header_mobile_switch' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_layout', 'transport' => 'refresh', 'label' => esc_html__( 'Screen size to switch to mobile header', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'header_mobile_switch' ), 'input_attrs' => array( 'min' => array( 'px' => 0, ), 'max' => array( 'px' => 4000, ), 'step' => array( 'px' => 1, ), 'units' => array( 'px' ), 'responsive' => false, ), ), ); if ( defined( 'KADENCE_BLOCKS_VERSION' ) && version_compare( KADENCE_BLOCKS_VERSION, '3.3.0', '>=' ) ) { $settings['blocks_header'] = array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_layout', 'priority' => 30, 'description' => esc_html__( 'Enable Block Header', 'kadence' ), 'default' => kadence()->default( 'blocks_header' ), 'label' => esc_html__( 'Enable Block Header', 'kadence' ), 'transport' => 'refresh', ); $settings['blocks_header_id'] = array( 'control_type' => 'kadence_select_control', 'section' => 'header_layout', 'label' => esc_html__( 'Header Block', 'kadence' ), 'transport' => 'refresh', 'priority' => 30, 'default' => kadence()->default( 'blocks_header_id' ), 'input_attrs' => array( 'options' => kadence()->block_header_options(), ), 'context' => array( array( 'setting' => 'blocks_header', 'operator' => '=', 'value' => true, ), ), ); } else { $settings['blocks_header'] = array(); } Theme_Customizer::add_settings( $settings ); options/header-mobile-button-options.php 0000644 00000030464 15151531435 0014461 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'mobile_button_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'mobile_button', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'mobile_button', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'mobile_button_design', ), 'active' => 'general', ), ), 'mobile_button_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'mobile_button_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'mobile_button', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'mobile_button_design', ), 'active' => 'design', ), ), 'mobile_button_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'mobile_button', 'priority' => 4, 'default' => kadence()->default( 'mobile_button_style' ), 'label' => esc_html__( 'Button Style', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.mobile-header-button-wrap .mobile-header-button', 'pattern' => 'button-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'filled' => array( 'name' => __( 'Filled', 'kadence' ), ), 'outline' => array( 'name' => __( 'Outline', 'kadence' ), ), 'secondary' => array( 'name' => __( 'Secondary', 'kadence' ), ), ), 'responsive' => false, ), ), 'mobile_button_size' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'mobile_button', 'priority' => 4, 'default' => kadence()->default( 'mobile_button_size' ), 'label' => esc_html__( 'Button Size', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.mobile-header-button-wrap .mobile-header-button', 'pattern' => 'button-size-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'small' => array( 'name' => __( 'Small', 'kadence' ), ), 'medium' => array( 'name' => __( 'Medium', 'kadence' ), 'icon' => '', ), 'large' => array( 'name' => __( 'Large', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'mobile_button_label' => array( 'control_type' => 'kadence_text_control', 'section' => 'mobile_button', 'priority' => 4, 'sanitize' => 'sanitize_text_field', 'label' => esc_html__( 'Label', 'kadence' ), 'default' => kadence()->default( 'mobile_button_label' ), 'live_method' => array( array( 'type' => 'html', 'selector' => '.mobile-header-button-wrap .mobile-header-button', 'pattern' => '$', 'key' => '', ), ), ), 'mobile_button_link' => array( 'control_type' => 'kadence_text_control', 'section' => 'mobile_button', 'sanitize' => 'esc_url_raw', 'label' => esc_html__( 'URL', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'mobile_button_link' ), 'partial' => array( 'selector' => '.mobile-header-button-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_button', ), ), 'mobile_button_target' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'mobile_button', 'priority' => 6, 'default' => kadence()->default( 'mobile_button_target' ), 'label' => esc_html__( 'Open in New Tab?', 'kadence' ), ), 'mobile_button_nofollow' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'mobile_button', 'priority' => 6, 'default' => kadence()->default( 'mobile_button_nofollow' ), 'label' => esc_html__( 'Set link to nofollow?', 'kadence' ), ), 'mobile_button_sponsored' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'mobile_button', 'priority' => 6, 'default' => kadence()->default( 'mobile_button_sponsored' ), 'label' => esc_html__( 'Set link attribute Sponsored?', 'kadence' ), ), 'mobile_button_visibility' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'mobile_button', 'priority' => 4, 'default' => kadence()->default( 'mobile_button_visibility' ), 'label' => esc_html__( 'Button Visibility', 'kadence' ), 'partial' => array( 'selector' => '.mobile-header-button-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_button', ), 'input_attrs' => array( 'layout' => array( 'all' => array( 'name' => __( 'Everyone', 'kadence' ), ), 'loggedout' => array( 'name' => __( 'Logged Out Only', 'kadence' ), ), 'loggedin' => array( 'name' => __( 'Logged In Only', 'kadence' ), ), ), 'responsive' => false, ), ), 'mobile_button_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_button_design', 'label' => esc_html__( 'Text Colors', 'kadence' ), 'default' => kadence()->default( 'mobile_button_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'mobile_button_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_button_design', 'label' => esc_html__( 'Background Colors', 'kadence' ), 'default' => kadence()->default( 'mobile_button_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'mobile_button_style', 'operator' => '=', 'value' => 'filled', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'mobile_button_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_button_design', 'label' => esc_html__( 'Border Colors', 'kadence' ), 'default' => kadence()->default( 'mobile_button_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'mobile_button_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'mobile_button_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'mobile_button_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'mobile_button_radius' => array( 'control_type' => 'kadence_measure_control', 'section' => 'mobile_button_design', 'priority' => 10, 'default' => kadence()->default( 'mobile_button_radius' ), 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'mobile_button_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'mobile_button_design', 'label' => esc_html__( 'Font', 'kadence' ), 'default' => kadence()->default( 'mobile_button_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'mobile_button_typography', 'options' => 'no-color', ), ), 'mobile_button_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'mobile_button_design', 'label' => esc_html__( 'Button Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'mobile_button_shadow' ), ), 'mobile_button_shadow_hover' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'mobile_button_design', 'label' => esc_html__( 'Button Hover State Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.mobile-header-button-wrap .mobile-header-button-inner-wrap .mobile-header-button', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'mobile_button_shadow_hover' ), ), 'mobile_button_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'mobile_button_design', 'priority' => 10, 'default' => kadence()->default( 'mobile_button_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-header-button-wrap .mobile-header-button', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), ) ); options/lifter-member-layout-options.php 0000644 00000016756 15151531435 0014530 0 ustar 00 <?php /** * Product Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'info_llms_membership_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'llms_membership_layout', 'priority' => 2, 'label' => esc_html__( 'Membership Title', 'kadence' ), 'settings' => false, ), 'llms_membership_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'llms_membership_layout', 'priority' => 3, 'default' => kadence()->default( 'llms_membership_title' ), 'label' => esc_html__( 'Show Membership Title?', 'kadence' ), 'transport' => 'refresh', ), 'llms_membership_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_layout', 'label' => esc_html__( 'Membership Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'llms_membership_title_layout' ), 'context' => array( array( 'setting' => 'llms_membership_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'llms_membership_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_layout', 'priority' => 4, 'default' => kadence()->default( 'llms_membership_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'llms_membership_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'llms_membership_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.llms_membership-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'llms_membership_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_layout', 'label' => esc_html__( 'Membership Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'llms_membership_title_align' ), 'context' => array( array( 'setting' => 'llms_membership_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.llms_membership-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'info_llms_membership_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'llms_membership_layout', 'priority' => 10, 'label' => esc_html__( 'Membership Layout', 'kadence' ), 'settings' => false, ), 'llms_membership_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_layout', 'label' => esc_html__( 'Membership Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'llms_membership_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'llms_membership_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'llms_membership_layout', 'label' => esc_html__( 'Membership Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'llms_membership_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'llms_membership_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'llms_membership_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-llms_membership', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'llms_membership_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'llms_membership_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-llms_membership', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), ); Theme_Customizer::add_settings( $settings ); options/learndash-groups-layout-options.php 0000644 00000047026 15151531435 0015246 0 ustar 00 <?php /** * Group Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'sfwd_groups_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_groups_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_groups_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_groups_layout_design', ), 'active' => 'general', ), ), 'sfwd_groups_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_groups_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_groups_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_groups_layout_design', ), 'active' => 'design', ), ), 'info_groups_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_groups_layout', 'priority' => 2, 'label' => esc_html__( 'Group Title', 'kadence' ), 'settings' => false, ), 'info_groups_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_groups_layout_design', 'priority' => 2, 'label' => esc_html__( 'Group Title', 'kadence' ), 'settings' => false, ), 'groups_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_groups_layout', 'priority' => 3, 'default' => kadence()->default( 'groups_title' ), 'label' => esc_html__( 'Show Group Title?', 'kadence' ), 'transport' => 'refresh', ), 'groups_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_groups_layout', 'label' => esc_html__( 'Group Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'groups_title_layout' ), 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'groups_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_groups_layout', 'priority' => 4, 'default' => kadence()->default( 'groups_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'groups_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.groups-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'groups_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_groups_layout', 'label' => esc_html__( 'Group Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'groups_title_align' ), 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.groups-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'groups_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'sfwd_groups_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'groups_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .groups-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'groups_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'groups_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'sfwd_groups_layout', 'priority' => 6, 'default' => kadence()->default( 'groups_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'groups_title_elements', 'title' => 'groups_title_element_title', 'breadcrumb' => 'groups_title_element_breadcrumb', ), 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'groups_title_element', ), ), 'groups_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_groups_layout_design', 'label' => esc_html__( 'Group Title Font', 'kadence' ), 'default' => kadence()->default( 'groups_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.groups-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'groups_title_font', 'headingInherit' => true, ), ), 'groups_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_groups_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'groups_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.groups-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.groups-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'groups_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_groups_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'groups_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.groups-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'groups_title_breadcrumb_font', 'options' => 'no-color', ), ), 'groups_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_groups_layout_design', 'label' => esc_html__( 'Group Above Area Background', 'kadence' ), 'default' => kadence()->default( 'groups_title_background' ), 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'groups_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .groups-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Group Title Background', 'kadence' ), ), ), 'groups_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_groups_layout_design', 'default' => kadence()->default( 'groups_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'groups_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'groups_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_groups_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'groups_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.groups-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'groups_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'groups_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'sfwd_groups_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'groups_title_border' ), 'context' => array( array( 'setting' => 'groups_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'groups_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'groups_title_top_border', 'border_bottom' => 'groups_title_bottom_border', ), 'live_method' => array( 'groups_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.groups-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'groups_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.groups-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_sfwd_groups_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_groups_layout', 'priority' => 10, 'label' => esc_html__( 'Group Layout', 'kadence' ), 'settings' => false, ), 'info_sfwd_groups_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_groups_layout_design', 'priority' => 10, 'label' => esc_html__( 'Group Layout', 'kadence' ), 'settings' => false, ), 'groups_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_groups_layout', 'label' => esc_html__( 'Group Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'groups_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'groups_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'sfwd_groups_layout', 'label' => esc_html__( 'Group Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'groups_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'groups_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_groups_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'groups_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-groups', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'groups_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_groups_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'groups_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-groups', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'groups_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_groups_layout', 'priority' => 20, 'default' => kadence()->default( 'groups_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ), 'groups_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_groups_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'groups_feature_position' ), 'context' => array( array( 'setting' => 'groups_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'groups_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_groups_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'groups_feature_ratio' ), 'context' => array( array( 'setting' => 'groups_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-groups .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'groups_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_groups_layout_design', 'priority' => 20, 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'groups_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-groups', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Group Background', 'kadence' ), ), ), 'groups_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_groups_layout_design', 'priority' => 20, 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'groups_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-groups .content-bg, body.single-groups.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Group Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-button-options.php 0000644 00000031463 15151531435 0013214 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'header_button_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_button', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_button', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_button_design', ), 'active' => 'general', ), ), 'header_button_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_button_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_button', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_button_design', ), 'active' => 'design', ), ), 'header_button_label' => array( 'control_type' => 'kadence_text_control', 'section' => 'header_button', 'sanitize' => 'sanitize_text_field', 'priority' => 4, 'label' => esc_html__( 'Label', 'kadence' ), 'default' => kadence()->default( 'header_button_label' ), 'live_method' => array( array( 'type' => 'html', 'selector' => '#main-header .header-button', 'pattern' => '$', 'key' => '', ), ), ), 'header_button_link' => array( 'control_type' => 'kadence_text_control', 'section' => 'header_button', 'sanitize' => 'esc_url_raw', 'label' => esc_html__( 'URL', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'header_button_link' ), 'partial' => array( 'selector' => '.header-button-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_button', ), ), 'header_button_target' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_button', 'priority' => 6, 'default' => kadence()->default( 'header_button_target' ), 'label' => esc_html__( 'Open in New Tab?', 'kadence' ), ), 'header_button_nofollow' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_button', 'priority' => 6, 'default' => kadence()->default( 'header_button_nofollow' ), 'label' => esc_html__( 'Set link to nofollow?', 'kadence' ), ), 'header_button_sponsored' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_button', 'priority' => 6, 'default' => kadence()->default( 'header_button_sponsored' ), 'label' => esc_html__( 'Set link attribute Sponsored?', 'kadence' ), ), 'header_button_download' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_button', 'priority' => 6, 'default' => kadence()->default( 'header_button_download' ), 'label' => esc_html__( 'Set link to Download?', 'kadence' ), ), 'header_button_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_button', 'priority' => 6, 'default' => kadence()->default( 'header_button_style' ), 'label' => esc_html__( 'Button Style', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#main-header .header-button', 'pattern' => 'button-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'filled' => array( 'name' => __( 'Filled', 'kadence' ), ), 'outline' => array( 'name' => __( 'Outline', 'kadence' ), ), 'secondary' => array( 'name' => __( 'Secondary', 'kadence' ), ), ), 'responsive' => false, ), ), 'header_button_visibility' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_button', 'priority' => 6, 'default' => kadence()->default( 'header_button_visibility' ), 'label' => esc_html__( 'Button Visibility', 'kadence' ), 'partial' => array( 'selector' => '.header-button-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_button', ), 'input_attrs' => array( 'layout' => array( 'all' => array( 'name' => __( 'Everyone', 'kadence' ), ), 'loggedout' => array( 'name' => __( 'Logged Out Only', 'kadence' ), ), 'loggedin' => array( 'name' => __( 'Logged In Only', 'kadence' ), ), ), 'responsive' => false, ), ), 'header_button_size' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_button_design', 'priority' => 4, 'default' => kadence()->default( 'header_button_size' ), 'label' => esc_html__( 'Button Size', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#main-header .header-button', 'pattern' => 'button-size-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'small' => array( 'name' => __( 'Sm', 'kadence' ), ), 'medium' => array( 'name' => __( 'Md', 'kadence' ), 'icon' => '', ), 'large' => array( 'name' => __( 'Lg', 'kadence' ), 'icon' => '', ), 'custom' => array( 'name' => __( 'Custom', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'header_button_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_button_design', 'priority' => 10, 'default' => kadence()->default( 'header_button_padding' ), 'label' => esc_html__( 'Padding', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .button-size-custom.header-button', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'context' => array( array( 'setting' => 'header_button_size', 'operator' => '=', 'value' => 'custom', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'header_button_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_button_design', 'label' => esc_html__( 'Colors', 'kadence' ), 'default' => kadence()->default( 'header_button_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#main-header .header-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_button_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_button_design', 'label' => esc_html__( 'Background Colors', 'kadence' ), 'default' => kadence()->default( 'header_button_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-button', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#main-header .header-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'header_button_style', 'operator' => '=', 'value' => 'filled', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_button_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_button_design', 'label' => esc_html__( 'Border Colors', 'kadence' ), 'default' => kadence()->default( 'header_button_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-button-wrap .header-button', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#main-header .header-button-wrap .header-button:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_button_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'header_button_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'header_button_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '#main-header .header-button', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'header_button_radius' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_button_design', 'priority' => 10, 'default' => kadence()->default( 'header_button_radius' ), 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-button', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'header_button_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'header_button_design', 'label' => esc_html__( 'Font', 'kadence' ), 'default' => kadence()->default( 'header_button_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '#main-header .header-button', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'header_button_typography', 'options' => 'no-color', ), ), 'header_button_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'header_button_design', 'label' => esc_html__( 'Button Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '#main-header .header-button', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'header_button_shadow' ), ), 'header_button_shadow_hover' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'header_button_design', 'label' => esc_html__( 'Button Hover State Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '#main-header .header-button', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'header_button_shadow_hover' ), ), 'header_button_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_button_design', 'priority' => 10, 'default' => kadence()->default( 'header_button_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#main-header .header-button', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), ) ); options/header-trigger-options.php 0000644 00000020550 15151531435 0013337 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'mobile_trigger_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'mobile_trigger', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'mobile_trigger', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'mobile_trigger_design', ), 'active' => 'general', ), ), 'mobile_trigger_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'mobile_trigger_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'mobile_trigger', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'mobile_trigger_design', ), 'active' => 'design', ), ), 'mobile_trigger_label' => array( 'control_type' => 'kadence_text_control', 'section' => 'mobile_trigger', 'sanitize' => 'sanitize_text_field', 'priority' => 6, 'default' => kadence()->default( 'mobile_trigger_label' ), 'label' => esc_html__( 'Menu Label', 'kadence' ), 'live_method' => array( array( 'type' => 'html', 'selector' => '.menu-toggle-label', 'pattern' => '$', 'key' => '', ), ), ), 'mobile_trigger_icon' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'mobile_trigger', 'priority' => 10, 'default' => kadence()->default( 'mobile_trigger_icon' ), 'label' => esc_html__( 'Trigger Icon', 'kadence' ), 'partial' => array( 'selector' => '.menu-toggle-icon', 'container_inclusive' => false, 'render_callback' => 'Kadence\popup_toggle', ), 'input_attrs' => array( 'layout' => array( 'menu' => array( 'icon' => 'menu', ), 'menu2' => array( 'icon' => 'menu2', ), 'menu3' => array( 'icon' => 'menu3', ), ), 'responsive' => false, ), ), 'mobile_trigger_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'mobile_trigger_design', 'priority' => 10, 'default' => kadence()->default( 'mobile_trigger_style' ), 'label' => esc_html__( 'Trigger Style', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.menu-toggle-open', 'pattern' => 'menu-toggle-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'default' => array( 'name' => __( 'Default', 'kadence' ), ), 'bordered' => array( 'name' => __( 'Bordered', 'kadence' ), ), ), 'responsive' => false, ), ), 'mobile_trigger_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'mobile_trigger_design', 'label' => esc_html__( 'Trigger Border', 'kadence' ), 'default' => kadence()->default( 'mobile_trigger_border' ), 'context' => array( array( 'setting' => 'mobile_trigger_style', 'operator' => 'sub_object_contains', 'sub_key' => 'layout', 'responsive' => false, 'value' => 'bordered', ), ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.mobile-toggle-open-container .menu-toggle-style-bordered', 'pattern' => '$', 'property' => 'border', 'key' => 'border', ), ), 'input_attrs' => array( 'color' => false, 'responsive' => false, ), ), 'mobile_trigger_icon_size' => array( 'control_type' => 'kadence_range_control', 'section' => 'mobile_trigger_design', 'label' => esc_html__( 'Icon Size', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-toggle-open-container .menu-toggle-open .menu-toggle-icon', 'property' => 'font-size', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'mobile_trigger_icon_size' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'mobile_trigger_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_trigger_design', 'label' => esc_html__( 'Trigger Colors', 'kadence' ), 'default' => kadence()->default( 'mobile_trigger_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-toggle-open-container .menu-toggle-open', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.mobile-toggle-open-container .menu-toggle-open:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'mobile_trigger_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_trigger_design', 'label' => esc_html__( 'Trigger Background', 'kadence' ), 'default' => kadence()->default( 'mobile_trigger_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-toggle-open-container .menu-toggle-open', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.mobile-toggle-open-container .menu-toggle-open:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), ), ), ), 'mobile_trigger_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'mobile_trigger_design', 'label' => esc_html__( 'Trigger Font', 'kadence' ), 'context' => array( array( 'setting' => 'mobile_trigger_label', 'operator' => '!empty', 'value' => '', ), ), 'default' => kadence()->default( 'mobile_trigger_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.mobile-toggle-open-container .menu-toggle-open', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'mobile_trigger_typography', 'options' => 'no-color', ), ), 'mobile_trigger_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'mobile_trigger_design', 'priority' => 10, 'default' => kadence()->default( 'mobile_trigger_padding' ), 'label' => esc_html__( 'Trigger Padding', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-toggle-open-container .menu-toggle-open', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'info_link_drawer_container' => array( 'control_type' => 'kadence_title_control', 'section' => 'mobile_trigger', 'priority' => 20, 'label' => esc_html__( 'Drawer Container Options', 'kadence' ), 'settings' => false, ), 'mobile_trigger_drawer_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'mobile_trigger', 'settings' => false, 'priority' => 20, 'label' => esc_html__( 'Drawer Container Options', 'kadence' ), 'input_attrs' => array( 'section' => 'kadence_customizer_header_popup', ), ), ); Theme_Customizer::add_settings( $settings ); options/header-cart-options.php 0000644 00000025504 15151531435 0012631 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'header_cart_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'cart', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'cart', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'cart_design', ), 'active' => 'general', ), ), 'header_cart_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'cart_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'cart', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'cart_design', ), 'active' => 'design', ), ), 'header_cart_label' => array( 'control_type' => 'kadence_text_control', 'section' => 'cart', 'sanitize' => 'sanitize_text_field', 'priority' => 6, 'default' => kadence()->default( 'header_cart_label' ), 'label' => esc_html__( 'Cart Label', 'kadence' ), 'live_method' => array( array( 'type' => 'html', 'selector' => '.header-mobile-cart-wrap .header-cart-label', 'pattern' => '$', 'key' => '', ), ), ), 'header_cart_icon' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'cart', 'priority' => 10, 'default' => kadence()->default( 'header_cart_icon' ), 'label' => esc_html__( 'Cart Icon', 'kadence' ), 'partial' => array( 'selector' => '.header-cart-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_cart', ), 'input_attrs' => array( 'layout' => array( 'shopping-bag' => array( 'icon' => 'shoppingBag', ), 'shopping-cart' => array( 'icon' => 'shoppingCart', ), ), 'responsive' => false, ), ), 'header_cart_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'cart', 'priority' => 10, 'default' => kadence()->default( 'header_cart_style' ), 'label' => esc_html__( 'Cart Click Action', 'kadence' ), 'transport' => 'refresh', 'input_attrs' => array( 'layout' => array( 'link' => array( 'name' => __( 'Link', 'kadence' ), ), 'slide' => array( 'name' => __( 'Popout Cart', 'kadence' ), ), 'dropdown' => array( 'name' => __( 'Dropdown Cart', 'kadence' ), ), ), 'responsive' => false, ), ), 'header_cart_show_total' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'cart', 'priority' => 6, 'partial' => array( 'selector' => '.header-cart-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_cart', ), 'default' => kadence()->default( 'header_cart_show_total' ), 'label' => esc_html__( 'Show Item Total Indicator', 'kadence' ), ), 'header_cart_icon_size' => array( 'control_type' => 'kadence_range_control', 'section' => 'cart_design', 'label' => esc_html__( 'Icon Size', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-cart-wrap .header-cart-button .kadence-svg-iconset', 'property' => 'font-size', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_cart_icon_size' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'header_cart_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'cart_design', 'label' => esc_html__( 'Cart Colors', 'kadence' ), 'default' => kadence()->default( 'header_cart_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-header-item .header-cart-wrap .header-cart-inner-wrap .header-cart-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.site-header-item .header-cart-wrap .header-cart-inner-wrap .header-cart-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_cart_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'cart_design', 'label' => esc_html__( 'Cart Background', 'kadence' ), 'default' => kadence()->default( 'header_cart_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-header-item .header-cart-wrap .header-cart-inner-wrap .header-cart-button', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.site-header-item .header-cart-wrap .header-cart-inner-wrap .header-cart-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), ), ), ), 'header_cart_total_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'cart_design', 'label' => esc_html__( 'Cart Total Colors', 'kadence' ), 'default' => kadence()->default( 'header_cart_total_color' ), 'context' => array( array( 'setting' => 'header_cart_show_total', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-cart-wrap .header-cart-button .header-cart-total', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-cart-wrap .header-cart-button:hover .header-cart-total', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_cart_total_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'cart_design', 'label' => esc_html__( 'Cart Total Background', 'kadence' ), 'default' => kadence()->default( 'header_cart_total_background' ), 'context' => array( array( 'setting' => 'header_cart_show_total', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-cart-wrap .header-cart-button .header-cart-total', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-cart-wrap .header-cart-button:hover .header-cart-total', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), ), ), ), 'header_cart_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'cart_design', 'label' => esc_html__( 'Cart Label Font', 'kadence' ), 'context' => array( array( 'setting' => 'header_cart_label', 'operator' => '!empty', 'value' => '', ), ), 'default' => kadence()->default( 'header_cart_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.header-cart-wrap .header-cart-button .header-cart-label', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'header_cart_typography', 'options' => 'no-color', ), ), 'header_cart_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'cart_design', 'priority' => 10, 'default' => kadence()->default( 'header_cart_padding' ), 'label' => esc_html__( 'Cart Padding', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-header-item .header-cart-wrap .header-cart-inner-wrap .header-cart-button', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'header_cart_popup_side' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'cart', 'priority' => 20, 'default' => kadence()->default( 'header_cart_popup_side' ), 'label' => esc_html__( 'Slide-Out Side', 'kadence' ), 'context' => array( array( 'setting' => 'header_cart_style', 'operator' => '=', 'value' => 'slide', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#cart-drawer', 'pattern' => 'popup-drawer-side-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Reveal from Left', 'kadence' ), 'name' => __( 'Left', 'kadence' ), 'icon' => '', ), 'right' => array( 'tooltip' => __( 'Reveal from Right', 'kadence' ), 'name' => __( 'Right', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), ) ); options/footer-widget4-options.php 0000644 00000005721 15151531435 0013314 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'footer_widget4_breaker' => array( 'control_type' => 'kadence_blank_control', 'section' => 'sidebar-widgets-footer4', 'settings' => false, 'priority' => 5, 'description' => $compontent_tabs, ), 'footer_widget4_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer4', 'label' => esc_html__( 'Content Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget4_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget4', 'pattern' => array( 'desktop' => 'content-align-$', 'tablet' => 'content-tablet-align-$', 'mobile' => 'content-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'footer_widget4_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer4', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget4_vertical_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget4', 'pattern' => array( 'desktop' => 'content-valign-$', 'tablet' => 'content-tablet-valign-$', 'mobile' => 'content-mobile-valign-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/learndash-course-layout-options.php 0000644 00000050153 15151531435 0015222 0 ustar 00 <?php /** * Course Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'sfwd_courses_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_courses_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_courses_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_courses_layout_design', ), 'active' => 'general', ), ), 'sfwd_courses_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_courses_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_courses_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_courses_layout_design', ), 'active' => 'design', ), ), 'info_sfwd-courses_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_courses_layout', 'priority' => 2, 'label' => esc_html__( 'Course Title', 'kadence' ), 'settings' => false, ), 'info_sfwd-courses_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_courses_layout_design', 'priority' => 2, 'label' => esc_html__( 'Course Title', 'kadence' ), 'settings' => false, ), 'sfwd-courses_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_courses_layout', 'priority' => 3, 'default' => kadence()->default( 'sfwd-courses_title' ), 'label' => esc_html__( 'Show Course Title?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-courses_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_layout', 'label' => esc_html__( 'Course Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'sfwd-courses_title_layout' ), 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-courses_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_layout', 'priority' => 4, 'default' => kadence()->default( 'sfwd-courses_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-courses-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'sfwd-courses_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_layout', 'label' => esc_html__( 'Course Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'sfwd-courses_title_align' ), 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-courses-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'sfwd-courses_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'sfwd_courses_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .sfwd-courses-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'sfwd-courses_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'sfwd-courses_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'sfwd_courses_layout', 'priority' => 6, 'default' => kadence()->default( 'sfwd-courses_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'sfwd-courses_title_elements', 'title' => 'sfwd-courses_title_element_title', 'breadcrumb' => 'sfwd-courses_title_element_breadcrumb', ), 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'sfwd-courses_title_element', ), ), 'sfwd-courses_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_courses_layout_design', 'label' => esc_html__( 'Course Title Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-courses-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'sfwd-courses_title_font', 'headingInherit' => true, ), ), 'sfwd-courses_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_courses_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-courses-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.sfwd-courses-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'sfwd-courses_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_courses_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-courses-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'sfwd-courses_title_breadcrumb_font', 'options' => 'no-color', ), ), 'sfwd-courses_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_courses_layout_design', 'label' => esc_html__( 'Course Above Area Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_title_background' ), 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .sfwd-courses-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Title Background', 'kadence' ), ), ), 'sfwd-courses_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_courses_layout_design', 'default' => kadence()->default( 'sfwd-courses_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'sfwd-courses_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_courses_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-courses-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'sfwd-courses_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'sfwd_courses_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_title_border' ), 'context' => array( array( 'setting' => 'sfwd-courses_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'sfwd-courses_title_top_border', 'border_bottom' => 'sfwd-courses_title_bottom_border', ), 'live_method' => array( 'sfwd-courses_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-courses-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'sfwd-courses_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-courses-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_sfwd_courses_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_courses_layout', 'priority' => 10, 'label' => esc_html__( 'Course Layout', 'kadence' ), 'settings' => false, ), 'info_sfwd_courses_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_courses_layout_design', 'priority' => 10, 'label' => esc_html__( 'Course Layout', 'kadence' ), 'settings' => false, ), 'sfwd-courses_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_layout', 'label' => esc_html__( 'Course Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-courses_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'sfwd-courses_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'sfwd_courses_layout', 'label' => esc_html__( 'Course Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-courses_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'sfwd-courses_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-courses_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-courses', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-courses_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-courses_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-courses', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'sfwd-courses_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_courses_layout', 'priority' => 20, 'default' => kadence()->default( 'sfwd-courses_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-courses_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'sfwd-courses_feature_position' ), 'context' => array( array( 'setting' => 'sfwd-courses_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'sfwd-courses_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'sfwd-courses_feature_ratio' ), 'context' => array( array( 'setting' => 'sfwd-courses_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-courses .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'sfwd-courses_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_courses_layout_design', 'priority' => 20, 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-courses', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Background', 'kadence' ), ), ), 'sfwd-courses_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_courses_layout_design', 'priority' => 20, 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-courses .content-bg, body.single-sfwd-courses.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/learndash-course-archive-layout-options.php 0000644 00000043004 15151531435 0016636 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'sfwd-courses_archive_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_courses_archive_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_courses_archive_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_courses_archive_layout_design', ), 'active' => 'general', ), ), 'sfwd-courses_archive_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_courses_archive_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_courses_archive_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_courses_archive_layout_design', ), 'active' => 'design', ), ), 'info_sfwd-courses_archive_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_courses_archive_layout', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'info_sfwd-courses_archive_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_courses_archive_layout_design', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'sfwd-courses_archive_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_courses_archive_layout', 'priority' => 3, 'default' => kadence()->default( 'sfwd-courses_archive_title' ), 'label' => esc_html__( 'Show Archive Title?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-courses_archive_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_archive_layout', 'label' => esc_html__( 'Archive Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'sfwd-courses_archive_title_layout' ), 'context' => array( array( 'setting' => 'sfwd-courses_archive_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-courses_archive_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_archive_layout', 'priority' => 4, 'default' => kadence()->default( 'sfwd-courses_archive_title_inner_layout' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-courses-archive-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'sfwd-courses_archive_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_archive_layout', 'label' => esc_html__( 'Course Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'sfwd-courses_archive_title_align' ), 'context' => array( array( 'setting' => 'sfwd-courses_archive_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-courses-archive-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'sfwd-courses_archive_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'sfwd_courses_archive_layout', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .sfwd-courses-archive-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'sfwd-courses_archive_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'sfwd-courses_archive_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'sfwd_courses_archive_layout', 'priority' => 6, 'default' => kadence()->default( 'sfwd-courses_archive_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'sfwd-courses_archive_title', 'operator' => '=', 'value' => true, ), ), 'settings' => array( 'elements' => 'sfwd-courses_archive_title_elements', 'title' => 'sfwd-courses_archive_title_element_title', 'breadcrumb' => 'sfwd-courses_archive_title_element_breadcrumb', 'description' => 'sfwd-courses_archive_title_element_description', ), ), 'sfwd-courses_archive_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_courses_archive_layout_design', 'label' => esc_html__( 'Title Color', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_archive_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-courses-archive-title h1', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), 'sfwd-courses_archive_title_description_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_courses_archive_layout_design', 'label' => esc_html__( 'Description Colors', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_archive_title_description_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-courses-archive-title .archive-description', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.sfwd-courses-archive-title .archive-description a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'sfwd-courses_archive_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_courses_archive_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_archive_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-courses-archive-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.sfwd-courses-archive-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'sfwd-courses_archive_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_courses_archive_layout_design', 'label' => esc_html__( 'Archive Title Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_archive_title_background' ), 'context' => array( array( 'setting' => 'sfwd-courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .sfwd-courses-archive-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Archive Title Background', 'kadence' ), ), ), 'sfwd-courses_archive_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_courses_archive_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_archive_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-courses-archive-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'sfwd-courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'sfwd-courses_archive_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'sfwd_courses_archive_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_archive_title_border' ), 'context' => array( array( 'setting' => 'sfwd-courses_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-courses_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'sfwd-courses_archive_title_top_border', 'border_bottom' => 'sfwd-courses_archive_title_bottom_border', ), 'live_method' => array( 'sfwd-courses_archive_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-courses-archive-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'sfwd-courses_archive_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-courses-archive-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_sfwd-courses_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_courses_archive_layout', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'info_sfwd-courses_archive_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_courses_archive_layout_design', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'sfwd-courses_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_archive_layout', 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-courses_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'sfwd-courses_archive_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_archive_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-courses_archive_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.post-type-archive-sfwd-courses', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'gridBoxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'gridUnboxed', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-courses_archive_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_courses_archive_layout', 'priority' => 20, 'label' => esc_html__( 'Course Archive Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( 'sfwd-courses_archive_columns' ), 'input_attrs' => array( 'layout' => array( '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), ), 'responsive' => false, ), ), 'sfwd-courses_archive_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_courses_archive_layout_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_archive_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-sfwd-courses', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Archive Background', 'kadence' ), ), ), 'sfwd-courses_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_courses_archive_layout_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-courses_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-sfwd-courses .content-bg, body.post-type-archive-sfwd-courses.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Archive Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/footer-navigation-options.php 0000644 00000024656 15151531435 0014114 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'footer_navigation_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'footer_navigation', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'footer_navigation_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'footer_navigation', 'settings' => false, 'priority' => 5, 'label' => esc_html__( 'Select Menu', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'section' => 'menu_locations', ), ), 'footer_navigation_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_navigation', 'priority' => 5, 'label' => esc_html__( 'Items Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul > li > a', 'property' => 'padding-left', 'pattern' => 'calc($ / 2)', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul > li > a', 'property' => 'padding-right', 'pattern' => 'calc($ / 2)', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_navigation_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vw' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, 'vw' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 0.01, ), 'units' => array( 'px', 'em', 'rem', 'vw' ), 'responsive' => false, ), ), 'footer_navigation_stretch' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'footer_navigation', 'priority' => 5, 'default' => kadence()->default( 'footer_navigation_stretch' ), 'label' => esc_html__( 'Stretch Menu?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-navigation-wrap', 'pattern' => 'footer-navigation-layout-stretch-$', 'key' => 'switch', ), ), ), 'footer_navigation_vertical_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_navigation', 'label' => esc_html__( 'Items Top and Bottom Padding', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul > li > a', 'property' => 'padding-top', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul > li > a', 'property' => 'padding-bottom', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_navigation_vertical_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vh' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, 'vh' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 0.01, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), 'responsive' => false, ), ), 'footer_navigation_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_navigation', 'label' => esc_html__( 'Content Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_navigation_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-navigation-wrap', 'pattern' => array( 'desktop' => 'content-align-$', 'tablet' => 'content-tablet-align-$', 'mobile' => 'content-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'footer_navigation_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_navigation', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_navigation_vertical_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-navigation-wrap', 'pattern' => array( 'desktop' => 'content-valign-$', 'tablet' => 'content-tablet-valign-$', 'mobile' => 'content-mobile-valign-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => true, ), ), 'footer_navigation_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'footer_navigation', 'label' => esc_html__( 'Navigation Colors', 'kadence' ), 'default' => kadence()->default( 'footer_navigation_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul li a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul li a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul li.current-menu-item > a, #colophon .footer-navigation .footer-menu-container > ul li.current_page_item > a', 'property' => 'color', 'pattern' => '$', 'key' => 'active', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Color', 'kadence' ), 'palette' => true, ), ), ), ), 'footer_navigation_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'footer_navigation', 'label' => esc_html__( 'Navigation Background', 'kadence' ), 'default' => kadence()->default( 'footer_navigation_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul li a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul li a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul li.current-menu-item > a, #colophon .footer-navigation .footer-menu-container > ul > li.current_page_item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'active', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Background', 'kadence' ), 'palette' => true, ), ), ), ), 'footer_navigation_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'footer_navigation', 'label' => esc_html__( 'Navigation Font', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'footer_navigation_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '#colophon .footer-navigation .footer-menu-container > ul li a', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'footer_navigation_typography', 'options' => 'no-color', ), ), ); Theme_Customizer::add_settings( $settings ); options/header-mobile-cart-options.php 0000644 00000025357 15151531435 0014104 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'header_mobile_cart_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'mobile_cart', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'mobile_cart', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'mobile_cart_design', ), 'active' => 'general', ), ), 'header_mobile_cart_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'mobile_cart_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'mobile_cart', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'mobile_cart_design', ), 'active' => 'design', ), ), 'header_mobile_cart_label' => array( 'control_type' => 'kadence_text_control', 'section' => 'mobile_cart', 'sanitize' => 'sanitize_text_field', 'priority' => 6, 'default' => kadence()->default( 'header_mobile_cart_label' ), 'label' => esc_html__( 'Cart Label', 'kadence' ), 'live_method' => array( array( 'type' => 'html', 'selector' => '.header-mobile-cart-wrap .header-cart-label', 'pattern' => '$', 'key' => '', ), ), ), 'header_mobile_cart_icon' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'mobile_cart', 'priority' => 10, 'default' => kadence()->default( 'header_mobile_cart_icon' ), 'label' => esc_html__( 'Cart Icon', 'kadence' ), 'partial' => array( 'selector' => '.header-mobile-cart-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_cart', ), 'input_attrs' => array( 'layout' => array( 'shopping-bag' => array( 'icon' => 'shoppingBag', ), 'shopping-cart' => array( 'icon' => 'shoppingCart', ), ), 'responsive' => false, ), ), 'header_mobile_cart_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'mobile_cart', 'priority' => 10, 'default' => kadence()->default( 'header_mobile_cart_style' ), 'label' => esc_html__( 'Cart Click Action', 'kadence' ), 'transport' => 'refresh', 'input_attrs' => array( 'layout' => array( 'link' => array( 'name' => __( 'Link', 'kadence' ), ), 'slide' => array( 'name' => __( 'Popout Cart', 'kadence' ), ), ), 'responsive' => false, ), ), 'header_mobile_cart_show_total' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'mobile_cart', 'priority' => 6, 'partial' => array( 'selector' => '.header-mobile-cart-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_cart', ), 'default' => kadence()->default( 'header_mobile_cart_show_total' ), 'label' => esc_html__( 'Show Item Total Indicator', 'kadence' ), ), 'header_mobile_cart_icon_size' => array( 'control_type' => 'kadence_range_control', 'section' => 'mobile_cart_design', 'label' => esc_html__( 'Icon Size', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-button .kadence-svg-iconset', 'property' => 'font-size', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_mobile_cart_icon_size' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'header_mobile_cart_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_cart_design', 'label' => esc_html__( 'Cart Colors', 'kadence' ), 'default' => kadence()->default( 'header_mobile_cart_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-inner-wrap .header-cart-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-inner-wrap .header-cart-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_mobile_cart_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_cart_design', 'label' => esc_html__( 'Cart Background', 'kadence' ), 'default' => kadence()->default( 'header_mobile_cart_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-inner-wrap .header-cart-button', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-inner-wrap .header-cart-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), ), ), ), 'header_mobile_cart_total_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_cart_design', 'label' => esc_html__( 'Cart Total Colors', 'kadence' ), 'default' => kadence()->default( 'header_mobile_cart_total_color' ), 'context' => array( array( 'setting' => 'header_mobile_cart_show_total', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-button .header-cart-total', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-button:hover .header-cart-total', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_mobile_cart_total_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_cart_design', 'label' => esc_html__( 'Cart Total Background', 'kadence' ), 'default' => kadence()->default( 'header_mobile_cart_total_background' ), 'context' => array( array( 'setting' => 'header_mobile_cart_show_total', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-button .header-cart-total', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-button:hover .header-cart-total', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), ), ), ), 'header_mobile_cart_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'mobile_cart_design', 'label' => esc_html__( 'Cart Label Font', 'kadence' ), 'context' => array( array( 'setting' => 'header_mobile_cart_label', 'operator' => '!empty', 'value' => '', ), ), 'default' => kadence()->default( 'header_mobile_cart_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.header-mobile-cart-wrap .header-cart-button .header-cart-label', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'header_mobile_cart_typography', 'options' => 'no-color', ), ), 'header_mobile_cart_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'mobile_cart_design', 'priority' => 10, 'default' => kadence()->default( 'header_mobile_cart_padding' ), 'label' => esc_html__( 'Cart Padding', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-cart-wrap .header-cart-inner-wrap .header-cart-button', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'header_mobile_cart_popup_side' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'mobile_cart', 'priority' => 20, 'default' => kadence()->default( 'header_mobile_cart_popup_side' ), 'label' => esc_html__( 'Slide-Out Side', 'kadence' ), 'context' => array( array( 'setting' => 'header_mobile_cart_style', 'operator' => '=', 'value' => 'slide', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#cart-drawer', 'pattern' => 'popup-mobile-drawer-side-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Reveal from Left', 'kadence' ), 'name' => __( 'Left', 'kadence' ), 'icon' => '', ), 'right' => array( 'tooltip' => __( 'Reveal from Right', 'kadence' ), 'name' => __( 'Right', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), ); Theme_Customizer::add_settings( $settings ); options/header-popup-options.php 0000644 00000031302 15151531435 0013034 0 ustar 00 <?php /** * Header Popup Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'header_popup_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_popup', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_popup', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_popup_design', ), 'active' => 'general', ), ), 'header_popup_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_popup_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_popup', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_popup_design', ), 'active' => 'design', ), ), 'header_popup_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_popup', 'priority' => 4, 'default' => kadence()->default( 'header_popup_layout' ), 'label' => esc_html__( 'Layout', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#mobile-drawer', 'pattern' => 'popup-drawer-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'fullwidth' => array( 'tooltip' => __( 'Reveal as Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'sidepanel' => array( 'tooltip' => __( 'Reveal as Side Panel', 'kadence' ), 'name' => __( 'Side Panel', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'header_popup_side' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_popup', 'priority' => 4, 'default' => kadence()->default( 'header_popup_side' ), 'label' => esc_html__( 'Slide-Out Side', 'kadence' ), 'context' => array( array( 'setting' => 'header_popup_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'layout', 'responsive' => false, 'value' => 'sidepanel', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#mobile-drawer', 'pattern' => 'popup-drawer-side-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Reveal from Left', 'kadence' ), 'name' => __( 'Left', 'kadence' ), 'icon' => '', ), 'right' => array( 'tooltip' => __( 'Reveal from Right', 'kadence' ), 'name' => __( 'Right', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'header_popup_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_popup', 'priority' => 5, 'label' => esc_html__( 'Panel Width', 'kadence' ), 'description' => esc_html__( 'Define the width for the off canvas panel', 'kadence' ), 'context' => array( array( 'setting' => 'header_popup_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'layout', 'responsive' => false, 'value' => 'sidepanel', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#mobile-drawer .drawer-inner', 'property' => 'width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_popup_width' ), 'input_attrs' => array( 'min' => array( 'px' => 100, 'em' => 1, 'rem' => 1, 'vw' => 0, '%' => 0, ), 'max' => array( 'px' => 2000, 'em' => 50, 'rem' => 50, 'vw' => 100, '%' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, '%' => 1, ), 'units' => array( 'px', 'em', 'vw', '%' ), ), ), 'header_popup_content_max_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_popup', 'priority' => 5, 'label' => esc_html__( 'Content Max Width', 'kadence' ), 'description' => esc_html__( "Define the max width for the off canvas panel's content", 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#mobile-drawer .drawer-content', 'property' => 'width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_popup_content_max_width' ), 'input_attrs' => array( 'min' => array( 'px' => 100, 'em' => 1, 'rem' => 1, 'vw' => 0, '%' => 0, ), 'max' => array( 'px' => 2000, 'em' => 50, 'rem' => 50, 'vw' => 100, '%' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, '%' => 1, ), 'units' => array( 'px', 'em', 'vw', '%' ), ), ), 'enable_popup_body_animate' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_popup', 'priority' => 4, 'transport' => 'refresh', 'default' => kadence()->default( 'enable_popup_body_animate' ), 'label' => esc_html__( 'Move Body with toggle?', 'kadence' ), 'input_attrs' => array( 'help' => esc_html__( 'This can require a lot of memory to render the animation in mobile browsers, use with caution if you have graphically heavy pages.', 'kadence' ), ), 'context' => array( array( 'setting' => 'header_popup_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'layout', 'responsive' => false, 'value' => 'sidepanel', ), ), ), 'header_popup_animation' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_popup', 'priority' => 4, 'default' => kadence()->default( 'header_popup_animation' ), 'label' => esc_html__( 'Animation', 'kadence' ), 'context' => array( array( 'setting' => 'header_popup_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'layout', 'responsive' => false, 'value' => 'fullwidth', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#mobile-drawer', 'pattern' => 'popup-drawer-animation-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'fade' => array( 'tooltip' => __( 'Fade In', 'kadence' ), 'name' => __( 'Fade', 'kadence' ), 'icon' => '', ), 'scale' => array( 'tooltip' => __( 'Scale into view', 'kadence' ), 'name' => __( 'Scale', 'kadence' ), 'icon' => '', ), 'slice' => array( 'tooltip' => __( 'Slice into view', 'kadence' ), 'name' => __( 'Slice', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'header_popup_content_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_popup', 'label' => esc_html__( 'Content Align', 'kadence' ), 'default' => kadence()->default( 'header_popup_content_align' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.mobile-drawer-content', 'pattern' => 'content-align-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => false, ), ), 'header_popup_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_popup', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'default' => kadence()->default( 'header_popup_vertical_align' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.mobile-drawer-content', 'pattern' => 'content-valign-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => false, ), ), 'header_popup_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_popup_design', 'label' => esc_html__( 'Popup Background', 'kadence' ), 'default' => kadence()->default( 'header_popup_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#mobile-drawer .drawer-inner, #mobile-drawer.popup-drawer-layout-fullwidth.popup-drawer-animation-slice .pop-portion-bg', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Popup Background', 'kadence' ), ), ), 'header_popup_close_icon_size' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_popup_design', 'label' => esc_html__( 'Close Icon Size', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#mobile-drawer .drawer-header .drawer-toggle', 'property' => 'font-size', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_popup_close_icon_size' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'header_popup_close_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_popup_design', 'label' => esc_html__( 'Close Toggle Colors', 'kadence' ), 'default' => kadence()->default( 'header_popup_close_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#mobile-drawer .drawer-header .drawer-toggle', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#mobile-drawer .drawer-header .drawer-toggle:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_popup_close_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_popup_design', 'label' => esc_html__( 'Close Toggle Background Colors', 'kadence' ), 'default' => kadence()->default( 'header_popup_close_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#mobile-drawer .drawer-header .drawer-toggle', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#mobile-drawer .drawer-header .drawer-toggle:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_popup_close_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_popup_design', 'default' => kadence()->default( 'header_popup_close_padding' ), 'label' => esc_html__( 'Close Icon Padding', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#mobile-drawer .drawer-header .drawer-toggle', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), ); Theme_Customizer::add_settings( $settings ); options/general-image-options.php 0000644 00000002210 15151531435 0013134 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'image_border_radius' => array( 'control_type' => 'kadence_range_control', 'section' => 'general_image', 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.entry-content :where(.wp-block-image) img, .entry-content :where(.wp-block-kadence-image) img', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'image_border_radius' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, '%' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, '%' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', '%' ), 'responsive' => true, ), ), ) ); options/tec-event-archive-layout-options.php 0000644 00000004761 15151531435 0015300 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'info_tribe_events_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'tribe_events_archive', 'priority' => 10, 'label' => esc_html__( 'Events Layout', 'kadence' ), 'settings' => false, ), 'tribe_events_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'tribe_events_archive', 'label' => esc_html__( 'Events Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'tribe_events_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'tribe_events_archive_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'tribe_events_archive', 'label' => esc_html__( 'Events Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'tribe_events_archive_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'tribe_events_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'tribe_events_archive', 'label' => esc_html__( 'Events Background', 'kadence' ), 'default' => kadence()->default( 'tribe_events_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-tribe_events .site, body.post-type-archive-tribe_events.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Events Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-mobile-social-options.php 0000644 00000026011 15151531435 0014411 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'mobile_social_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'mobile_social', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'mobile_social', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'mobile_social_design', ), 'active' => 'general', ), ), 'mobile_social_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'mobile_social_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'mobile_social', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'mobile_social_design', ), 'active' => 'design', ), ), 'header_mobile_social_items' => array( 'control_type' => 'kadence_social_control', 'section' => 'mobile_social', 'priority' => 6, 'default' => kadence()->default( 'header_mobile_social_items' ), 'label' => esc_html__( 'Social Items', 'kadence' ), 'partial' => array( 'selector' => '.header-mobile-social-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_social', ), ), 'header_mobile_social_show_label' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'mobile_social', 'priority' => 8, 'default' => kadence()->default( 'header_mobile_social_show_label' ), 'label' => esc_html__( 'Show Icon Label?', 'kadence' ), 'partial' => array( 'selector' => '.header-mobile-social-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_social', ), ), 'header_mobile_social_item_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'mobile_social', 'label' => esc_html__( 'Item Spacing', 'kadence' ), 'default' => kadence()->default( 'header_mobile_social_item_spacing' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-social-wrap .header-mobile-social-inner-wrap', 'property' => 'gap', 'pattern' => '$', 'key' => 'size', ), ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 50, 'em' => 3, 'rem' => 3, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'header_mobile_social_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'mobile_social', 'priority' => 10, 'default' => kadence()->default( 'header_mobile_social_style' ), 'label' => esc_html__( 'Social Style', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.header-mobile-social-inner-wrap', 'pattern' => 'social-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'filled' => array( 'name' => __( 'Filled', 'kadence' ), ), 'outline' => array( 'name' => __( 'Outline', 'kadence' ), ), ), 'responsive' => false, ), ), 'header_mobile_social_icon_size' => array( 'control_type' => 'kadence_range_control', 'section' => 'mobile_social_design', 'label' => esc_html__( 'Icon Size', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-social-wrap .header-mobile-social-inner-wrap', 'property' => 'font-size', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_mobile_social_icon_size' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'header_mobile_social_brand' => array( 'control_type' => 'kadence_select_control', 'section' => 'mobile_social_design', 'transport' => 'refresh', 'default' => kadence()->default( 'header_mobile_social_brand' ), 'label' => esc_html__( 'Use Brand Colors?', 'kadence' ), 'input_attrs' => array( 'options' => array( '' => array( 'name' => __( 'No', 'kadence' ), ), 'always' => array( 'name' => __( 'Yes', 'kadence' ), ), 'onhover' => array( 'name' => __( 'On Hover', 'kadence' ), ), 'untilhover' => array( 'name' => __( 'Until Hover', 'kadence' ), ), ), ), ), 'header_mobile_social_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_social_design', 'label' => esc_html__( 'Colors', 'kadence' ), 'default' => kadence()->default( 'header_mobile_social_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-social-wrap a.social-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-mobile-social-wrap a.social-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_mobile_social_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_social_design', 'label' => esc_html__( 'Background Colors', 'kadence' ), 'default' => kadence()->default( 'header_mobile_social_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-social-wrap a.social-button', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-mobile-social-wrap a.social-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'header_mobile_social_style', 'operator' => '=', 'value' => 'filled', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_mobile_social_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_social_design', 'label' => esc_html__( 'Border Colors', 'kadence' ), 'default' => kadence()->default( 'header_mobile_social_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#mobile-header .header-mobile-social-wrap a.social-button, #mobile-drawer .header-mobile-social-wrap a.social-button', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#mobile-header .header-mobile-social-wrap a.social-button:hover, #mobile-drawer .header-mobile-social-wrap a.social-button:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( ' Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_mobile_social_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'mobile_social_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'header_mobile_social_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.header-mobile-social-wrap a.social-button', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'header_mobile_social_border_radius' => array( 'control_type' => 'kadence_range_control', 'section' => 'mobile_social_design', 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-mobile-social-wrap a.social-button', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_mobile_social_border_radius' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, '%' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, '%' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', '%' ), 'responsive' => false, ), ), 'header_mobile_social_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'mobile_social_design', 'label' => esc_html__( 'Font', 'kadence' ), 'context' => array( array( 'setting' => 'header_mobile_social_show_label', 'operator' => '=', 'value' => true, ), ), 'default' => kadence()->default( 'header_mobile_social_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.header-mobile-social-wrap a.social-button .social-label', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'header_mobile_social_typography', 'options' => 'no-color', ), ), 'header_mobile_social_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'mobile_social_design', 'priority' => 10, 'default' => kadence()->default( 'header_mobile_social_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#mobile-header .header-mobile-social-wrap, #mobile-drawer .header-mobile-social-wrap', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), ); Theme_Customizer::add_settings( $settings ); options/footer-html-options.php 0000644 00000015520 15151531435 0012707 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'footer_html_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'footer_html', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'footer_html_content' => array( 'control_type' => 'kadence_editor_control', 'sanitize' => 'wp_kses_post', 'section' => 'footer_html', 'description' => esc_html__( 'Available Placeholders: {copyright} {year} {site-title} {theme-credit}', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'footer_html_content' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'id' => 'footer_html', ), 'partial' => array( 'selector' => '.footer-html', 'container_inclusive' => true, 'render_callback' => 'Kadence\footer_html', ), ), 'footer_html_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_html', 'label' => esc_html__( 'Content Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_html_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-info', 'pattern' => array( 'desktop' => 'content-align-$', 'tablet' => 'content-tablet-align-$', 'mobile' => 'content-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'footer_html_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_html', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_html_vertical_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-info', 'pattern' => array( 'desktop' => 'content-valign-$', 'tablet' => 'content-tablet-valign-$', 'mobile' => 'content-mobile-valign-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => true, ), ), 'footer_html_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'footer_html', 'label' => esc_html__( 'Font', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'footer_html_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '#colophon .footer-html', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'footer_html_typography', ), ), 'footer_html_link_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'footer_html', 'label' => esc_html__( 'Link Colors', 'kadence' ), 'default' => kadence()->default( 'footer_html_link_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-footer-row-container .site-footer-row .footer-html a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#colophon .site-footer-row-container .site-footer-row .footer-html a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'footer_html_link_style' => array( 'control_type' => 'kadence_select_control', 'section' => 'footer_html', 'default' => kadence()->default( 'footer_html_link_style' ), 'label' => esc_html__( 'Link Style', 'kadence' ), 'input_attrs' => array( 'options' => array( 'normal' => array( 'name' => __( 'Underline', 'kadence' ), ), 'plain' => array( 'name' => __( 'No Underline', 'kadence' ), ), ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#colophon .footer-html', 'pattern' => 'inner-link-style-$', 'key' => '', ), ), ), 'footer_html_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'footer_html', 'priority' => 10, 'default' => kadence()->default( 'footer_html_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .footer-html', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), ); Theme_Customizer::add_settings( $settings ); options/lifter-quiz-layout-options.php 0000644 00000016354 15151531435 0014243 0 ustar 00 <?php /** * Product Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'info_llms_quiz_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'llms_quiz_layout', 'priority' => 2, 'label' => esc_html__( 'Quiz Title', 'kadence' ), 'settings' => false, ), 'llms_quiz_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'llms_quiz_layout', 'priority' => 3, 'default' => kadence()->default( 'llms_quiz_title' ), 'label' => esc_html__( 'Show Quiz Title?', 'kadence' ), 'transport' => 'refresh', ), 'llms_quiz_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_quiz_layout', 'label' => esc_html__( 'Quiz Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'llms_quiz_title_layout' ), 'context' => array( array( 'setting' => 'llms_quiz_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'llms_quiz_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_quiz_layout', 'priority' => 4, 'default' => kadence()->default( 'llms_quiz_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'llms_quiz_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'llms_quiz_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.llms_quiz-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'llms_quiz_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_quiz_layout', 'label' => esc_html__( 'Quiz Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'llms_quiz_title_align' ), 'context' => array( array( 'setting' => 'llms_quiz_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.llms_quiz-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'info_llms_quiz_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'llms_quiz_layout', 'priority' => 10, 'label' => esc_html__( 'Quiz Layout', 'kadence' ), 'settings' => false, ), 'llms_quiz_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_quiz_layout', 'label' => esc_html__( 'Quiz Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'llms_quiz_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'llms_quiz_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'llms_quiz_layout', 'label' => esc_html__( 'Quiz Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'llms_quiz_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'llms_quiz_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_quiz_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'llms_quiz_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-llms_quiz', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'llms_quiz_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_quiz_layout', 'label' => esc_html__( 'Content Vertical Spacing', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'llms_quiz_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-llms_quiz', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), ); Theme_Customizer::add_settings( $settings ); options/custom-layout-options.php 0000644 00000167764 15151531435 0013316 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $all_post_types = kadence()->get_post_types_objects(); $extras_post_types = array(); $add_extras = false; foreach ( $all_post_types as $post_type_item ) { $post_type_name = $post_type_item->name; $post_type_label = $post_type_item->label; $ignore_type = kadence()->get_post_types_to_ignore(); if ( ! in_array( $post_type_name, $ignore_type, true ) ) { $taxonomies = get_object_taxonomies( $post_type_name, 'objects' ); $taxs = array(); foreach ( $taxonomies as $term_slug => $term ) { if ( ! $term->public || ! $term->show_ui ) { continue; } $taxs[ $term_slug ] = $term->label; } $settings = array( $post_type_name . '_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => $post_type_name . '_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => $post_type_name . '_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => $post_type_name . '_layout_design', ), 'active' => 'general', ), ), $post_type_name . '_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => $post_type_name . '_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => $post_type_name . '_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => $post_type_name . '_layout_design', ), 'active' => 'design', ), ), 'info_' . $post_type_name . '_title' => array( 'control_type' => 'kadence_title_control', 'section' => $post_type_name . '_layout', 'priority' => 2, 'label' => $post_type_label . ' ' . esc_html__( 'Title', 'kadence' ), 'settings' => false, ), 'info_' . $post_type_name . '_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => $post_type_name . '_layout_design', 'priority' => 2, 'label' => $post_type_label . ' ' . esc_html__( 'Title', 'kadence' ), 'settings' => false, ), $post_type_name . '_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => $post_type_name . '_layout', 'priority' => 3, 'default' => kadence()->default( $post_type_name . '_title', true ), 'label' => esc_html__( 'Show Title?', 'kadence' ), 'transport' => 'refresh', ), $post_type_name . '_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_layout', 'label' => $post_type_label . ' ' . esc_html__( 'Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( $post_type_name . '_title_layout', 'normal' ), 'context' => array( array( 'setting' => $post_type_name . '_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), $post_type_name . '_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_layout', 'priority' => 4, 'default' => kadence()->default( $post_type_name . '_title_inner_layout', 'standard' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => $post_type_name . '_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.' . $post_type_name . '-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), $post_type_name . '_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_layout', 'label' => $post_type_label . ' ' . esc_html__( 'Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( $post_type_name . '_title_align' ), 'context' => array( array( 'setting' => $post_type_name . '_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.' . $post_type_name . '-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), $post_type_name . '_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => $post_type_name . '_layout', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => $post_type_name . '_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .' . $post_type_name . '-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( $post_type_name . '_title_height', array( 'size' => array( 'mobile' => '', 'tablet' => '', 'desktop' => '', ), 'unit' => array( 'mobile' => 'px', 'tablet' => 'px', 'desktop' => 'px', ), ) ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 40, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), $post_type_name . '_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => $post_type_name . '_layout', 'priority' => 6, 'default' => array( 'title', 'breadcrumb', 'meta' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => $post_type_name . '_title_elements', 'title' => $post_type_name . '_title_element_title', 'breadcrumb' => $post_type_name . '_title_element_breadcrumb', 'categories' => $post_type_name . '_title_element_categories', 'meta' => $post_type_name . '_title_element_meta', ), 'input_attrs' => array( 'defaults' => array( 'categories' => array( 'enabled' => true, 'style' => 'normal', 'divider' => 'vline', 'taxonomy' => '', ), 'title' => array( 'enabled' => true, ), 'meta' => array( 'id' => 'meta', 'enabled' => false, 'divider' => 'dot', 'author' => true, 'authorImage' => true, 'authorEnableLabel' => true, 'authorLabel' => '', 'date' => true, 'dateTime' => false, 'dateEnableLabel' => false, 'dateLabel' => '', 'dateUpdated' => false, 'dateUpdatedTime' => false, 'dateUpdatedDifferent' => false, 'dateUpdatedEnableLabel' => false, 'dateUpdatedLabel' => '', 'comments' => false, 'commentsCondition' => false, ), 'breadcrumb' => array( 'enabled' => false, 'show_title' => true, ), ), 'group' => $post_type_name . '_title_element', 'taxonomies' => $taxs, ), ), $post_type_name . '_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => $post_type_name . '_layout_design', 'label' => $post_type_label . ' ' . esc_html__( 'Title Font', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_font', array( 'size' => array( 'desktop' => '', ), 'lineHeight' => array( 'desktop' => '', ), 'family' => 'inherit', 'google' => false, 'weight' => '', 'variant' => '', 'color' => '', ) ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.wp-site-blocks .' . $post_type_name . '-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => $post_type_name . '_title_font', 'headingInherit' => true, ), ), $post_type_name . '_title_category_color' => array( 'control_type' => 'kadence_color_control', 'section' => $post_type_name . '_layout_design', 'label' => esc_html__( 'Category Colors', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_category_color', array( 'color' => '', 'hover' => '', ) ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-title .entry-taxonomies, .' . $post_type_name . '-title .entry-taxonomies a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-title .entry-taxonomies a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-title .entry-taxonomies .category-style-pill a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-title .entry-taxonomies .category-style-pill a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), $post_type_name . '_title_category_font' => array( 'control_type' => 'kadence_typography_control', 'section' => $post_type_name . '_layout_design', 'label' => esc_html__( 'Category Font', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_category_font', array( 'size' => array( 'desktop' => '', ), 'lineHeight' => array( 'desktop' => '', ), 'family' => 'inherit', 'google' => false, 'weight' => '', 'variant' => '', ) ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.' . $post_type_name . '-title .entry-taxonomies, .' . $post_type_name . '-title .entry-taxonomies a', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => $post_type_name . '_title_category_font', 'options' => 'no-color', ), ), $post_type_name . '_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => $post_type_name . '_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_breadcrumb_color', array( 'color' => '', 'hover' => '', ) ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), $post_type_name . '_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => $post_type_name . '_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_breadcrumb_font', array( 'size' => array( 'desktop' => '', ), 'lineHeight' => array( 'desktop' => '', ), 'family' => 'inherit', 'google' => false, 'weight' => '', 'variant' => '', ) ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.' . $post_type_name . '-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => $post_type_name . '_title_breadcrumb_font', 'options' => 'no-color', ), ), $post_type_name . '_title_meta_color' => array( 'control_type' => 'kadence_color_control', 'section' => $post_type_name . '_layout_design', 'label' => esc_html__( 'Meta Colors', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_meta_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-title .entry-meta', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-title .entry-meta a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), $post_type_name . '_title_meta_font' => array( 'control_type' => 'kadence_typography_control', 'section' => $post_type_name . '_layout_design', 'label' => esc_html__( 'Meta Font', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_meta_font', array( 'size' => array( 'desktop' => '', ), 'lineHeight' => array( 'desktop' => '', ), 'family' => 'inherit', 'google' => false, 'weight' => '', 'variant' => '', ) ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.' . $post_type_name . '-title .entry-meta', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => $post_type_name . '_title_meta_font', 'options' => 'no-color', ), ), $post_type_name . '_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => $post_type_name . '_layout_design', 'label' => $post_type_label . ' ' . esc_html__( 'Title Background', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_background', array( 'desktop' => array( 'color' => '', ), ) ), 'context' => array( array( 'setting' => $post_type_name . '_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .page-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => $post_type_name . ' ' . __( 'Title Background', 'kadence' ), ), ), $post_type_name . '_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'section' => $post_type_name . '_layout_design', 'default' => kadence()->default( $post_type_name . '_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => $post_type_name . '_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), $post_type_name . '_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => $post_type_name . '_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_overlay_color', array( 'color' => '', ) ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => $post_type_name . '_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), $post_type_name . '_title_top_border' => array( 'control_type' => 'kadence_border_control', 'section' => $post_type_name . '_layout', 'label' => esc_html__( 'Top Border', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_top_border' ), 'context' => array( array( 'setting' => $post_type_name . '_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.' . $post_type_name . '-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'pattern' => '$', 'key' => 'border', ), ), ), $post_type_name . '_title_bottom_border' => array( 'control_type' => 'kadence_border_control', 'section' => $post_type_name . '_layout', 'label' => esc_html__( 'Bottom Border', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_title_bottom_border' ), 'context' => array( array( 'setting' => $post_type_name . '_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.' . $post_type_name . '-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), 'info_' . $post_type_name . '_layout' => array( 'control_type' => 'kadence_title_control', 'section' => $post_type_name . '_layout', 'priority' => 10, 'label' => $post_type_label . ' ' . esc_html__( 'Layout', 'kadence' ), 'settings' => false, ), 'info_' . $post_type_name . '_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => $post_type_name . '_layout_design', 'priority' => 10, 'label' => $post_type_label . ' ' . esc_html__( 'Layout', 'kadence' ), 'settings' => false, ), $post_type_name . '_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_layout', 'label' => $post_type_label . ' ' . esc_html__( 'Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( $post_type_name . '_layout', 'normal' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), $post_type_name . '_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => $post_type_name . '_layout', 'label' => esc_html__( 'Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( $post_type_name . '_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), $post_type_name . '_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( $post_type_name . '_content_style', 'boxed' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.' . str_replace( '_', '-', $post_type_name ), 'pattern' => 'content-style-$', 'key' => '', ), array( 'type' => 'class', 'selector' => 'body.single-' . ( 'give_forms' === $post_type_name ? $post_type_name : str_replace( '_', '-', $post_type_name ) ), 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), $post_type_name . '_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( $post_type_name . '_vertical_padding', 'show' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.' . str_replace( '_', '-', $post_type_name ), 'pattern' => 'content-vertical-padding-$', 'key' => '', ), array( 'type' => 'class', 'selector' => 'body.single-' . ( 'give_forms' === $post_type_name ? $post_type_name : str_replace( '_', '-', $post_type_name ) ), 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), $post_type_name . '_background' => array( 'control_type' => 'kadence_background_control', 'section' => $post_type_name . '_layout_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'site_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-' . str_replace( '_', '-', $post_type_name ), 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), array( 'type' => 'css_background', 'selector' => 'body.' . ( 'give_forms' === $post_type_name ? $post_type_name : str_replace( '_', '-', $post_type_name ) ), 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => $post_type_label . ' ' . __( 'Background', 'kadence' ), ), ), $post_type_name . '_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => $post_type_name . '_layout_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-' . ( 'give_forms' === $post_type_name ? $post_type_name : str_replace( '_', '-', $post_type_name ) ) . ' .content-bg, body.single' . ( 'give_forms' === $post_type_name ? $post_type_name : str_replace( '_', '-', $post_type_name ) ) . '.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => $post_type_label . ' ' . __( 'Content Background', 'kadence' ), ), ), ); $add_extras = false; $extras = array(); if ( post_type_supports( $post_type_name, 'thumbnail' ) ) { $add_extras = true; $extras[ $post_type_name . '_feature' ] = array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => $post_type_name . '_layout', 'priority' => 20, 'default' => kadence()->default( $post_type_name . '_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ); $extras[ $post_type_name . '_feature_position' ] = array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( $post_type_name . '_feature_position', 'above' ), 'context' => array( array( 'setting' => $post_type_name . '_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ); $extras[ $post_type_name . '_feature_ratio'] = array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( $post_type_name . '_feature_ratio', '2-3' ), 'context' => array( array( 'setting' => $post_type_name . '_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.' . str_replace( '_', '-', $post_type_name ) . ' .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), array( 'type' => 'class', 'selector' => 'body.single-' . str_replace( '_', '-', $post_type_name ) . ' .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '1:2', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ); } if ( post_type_supports( $post_type_name, 'comments' ) ) { $add_extras = true; $extras[ $post_type_name . '_comments' ] = array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => $post_type_name . '_layout', 'priority' => 20, 'default' => kadence()->default( $post_type_name . '_comments' ), 'label' => esc_html__( 'Show Comments?', 'kadence' ), 'transport' => 'refresh', ); } if ( $add_extras ) { $settings = array_merge( $settings, $extras ); } // Archives $kadence_custom_post_type_archive_settings = array( $post_type_name . '_archive_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => $post_type_name . '_archive', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => $post_type_name . '_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => $post_type_name . '_archive_design', ), 'active' => 'general', ), ), $post_type_name . '_archive_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => $post_type_name . '_archive_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => $post_type_name . '_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => $post_type_name . '_archive_design', ), 'active' => 'design', ), ), 'info_' . $post_type_name . '_archive_title' => array( 'control_type' => 'kadence_title_control', 'section' => $post_type_name . '_archive', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'info_' . $post_type_name . '_archive_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => $post_type_name . '_archive_design', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), $post_type_name . '_archive_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => $post_type_name . '_archive', 'priority' => 3, 'default' => kadence()->default( $post_type_name . '_archive_title', true ), 'label' => esc_html__( 'Show Archive Title?', 'kadence' ), 'transport' => 'refresh', ), $post_type_name . '_archive_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_archive', 'label' => esc_html__( 'Archive Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( $post_type_name . '_archive_title_layout', 'above' ), 'context' => array( array( 'setting' => $post_type_name . '_archive_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'name' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), $post_type_name . '_archive_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_archive', 'priority' => 4, 'default' => kadence()->default( $post_type_name . '_archive_title_inner_layout', 'standard' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => $post_type_name . '_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.' . $post_type_name . '-archive-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), $post_type_name . '_archive_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_archive', 'label' => esc_html__( 'Archive Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( $post_type_name . '_archive_title_align', array( 'mobile' => '', 'tablet' => '', 'desktop' => '', ) ), 'context' => array( array( 'setting' => $post_type_name . '_archive_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.' . $post_type_name . '-archive-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), $post_type_name . '_archive_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => $post_type_name . '_archive', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => $post_type_name . '_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .' . $post_type_name . '-archive-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( $post_type_name . '_archive_title_height', array( 'size' => array( 'mobile' => '', 'tablet' => '', 'desktop' => '', ), 'unit' => array( 'mobile' => 'px', 'tablet' => 'px', 'desktop' => 'px', ), ) ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), $post_type_name . '_archive_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => $post_type_name . '_archive', 'priority' => 6, 'default' => kadence()->default( $post_type_name . '_archive_title_elements', array( 'breadcrumb', 'title', 'description' ) ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => $post_type_name . '_archive_title_elements', 'title' => $post_type_name . '_archive_title_element_title', 'breadcrumb' => $post_type_name . '_archive_title_element_breadcrumb', 'description' => $post_type_name . '_archive_title_element_description', ), 'input_attrs' => array( 'groupe' => $post_type_name . '_archive_title_elements', 'defaults' => array( 'title' => kadence()->default( $post_type_name . '_archive_element_title', array( 'enabled' => true, ) ), 'description' => kadence()->default( $post_type_name . '_archive_title_element_description', array( 'enabled' => true, ) ), 'breadcrumb' => kadence()->default( $post_type_name . '_archive_title_element_breadcrumb', array( 'enabled' => false, 'show_title' => true, ) ), ), ), ), $post_type_name . '_archive_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Title Color', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_title_color', array( 'color' => '', ) ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-archive-title h1', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), $post_type_name . '_archive_title_description_color' => array( 'control_type' => 'kadence_color_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Description Colors', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_title_description_color', array( 'color' => '', 'hover' => '', ) ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-archive-title .archive-description', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-archive-title .archive-description a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), $post_type_name . '_archive_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_title_breadcrumb_color', array( 'color' => '', 'hover' => '', ) ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-archive-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-archive-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), $post_type_name . '_archive_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Archive Title Background', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_title_background', array( 'desktop' => array( 'color' => '', ), ) ), 'context' => array( array( 'setting' => $post_type_name . '_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .' . $post_type_name . '-archive-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Title Background', 'kadence' ), ), ), $post_type_name . '_archive_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_title_overlay_color', array( 'color' => '', ) ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.' . $post_type_name . '-archive-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => $post_type_name . '_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), $post_type_name . '_archive_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_title_border' ), 'context' => array( array( 'setting' => $post_type_name . '_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => $post_type_name . '_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => $post_type_name . '_archive_title_top_border', 'border_bottom' => $post_type_name . '_archive_title_bottom_border', ), 'live_method' => array( $post_type_name . '_archive_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.' . $post_type_name . '-archive-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), $post_type_name . '_archive_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.' . $post_type_name . '-archive-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_' . $post_type_name . '_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => $post_type_name . '_archive', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), // 'info_' . $post_type_name . '_archive_layout_design' => array( // 'control_type' => 'kadence_title_control', // 'section' => $post_type_name . '_archive_design', // 'priority' => 10, // 'label' => esc_html__( 'Archive Layout', 'kadence' ), // 'settings' => false, // ), $post_type_name . '_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_archive', 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( $post_type_name . '_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'name' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'name' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'name' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), $post_type_name . '_archive_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => $post_type_name . '_archive', 'label' => esc_html__( 'Archive Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( $post_type_name . '_archive_sidebar_id', 'sidebar-primary' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), $post_type_name . '_archive_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_archive', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( $post_type_name . '_archive_content_style', 'boxed' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.post-type-archive-' . $post_type_name, 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'gridBoxed', 'name' => __( 'Boxed', 'kadence' ), ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'gridUnboxed', 'name' => __( 'Unboxed', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), $post_type_name . '_archive_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_archive', 'priority' => 10, 'label' => esc_html__( 'Archive Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( $post_type_name . '_archive_columns', 3 ), 'input_attrs' => array( 'layout' => array( '1' => array( 'name' => __( '1', 'kadence' ), ), '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), ), 'responsive' => false, ), ), 'info_' . $post_type_name . '_archive_item_layout' => array( 'control_type' => 'kadence_title_control', 'section' => $post_type_name . '_archive', 'priority' => 12, 'label' => esc_html__( 'Post Item Layout', 'kadence' ), 'settings' => false, ), $post_type_name . '_archive_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => $post_type_name . '_archive', 'priority' => 12, 'default' => kadence()->default( $post_type_name . '_archive_elements', array( 'feature', 'title', 'meta', 'excerpt', 'readmore' ) ), 'label' => esc_html__( 'Item Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => $post_type_name . '_archive_elements', 'feature' => $post_type_name . '_archive_element_feature', 'categories' => $post_type_name . '_archive_element_categories', 'title' => $post_type_name . '_archive_element_title', 'meta' => $post_type_name . '_archive_element_meta', 'excerpt' => $post_type_name . '_archive_element_excerpt', 'readmore' => $post_type_name . '_archive_element_readmore', ), 'input_attrs' => array( 'groupe' => $post_type_name . '_archive_elements', 'sortable' => false, 'defaults' => array( 'feature' => kadence()->default( $post_type_name . '_archive_element_feature', array( 'enabled' => true, 'ratio' => '2-3', 'size' => 'medium_large', ) ), 'title' => kadence()->default( $post_type_name . '_archive_element_title', array( 'enabled' => true, ) ), 'categories' => kadence()->default( $post_type_name . '_archive_element_categories', array( 'enabled' => false, 'style' => 'normal', 'divider' => 'vline', 'taxonomy' => '', ) ), 'meta' => kadence()->default( $post_type_name . '_archive_element_meta', array( 'id' => 'meta', 'enabled' => false, 'divider' => 'dot', 'author' => true, 'authorLink' => true, 'authorImage' => true, 'authorImageSize' => 25, 'authorEnableLabel' => true, 'authorLabel' => '', 'date' => true, 'dateTime' => false, 'dateEnableLabel' => false, 'dateLabel' => '', 'dateUpdated' => false, 'dateUpdatedTime' => false, 'dateUpdatedDifferent' => false, 'dateUpdatedEnableLabel' => false, 'dateUpdatedLabel' => '', 'categories' => false, 'categoriesEnableLabel' => false, 'categoriesLabel' => '', 'comments' => false, 'commentsCondition' => false, ) ), 'excerpt' => kadence()->default( $post_type_name . '_archive_element_excerpt', array( 'enabled' => true, 'words' => 55, 'fullContent' => false, ) ), 'readmore' => kadence()->default( $post_type_name . '_archive_element_readmore', array( 'enabled' => true, ) ), ), 'dividers' => array( 'dot' => array( 'icon' => 'dot', ), 'slash' => array( 'icon' => 'slash', ), 'dash' => array( 'icon' => 'dash', ), 'vline' => array( 'icon' => 'vline', ), 'customicon' => array( 'icon' => 'hours', ), ), 'taxonomies' => $taxs, ), ), $post_type_name . '_archive_item_image_placement' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => $post_type_name . '_archive', 'label' => esc_html__( 'Item Image Placement', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( $post_type_name . '_archive_item_image_placement' ), 'context' => array( array( 'setting' => $post_type_name . '_archive_columns', 'operator' => '=', 'value' => '1', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.' . $post_type_name . '-archive.grid-cols', 'pattern' => 'item-image-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'beside' => array( 'name' => __( 'Beside', 'kadence' ), ), 'above' => array( 'name' => __( 'Above', 'kadence' ), ), ), 'responsive' => false, ), ), $post_type_name . '_archive_item_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Post Item Title Font', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_item_title_font', array( 'size' => array( 'desktop' => '', ), 'lineHeight' => array( 'desktop' => '', ), 'family' => '', 'google' => false, 'weight' => '', 'variant' => '', ) ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.loop-entry.type-' . $post_type_name . ' h2.entry-title', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => $post_type_name . '_archive_item_title_font', 'headingInherit' => true, ), ), $post_type_name . '_archive_item_meta_color' => array( 'control_type' => 'kadence_color_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Item Meta Colors', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_item_meta_color', array( 'color' => '', 'hover' => '', ) ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.loop-entry.type-' . $post_type_name . ' .entry-meta', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.loop-entry.type-' . $post_type_name . ' .entry-meta a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), $post_type_name . '_archive_item_meta_font' => array( 'control_type' => 'kadence_typography_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Item Meta Font', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_item_meta_font', array( 'size' => array( 'desktop' => '', ), 'lineHeight' => array( 'desktop' => '', ), 'family' => 'inherit', 'google' => false, 'weight' => '', 'variant' => '', ) ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.loop-entry.type-' . $post_type_name . ' .entry-meta', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => $post_type_name . '_archive_item_meta_font', 'options' => 'no-color', ), ), $post_type_name . '_archive_background' => array( 'control_type' => 'kadence_background_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-' . $post_type_name, 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Archive Background', 'kadence' ), ), ), $post_type_name . '_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => $post_type_name . '_archive_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( $post_type_name . '_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-' . $post_type_name . ' .content-bg, body.post-type-archive-' . $post_type_name . '.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Archive Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $kadence_custom_post_type_archive_settings ); Theme_Customizer::add_settings( $settings ); } } Theme_Customizer::add_settings( array( 'info_custom_post_types_placehoder' => array( 'control_type' => 'kadence_title_control', 'section' => 'custom_posts_placeholder', 'priority' => 10, 'label' => esc_html__( 'Custom Post Types', 'kadence' ), 'settings' => false, ), ) ); options/lifter-member-archive-layout-options.php 0000644 00000043563 15151531435 0016143 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'llms_membership_archive_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'llms_membership_archive', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'llms_membership_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'llms_membership_archive_design', ), 'active' => 'general', ), ), 'llms_membership_archive_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'llms_membership_archive_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'llms_membership_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'llms_membership_archive_design', ), 'active' => 'design', ), ), 'info_llms_membership_archive_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'llms_membership_archive', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'info_llms_membership_archive_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'llms_membership_archive_design', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'llms_membership_archive_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'llms_membership_archive', 'priority' => 3, 'default' => kadence()->default( 'llms_membership_archive_title' ), 'label' => esc_html__( 'Show Archive Title?', 'kadence' ), 'transport' => 'refresh', ), 'llms_membership_archive_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_archive', 'label' => esc_html__( 'Archive Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'llms_membership_archive_title_layout' ), 'context' => array( array( 'setting' => 'llms_membership_archive_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'llms_membership_archive_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_archive', 'priority' => 4, 'default' => kadence()->default( 'llms_membership_archive_title_inner_layout' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'llms_membership_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'llms_membership_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.llms_membership-archive-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'llms_membership_archive_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_archive', 'label' => esc_html__( 'Membership Archive Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'llms_membership_archive_title_align' ), 'context' => array( array( 'setting' => 'llms_membership_archive_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.llms_membership-archive-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'llms_membership_archive_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'llms_membership_archive', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'llms_membership_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'llms_membership_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .llms_membership-archive-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'llms_membership_archive_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'llms_membership_archive_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'llms_membership_archive', 'priority' => 6, 'default' => kadence()->default( 'llms_membership_archive_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'llms_membership_archive_title_elements', 'title' => 'llms_membership_archive_title_element_title', 'breadcrumb' => 'llms_membership_archive_title_element_breadcrumb', 'description' => 'llms_membership_archive_title_element_description', ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), ), 'llms_membership_archive_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'llms_membership_archive_design', 'label' => esc_html__( 'Title Color', 'kadence' ), 'default' => kadence()->default( 'llms_membership_archive_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.llms_membership-archive-title h1', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), 'llms_membership_archive_title_description_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'llms_membership_archive_design', 'label' => esc_html__( 'Description Colors', 'kadence' ), 'default' => kadence()->default( 'llms_membership_archive_title_description_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.llms_membership-archive-title .archive-description', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.llms_membership-archive-title .archive-description a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'llms_membership_archive_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'llms_membership_archive_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'llms_membership_archive_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.llms_membership-archive-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.llms_membership-archive-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'llms_membership_archive_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'llms_membership_archive_design', 'label' => esc_html__( 'Archive Title Background', 'kadence' ), 'default' => kadence()->default( 'llms_membership_archive_title_background' ), 'context' => array( array( 'setting' => 'llms_membership_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'llms_membership_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .llms_membership-archive-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Membership Archive Title Background', 'kadence' ), ), ), 'llms_membership_archive_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'llms_membership_archive_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'llms_membership_archive_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.llms_membership-archive-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'llms_membership_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'llms_membership_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'llms_membership_archive_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'llms_membership_archive_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'llms_membership_archive_title_border' ), 'context' => array( array( 'setting' => 'llms_membership_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'llms_membership_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'llms_membership_archive_title_top_border', 'border_bottom' => 'llms_membership_archive_title_bottom_border', ), 'live_method' => array( 'llms_membership_archive_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.llms_membership-archive-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'llms_membership_archive_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.llms_membership-archive-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_llms_membership_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'llms_membership_archive', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'info_llms_membership_archive_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'llms_membership_archive_design', 'priority' => 10, 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'settings' => false, ), 'llms_membership_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_archive', 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'llms_membership_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'llms_membership_archive_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_archive', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'llms_membership_archive_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.post-type-archive-llms_membership', 'pattern' => 'content-style-$', 'key' => '', ), array( 'type' => 'class', 'selector' => 'body.tax-membership_cat', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'gridBoxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'gridUnboxed', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'llms_membership_archive_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'llms_membership_archive', 'priority' => 20, 'label' => esc_html__( 'Membership Archive Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( 'llms_membership_archive_columns' ), 'input_attrs' => array( 'layout' => array( '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), ), 'responsive' => false, ), ), 'llms_membership_archive_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'llms_membership_archive_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'llms_membership_archive_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-llms_membership, body.tax-membership_cat', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Membership Archive Background', 'kadence' ), ), ), 'llms_membership_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'llms_membership_archive_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'llms_membership_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-llms_membership .content-bg, body.tax-membership_cat .content-bg, body.tax-membership_cat.content-style-unboxed .site, body.post-type-archive-llms_membership.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Archive Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/page-layout-options.php 0000644 00000055421 15151531435 0012702 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'page_layout_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'page_layout', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'info_page_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'page_layout', 'priority' => 2, 'label' => esc_html__( 'Page Title', 'kadence' ), 'settings' => false, ), 'page_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'page_layout', 'priority' => 3, 'default' => kadence()->default( 'page_title' ), 'label' => esc_html__( 'Show Page Title?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), ), 'page_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'page_layout', 'label' => esc_html__( 'Page Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'page_title_layout' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'name' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'page_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'page_layout', 'priority' => 4, 'default' => kadence()->default( 'page_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'page_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.page-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'page_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'page_layout', 'label' => esc_html__( 'Page Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'page_title_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.page-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'page_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'page_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'page_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .page-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'page_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'page_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'page_layout', 'priority' => 6, 'default' => kadence()->default( 'page_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'page_title_elements', 'title' => 'page_title_element_title', 'breadcrumb' => 'page_title_element_breadcrumb', 'meta' => 'page_title_element_meta', ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'defaults' => array( 'title' => kadence()->default( 'page_title_element_title' ), 'meta' => kadence()->default( 'page_title_element_meta' ), 'breadcrumb' => kadence()->default( 'page_title_element_breadcrumb' ), ), 'group' => 'page_title_element', ), // 'partial' => array( // 'selector' => '.page-title', // 'container_inclusive' => false, // 'render_callback' => 'Kadence\kadence_entry_header', // ), ), 'page_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'page_layout', 'label' => esc_html__( 'Page Title Font', 'kadence' ), 'default' => kadence()->default( 'page_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.wp-site-blocks .page-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'page_title_font', 'headingInherit' => true, ), ), 'page_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'page_layout', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'page_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.page-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.page-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'page_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'page_layout', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'page_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.page-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'id' => 'page_title_breadcrumb_font', 'options' => 'no-color', ), ), 'page_title_meta_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'page_layout', 'label' => esc_html__( 'Meta Colors', 'kadence' ), 'default' => kadence()->default( 'page_title_meta_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.page-title .entry-meta', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.page-title .entry-meta a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'page_title_meta_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'page_layout', 'label' => esc_html__( 'Meta Font', 'kadence' ), 'default' => kadence()->default( 'page_title_meta_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.page-title .entry-meta', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'id' => 'page_title_breadcrumb_font', 'options' => 'no-color', ), ), 'page_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'page_layout', 'label' => esc_html__( 'Page Title Background', 'kadence' ), 'default' => kadence()->default( 'page_title_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'page_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .page-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Page Title Background', 'kadence' ), ), ), 'page_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'page_layout', 'default' => kadence()->default( 'page_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'page_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'page_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'page_layout', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'page_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.page-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'page_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'page_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'page_layout', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'page_title_border' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'page_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'page_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'page_title_top_border', 'border_bottom' => 'page_title_bottom_border', ), 'live_method' => array( 'page_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.page-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'page_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.page-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_page_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'page_layout', 'priority' => 10, 'label' => esc_html__( 'Default Page Layout', 'kadence' ), 'settings' => false, ), 'page_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'page_layout', 'label' => esc_html__( 'Default Page Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'page_layout' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'name' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'name' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'name' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'page_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'page_layout', 'label' => esc_html__( 'Page Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'page_sidebar_id' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'page_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'page_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'page_content_style' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.page', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'name' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'name' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'page_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'page_layout', 'label' => esc_html__( 'Content Vertical Spacing', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'page_vertical_padding' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.page', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'page_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'page_layout', 'priority' => 20, 'default' => kadence()->default( 'page_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), ), 'page_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'page_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'page_feature_position' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'page_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'page_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'page_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'page_feature_ratio' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'page_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.page .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'page_comments' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'page_layout', 'priority' => 20, 'default' => kadence()->default( 'page_comments' ), 'label' => esc_html__( 'Show Comments?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), ), 'page_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'page_layout', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'page_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.page', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'tooltip' => __( 'Page Background', 'kadence' ), ), ), 'page_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'page_layout', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'page_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.page .content-bg, body.page.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'tooltip' => __( 'Page Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-sticky-options.php 0000644 00000075772 15151531435 0013222 0 ustar 00 <?php /** * Header Sticky Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'header_sticky_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_sticky', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_sticky', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_sticky_design', ), 'active' => 'general', ), ), 'header_sticky_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'header_sticky_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'header_sticky', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'header_sticky_design', ), 'active' => 'design', ), ), 'header_sticky' => array( 'control_type' => 'kadence_select_control', 'section' => 'header_sticky', 'priority' => 10, 'transport' => 'refresh', 'default' => kadence()->default( 'header_sticky' ), 'label' => esc_html__( 'Enable Sticky Header?', 'kadence' ), 'input_attrs' => array( 'options' => array( 'no' => array( 'name' => __( 'No', 'kadence' ), ), 'main' => array( 'name' => __( 'Yes - Only Main Row', 'kadence' ), ), 'top_main' => array( 'name' => __( 'Yes - Top Row & Main Row', 'kadence' ), ), 'top_main_bottom' => array( 'name' => __( 'Yes - Whole Header', 'kadence' ), ), 'top' => array( 'name' => __( 'Yes - Only Top Row', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Yes - Only Bottom Row', 'kadence' ), ), ), ), ), 'header_reveal_scroll_up' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_sticky', 'default' => kadence()->default( 'header_reveal_scroll_up' ), 'label' => esc_html__( 'Enable Reveal Sticky on Scroll up', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'header_sticky', 'operator' => '!=', 'value' => 'no', ), ), ), 'header_sticky_shrink' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_sticky', 'default' => kadence()->default( 'header_sticky_shrink' ), 'label' => esc_html__( 'Enable Main Row Shrinking', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'header_sticky', 'operator' => '!=', 'value' => 'no', ), ), ), 'header_sticky_main_shrink' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_sticky', 'label' => esc_html__( 'Main Row Shrink Height', 'kadence' ), 'context' => array( array( 'setting' => 'header_sticky_shrink', 'operator' => '=', 'value' => true, ), array( 'setting' => 'header_sticky', 'operator' => 'contain', 'value' => 'main', ), ), 'default' => kadence()->default( 'header_sticky_main_shrink' ), 'input_attrs' => array( 'min' => array( 'px' => 5, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 400, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px' ), 'responsive' => false, ), ), 'header_sticky_custom_logo' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_sticky', 'transport' => 'refresh', 'default' => kadence()->default( 'header_sticky_custom_logo' ), 'label' => esc_html__( 'Different Logo for Stuck Header?', 'kadence' ), 'context' => array( array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'header_sticky', 'operator' => '!=', 'value' => 'no', ), ), ), 'header_sticky_logo' => array( 'control_type' => 'media', 'section' => 'header_sticky', 'transport' => 'refresh', 'mime_type' => 'image', 'default' => '', 'label' => esc_html__( 'Stuck Header Logo', 'kadence' ), 'context' => array( array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'header_sticky', 'operator' => '!=', 'value' => 'no', ), array( 'setting' => 'header_sticky_custom_logo', 'operator' => '=', 'value' => true, ), ), ), 'header_sticky_logo_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_sticky', 'label' => esc_html__( 'Logo Max Width', 'kadence' ), 'description' => esc_html__( 'Define the maxium width for the logo', 'kadence' ), 'context' => array( array( 'setting' => 'header_sticky', 'operator' => '!=', 'value' => 'no', ), array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'header_sticky_custom_logo', 'operator' => '=', 'value' => true, ), array( 'setting' => 'header_sticky_logo', 'operator' => '!empty', 'value' => '', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .site-branding img', 'property' => 'max-width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_sticky_logo_width' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vw' => 2, '%' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vw' => 80, '%' => 80, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vw', '%' ), ), ), 'info_mobile_header_sticky' => array( 'control_type' => 'kadence_title_control', 'section' => 'header_sticky', 'priority' => 20, 'label' => esc_html__( 'Mobile Sticky', 'kadence' ), 'settings' => false, ), 'mobile_header_sticky' => array( 'control_type' => 'kadence_select_control', 'section' => 'header_sticky', 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'mobile_header_sticky' ), 'label' => esc_html__( 'Enable Sticky for Mobile?', 'kadence' ), 'input_attrs' => array( 'options' => array( 'no' => array( 'name' => __( 'No', 'kadence' ), ), 'main' => array( 'name' => __( 'Yes - Only Main Row', 'kadence' ), ), 'top_main' => array( 'name' => __( 'Yes - Top Row & Main Row', 'kadence' ), ), 'top_main_bottom' => array( 'name' => __( 'Yes - Whole Header', 'kadence' ), ), 'top' => array( 'name' => __( 'Yes - Only Top Row', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Yes - Only Bottom Row', 'kadence' ), ), ), ), ), 'mobile_header_reveal_scroll_up' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_sticky', 'priority' => 20, 'default' => kadence()->default( 'header_reveal_scroll_up' ), 'label' => esc_html__( 'Enable Reveal Sticky on Scroll up', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'mobile_header_sticky', 'operator' => '!=', 'value' => 'no', ), ), ), 'mobile_header_sticky_shrink' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_sticky', 'priority' => 20, 'default' => kadence()->default( 'mobile_header_sticky_shrink' ), 'label' => esc_html__( 'Enabled Main Row Shrinking', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'mobile_header_sticky', 'operator' => '!=', 'value' => 'no', ), ), ), 'mobile_header_sticky_main_shrink' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_sticky', 'priority' => 20, 'label' => esc_html__( 'Main Row Shrink Height', 'kadence' ), 'context' => array( array( 'setting' => 'mobile_header_sticky_shrink', 'operator' => '=', 'value' => true, ), array( 'setting' => 'mobile_header_sticky', 'operator' => 'contain', 'value' => 'main', ), ), 'default' => kadence()->default( 'mobile_header_sticky_main_shrink' ), 'input_attrs' => array( 'min' => array( 'px' => 5, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 400, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px' ), 'responsive' => false, ), ), 'header_sticky_custom_mobile_logo' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_sticky', 'transport' => 'refresh', 'priority' => 20, 'default' => kadence()->default( 'use_mobile_logo' ), 'label' => esc_html__( 'Different Logo for Mobile?', 'kadence' ), 'context' => array( array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'mobile_header_sticky', 'operator' => '!=', 'value' => 'no', ), ), ), 'header_sticky_mobile_logo' => array( 'control_type' => 'media', 'section' => 'header_sticky', 'transport' => 'refresh', 'priority' => 20, 'mime_type' => 'image', 'default' => '', 'label' => esc_html__( 'Mobile Logo', 'kadence' ), 'context' => array( array( 'setting' => 'logo_layout', 'operator' => 'sub_object_contains', 'sub_key' => 'include', 'responsive' => true, 'value' => 'logo', ), array( 'setting' => 'mobile_header_sticky', 'operator' => '!=', 'value' => 'no', ), array( 'setting' => 'header_sticky_custom_mobile_logo', 'operator' => '=', 'value' => true, ), ), ), 'header_sticky_site_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Site Title Color', 'kadence' ), 'default' => kadence()->default( 'header_sticky_site_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .site-branding .site-title, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .site-branding .site-description', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_sticky_logo_icon_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Logo Icon Color', 'kadence' ), 'default' => kadence()->default( 'header_sticky_logo_icon_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .site-branding .logo-icon', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_sticky_navigation_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Navigation Colors', 'kadence' ), 'default' => kadence()->default( 'header_sticky_navigation_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-menu-container > ul > li > a, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-toggle-open-container .menu-toggle-open, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .search-toggle-open-container .search-toggle-open', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-menu-container > ul > li > a:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-toggle-open-container .menu-toggle-open:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .search-toggle-open-container .search-toggle-open:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-menu-container > ul > li.current-menu-item > a, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-menu-container > ul > li.current_page_item > a', 'property' => 'color', 'pattern' => '$', 'key' => 'active', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_sticky_navigation_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Navigation Items Background', 'kadence' ), 'default' => kadence()->default( 'header_sticky_navigation_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-menu-container > ul > li > a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-menu-container > ul > li > a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-menu-container > ul > li.current-menu-item > a, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-menu-container > ul > li.current_page_item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'active', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Background', 'kadence' ), 'palette' => true, ), ), ), ), 'header_sticky_button_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Button Colors', 'kadence' ), 'default' => kadence()->default( 'header_sticky_button_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-button, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-header-button-wrap .mobile-header-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-button:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-header-button-wrap .mobile-header-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-button, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-header-button-wrap .mobile-header-button', 'property' => 'background', 'pattern' => '$', 'key' => 'background', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-button:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-header-button-wrap .mobile-header-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'backgroundHover', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-button, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-header-button-wrap .mobile-header-button', 'property' => 'border-color', 'pattern' => '$', 'key' => 'border', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-button:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-header-button-wrap .mobile-header-button:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'borderHover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'background' => array( 'tooltip' => __( 'Background', 'kadence' ), 'palette' => true, ), 'backgroundHover' => array( 'tooltip' => __( 'Background Hover', 'kadence' ), 'palette' => true, ), 'border' => array( 'tooltip' => __( 'Border', 'kadence' ), 'palette' => true, ), 'borderHover' => array( 'tooltip' => __( 'Border Hover', 'kadence' ), 'palette' => true, ), ), ), ), 'header_sticky_social_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Social Colors', 'kadence' ), 'default' => kadence()->default( 'header_sticky_social_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-social-wrap a.social-button, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-social-wrap a.social-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-social-wrap a.social-button:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-social-wrap a.social-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-social-wrap a.social-button, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-social-wrap a.social-button', 'property' => 'background', 'pattern' => '$', 'key' => 'background', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-social-wrap a.social-button:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-social-wrap a.social-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'backgroundHover', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-social-wrap a.social-button, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-social-wrap a.social-button', 'property' => 'border-color', 'pattern' => '$', 'key' => 'border', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-social-wrap a.social-button:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-social-wrap a.social-button:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'borderHover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'background' => array( 'tooltip' => __( 'Background', 'kadence' ), 'palette' => true, ), 'backgroundHover' => array( 'tooltip' => __( 'Background Hover', 'kadence' ), 'palette' => true, ), 'border' => array( 'tooltip' => __( 'Border', 'kadence' ), 'palette' => true, ), 'borderHover' => array( 'tooltip' => __( 'Border Hover', 'kadence' ), 'palette' => true, ), ), ), ), 'header_sticky_html_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'HTML Colors', 'kadence' ), 'default' => kadence()->default( 'header_sticky_html_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-html,#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-html', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-html a, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-html a', 'property' => 'color', 'pattern' => '$', 'key' => 'link', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-html a:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .mobile-html a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__device', 'operator' => '==', 'value' => 'desktop', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'link' => array( 'tooltip' => __( 'Link Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover', 'kadence' ), 'palette' => true, ), ), ), ), 'header_sticky_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Sticky Header Background', 'kadence' ), 'default' => kadence()->default( 'header_sticky_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.wp-site-blocks #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start):not(.site-header-row-container), .wp-site-blocks #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Sticky Header Background', 'kadence' ), ), ), 'header_sticky_bottom_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Sticky Bottom Border', 'kadence' ), 'default' => kadence()->default( 'header_sticky_bottom_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start)', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), 'header_sticky_box_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Sticky Header Box Shadow', 'kadence' ), 'default' => kadence()->default( 'header_sticky_box_shadow' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.site-main-header-wrap.site-header-row-container.site-header-focus-item.site-header-row-layout-standard.kadence-sticky-header.item-is-fixed.item-is-stuck, .site-header-upper-inner-wrap.kadence-sticky-header.item-is-fixed.item-is-stuck, .site-header-inner-wrap.kadence-sticky-header.item-is-fixed.item-is-stuck, .site-top-header-wrap.site-header-row-container.site-header-focus-item.site-header-row-layout-standard.kadence-sticky-header.item-is-fixed.item-is-stuck, .site-bottom-header-wrap.site-header-row-container.site-header-focus-item.site-header-row-layout-standard.kadence-sticky-header.item-is-fixed.item-is-stuck', 'property' => 'box-shadow', 'pattern' => '$', 'key' => 'box-shadow', ), ), ), ); if ( class_exists( 'woocommerce' ) ) { $settings = array_merge( $settings, array( 'header_sticky_cart_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Cart Colors', 'kadence' ), 'default' => kadence()->default( 'header_sticky_cart_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-cart-wrap .header-cart-button, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-cart-wrap .header-cart-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-cart-wrap .header-cart-button:hover, , #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-cart-wrap .header-cart-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-cart-wrap .header-cart-button, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-cart-wrap .header-cart-button', 'property' => 'background', 'pattern' => '$', 'key' => 'background', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-cart-wrap .header-cart-button:hover, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-cart-wrap .header-cart-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'backgroundHover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'background' => array( 'tooltip' => __( 'Background', 'kadence' ), 'palette' => true, ), 'backgroundHover' => array( 'tooltip' => __( 'Background Hover', 'kadence' ), 'palette' => true, ), ), ), ), 'header_sticky_cart_total_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_sticky_design', 'label' => esc_html__( 'Cart Total Colors', 'kadence' ), 'default' => kadence()->default( 'header_sticky_cart_total_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-cart-wrap .header-cart-button .header-cart-total, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-cart-wrap .header-cart-button .header-cart-total', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-cart-wrap .header-cart-button:hover .header-cart-total, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-cart-wrap .header-cart-button:hover .header-cart-total', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-cart-wrap .header-cart-button .header-cart-total, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-cart-wrap .header-cart-button .header-cart-total', 'property' => 'background', 'pattern' => '$', 'key' => 'background', ), array( 'type' => 'css', 'selector' => '#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-cart-wrap .header-cart-button:hover .header-cart-total, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .header-mobile-cart-wrap .header-cart-button:hover .header-cart-total', 'property' => 'background', 'pattern' => '$', 'key' => 'backgroundHover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'background' => array( 'tooltip' => __( 'Background', 'kadence' ), 'palette' => true, ), 'backgroundHover' => array( 'tooltip' => __( 'Background Hover', 'kadence' ), 'palette' => true, ), ), ), ), ) ); } Theme_Customizer::add_settings( $settings ); options/learndash-quiz-layout-options.php 0000644 00000047241 15151531435 0014716 0 ustar 00 <?php /** * Quiz Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'sfwd-quiz_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_quiz_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_quiz_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_quiz_layout_design', ), 'active' => 'general', ), ), 'sfwd-quiz_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_quiz_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_quiz_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_quiz_layout_design', ), 'active' => 'design', ), ), 'info_sfwd-quiz_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_quiz_layout', 'priority' => 2, 'label' => esc_html__( 'Quiz Title', 'kadence' ), 'settings' => false, ), 'info_sfwd-quiz_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_quiz_layout_design', 'priority' => 2, 'label' => esc_html__( 'Quiz Title', 'kadence' ), 'settings' => false, ), 'sfwd-quiz_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_quiz_layout', 'priority' => 3, 'default' => kadence()->default( 'sfwd-quiz_title' ), 'label' => esc_html__( 'Show Quiz Title?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-quiz_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_quiz_layout', 'label' => esc_html__( 'Quiz Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'sfwd-quiz_title_layout' ), 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-quiz_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_quiz_layout', 'priority' => 4, 'default' => kadence()->default( 'sfwd-quiz_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-quiz_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-quiz-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'sfwd-quiz_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_quiz_layout', 'label' => esc_html__( 'Quiz Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'sfwd-quiz_title_align' ), 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-quiz-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'sfwd-quiz_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'sfwd_quiz_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-quiz_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .sfwd-topic-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'sfwd-quiz_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'sfwd-quiz_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'sfwd_quiz_layout', 'priority' => 6, 'default' => kadence()->default( 'sfwd-quiz_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'sfwd-quiz_title_elements', 'title' => 'sfwd-quiz_title_element_title', 'breadcrumb' => 'sfwd-quiz_title_element_breadcrumb', ), 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'sfwd-quiz_title_element', ), ), 'sfwd-quiz_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_quiz_layout_design', 'label' => esc_html__( 'Quiz Title Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-quiz_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-quiz-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'sfwd-quiz_title_font', 'headingInherit' => true, ), ), 'sfwd-quiz_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_quiz_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'sfwd-quiz_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-quiz-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.sfwd-quiz-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'sfwd-quiz_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_quiz_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-quiz_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-quiz-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'sfwd-quiz_title_breadcrumb_font', 'options' => 'no-color', ), ), 'sfwd-quiz_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_quiz_layout_design', 'label' => esc_html__( 'Quiz Above Area Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-quiz_title_background' ), 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-quiz_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .sfwd-quiz-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Quiz Title Background', 'kadence' ), ), ), 'sfwd-quiz_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_quiz_layout_design', 'default' => kadence()->default( 'sfwd-quiz_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-quiz_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'sfwd-quiz_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_quiz_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'sfwd-quiz_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-quiz-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-quiz_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'sfwd-quiz_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'sfwd_quiz_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'sfwd-quiz_title_border' ), 'context' => array( array( 'setting' => 'sfwd-quiz_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-quiz_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'sfwd-quiz_title_top_border', 'border_bottom' => 'sfwd-quiz_title_bottom_border', ), 'live_method' => array( 'sfwd-quiz_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-quiz-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'sfwd-quiz_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-quiz-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_sfwd-quiz_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_quiz_layout', 'priority' => 10, 'label' => esc_html__( 'Quiz Layout', 'kadence' ), 'settings' => false, ), 'info_sfwd-quiz_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_quiz_layout_design', 'priority' => 10, 'label' => esc_html__( 'Quiz Layout', 'kadence' ), 'settings' => false, ), 'sfwd-quiz_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_quiz_layout', 'label' => esc_html__( 'Quiz Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-quiz_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'sfwd-quiz_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'sfwd_quiz_layout', 'label' => esc_html__( 'Quiz Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-quiz_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'sfwd-quiz_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_quiz_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-quiz_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-quiz', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-quiz_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_quiz_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-quiz_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-quiz', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'sfwd-quiz_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_quiz_layout', 'priority' => 20, 'default' => kadence()->default( 'sfwd-quiz_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-quiz_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_quiz_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'sfwd-quiz_feature_position' ), 'context' => array( array( 'setting' => 'sfwd-quiz_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'sfwd-quiz_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_quiz_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'sfwd-quiz_feature_ratio' ), 'context' => array( array( 'setting' => 'sfwd-quiz_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-quiz .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'sfwd-quiz_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_quiz_layout_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-quiz_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-quiz', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Quiz Background', 'kadence' ), ), ), 'sfwd-quiz_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_quiz_layout_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-quiz_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-quiz .content-bg, body.single-sfwd-quiz.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Quiz Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/footer-widget2-options.php 0000644 00000005721 15151531435 0013312 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'footer_widget2_breaker' => array( 'control_type' => 'kadence_blank_control', 'section' => 'sidebar-widgets-footer2', 'settings' => false, 'priority' => 5, 'description' => $compontent_tabs, ), 'footer_widget2_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer2', 'label' => esc_html__( 'Content Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget2_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget2', 'pattern' => array( 'desktop' => 'content-align-$', 'tablet' => 'content-tablet-align-$', 'mobile' => 'content-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'footer_widget2_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer2', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget2_vertical_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget2', 'pattern' => array( 'desktop' => 'content-valign-$', 'tablet' => 'content-tablet-valign-$', 'mobile' => 'content-mobile-valign-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/footer-widget1-options.php 0000644 00000005721 15151531435 0013311 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'footer_widget1_breaker' => array( 'control_type' => 'kadence_blank_control', 'section' => 'sidebar-widgets-footer1', 'settings' => false, 'priority' => 5, 'description' => $compontent_tabs, ), 'footer_widget1_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer1', 'label' => esc_html__( 'Content Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget1_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget1', 'pattern' => array( 'desktop' => 'content-align-$', 'tablet' => 'content-tablet-align-$', 'mobile' => 'content-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'footer_widget1_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer1', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget1_vertical_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget1', 'pattern' => array( 'desktop' => 'content-valign-$', 'tablet' => 'content-tablet-valign-$', 'mobile' => 'content-mobile-valign-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/404-layout-options.php 0000644 00000013166 15151531435 0012275 0 ustar 00 <?php /** * 404 Layout options. * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $layout_404_settings = array( '404_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'general_404', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'general_404', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'general_404_design', ), 'active' => 'general', ), ), '404_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'general_404_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'general_404', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'general_404_design', ), 'active' => 'design', ), ), 'info_404_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'general_404', 'priority' => 10, 'label' => esc_html__( '404 Layout', 'kadence' ), 'settings' => false, ), 'info_404_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'general_404_design', 'priority' => 10, 'label' => esc_html__( '404 Layout', 'kadence' ), 'settings' => false, ), '404_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'general_404', 'label' => esc_html__( '404 Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( '404_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'name' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'name' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'name' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), '404_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'general_404', 'label' => esc_html__( '404 Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( '404_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), '404_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'general_404', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( '404_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.error404', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'name' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'name' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), '404_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'general_404', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( '404_vertical_padding' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.error404', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), '404_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'general_404_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( '404_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.error404', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( '404 Background', 'kadence' ), ), ), '404_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'general_404_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( '404_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.error404 .content-bg, body.error404.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( '404 Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $layout_404_settings ); options/learndash-lesson-layout-options.php 0000644 00000050031 15151531435 0015220 0 ustar 00 <?php /** * Lesson Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'sfwd-lessons_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_lesson_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_lesson_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_lesson_layout_design', ), 'active' => 'general', ), ), 'sfwd-lessons_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_lesson_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_lesson_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_lesson_layout_design', ), 'active' => 'design', ), ), 'info_sfwd-lessons_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_lesson_layout', 'priority' => 2, 'label' => esc_html__( 'Lesson Title', 'kadence' ), 'settings' => false, ), 'info_sfwd-lessons_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_lesson_layout_design', 'priority' => 2, 'label' => esc_html__( 'Lesson Title', 'kadence' ), 'settings' => false, ), 'sfwd-lessons_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_lesson_layout', 'priority' => 3, 'default' => kadence()->default( 'sfwd-lessons_title' ), 'label' => esc_html__( 'Show Lesson Title?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-lessons_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_lesson_layout', 'label' => esc_html__( 'Lesson Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'sfwd-lessons_title_layout' ), 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-lessons_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_lesson_layout', 'priority' => 4, 'default' => kadence()->default( 'sfwd-lessons_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-lessons_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-lessons-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'sfwd-lessons_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_lesson_layout', 'label' => esc_html__( 'Lesson Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'sfwd-lessons_title_align' ), 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-lessons-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'sfwd-lessons_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'sfwd_lesson_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-lessons_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .sfwd-topic-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'sfwd-lessons_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'sfwd-lessons_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'sfwd_lesson_layout', 'priority' => 6, 'default' => kadence()->default( 'sfwd-lessons_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'sfwd-lessons_title_elements', 'title' => 'sfwd-lessons_title_element_title', 'breadcrumb' => 'sfwd-lessons_title_element_breadcrumb', ), 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'sfwd-lessons_title_element', ), ), 'sfwd-lessons_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_lesson_layout_design', 'label' => esc_html__( 'Lesson Title Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-lessons_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-lessons-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'sfwd-lessons_title_font', 'headingInherit' => true, ), ), 'sfwd-lessons_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_lesson_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'sfwd-lessons_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-lessons-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.sfwd-lessons-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'sfwd-lessons_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_lesson_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-lessons_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-lessons-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'sfwd-lessons_title_breadcrumb_font', 'options' => 'no-color', ), ), 'sfwd-lessons_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_lesson_layout_design', 'label' => esc_html__( 'Lesson Above Area Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-lessons_title_background' ), 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-lessons_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .sfwd-lessons-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Lesson Title Background', 'kadence' ), ), ), 'sfwd-lessons_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_lesson_layout_design', 'default' => kadence()->default( 'sfwd-lessons_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-lessons_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'sfwd-lessons_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_lesson_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'sfwd-lessons_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-lessons-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-lessons_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'sfwd-lessons_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'sfwd_lesson_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'sfwd-lessons_title_border' ), 'context' => array( array( 'setting' => 'sfwd-lessons_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-lessons_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'sfwd-lessons_title_top_border', 'border_bottom' => 'sfwd-lessons_title_bottom_border', ), 'live_method' => array( 'sfwd-lessons_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-lessons-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'sfwd-lessons_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-lessons-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_sfwd-lessons_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_lesson_layout', 'priority' => 10, 'label' => esc_html__( 'Lesson Layout', 'kadence' ), 'settings' => false, ), 'info_sfwd-lessons_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_lesson_layout_design', 'priority' => 10, 'label' => esc_html__( 'Lesson Layout', 'kadence' ), 'settings' => false, ), 'sfwd-lessons_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_lesson_layout', 'label' => esc_html__( 'Lesson Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-lessons_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'sfwd-lessons_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'sfwd_lesson_layout', 'label' => esc_html__( 'Lesson Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-lessons_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'sfwd-lessons_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_lesson_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-lessons_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-lessons', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-lessons_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_lesson_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-lessons_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-lessons', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'sfwd-lessons_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_lesson_layout', 'priority' => 20, 'default' => kadence()->default( 'sfwd-lessons_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-lessons_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_lesson_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'sfwd-lessons_feature_position' ), 'context' => array( array( 'setting' => 'sfwd-lessons_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'sfwd-lessons_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_lesson_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'sfwd-lessons_feature_ratio' ), 'context' => array( array( 'setting' => 'sfwd-lessons_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-lessons .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'sfwd-lessons_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_lesson_layout_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-lessons_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-lessons', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Lesson Background', 'kadence' ), ), ), 'sfwd-lessons_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_lesson_layout_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-lessons_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-lessons .content-bg, body.single-sfwd-lessons.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Lesson Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-mobile-html-options.php 0000644 00000011746 15151531436 0014115 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'mobile_html_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'mobile_html', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'mobile_html_content' => array( 'control_type' => 'kadence_editor_control', 'section' => 'mobile_html', 'sanitize' => 'wp_kses_post', 'priority' => 4, 'default' => kadence()->default( 'mobile_html_content' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'id' => 'mobile_html', ), 'partial' => array( 'selector' => '.mobile-html', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_html', ), ), 'mobile_html_wpautop' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'mobile_html', 'default' => kadence()->default( 'mobile_html_wpautop' ), 'label' => esc_html__( 'Automatically Add Paragraphs', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'partial' => array( 'selector' => '.mobile-html', 'container_inclusive' => true, 'render_callback' => 'Kadence\mobile_html', ), ), 'mobile_html_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'mobile_html', 'label' => esc_html__( 'Font', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'mobile_html_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.mobile-html', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'mobile_html_typography', ), ), 'mobile_html_link_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'mobile_html', 'label' => esc_html__( 'Link Colors', 'kadence' ), 'default' => kadence()->default( 'mobile_html_link_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-html a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.mobile-html a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'mobile_html_link_style' => array( 'control_type' => 'kadence_select_control', 'section' => 'mobile_html', 'default' => kadence()->default( 'mobile_html_link_style' ), 'label' => esc_html__( 'Link Style', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'options' => array( 'normal' => array( 'name' => __( 'Underline', 'kadence' ), ), 'plain' => array( 'name' => __( 'No Underline', 'kadence' ), ), ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#mobile-header .mobile-html', 'pattern' => 'inner-link-style-$', 'key' => '', ), ), ), 'mobile_html_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'mobile_html', 'priority' => 10, 'default' => kadence()->default( 'mobile_html_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.mobile-html', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), ); Theme_Customizer::add_settings( $settings ); options/general-scroll-to-top-options.php 0000644 00000032536 15151531436 0014607 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'scroll_up_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'scroll_up', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'scroll_up', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'scroll_up_design', ), 'active' => 'general', ), ), 'scroll_up_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'scroll_up_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'scroll_up', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'scroll_up_design', ), 'active' => 'design', ), ), 'scroll_up' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'scroll_up', 'default' => kadence()->default( 'scroll_up' ), 'label' => esc_html__( 'Enable Scroll To Top', 'kadence' ), 'transport' => 'refresh', ), 'scroll_up_icon' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'scroll_up', 'priority' => 10, 'default' => kadence()->default( 'scroll_up_icon' ), 'label' => esc_html__( 'Scroll Up Icon', 'kadence' ), 'partial' => array( 'selector' => '.scroll-up-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\scroll_up', ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'arrow-up' => array( 'icon' => 'arrowUp', ), 'arrow-up2' => array( 'icon' => 'arrowUp2', ), 'chevron-up' => array( 'icon' => 'chevronUp', ), 'chevron-up2' => array( 'icon' => 'chevronUp2', ), ), 'responsive' => false, ), ), 'scroll_up_icon_size' => array( 'control_type' => 'kadence_range_control', 'section' => 'scroll_up', 'label' => esc_html__( 'Icon Size', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader, #kt-scroll-up', 'property' => 'font-size', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'scroll_up_icon_size' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => true, ), ), 'scroll_up_side' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'scroll_up', 'default' => kadence()->default( 'scroll_up_side' ), 'label' => esc_html__( 'Align', 'kadence' ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.scroll-up-wrap', 'pattern' => 'scroll-up-side-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'name' => __( 'Left', 'kadence' ), 'icon' => '', ), 'right' => array( 'name' => __( 'Right', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'scroll_up_side_offset' => array( 'control_type' => 'kadence_range_control', 'section' => 'scroll_up', 'label' => esc_html__( 'Side Offset', 'kadence' ), 'default' => kadence()->default( 'scroll_up_side_offset' ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader.scroll-up-side-right, #kt-scroll-up.scroll-up-side-right', 'pattern' => '$', 'property' => 'right', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader.scroll-up-side-left, #kt-scroll-up.scroll-up-side-left', 'pattern' => '$', 'property' => 'left', 'key' => 'size', ), ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vw' => 0, ), 'max' => array( 'px' => 600, 'em' => 20, 'rem' => 20, 'vw' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vw' ), 'responsive' => true, ), ), 'scroll_up_bottom_offset' => array( 'control_type' => 'kadence_range_control', 'section' => 'scroll_up', 'label' => esc_html__( 'Bottom Offset', 'kadence' ), 'default' => kadence()->default( 'scroll_up_bottom_offset' ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader, #kt-scroll-up', 'pattern' => '$', 'property' => 'bottom', 'key' => 'size', ), ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vh' => 0, ), 'max' => array( 'px' => 600, 'em' => 20, 'rem' => 20, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), 'responsive' => true, ), ), 'scroll_up_visiblity' => array( 'control_type' => 'kadence_check_icon_control', 'section' => 'scroll_up', 'default' => kadence()->default( 'scroll_up_visiblity' ), 'label' => esc_html__( 'Visibility', 'kadence' ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'partial' => array( 'selector' => '.scroll-up-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\scroll_up', ), 'input_attrs' => array( 'options' => array( 'desktop' => array( 'name' => __( 'Desktop', 'kadence' ), 'icon' => 'desktop', ), 'tablet' => array( 'name' => __( 'Tablet', 'kadence' ), 'icon' => 'tablet', ), 'mobile' => array( 'name' => __( 'Mobile', 'kadence' ), 'icon' => 'smartphone', ), ), ), ), 'scroll_up_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'scroll_up_design', 'default' => kadence()->default( 'scroll_up_style' ), 'label' => esc_html__( 'Scroll Button Style', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '#kt-scroll-up-reader, #kt-scroll-up', 'pattern' => 'scroll-up-style-$', 'key' => '', ), ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'filled' => array( 'name' => __( 'Filled', 'kadence' ), ), 'outline' => array( 'name' => __( 'Outline', 'kadence' ), ), 'secondary' => array( 'name' => __( 'Secondary', 'kadence' ), ), ), 'responsive' => false, ), ), 'scroll_up_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'scroll_up_design', 'label' => esc_html__( 'Colors', 'kadence' ), 'default' => kadence()->default( 'scroll_up_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader, #kt-scroll-up', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader:hover, #kt-scroll-up:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'scroll_up_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'scroll_up_design', 'label' => esc_html__( 'Background Colors', 'kadence' ), 'default' => kadence()->default( 'scroll_up_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader, #kt-scroll-up', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader:hover, #kt-scroll-up:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), array( 'setting' => 'scroll_up_style', 'operator' => '=', 'value' => 'filled', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'scroll_up_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'scroll_up_design', 'label' => esc_html__( 'Border Colors', 'kadence' ), 'default' => kadence()->default( 'scroll_up_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader, #kt-scroll-up', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader:hover, #kt-scroll-up:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'scroll_up_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'scroll_up_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'scroll_up_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '#kt-scroll-up-reader, #kt-scroll-up', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'scroll_up_radius' => array( 'control_type' => 'kadence_measure_control', 'section' => 'scroll_up_design', 'priority' => 10, 'default' => kadence()->default( 'scroll_up_radius' ), 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader, #kt-scroll-up', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'scroll_up_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'scroll_up_design', 'priority' => 10, 'default' => kadence()->default( 'scroll_up_padding' ), 'label' => esc_html__( 'Scroll Button Padding', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#kt-scroll-up-reader, #kt-scroll-up', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'context' => array( array( 'setting' => 'scroll_up', 'operator' => '==', 'value' => true, ), ), 'input_attrs' => array( 'responsive' => true, ), ), ) ); options/lifter-course-layout-options.php 0000644 00000055574 15151531436 0014563 0 ustar 00 <?php /** * Product Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'course_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'course_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'course_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'course_layout_design', ), 'active' => 'general', ), ), 'course_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'course_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'course_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'course_layout_design', ), 'active' => 'design', ), ), 'info_course_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'course_layout', 'priority' => 2, 'label' => esc_html__( 'Course Title', 'kadence' ), 'settings' => false, ), 'info_course_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'course_layout_design', 'priority' => 2, 'label' => esc_html__( 'Course Title', 'kadence' ), 'settings' => false, ), 'course_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'course_layout', 'priority' => 3, 'default' => kadence()->default( 'course_title' ), 'label' => esc_html__( 'Show Course Title?', 'kadence' ), 'transport' => 'refresh', ), 'course_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'label' => esc_html__( 'Course Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'course_title_layout' ), 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'course_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'priority' => 4, 'default' => kadence()->default( 'course_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.course-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'course_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'label' => esc_html__( 'Course Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'course_title_align' ), 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.course-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'course_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'course_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .course-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'course_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'course_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'course_layout', 'priority' => 6, 'default' => kadence()->default( 'course_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'course_title_elements', 'title' => 'course_title_element_title', 'breadcrumb' => 'course_title_element_breadcrumb', ), 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'course_title_element', ), ), 'course_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'course_layout_design', 'label' => esc_html__( 'Course Title Font', 'kadence' ), 'default' => kadence()->default( 'course_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.course-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'course_title_font', 'headingInherit' => true, ), ), 'course_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'course_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'course_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.course-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.course-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'course_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'course_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'course_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.course-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'course_title_breadcrumb_font', 'options' => 'no-color', ), ), 'course_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'course_layout_design', 'label' => esc_html__( 'Course Above Area Background', 'kadence' ), 'default' => kadence()->default( 'course_title_background' ), 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .course-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Title Background', 'kadence' ), ), ), 'course_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'course_layout_design', 'default' => kadence()->default( 'course_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'course_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'course_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'course_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.course-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'course_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'course_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'course_title_border' ), 'context' => array( array( 'setting' => 'course_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'course_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'course_title_top_border', 'border_bottom' => 'course_title_bottom_border', ), 'live_method' => array( 'course_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.course-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'course_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.course-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_course_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'course_layout', 'priority' => 10, 'label' => esc_html__( 'Course Layout', 'kadence' ), 'settings' => false, ), 'info_course_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'course_layout_design', 'priority' => 10, 'label' => esc_html__( 'Course Layout', 'kadence' ), 'settings' => false, ), 'course_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'label' => esc_html__( 'Course Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'course_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'course_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'course_layout', 'label' => esc_html__( 'Course Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'course_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'course_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'course_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-course', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'course_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'course_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-course', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'course_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'course_layout', 'priority' => 20, 'default' => kadence()->default( 'course_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ), 'course_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'course_feature_position' ), 'context' => array( array( 'setting' => 'course_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'course_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'course_feature_ratio' ), 'context' => array( array( 'setting' => 'course_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-course .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'info_course_syllabus_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'course_layout', 'priority' => 20, 'label' => esc_html__( 'Course Syllabus Layout', 'kadence' ), 'settings' => false, ), 'course_syllabus_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'priority' => 20, 'label' => esc_html__( 'Course Syllabus Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( 'course_syllabus_columns' ), 'input_attrs' => array( 'layout' => array( '1' => array( 'name' => __( '1', 'kadence' ), ), '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), ), 'responsive' => false, ), ), 'course_syllabus_lesson_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'label' => esc_html__( 'Course Lesson Style', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'course_syllabus_lesson_style' ), 'context' => array( array( 'setting' => 'course_syllabus_columns', 'operator' => '=', 'value' => '1', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'name' => __( 'Standard', 'kadence' ), ), 'tiles' => array( 'name' => __( 'Two Column Tiles', 'kadence' ), ), 'center' => array( 'name' => __( 'One Column Center', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-tiny-text', ), ), 'course_syllabus_thumbs' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'course_layout', 'priority' => 20, 'default' => kadence()->default( 'course_syllabus_thumbs' ), 'label' => esc_html__( 'Show Lesson Thumbnail in Syllabus?', 'kadence' ), 'transport' => 'refresh', ), 'course_syllabus_thumbs_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'course_layout', 'label' => esc_html__( 'Lesson Thumbnail Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'course_syllabus_thumbs_ratio' ), 'context' => array( array( 'setting' => 'course_syllabus_thumbs', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-course .llms-lesson-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'course_comments' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'course_layout', 'priority' => 20, 'default' => kadence()->default( 'course_comments' ), 'label' => esc_html__( 'Show Comments?', 'kadence' ), 'transport' => 'refresh', ), 'course_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'course_layout_design', 'priority' => 20, 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'course_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-course', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Background', 'kadence' ), ), ), 'course_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'course_layout_design', 'priority' => 20, 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'course_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-course .content-bg, body.single-course.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/tec-event-layout-options.php 0000644 00000053671 15151531436 0013666 0 ustar 00 <?php /** * Event Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'tribe_events_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'tribe_events_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'tribe_events_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'tribe_events_layout_design', ), 'active' => 'general', ), ), 'tribe_events_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'tribe_events_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'tribe_events_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'tribe_events_layout_design', ), 'active' => 'design', ), ), 'info_tribe_events_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'tribe_events_layout', 'priority' => 2, 'label' => esc_html__( 'Event Title', 'kadence' ), 'settings' => false, ), 'info_tribe_events_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'tribe_events_layout_design', 'priority' => 2, 'label' => esc_html__( 'Event Title', 'kadence' ), 'settings' => false, ), 'tribe_events_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'tribe_events_layout', 'priority' => 3, 'default' => kadence()->default( 'tribe_events_title' ), 'label' => esc_html__( 'Show Event Title?', 'kadence' ), 'transport' => 'refresh', ), 'tribe_events_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'tribe_events_layout', 'label' => esc_html__( 'Event Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'tribe_events_title_layout' ), 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'tribe_events_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'tribe_events_layout', 'priority' => 4, 'default' => kadence()->default( 'tribe_events_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'tribe_events_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.tribe_events-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'tribe_events_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'tribe_events_layout', 'label' => esc_html__( 'Event Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'tribe_events_title_align' ), 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.tribe_events-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'tribe_events_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'tribe_events_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'tribe_events_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .tribe_events-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'tribe_events_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'tribe_events_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'tribe_events_layout', 'priority' => 6, 'default' => kadence()->default( 'tribe_events_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'tribe_events_title_elements', 'title' => 'tribe_events_title_element_title', 'back_link' => 'tribe_events_title_element_back_link', 'breadcrumb' => 'tribe_events_title_element_breadcrumb', ), 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'tribe_events_title_element', ), ), 'tribe_events_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'tribe_events_layout_design', 'label' => esc_html__( 'Event Title Font', 'kadence' ), 'default' => kadence()->default( 'tribe_events_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.tribe_events-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'tribe_events_title_font', 'headingInherit' => true, ), ), 'tribe_events_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'tribe_events_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'tribe_events_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.tribe_events-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.tribe_events-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'tribe_events_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'tribe_events_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'tribe_events_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.tribe_events-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'tribe_events_title_breadcrumb_font', 'options' => 'no-color', ), ), 'tribe_events_title_back_link_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'tribe_events_layout_design', 'label' => esc_html__( 'Back Link Colors', 'kadence' ), 'default' => kadence()->default( 'tribe_events_title_back_link_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.tribe_events-title .tribe-events-back a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.tribe_events-title .tribe-events-back a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'tribe_events_title_back_link_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'tribe_events_layout_design', 'label' => esc_html__( 'Back Link Font', 'kadence' ), 'default' => kadence()->default( 'tribe_events_title_back_link_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.tribe_events-title .tribe-events-back a', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'tribe_events_title_back_link_font', 'options' => 'no-color', ), ), 'tribe_events_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'tribe_events_layout_design', 'label' => esc_html__( 'Event Above Area Background', 'kadence' ), 'default' => kadence()->default( 'tribe_events_title_background' ), 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'tribe_events_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .tribe_events-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Event Title Background', 'kadence' ), ), ), 'tribe_events_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'tribe_events_layout_design', 'default' => kadence()->default( 'tribe_events_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'tribe_events_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'tribe_events_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'tribe_events_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'tribe_events_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.tribe_events-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'tribe_events_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'tribe_events_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'tribe_events_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'tribe_events_title_border' ), 'context' => array( array( 'setting' => 'tribe_events_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'tribe_events_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'tribe_events_title_top_border', 'border_bottom' => 'tribe_events_title_bottom_border', ), 'live_method' => array( 'tribe_events_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.tribe_events-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'tribe_events_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.tribe_events-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_tribe_events_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'tribe_events_layout', 'priority' => 10, 'label' => esc_html__( 'Event Layout', 'kadence' ), 'settings' => false, ), 'info_tribe_events_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'tribe_events_layout_design', 'priority' => 10, 'label' => esc_html__( 'Event Layout', 'kadence' ), 'settings' => false, ), 'tribe_events_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'tribe_events_layout', 'label' => esc_html__( 'Event Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'tribe_events_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'tribe_events_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'tribe_events_layout', 'label' => esc_html__( 'Event Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'tribe_events_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'tribe_events_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'tribe_events_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'tribe_events_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-tribe_events', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'tribe_events_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'tribe_events_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'tribe_events_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-tribe_events', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), // 'tribe_events_feature' => array( // 'control_type' => 'kadence_switch_control', // 'sanitize' => 'kadence_sanitize_toggle', // 'section' => 'tribe_events_layout', // 'priority' => 20, // 'default' => kadence()->default( 'tribe_events_feature' ), // 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), // 'transport' => 'refresh', // ), // 'tribe_events_feature_position' => array( // 'control_type' => 'kadence_radio_icon_control', // 'section' => 'tribe_events_layout', // 'label' => esc_html__( 'Featured Image Position', 'kadence' ), // 'priority' => 20, // 'transport' => 'refresh', // 'default' => kadence()->default( 'tribe_events_feature_position' ), // 'context' => array( // array( // 'setting' => 'tribe_events_feature', // 'operator' => '=', // 'value' => true, // ), // ), // 'input_attrs' => array( // 'layout' => array( // 'above' => array( // 'name' => __( 'Above', 'kadence' ), // ), // 'behind' => array( // 'name' => __( 'Behind', 'kadence' ), // ), // 'below' => array( // 'name' => __( 'Below', 'kadence' ), // ), // ), // 'responsive' => false, // ), // ), // 'tribe_events_feature_ratio' => array( // 'control_type' => 'kadence_radio_icon_control', // 'section' => 'tribe_events_layout', // 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), // 'priority' => 20, // 'default' => kadence()->default( 'tribe_events_feature_ratio' ), // 'context' => array( // array( // 'setting' => 'tribe_events_feature', // 'operator' => '=', // 'value' => true, // ), // ), // 'live_method' => array( // array( // 'type' => 'class', // 'selector' => 'body.single-tribe_events .article-post-thumbnail', // 'pattern' => 'kadence-thumbnail-ratio-$', // 'key' => '', // ), // ), // 'input_attrs' => array( // 'layout' => array( // 'inherit' => array( // 'name' => __( 'Inherit', 'kadence' ), // ), // '1-1' => array( // 'name' => __( '1:1', 'kadence' ), // ), // '3-4' => array( // 'name' => __( '4:3', 'kadence' ), // ), // '2-3' => array( // 'name' => __( '3:2', 'kadence' ), // ), // '9-16' => array( // 'name' => __( '16:9', 'kadence' ), // ), // '1-2' => array( // 'name' => __( '2:1', 'kadence' ), // ), // ), // 'responsive' => false, // 'class' => 'kadence-three-col-short', // ), // ), 'tribe_events_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'tribe_events_layout_design', 'priority' => 20, 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'tribe_events_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-tribe_events', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Event Background', 'kadence' ), ), ), 'tribe_events_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'tribe_events_layout_design', 'priority' => 20, 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'tribe_events_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-tribe_events .content-bg, body.single-tribe_events.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Event Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-secondary-navigation-options.php 0000644 00000031062 15151531436 0016021 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'secondary_navigation_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'secondary_navigation', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'secondary_navigation_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'secondary_navigation', 'settings' => false, 'priority' => 5, 'label' => esc_html__( 'Select Menu', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'section' => 'menu_locations', ), ), 'secondary_navigation_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'secondary_navigation', 'priority' => 5, 'label' => esc_html__( 'Items Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item > a', 'property' => 'padding-left', 'pattern' => 'calc($ / 2)', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item > a', 'property' => 'padding-right', 'pattern' => 'calc($ / 2)', 'key' => 'size', ), ), 'default' => kadence()->default( 'secondary_navigation_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vw' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, 'vw' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 0.01, ), 'units' => array( 'px', 'em', 'rem', 'vw' ), 'responsive' => false, ), ), 'secondary_navigation_open_type' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'secondary_navigation', 'priority' => 10, 'default' => kadence()->default( 'secondary_navigation_open_type' ), 'label' => esc_html__( 'Open on: ', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'layout' => array( 'hover' => array( 'tooltip' => __( 'Hover', 'kadence' ), 'name' => __( 'Hover', 'kadence' ), 'icon' => '', ), 'click' => array( 'tooltip' => __( 'Click', 'kadence' ), 'name' => __( 'Click', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, 'class' => 'radio-btn-width-50', ), ), 'secondary_navigation_stretch' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'secondary_navigation', 'priority' => 6, 'default' => kadence()->default( 'secondary_navigation_stretch' ), 'label' => esc_html__( 'Stretch Menu?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-header-item-secondary-navigation', 'pattern' => 'header-navigation-layout-stretch-$', 'key' => 'switch', ), ), ), 'secondary_navigation_fill_stretch' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'secondary_navigation', 'priority' => 6, 'default' => kadence()->default( 'secondary_navigation_fill_stretch' ), 'label' => esc_html__( 'Fill and Center Menu Items?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'secondary_navigation_stretch', 'operator' => '==', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-header-item-secondary-navigation', 'pattern' => 'header-navigation-layout-fill-stretch-$', 'key' => 'switch', ), ), ), 'secondary_navigation_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'secondary_navigation', 'priority' => 10, 'default' => kadence()->default( 'secondary_navigation_style' ), 'label' => esc_html__( 'Navigation Style', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.secondary-navigation', 'pattern' => 'header-navigation-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Standard', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullheight' => array( 'tooltip' => __( 'Menu items are full height', 'kadence' ), 'name' => __( 'Full Height', 'kadence' ), 'icon' => '', ), 'underline' => array( 'tooltip' => __( 'Underline Hover/Active', 'kadence' ), 'name' => __( 'Underline', 'kadence' ), 'icon' => '', ), 'underline-fullheight' => array( 'tooltip' => __( 'Full Height Underline Hover/Active', 'kadence' ), 'name' => __( 'Full Height Underline', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, 'class' => 'radio-btn-width-50', ), ), 'secondary_navigation_vertical_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'secondary_navigation', 'label' => esc_html__( 'Items Top and Bottom Padding', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'secondary_navigation_style', 'operator' => 'sub_object_does_not_contain', 'sub_key' => 'layout', 'responsive' => false, 'value' => 'fullheight', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item > a', 'property' => 'padding-top', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item > a', 'property' => 'padding-bottom', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'secondary_navigation_vertical_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vh' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, 'vh' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 0.01, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), 'responsive' => false, ), ), 'secondary_navigation_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'secondary_navigation', 'label' => esc_html__( 'Navigation Colors', 'kadence' ), 'default' => kadence()->default( 'secondary_navigation_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item > a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item > a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item.current-menu-item > a, .secondary-navigation .secondary-menu-container > ul > li.current_page_item > a', 'property' => 'color', 'pattern' => '$', 'key' => 'active', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Color', 'kadence' ), 'palette' => true, ), ), ), ), 'secondary_navigation_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'secondary_navigation', 'label' => esc_html__( 'Navigation Background', 'kadence' ), 'default' => kadence()->default( 'secondary_navigation_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item > a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item.current-menu-item > a, .secondary-navigation .secondary-menu-container > ul > li.current_page_item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'active', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Background', 'kadence' ), 'palette' => true, ), ), ), ), 'secondary_navigation_parent_active' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'secondary_navigation', 'default' => kadence()->default( 'secondary_navigation_parent_active' ), 'label' => esc_html__( 'Make Parent of Current Menu Item Active?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), ), 'secondary_navigation_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'secondary_navigation', 'label' => esc_html__( 'Navigation Font', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'secondary_navigation_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.secondary-navigation .secondary-menu-container > ul > li.menu-item a', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'secondary_navigation_typography', 'options' => 'no-color', ), ), 'info_secondary_submenu' => array( 'control_type' => 'kadence_title_control', 'section' => 'secondary_navigation', 'priority' => 20, 'label' => esc_html__( 'Dropdown Options', 'kadence' ), 'settings' => false, ), 'secondary_dropdown_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'secondary_navigation', 'settings' => false, 'priority' => 20, 'label' => esc_html__( 'Dropdown Options', 'kadence' ), 'input_attrs' => array( 'section' => 'kadence_customizer_dropdown_navigation', ), ), ); Theme_Customizer::add_settings( $settings ); options/header-dropdown-options.php 0000644 00000024274 15151531436 0013540 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'dropdown_navigation_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'dropdown_navigation', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'dropdown_navigation', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'dropdown_navigation_design', ), 'active' => 'general', ), ), 'dropdown_navigation_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'dropdown_navigation_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'dropdown_navigation', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'dropdown_navigation_design', ), 'active' => 'design', ), ), 'dropdown_navigation_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'dropdown_navigation_design', 'label' => esc_html__( 'Dropdown Colors', 'kadence' ), 'default' => kadence()->default( 'dropdown_navigation_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item > a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item > a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul > li.menu-item.current-menu-item > a, .header-navigation .header-menu-container ul ul > li.menu-item.current_page_item > a', 'property' => 'color', 'pattern' => '$', 'key' => 'active', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Color', 'kadence' ), 'palette' => true, ), ), ), ), 'dropdown_navigation_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'dropdown_navigation_design', 'priority' => 20, 'label' => esc_html__( 'Dropdown Background', 'kadence' ), 'default' => kadence()->default( 'dropdown_navigation_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item > a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item.current-menu-item > a, .header-navigation .header-menu-container ul ul li.menu-item.current_page_item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'active', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Background', 'kadence' ), 'palette' => true, ), ), ), ), 'dropdown_navigation_divider' => array( 'control_type' => 'kadence_border_control', 'section' => 'dropdown_navigation_design', 'priority' => 20, 'label' => esc_html__( 'Item Divider', 'kadence' ), 'default' => kadence()->default( 'dropdown_navigation_divider' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.header-navigation ul ul li.menu-item', 'pattern' => '$', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'dropdown_navigation_border_radius' => array( 'control_type' => 'kadence_measure_control', 'section' => 'dropdown_navigation_design', 'priority' => 20, 'default' => kadence()->default( 'dropdown_navigation_border_radius' ), 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item, .header-menu-container ul.menu > li.kadence-menu-mega-enabled > ul > li.menu-item > a', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item > a:hover', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item.current-menu-item > a', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'dropdown_navigation_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'dropdown_navigation_design', 'priority' => 20, 'label' => esc_html__( 'Dropdown Font', 'kadence' ), 'default' => kadence()->default( 'dropdown_navigation_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item > a', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'dropdown_navigation_typography', 'options' => 'no-color', ), ), 'dropdown_navigation_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'dropdown_navigation_design', 'priority' => 20, 'label' => esc_html__( 'Dropdown Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.header-navigation .header-menu-container ul ul.submenu', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'dropdown_navigation_shadow' ), ), 'dropdown_navigation_reveal' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'dropdown_navigation', 'priority' => 20, 'default' => kadence()->default( 'dropdown_navigation_reveal' ), 'label' => esc_html__( 'Dropdown Reveal', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.header-navigation', 'pattern' => 'header-navigation-dropdown-animation-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'none' => array( 'name' => __( 'None', 'kadence' ), ), 'fade' => array( 'name' => __( 'Fade', 'kadence' ), ), 'fade-up' => array( 'name' => __( 'Fade Up', 'kadence' ), ), 'fade-down' => array( 'name' => __( 'Fade Down', 'kadence' ), ), ), 'responsive' => false, ), ), 'dropdown_navigation_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'dropdown_navigation', 'priority' => 20, 'label' => esc_html__( 'Dropdown Width', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.wp-site-blocks .header-navigation .header-menu-container ul ul li.menu-item > a', 'property' => 'width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'dropdown_navigation_width' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vw' => 0, ), 'max' => array( 'px' => 600, 'em' => 50, 'rem' => 50, 'vw' => 50, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vw' ), 'responsive' => false, ), ), 'dropdown_navigation_vertical_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'dropdown_navigation', 'priority' => 20, 'label' => esc_html__( 'Dropdown Items Vertical Spacing', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item > a', 'property' => 'padding-top', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '.header-navigation .header-menu-container ul ul li.menu-item > a', 'property' => 'padding-bottom', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'dropdown_navigation_vertical_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vh' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, 'vh' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 0.01, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), 'responsive' => false, ), ), ) ); options/general-performance-options.php 0000644 00000007214 15151531436 0014365 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-custom fonts-flush-button wp-clearfix"> <span class="customize-control-title"> <?php esc_html_e( 'Flush Local Fonts Cache', 'kadence' ); ?> </span> <span class="description customize-control-description"> <?php esc_html_e( 'Click the button to reset the local fonts cache', 'kadence' ); ?> </span> <input type="button" class="button kadence-flush-local-fonts-button" name="kadence-flush-local-fonts-button" value="<?php esc_attr_e( 'Flush Local Font Files', 'kadence' ); ?>" /> </div> <?php $kadence_flush_button = ob_get_clean(); Theme_Customizer::add_settings( array( 'microdata' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_performance', 'default' => kadence()->default( 'microdata' ), 'label' => esc_html__( 'Enable Microdata Schema', 'kadence' ), ), 'theme_json_mode' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_performance', 'default' => kadence()->default( 'theme_json_mode' ), 'label' => esc_html__( 'Enable Optimized Group Block', 'kadence' ), ), 'enable_scroll_to_id' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_performance', 'default' => kadence()->default( 'enable_scroll_to_id' ), 'label' => esc_html__( 'Enable Scroll To ID', 'kadence' ), ), 'lightbox' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_performance', 'default' => kadence()->default( 'lightbox' ), 'label' => esc_html__( 'Enable Lightbox', 'kadence' ), ), 'load_fonts_local' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_performance', 'default' => kadence()->default( 'load_fonts_local' ), 'label' => esc_html__( 'Load Google Fonts Locally', 'kadence' ), ), 'preload_fonts_local' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_performance', 'default' => kadence()->default( 'preload_fonts_local' ), 'label' => esc_html__( 'Preload Local Fonts', 'kadence' ), 'context' => array( array( 'setting' => 'load_fonts_local', 'operator' => '==', 'value' => true, ), ), ), 'load_fonts_local_flush' => array( 'control_type' => 'kadence_blank_control', 'section' => 'general_performance', 'settings' => false, 'description' => $kadence_flush_button, 'context' => array( array( 'setting' => 'load_fonts_local', 'operator' => '==', 'value' => true, ), ), ), 'enable_preload' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_performance', 'default' => kadence()->default( 'enable_preload' ), 'label' => esc_html__( 'Enable CSS Preload', 'kadence' ), ), 'disable_sitemap' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_performance', 'default' => kadence()->default( 'disable_sitemap' ), 'label' => esc_html__( 'Disable Default Sitemap', 'kadence' ), ), ) ); options/footer-widget5-options.php 0000644 00000005721 15151531436 0013316 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'footer_widget5_breaker' => array( 'control_type' => 'kadence_blank_control', 'section' => 'sidebar-widgets-footer5', 'settings' => false, 'priority' => 5, 'description' => $compontent_tabs, ), 'footer_widget5_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer5', 'label' => esc_html__( 'Content Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget5_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget5', 'pattern' => array( 'desktop' => 'content-align-$', 'tablet' => 'content-tablet-align-$', 'mobile' => 'content-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'footer_widget5_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sidebar-widgets-footer5', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'priority' => 5, 'default' => kadence()->default( 'footer_widget5_vertical_align' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-widget5', 'pattern' => array( 'desktop' => 'content-valign-$', 'tablet' => 'content-tablet-valign-$', 'mobile' => 'content-mobile-valign-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/secondary-button-options.php 0000644 00000015364 15151531437 0013757 0 ustar 00 <?php /** * Secondary Button Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'buttons_secondary_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'secondary_button', 'label' => esc_html__( 'Text Colors', 'kadence' ), 'default' => kadence()->default( 'buttons_secondary_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.button.button-style-secondary', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.button.button-style-secondary:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'buttons_secondary_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'secondary_button', 'label' => esc_html__( 'Background Colors', 'kadence' ), 'default' => kadence()->default( 'buttons_secondary_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.button.button-style-secondary', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.button.button-style-secondary:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'buttons_secondary_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'secondary_button', 'label' => esc_html__( 'Border Colors', 'kadence' ), 'default' => kadence()->default( 'buttons_secondary_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.button.button-style-secondary', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.button.button-style-secondary:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'buttons_secondary_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'secondary_button', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'buttons_secondary_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.button.button-style-secondary', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => true, 'color' => false, ), ), 'buttons_secondary_border_radius' => array( 'control_type' => 'kadence_range_control', 'section' => 'secondary_button', 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.button.button-style-secondary', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'buttons_secondary_border_radius' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, '%' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, '%' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', '%' ), 'responsive' => true, ), ), 'buttons_secondary_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'secondary_button', 'label' => esc_html__( 'Font', 'kadence' ), 'default' => kadence()->default( 'buttons_secondary_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.button.button-style-secondary', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'buttons_secondary_typography', 'options' => 'no-color', ), ), 'buttons_secondary_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'secondary_button', 'priority' => 10, 'default' => kadence()->default( 'buttons_secondary_padding' ), 'label' => esc_html__( 'Padding', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.button.button-style-secondary', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => true, ), ), 'buttons_secondary_shadow' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'secondary_button', 'priority' => 20, 'label' => esc_html__( 'Button Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.button.button-style-secondary', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'buttons_secondary_shadow' ), ), 'buttons_secondary_shadow_hover' => array( 'control_type' => 'kadence_shadow_control', 'section' => 'secondary_button', 'priority' => 20, 'label' => esc_html__( 'Button Hover State Shadow', 'kadence' ), 'live_method' => array( array( 'type' => 'css_boxshadow', 'selector' => '.button.button-style-secondary:hover', 'property' => 'box-shadow', 'pattern' => '$', 'key' => '', ), ), 'default' => kadence()->default( 'buttons_secondary_shadow_hover' ), ), ) ); options/forum-archive-layout-options.php 0000644 00000055115 15151531437 0014537 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'forum_archive_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'forum_archive', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'forum_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'forum_archive_design', ), 'active' => 'general', ), ), 'forum_archive_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'forum_archive_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'forum_archive', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'forum_archive_design', ), 'active' => 'design', ), ), 'info_forum_archive_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'forum_archive', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'info_forum_archive_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'forum_archive_design', 'priority' => 2, 'label' => esc_html__( 'Archive Title', 'kadence' ), 'settings' => false, ), 'forum_archive_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'forum_archive', 'priority' => 3, 'default' => kadence()->default( 'forum_archive_title' ), 'label' => esc_html__( 'Show Archive Title?', 'kadence' ), 'transport' => 'refresh', ), 'forum_archive_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_archive', 'label' => esc_html__( 'Archive Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'forum_archive_title_layout' ), 'context' => array( array( 'setting' => 'forum_archive_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'forum_archive_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_archive', 'priority' => 4, 'default' => kadence()->default( 'forum_archive_title_inner_layout' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'forum_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.forum-archive-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'forum_archive_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_archive', 'label' => esc_html__( 'Course Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'forum_archive_title_align' ), 'context' => array( array( 'setting' => 'forum_archive_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.forum-archive-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'forum_archive_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'forum_archive', 'priority' => 5, 'label' => esc_html__( 'Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'forum_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .forum-archive-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'forum_archive_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'forum_archive_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'forum_archive', 'priority' => 6, 'default' => kadence()->default( 'forum_archive_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'forum_archive_title_elements', 'title' => 'forum_archive_title_element_title', 'breadcrumb' => 'forum_archive_title_element_breadcrumb', 'search' => 'forum_archive_title_element_search', ), ), 'forum_archive_title_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Title Color', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-archive-title h1', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_archive_title_search_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Search Bar Width', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-archive-title .bbp-search-form', 'property' => 'width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'forum_archive_title_search_width' ), 'input_attrs' => array( 'min' => array( 'px' => 100, 'em' => 4, 'rem' => 4, ), 'max' => array( 'px' => 600, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'forum_archive_title_search_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Input Text Colors', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_search_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-archive-title .bbp-search-form input.search-field, .forum-archive-title .bbp-search-form .kadence-search-icon-wrap', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.forum-archive-title .bbp-search-form input.search-field:focus, .forum-archive-title .bbp-search-form input.search-submit:hover ~ .kadence-search-icon-wrap', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_archive_title_search_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Input Background', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_search_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-archive-title .bbp-search-form input.search-field', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.forum-archive-title .bbp-search-form input.search-field:focus', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_archive_title_search_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_search_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.forum-archive-title .bbp-search-form input.search-field', 'pattern' => '$', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'forum_archive_title_search_border_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Input Border Color', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_search_border_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-archive-title .bbp-search-form input.search-field', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.forum-archive-title .bbp-search-form input.search-field:focus', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_archive_title_search_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Font', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_search_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.forum-archive-title .bbp-search-form input.search-field', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'forum_archive_title_search_typography', 'options' => 'no-color', ), ), 'forum_archive_title_search_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'forum_archive_design', 'default' => kadence()->default( 'forum_archive_title_search_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-archive-title .bbp-search-form form', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'forum_archive_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-archive-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.forum-archive-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'forum_archive_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Archive Title Background', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_background' ), 'context' => array( array( 'setting' => 'forum_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .forum-archive-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Archive Title Background', 'kadence' ), ), ), 'forum_archive_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.forum-archive-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'forum_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'forum_archive_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'forum_archive_title_border' ), 'context' => array( array( 'setting' => 'forum_archive_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'forum_archive_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'forum_archive_title_top_border', 'border_bottom' => 'forum_archive_title_bottom_border', ), 'live_method' => array( 'forum_archive_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.forum-archive-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'forum_archive_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.forum-archive-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_forum_archive_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'forum_archive', 'priority' => 10, 'label' => esc_html__( 'Forum Archive Layout', 'kadence' ), 'settings' => false, ), 'info_forum_archive_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'forum_archive_design', 'priority' => 10, 'label' => esc_html__( 'Forum Archive Layout', 'kadence' ), 'settings' => false, ), 'forum_archive_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_archive', 'label' => esc_html__( 'Archive Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'forum_archive_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'class' => 'kadence-three-col', 'responsive' => false, ), ), 'forum_archive_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_archive', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'forum_archive_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.post-type-archive-forum', 'pattern' => 'content-style-$', 'key' => '', ), array( 'type' => 'class', 'selector' => 'body.forum-archive', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'forum_archive_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'forum_archive', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'forum_archive_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.post-type-archive-forum, body.forum-archive', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'forum_archive_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'forum_archive_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-forum, body.forum-archive', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Archive Background', 'kadence' ), ), ), 'forum_archive_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'forum_archive_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'forum_archive_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.post-type-archive-forum .content-bg, body.forum-archive .content-bg, body.forum-archive.content-style-unboxed .site, body.post-type-archive-forum.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Archive Content Background', 'kadence' ), ), ), ) ); options/footer-social-options.php 0000644 00000033653 15151531437 0013226 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'footer_social_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'footer_social', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'footer_social', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'footer_social_design', ), 'active' => 'general', ), ), 'footer_social_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'footer_social_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'footer_social', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'footer_social_design', ), 'active' => 'design', ), ), 'footer_social_title' => array( 'control_type' => 'kadence_text_control', 'section' => 'footer_social', 'sanitize' => 'sanitize_text_field', 'priority' => 4, 'label' => esc_html__( 'Title', 'kadence' ), 'default' => kadence()->default( 'footer_social_title' ), 'partial' => array( 'selector' => '.footer-social-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\footer_social', ), ), 'footer_social_items' => array( 'control_type' => 'kadence_social_control', 'section' => 'footer_social', 'priority' => 6, 'default' => kadence()->default( 'footer_social_items' ), 'label' => esc_html__( 'Social Items', 'kadence' ), 'partial' => array( 'selector' => '.footer-social-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\footer_social', ), ), 'footer_social_show_label' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'footer_social', 'priority' => 8, 'default' => kadence()->default( 'footer_social_show_label' ), 'label' => esc_html__( 'Show Icon Label?', 'kadence' ), 'partial' => array( 'selector' => '.footer-social-wrap', 'container_inclusive' => true, 'render_callback' => 'Kadence\footer_social', ), ), 'footer_social_item_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_social', 'label' => esc_html__( 'Item Spacing', 'kadence' ), 'default' => kadence()->default( 'footer_social_item_spacing' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-footer-wrap .footer-social-wrap .footer-social-inner-wrap', 'property' => 'gap', 'pattern' => '$', 'key' => 'size', ), ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 50, 'em' => 3, 'rem' => 3, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'footer_social_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_social', 'label' => esc_html__( 'Content Align', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'footer_social_align' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-social', 'pattern' => array( 'desktop' => 'content-align-$', 'tablet' => 'content-tablet-align-$', 'mobile' => 'content-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'footer_social_vertical_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_social', 'label' => esc_html__( 'Content Vertical Align', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'footer_social_vertical_align' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-social', 'pattern' => array( 'desktop' => 'content-valign-$', 'tablet' => 'content-tablet-valign-$', 'mobile' => 'content-mobile-valign-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'top' => array( 'tooltip' => __( 'Top Align', 'kadence' ), 'icon' => 'aligntop', ), 'middle' => array( 'tooltip' => __( 'Middle Align', 'kadence' ), 'icon' => 'alignmiddle', ), 'bottom' => array( 'tooltip' => __( 'Bottom Align', 'kadence' ), 'icon' => 'alignbottom', ), ), 'responsive' => true, ), ), 'footer_social_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_social_design', 'priority' => 10, 'default' => kadence()->default( 'footer_social_style' ), 'label' => esc_html__( 'Social Style', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.footer-social-inner-wrap', 'pattern' => 'social-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'filled' => array( 'name' => __( 'Filled', 'kadence' ), ), 'outline' => array( 'name' => __( 'Outline', 'kadence' ), ), ), 'responsive' => false, ), ), 'footer_social_icon_size' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_social_design', 'label' => esc_html__( 'Icon Size', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.footer-social-wrap .footer-social-inner-wrap', 'property' => 'font-size', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_social_icon_size' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'footer_social_brand' => array( 'control_type' => 'kadence_select_control', 'section' => 'footer_social_design', 'transport' => 'refresh', 'default' => kadence()->default( 'footer_social_brand' ), 'label' => esc_html__( 'Use Brand Colors?', 'kadence' ), 'input_attrs' => array( 'options' => array( '' => array( 'name' => __( 'No', 'kadence' ), ), 'always' => array( 'name' => __( 'Yes', 'kadence' ), ), 'onhover' => array( 'name' => __( 'On Hover', 'kadence' ), ), 'untilhover' => array( 'name' => __( 'Until Hover', 'kadence' ), ), ), ), ), 'footer_social_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'footer_social_design', 'label' => esc_html__( 'Colors', 'kadence' ), 'default' => kadence()->default( 'footer_social_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'footer_social_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'footer_social_design', 'label' => esc_html__( 'Background Colors', 'kadence' ), 'default' => kadence()->default( 'footer_social_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => 'footer_social_style', 'operator' => '=', 'value' => 'filled', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'footer_social_border_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'footer_social_design', 'label' => esc_html__( 'Border Colors', 'kadence' ), 'default' => kadence()->default( 'footer_social_border' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button:hover', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'footer_social_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'footer_social_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'footer_social_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'footer_social_border_radius' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_social_design', 'label' => esc_html__( 'Border Radius', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-footer .site-footer-wrap .site-footer-section .footer-social-wrap .footer-social-inner-wrap .social-button', 'property' => 'border-radius', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_social_border_radius' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, '%' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, '%' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', '%' ), 'responsive' => false, ), ), 'footer_social_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'footer_social_design', 'label' => esc_html__( 'Font', 'kadence' ), 'context' => array( array( 'setting' => 'footer_social_show_label', 'operator' => '=', 'value' => true, ), ), 'default' => kadence()->default( 'footer_social_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.footer-social-wrap a.social-button .social-label', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'footer_social_typography', 'options' => 'no-color', ), ), 'footer_social_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'footer_social_design', 'priority' => 10, 'default' => kadence()->default( 'footer_social_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .footer-social-wrap', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'footer_social_link_to_social_links' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'footer_social', 'settings' => false, 'priority' => 25, 'label' => esc_html__( 'Set Social Links', 'kadence' ), 'input_attrs' => array( 'section' => 'kadence_customizer_general_social', ), ), ); Theme_Customizer::add_settings( $settings ); options/error_log 0000644 00000000421 15151531437 0010156 0 ustar 00 [03-Mar-2026 00:41:25 UTC] PHP Fatal error: Namespace declaration statement has to be the very first statement or after any declare call in the script in /home/vblioqus/public_html/wp-content/themes/kadence/inc/customizer/options/post-archive-layout-options.php on line 9 options/general-breadcrumb-options.php 0000644 00000002607 15151531437 0014174 0 ustar 00 <?php /** * Breadcrumb Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'breadcrumb_engine' => array( 'control_type' => 'kadence_select_control', 'section' => 'breadcrumbs', 'transport' => 'refresh', 'default' => kadence()->default( 'breadcrumb_engine' ), 'label' => esc_html__( 'Breadcrumb Engine', 'kadence' ), 'input_attrs' => array( 'options' => array( '' => array( 'name' => __( 'Default', 'kadence' ), ), 'rankmath' => array( 'name' => __( 'RankMath (must have activated in plugin)', 'kadence' ), ), 'yoast' => array( 'name' => __( 'Yoast (must have activated in plugin)', 'kadence' ), ), 'seopress' => array( 'name' => __( 'SEOPress (must have activated in plugin)', 'kadence' ), ), ), ), ), 'breadcrumb_home_icon' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'breadcrumbs', 'default' => kadence()->default( 'breadcrumb_home_icon' ), 'label' => esc_html__( 'Use icon for home?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'breadcrumb_engine', 'operator' => '=', 'value' => '', ), ), ), ) ); options/learndash-essays-layout-options.php 0000644 00000050470 15151531437 0015235 0 ustar 00 <?php /** * Essay Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'sfwd_essays_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_essays_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_essays_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_essays_layout_design', ), 'active' => 'general', ), ), 'sfwd_essays_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_essays_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_essays_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_essays_layout_design', ), 'active' => 'design', ), ), 'info_essays_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_essays_layout', 'priority' => 2, 'label' => esc_html__( 'Essay Title', 'kadence' ), 'settings' => false, ), 'info_essays_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_essays_layout_design', 'priority' => 2, 'label' => esc_html__( 'Essay Title', 'kadence' ), 'settings' => false, ), 'sfwd-essays_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_essays_layout', 'priority' => 3, 'default' => kadence()->default( 'sfwd-essays_title' ), 'label' => esc_html__( 'Show Essay Title?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-essays_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_essays_layout', 'label' => esc_html__( 'Essay Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'sfwd-essays_title_layout' ), 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-essays_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_essays_layout', 'priority' => 4, 'default' => kadence()->default( 'sfwd-essays_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-essays_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-essays-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'sfwd-essays_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_essays_layout', 'label' => esc_html__( 'Essay Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'sfwd-essays_title_align' ), 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-essays-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'sfwd-essays_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'sfwd_essays_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-essays_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .sfwd-essays-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'sfwd-essays_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'sfwd-essays_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'sfwd_essays_layout', 'priority' => 6, 'default' => kadence()->default( 'sfwd-essays_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'sfwd-essays_title_elements', 'title' => 'sfwd-essays_title_element_title', 'breadcrumb' => 'sfwd-essays_title_element_breadcrumb', ), 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'sfwd-essays_title_element', ), ), 'sfwd-essays_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_essays_layout_design', 'label' => esc_html__( 'Essay Title Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-essays_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-essays-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'sfwd-essays_title_font', 'headingInherit' => true, ), ), 'sfwd-essays_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_essays_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'sfwd-essays_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-essays-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.sfwd-essays-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'sfwd-essays_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_essays_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-essays_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-essays-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'sfwd-essays_title_breadcrumb_font', 'options' => 'no-color', ), ), 'sfwd-essays_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_essays_layout_design', 'label' => esc_html__( 'Essay Above Area Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-essays_title_background' ), 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-essays_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .sfwd-essays-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Essay Title Background', 'kadence' ), ), ), 'sfwd-essays_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_essays_layout_design', 'default' => kadence()->default( 'sfwd-essays_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-essays_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'sfwd-essays_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_essays_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'sfwd-essays_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-essays-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-essays_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'sfwd-essays_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'sfwd_essays_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'sfwd-essays_title_border' ), 'context' => array( array( 'setting' => 'sfwd-essays_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-essays_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'sfwd-essays_title_top_border', 'border_bottom' => 'sfwd-essays_title_bottom_border', ), 'live_method' => array( 'sfwd-essays_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-essays-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'sfwd-essays_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-essays-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_sfwd_essays_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_essays_layout', 'priority' => 10, 'label' => esc_html__( 'Essay Layout', 'kadence' ), 'settings' => false, ), 'info_sfwd_essays_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_essays_layout_design', 'priority' => 10, 'label' => esc_html__( 'Essay Layout', 'kadence' ), 'settings' => false, ), 'sfwd-essays_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_essays_layout', 'label' => esc_html__( 'Essay Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-essays_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'sfwd-essays_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'sfwd_essays_layout', 'label' => esc_html__( 'Essay Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-essays_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'sfwd-essays_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_essays_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-essays_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-essays', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-essays_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_essays_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-essays_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-essays', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'sfwd-essays_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_essays_layout', 'priority' => 20, 'default' => kadence()->default( 'sfwd-essays_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-essays_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_essays_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'sfwd-essays_feature_position' ), 'context' => array( array( 'setting' => 'sfwd-essays_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'sfwd-essays_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_essays_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'sfwd-essays_feature_ratio' ), 'context' => array( array( 'setting' => 'sfwd-essays_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-essays .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'sfwd-essays_comments' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_essays_layout', 'priority' => 20, 'default' => kadence()->default( 'sfwd-essays_comments' ), 'label' => esc_html__( 'Show Comments?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-essays_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_essays_layout_design', 'priority' => 20, 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-essays_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-essays', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Essay Background', 'kadence' ), ), ), 'sfwd-essays_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_essays_layout_design', 'priority' => 20, 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-essays_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-essays .content-bg, body.single-sfwd-essays.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Essay Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-bottom-options.php 0000644 00000016671 15151531437 0013213 0 ustar 00 <?php /** * Header Top Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'header_bottom_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'header_bottom', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'header_bottom_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_bottom', 'priority' => 4, 'default' => kadence()->default( 'header_bottom_layout' ), 'label' => esc_html__( 'Layout', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => array( 'desktop' => '.site-bottom-header-wrap', 'tablet' => '#mobile-header .site-bottom-header-wrap', 'mobile' => '#mobile-header .site-bottom-header-wrap', ), 'pattern' => array( 'desktop' => 'site-header-row-layout-$', 'tablet' => 'site-header-row-tablet-layout-$', 'mobile' => 'site-header-row-mobile-layout-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), ), ), 'header_bottom_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_bottom', 'priority' => 5, 'label' => esc_html__( 'Min Height', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .site-bottom-header-inner-wrap', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_bottom_height' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vh' => 0, ), 'max' => array( 'px' => 400, 'em' => 12, 'rem' => 12, 'vh' => 40, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'header_bottom_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_bottom', 'label' => esc_html__( 'Bottom Row Background', 'kadence' ), 'default' => kadence()->default( 'header_bottom_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.site-bottom-header-wrap .site-header-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Main Row Background', 'kadence' ), ), ), 'header_bottom_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'header_bottom', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'header_bottom_border' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'settings' => array( 'border_top' => 'header_bottom_top_border', 'border_bottom' => 'header_bottom_bottom_border', ), 'live_method' => array( 'header_bottom_top_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-bottom-header-wrap .site-header-row-container-inner', 'tablet' => '#mobile-header .site-bottom-header-wrap .site-header-row-container-inner', 'mobile' => '#mobile-header .site-bottom-header-wrap .site-header-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-top', 'pattern' => '$', 'key' => 'border', ), ), 'header_bottom_bottom_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-bottom-header-wrap .site-header-row-container-inner', 'tablet' => '#mobile-header .site-bottom-header-wrap .site-header-row-container-inner', 'mobile' => '#mobile-header .site-bottom-header-wrap .site-header-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'header_bottom_trans_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_bottom', 'label' => esc_html__( '(When Transparent Header) Bottom Row Background', 'kadence' ), 'default' => kadence()->default( 'header_bottom_trans_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.transparent-header #masthead .site-bottom-header-wrap .site-header-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Transparent Header Bottom Row Background', 'kadence' ), ), ), 'header_bottom_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_bottom', 'default' => kadence()->default( 'header_bottom_padding' ), 'label' => esc_html__( 'Padding', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-bottom-header-wrap .site-header-row-container-inner>.site-container', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 6, 'rem' => 6, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/header-main-options.php 0000644 00000016716 15151531437 0012633 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'header_main_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'header_main', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'header_main_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_main', 'priority' => 4, 'default' => kadence()->default( 'header_main_layout' ), 'label' => esc_html__( 'Layout', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => array( 'desktop' => '.site-main-header-wrap', 'tablet' => '#mobile-header .site-main-header-wrap', 'mobile' => '#mobile-header .site-main-header-wrap', ), 'pattern' => array( 'desktop' => 'site-header-row-layout-$', 'tablet' => 'site-header-row-tablet-layout-$', 'mobile' => 'site-header-row-mobile-layout-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), ), ), 'header_main_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_main', 'priority' => 5, 'label' => esc_html__( 'Min Height', 'kadence' ), 'transport' => ( 'no' !== kadence()->option( 'header_sticky' ) ? 'refresh' : 'postMessage' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .site-main-header-inner-wrap', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_main_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 400, 'em' => 12, 'rem' => 12, 'vh' => 40, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'header_main_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_main', 'label' => esc_html__( 'Main Row Background', 'kadence' ), 'default' => kadence()->default( 'header_main_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.site-main-header-wrap .site-header-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Main Row Background', 'kadence' ), ), ), 'header_main_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'header_main', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'header_main_border' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'settings' => array( 'border_top' => 'header_main_top_border', 'border_bottom' => 'header_main_bottom_border', ), 'live_method' => array( 'header_main_top_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-main-header-wrap .site-header-row-container-inner', 'tablet' => '#mobile-header .site-main-header-wrap .site-header-row-container-inner', 'mobile' => '#mobile-header .site-main-header-wrap .site-header-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-top', 'pattern' => '$', 'key' => 'border', ), ), 'header_main_bottom_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-main-header-wrap .site-header-row-container-inner', 'tablet' => '#mobile-header .site-main-header-wrap .site-header-row-container-inner', 'mobile' => '#mobile-header .site-main-header-wrap .site-header-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'header_main_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_main', 'default' => kadence()->default( 'header_main_padding' ), 'label' => esc_html__( 'Padding', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-main-header-wrap .site-header-row-container-inner>.site-container', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 6, 'rem' => 6, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => true, ), ), 'header_main_trans_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_main', 'label' => esc_html__( '(When Transparent Header) Main Row Background', 'kadence' ), 'default' => kadence()->default( 'header_main_trans_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.transparent-header #masthead .site-main-header-wrap .site-header-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Transparent Header Main Row Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/learndash-grid-options.php 0000644 00000005762 15151531437 0013344 0 ustar 00 <?php /** * Grid Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'sfwd-grid_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_grid_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_grid_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_grid_layout_design', ), 'active' => 'general', ), ), 'sfwd-grid_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_grid_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_grid_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_grid_layout_design', ), 'active' => 'design', ), ), 'learndash_course_grid' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_grid_layout', 'priority' => 3, 'default' => kadence()->default( 'learndash_course_grid' ), 'label' => esc_html__( 'Override Course Grid Styles', 'kadence' ), 'transport' => 'refresh', ), 'learndash_course_grid_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_grid_layout', 'priority' => 7, 'label' => esc_html__( 'Content Style', 'kadence' ), 'default' => kadence()->default( 'learndash_course_grid_style' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'learndash_course_grid', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'gridBoxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'gridUnboxed', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-grid_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_grid_layout_design', 'label' => esc_html__( 'Course Grid Entry Title Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-grid_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.ld-course-list-items .ld_course_grid.entry .entry-title', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'learndash_course_grid', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'sfwd-grid_title_font', 'headingInherit' => true, ), ), ); Theme_Customizer::add_settings( $settings ); options/product-layout-options.php 0000644 00000056525 15151531437 0013456 0 ustar 00 <?php /** * Product Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'product_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'product_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'product_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'product_layout_design', ), 'active' => 'general', ), ), 'product_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'product_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'product_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'product_layout_design', ), 'active' => 'design', ), ), 'info_product_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'product_layout', 'priority' => 2, 'label' => esc_html__( 'Product Above Content', 'kadence' ), 'settings' => false, ), 'info_product_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'product_layout_design', 'priority' => 2, 'label' => esc_html__( 'Product Above Content', 'kadence' ), 'settings' => false, ), 'product_above_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'product_layout', 'priority' => 4, 'default' => kadence()->default( 'product_above_layout' ), 'label' => esc_html__( 'Above Content Layout', 'kadence' ), 'transport' => 'refresh', 'input_attrs' => array( 'layout' => array( 'title' => array( 'tooltip' => __( 'Enables an Extra above content title area', 'kadence' ), 'name' => __( 'Extra Title Area', 'kadence' ), 'icon' => '', ), 'breadcrumbs' => array( 'tooltip' => __( 'Enables Breadcrumbs', 'kadence' ), 'name' => __( 'Breadcrumbs', 'kadence' ), 'icon' => '', ), 'none' => array( 'tooltip' => __( 'Hides this area', 'kadence' ), 'name' => __( 'Nothing', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, 'class' => 'kadence-tiny-text', ), ), 'product_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'product_layout', 'priority' => 4, 'default' => kadence()->default( 'product_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.product-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'product_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'product_layout', 'label' => esc_html__( 'Product Above Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'product_title_align' ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.product-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'product_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'product_layout', 'priority' => 5, 'label' => esc_html__( 'Above Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .product-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'product_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'product_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'product_layout', 'priority' => 6, 'default' => kadence()->default( 'product_title_elements' ), 'label' => esc_html__( 'Above Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'product_title_elements', 'above_title' => 'product_title_element_above_title', 'breadcrumb' => 'product_title_element_breadcrumb', 'category' => 'product_title_element_category', ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), 'input_attrs' => array( 'group' => 'product_title_element', ), ), 'product_above_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Product Above Title Font', 'kadence' ), 'default' => kadence()->default( 'product_above_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.product-hero-section .extra-title', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), 'input_attrs' => array( 'id' => 'product_above_title_font', 'headingInherit' => true, ), ), 'product_above_category_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Product Above Category Font', 'kadence' ), 'default' => kadence()->default( 'product_above_category_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.product-hero-section .single-category', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), 'input_attrs' => array( 'id' => 'product_above_category_font', 'headingInherit' => true, ), ), 'product_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'product_title_breadcrumb_color' ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '!=', 'value' => 'none', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.product-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.product-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'product_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'product_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.product-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '!=', 'value' => 'none', ), ), 'input_attrs' => array( 'id' => 'product_title_breadcrumb_font', 'options' => 'no-color', ), ), 'product_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Product Above Area Background', 'kadence' ), 'default' => kadence()->default( 'product_title_background' ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .product-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Product Above Title Background', 'kadence' ), ), ), 'product_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'product_layout_design', 'default' => kadence()->default( 'product_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), ), 'product_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'product_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.product-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'product_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'product_title_border' ), 'context' => array( array( 'setting' => 'product_above_layout', 'operator' => '=', 'value' => 'title', ), ), 'settings' => array( 'border_top' => 'product_title_top_border', 'border_bottom' => 'product_title_bottom_border', ), 'live_method' => array( 'product_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.product-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'product_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.product-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_product_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'product_layout', 'priority' => 10, 'label' => esc_html__( 'Product Layout', 'kadence' ), 'settings' => false, ), 'info_product_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'product_layout_design', 'priority' => 10, 'label' => esc_html__( 'Product Layout', 'kadence' ), 'settings' => false, ), 'product_single_category_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Product In Content Category Font', 'kadence' ), 'default' => kadence()->default( 'product_single_category_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.woocommerce div.product .product-single-category', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'product_single_category_font', ), ), 'product_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Product Title Font', 'kadence' ), 'default' => kadence()->default( 'product_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.woocommerce div.product .product_title', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'product_title_font', 'headingInherit' => true, ), ), 'product_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'product_layout', 'label' => esc_html__( 'Product Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'product_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'product_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'product_layout', 'label' => esc_html__( 'Product Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'product_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'product_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'product_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'product_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-product', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'product_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'product_layout', 'label' => esc_html__( 'Content Vertical Spacing', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'product_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-product', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'product_content_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'product_layout', 'priority' => 10, 'default' => kadence()->default( 'product_content_elements' ), 'label' => esc_html__( 'Product Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'product_content_elements', 'category' => 'product_content_element_category', 'title' => 'product_content_element_title', 'rating' => 'product_content_element_rating', 'price' => 'product_content_element_price', 'excerpt' => 'product_content_element_excerpt', 'add_to_cart' => 'product_content_element_add_to_cart', 'extras' => 'product_content_element_extras', 'payments' => 'product_content_element_payments', 'product_meta' => 'product_content_element_product_meta', 'share' => 'product_content_element_share', ), 'input_attrs' => array( 'group' => 'product_content_element', 'sortable' => false, ), ), 'custom_quantity' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'product_layout', 'priority' => 10, 'default' => kadence()->default( 'custom_quantity' ), 'label' => esc_html__( 'Use Custom Quantity Plus and Minus', 'kadence' ), 'transport' => 'refresh', ), 'variation_direction' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'product_layout', 'priority' => 10, 'default' => kadence()->default( 'variation_direction' ), 'label' => esc_html__( 'Product Variation Display', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-product', 'pattern' => 'product-variation-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'horizontal' => array( 'name' => __( 'Horizontal', 'kadence' ), ), 'vertical' => array( 'name' => __( 'Vertical', 'kadence' ), ), ), 'responsive' => false, ), ), 'product_tab_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'product_layout', 'label' => esc_html__( 'Tab Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'product_tab_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-product', 'pattern' => 'product-tab-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Normal', 'kadence' ), ), 'center' => array( 'name' => __( 'Center', 'kadence' ), ), ), 'responsive' => false, ), ), 'product_tab_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'product_layout', 'priority' => 10, 'default' => kadence()->default( 'product_tab_title' ), 'label' => esc_html__( 'Show default headings in tab content', 'kadence' ), 'transport' => 'refresh', ), 'product_additional_weight_dimensions' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'product_layout', 'priority' => 10, 'default' => kadence()->default( 'product_additional_weight_dimensions' ), 'label' => esc_html__( 'Show Weight and Dimensions in Additional Information tab?', 'kadence' ), 'transport' => 'refresh', ), 'product_related' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'product_layout', 'priority' => 10, 'default' => kadence()->default( 'product_related' ), 'label' => esc_html__( 'Show Related Products?', 'kadence' ), 'transport' => 'refresh', ), 'product_related_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'product_layout', 'priority' => 10, 'label' => esc_html__( 'Related Products Columns', 'kadence' ), 'transport' => 'refresh', 'default' => kadence()->default( 'product_related_columns' ), 'context' => array( array( 'setting' => 'product_related', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), ), 'responsive' => false, ), ), 'product_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'product_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-product', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Product Background', 'kadence' ), ), ), 'product_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'product_layout_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'product_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-product .content-bg, body.single-product.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Product Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/general-sidebar-options.php 0000644 00000024212 15151531437 0013473 0 ustar 00 <?php /** * Sidebar Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-description"> <p style="margin:0"><?php echo esc_html__( 'Title and Content settings affect legacy widgets. For block editor widgets use settings in the editor.', 'kadence' ); ?></p> </div> <?php $component_description = ob_get_clean(); Theme_Customizer::add_settings( array( 'sidebar_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sidebar', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sidebar', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sidebar_design', ), 'active' => 'general', ), ), 'sidebar_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sidebar_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sidebar', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sidebar_design', ), 'active' => 'design', ), ), 'sidebar_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'sidebar', 'priority' => 10, 'label' => esc_html__( 'Sidebar Width', 'kadence' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'general', // ), // ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.has-sidebar:not(.has-left-sidebar) .content-container', 'property' => 'grid-template-columns', 'pattern' => '1fr $', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '.has-sidebar.has-left-sidebar .content-container', 'property' => 'grid-template-columns', 'pattern' => '$ 1fr', 'key' => 'size', ), ), 'default' => kadence()->default( 'sidebar_width' ), 'input_attrs' => array( 'min' => array( 'px' => 100, 'em' => 8, 'rem' => 8, '%' => 5, ), 'max' => array( 'px' => 600, 'em' => 30, 'rem' => 30, '%' => 60, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, '%' => 1, ), 'units' => array( 'px', 'em', 'rem', '%' ), 'responsive' => false, ), ), 'sidebar_widget_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'sidebar', 'priority' => 10, 'label' => esc_html__( 'Widget Spacing', 'kadence' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'general', // ), // ), 'live_method' => array( array( 'type' => 'css', 'property' => 'margin-bottom', 'selector' => '.primary-sidebar.widget-area .widget', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'sidebar_widget_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'sidebar_widget_settings' => array( 'control_type' => 'kadence_blank_control', 'section' => 'sidebar_design', 'settings' => false, 'priority' => 1, 'description' => $component_description, ), 'sidebar_widget_title' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sidebar_design', 'label' => esc_html__( 'Widget Titles', 'kadence' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), 'default' => kadence()->default( 'sidebar_widget_title' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.primary-sidebar.widget-area .widget-title', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'sidebar_widget_title', ), ), 'sidebar_widget_content' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sidebar_design', 'label' => esc_html__( 'Widget Content', 'kadence' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), 'default' => kadence()->default( 'sidebar_widget_content' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.primary-sidebar.widget-area .widget', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'sidebar_widget_content', ), ), 'sidebar_link_style' => array( 'control_type' => 'kadence_select_control', 'section' => 'sidebar_design', 'default' => kadence()->default( 'sidebar_link_style' ), 'label' => esc_html__( 'Link Style', 'kadence' ), 'input_attrs' => array( 'options' => array( 'normal' => array( 'name' => __( 'Underline on Hover', 'kadence' ), ), 'underline' => array( 'name' => __( 'Underline', 'kadence' ), ), 'plain' => array( 'name' => __( 'No Underline', 'kadence' ), ), ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.primary-sidebar', 'pattern' => 'sidebar-link-style-$', 'key' => '', ), ), ), 'sidebar_link_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'sidebar_design', 'label' => esc_html__( 'Link Colors', 'kadence' ), 'default' => kadence()->default( 'sidebar_link_colors' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.primary-sidebar.widget-area .sidebar-inner-wrap a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.primary-sidebar.widget-area .sidebar-inner-wrap a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'sidebar_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sidebar_design', 'label' => esc_html__( 'Sidebar Background', 'kadence' ), 'default' => kadence()->default( 'sidebar_background' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.primary-sidebar.widget-area', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Sidebar Background', 'kadence' ), ), ), 'sidebar_divider_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'sidebar_design', 'label' => esc_html__( 'Sidebar Divider Border', 'kadence' ), 'default' => kadence()->default( 'sidebar_divider_border' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.has-sidebar.has-left-sidebar .primary-sidebar.widget-area', 'pattern' => '$', 'property' => 'border-right', 'pattern' => '$', 'key' => 'border', ), array( 'type' => 'css_border', 'selector' => '.has-sidebar:not(.has-left-sidebar) .primary-sidebar.widget-area', 'pattern' => '$', 'property' => 'border-left', 'pattern' => '$', 'key' => 'border', ), ), ), 'sidebar_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'sidebar_design', 'priority' => 10, 'default' => kadence()->default( 'sidebar_padding' ), 'label' => esc_html__( 'Sidebar Padding', 'kadence' ), // 'context' => array( // array( // 'setting' => '__current_tab', // 'value' => 'design', // ), // ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.primary-sidebar.widget-area', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => true, ), ), 'sidebar_sticky' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sidebar', 'default' => kadence()->default( 'sidebar_sticky' ), 'label' => esc_html__( 'Enable Sticky Sidebar', 'kadence' ), 'transport' => 'refresh', ), 'sidebar_sticky_last_widget' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sidebar', 'default' => kadence()->default( 'sidebar_sticky_last_widget' ), 'label' => esc_html__( 'Only Stick Last Widget', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'sidebar_sticky', 'value' => true, ), ), ), ) ); options/tutor-course-layout-options.php 0000644 00000054620 15151531437 0014443 0 ustar 00 <?php /** * Tutor Course Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'courses_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'courses_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'courses_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'courses_layout_design', ), 'active' => 'general', ), ), 'courses_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'courses_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'courses_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'courses_layout_design', ), 'active' => 'design', ), ), 'info_course_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'courses_layout', 'priority' => 2, 'label' => esc_html__( 'Course Title', 'kadence' ), 'settings' => false, ), 'info_course_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'courses_layout_design', 'priority' => 2, 'label' => esc_html__( 'Course Title', 'kadence' ), 'settings' => false, ), 'courses_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'courses_layout', 'label' => esc_html__( 'Course Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'courses_title_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'courses_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'courses_layout', 'priority' => 4, 'default' => kadence()->default( 'courses_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.courses-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), // 'courses_title_align' => array( // 'control_type' => 'kadence_radio_icon_control', // 'section' => 'courses_layout', // 'label' => esc_html__( 'Course Title Align', 'kadence' ), // 'priority' => 4, // 'default' => kadence()->default( 'courses_title_align' ), // 'context' => array( // array( // 'setting' => 'courses_title_layout', // 'operator' => '=', // 'value' => 'above', // ), // ), // 'live_method' => array( // array( // 'type' => 'class', // 'selector' => '.courses-title', // 'pattern' => array( // 'desktop' => 'title-align-$', // 'tablet' => 'title-tablet-align-$', // 'mobile' => 'title-mobile-align-$', // ), // 'key' => '', // ), // ), // 'input_attrs' => array( // 'layout' => array( // 'left' => array( // 'tooltip' => __( 'Left Align Title', 'kadence' ), // 'dashicon' => 'editor-alignleft', // ), // 'center' => array( // 'tooltip' => __( 'Center Align Title', 'kadence' ), // 'dashicon' => 'editor-aligncenter', // ), // 'right' => array( // 'tooltip' => __( 'Right Align Title', 'kadence' ), // 'dashicon' => 'editor-alignright', // ), // ), // 'responsive' => true, // ), // ), 'courses_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'courses_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .courses-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'courses_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'courses_enroll_overlay' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'courses_layout', 'default' => kadence()->default( 'courses_enroll_overlay' ), 'label' => esc_html__( 'Move sidebar up into header?', 'kadence' ), 'context' => array( array( 'setting' => 'courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-courses', 'pattern' => 'courses-sidebar-overlay-$', 'key' => '', ), ), ), // 'courses_title_elements' => array( // 'control_type' => 'kadence_sorter_control', // 'section' => 'courses_layout', // 'priority' => 6, // 'default' => kadence()->default( 'courses_title_elements' ), // 'label' => esc_html__( 'Title Elements', 'kadence' ), // 'transport' => 'refresh', // 'context' => array( // array( // 'setting' => 'courses_title_layout', // 'operator' => '=', // 'value' => 'above', // ), // ), // 'settings' => array( // 'elements' => 'courses_title_elements', // 'title' => 'courses_title_element_title', // 'breadcrumb' => 'courses_title_element_breadcrumb', // ), // 'input_attrs' => array( // 'group' => 'courses_title_element', // ), // ), 'courses_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'courses_layout_design', 'label' => esc_html__( 'Course Title Font', 'kadence' ), 'default' => kadence()->default( 'course_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.tutor-single-course-lead-info h1.tutor-course-header-h1, .tutor-course-details-title.tutor-fs-4', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'courses_title_font', 'headingInherit' => true, ), ), // 'courses_title_breadcrumb_color' => array( // 'control_type' => 'kadence_color_control', // 'section' => 'courses_layout_design', // 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), // 'default' => kadence()->default( 'courses_title_breadcrumb_color' ), // 'live_method' => array( // array( // 'type' => 'css', // 'selector' => '.course-title .kadence-breadcrumbs', // 'property' => 'color', // 'pattern' => '$', // 'key' => 'color', // ), // array( // 'type' => 'css', // 'selector' => '.course-title .kadence-breadcrumbs a:hover', // 'property' => 'color', // 'pattern' => '$', // 'key' => 'hover', // ), // ), // 'input_attrs' => array( // 'colors' => array( // 'color' => array( // 'tooltip' => __( 'Initial Color', 'kadence' ), // 'palette' => true, // ), // 'hover' => array( // 'tooltip' => __( 'Link Hover Color', 'kadence' ), // 'palette' => true, // ), // ), // ), // ), // 'courses_title_breadcrumb_font' => array( // 'control_type' => 'kadence_typography_control', // 'section' => 'courses_layout_design', // 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), // 'default' => kadence()->default( 'course_title_breadcrumb_font' ), // 'live_method' => array( // array( // 'type' => 'css_typography', // 'selector' => '.courses-title .kadence-breadcrumbs', // 'property' => 'font', // 'key' => 'typography', // ), // ), // 'input_attrs' => array( // 'id' => 'course_title_breadcrumb_font', // 'options' => 'no-color', // ), // ), 'courses_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'courses_layout_design', 'label' => esc_html__( 'Course Above Area Background', 'kadence' ), 'default' => kadence()->default( 'courses_title_background' ), 'context' => array( array( 'setting' => 'courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .courses-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Title Background', 'kadence' ), ), ), 'courses_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'courses_layout_design', 'default' => kadence()->default( 'courses_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'courses_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'courses_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'courses_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.courses-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'courses_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'courses_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'courses_title_border' ), 'context' => array( array( 'setting' => 'courses_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'course_title_top_border', 'border_bottom' => 'course_title_bottom_border', ), 'live_method' => array( 'course_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.courses-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'course_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.courses-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_courses_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'courses_layout', 'priority' => 10, 'label' => esc_html__( 'Course Layout', 'kadence' ), 'settings' => false, ), 'info_courses_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'courses_layout_design', 'priority' => 10, 'label' => esc_html__( 'Course Layout', 'kadence' ), 'settings' => false, ), 'courses_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'courses_layout', 'label' => esc_html__( 'Course Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'courses_layout' ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'courses_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'courses_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'course_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-courses', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'courses_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'courses_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'courses_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-courses', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), // 'course_feature' => array( // 'control_type' => 'kadence_switch_control', // 'section' => 'courses_layout', // 'priority' => 20, // 'default' => kadence()->default( 'course_feature' ), // 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), // 'transport' => 'refresh', // ), // 'course_feature_position' => array( // 'control_type' => 'kadence_radio_icon_control', // 'section' => 'courses_layout', // 'label' => esc_html__( 'Featured Image Position', 'kadence' ), // 'priority' => 20, // 'transport' => 'refresh', // 'default' => kadence()->default( 'course_feature_position' ), // 'context' => array( // array( // 'setting' => 'course_feature', // 'operator' => '=', // 'value' => true, // ), // ), // 'input_attrs' => array( // 'layout' => array( // 'above' => array( // 'name' => __( 'Above', 'kadence' ), // ), // 'behind' => array( // 'name' => __( 'Behind', 'kadence' ), // ), // 'below' => array( // 'name' => __( 'Below', 'kadence' ), // ), // ), // 'responsive' => false, // ), // ), // 'course_feature_ratio' => array( // 'control_type' => 'kadence_radio_icon_control', // 'section' => 'courses_layout', // 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), // 'priority' => 20, // 'default' => kadence()->default( 'course_feature_ratio' ), // 'context' => array( // array( // 'setting' => 'course_feature', // 'operator' => '=', // 'value' => true, // ), // ), // 'live_method' => array( // array( // 'type' => 'class', // 'selector' => 'body.single-course .article-post-thumbnail', // 'pattern' => 'kadence-thumbnail-ratio-$', // 'key' => '', // ), // ), // 'input_attrs' => array( // 'layout' => array( // 'inherit' => array( // 'name' => __( 'Inherit', 'kadence' ), // ), // '1-1' => array( // 'name' => __( '1:1', 'kadence' ), // ), // '3-4' => array( // 'name' => __( '3:4', 'kadence' ), // ), // '2-3' => array( // 'name' => __( '2:3', 'kadence' ), // ), // '9-16' => array( // 'name' => __( '9:16', 'kadence' ), // ), // '1-2' => array( // 'name' => __( '1:2', 'kadence' ), // ), // ), // 'responsive' => false, // 'class' => 'kadence-three-col-short', // ), // ), // 'info_course_syllabus_layout' => array( // 'control_type' => 'kadence_title_control', // 'section' => 'courses_layout', // 'priority' => 20, // 'label' => esc_html__( 'Course Syllabus Layout', 'kadence' ), // 'settings' => false, // ), // 'course_syllabus_columns' => array( // 'control_type' => 'kadence_radio_icon_control', // 'section' => 'courses_layout', // 'priority' => 20, // 'label' => esc_html__( 'Course Syllabus Columns', 'kadence' ), // 'transport' => 'refresh', // 'default' => kadence()->default( 'course_syllabus_columns' ), // 'input_attrs' => array( // 'layout' => array( // '1' => array( // 'name' => __( '1', 'kadence' ), // ), // '2' => array( // 'name' => __( '2', 'kadence' ), // ), // '3' => array( // 'name' => __( '3', 'kadence' ), // ), // ), // 'responsive' => false, // ), // ), // 'course_syllabus_lesson_style' => array( // 'control_type' => 'kadence_radio_icon_control', // 'section' => 'courses_layout', // 'label' => esc_html__( 'Course Lesson Style', 'kadence' ), // 'priority' => 20, // 'transport' => 'refresh', // 'default' => kadence()->default( 'course_syllabus_lesson_style' ), // 'context' => array( // array( // 'setting' => 'course_syllabus_columns', // 'operator' => '=', // 'value' => '1', // ), // ), // 'input_attrs' => array( // 'layout' => array( // 'standard' => array( // 'name' => __( 'Standard', 'kadence' ), // ), // 'tiles' => array( // 'name' => __( 'Two Column Tiles', 'kadence' ), // ), // 'center' => array( // 'name' => __( 'One Column Center', 'kadence' ), // ), // ), // 'responsive' => false, // 'class' => 'kadence-tiny-text', // ), // ), // 'course_syllabus_thumbs' => array( // 'control_type' => 'kadence_switch_control', // 'section' => 'courses_layout', // 'priority' => 20, // 'default' => kadence()->default( 'course_syllabus_thumbs' ), // 'label' => esc_html__( 'Show Lesson Thumbnail in Syllabus?', 'kadence' ), // 'transport' => 'refresh', // ), // 'course_syllabus_thumbs_ratio' => array( // 'control_type' => 'kadence_radio_icon_control', // 'section' => 'courses_layout', // 'label' => esc_html__( 'Lesson Thumbnail Ratio', 'kadence' ), // 'priority' => 20, // 'default' => kadence()->default( 'course_syllabus_thumbs_ratio' ), // 'context' => array( // array( // 'setting' => 'course_syllabus_thumbs', // 'operator' => '=', // 'value' => true, // ), // ), // 'live_method' => array( // array( // 'type' => 'class', // 'selector' => 'body.single-courses .llms-lesson-thumbnail', // 'pattern' => 'kadence-thumbnail-ratio-$', // 'key' => '', // ), // ), // 'input_attrs' => array( // 'layout' => array( // 'inherit' => array( // 'name' => __( 'Inherit', 'kadence' ), // ), // '1-1' => array( // 'name' => __( '1:1', 'kadence' ), // ), // '3-4' => array( // 'name' => __( '3:4', 'kadence' ), // ), // '2-3' => array( // 'name' => __( '2:3', 'kadence' ), // ), // '9-16' => array( // 'name' => __( '9:16', 'kadence' ), // ), // '1-2' => array( // 'name' => __( '1:2', 'kadence' ), // ), // ), // 'responsive' => false, // 'class' => 'kadence-three-col-short', // ), // ), 'course_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'courses_layout_design', 'priority' => 20, 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'course_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-courses', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Background', 'kadence' ), ), ), 'course_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'courses_layout_design', 'priority' => 20, 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'course_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-courses .content-bg, body.single-courses:not(.content-style-unboxed) .tutor-price-preview-box, body.single-courses.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Course Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/footer-bottom-options.php 0000644 00000043353 15151531437 0013256 0 ustar 00 <?php /** * Header Main Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); ob_start(); ?> <div class="kadence-compontent-description"> <p style="margin:0"><?php echo esc_html__( 'Title and Content settings affect legacy widgets. For block editor widgets use settings in the editor.', 'kadence' ); ?></p> </div> <?php $component_description = ob_get_clean(); Theme_Customizer::add_settings( array( 'footer_bottom_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'footer_bottom', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'footer_bottom', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'footer_bottom_design', ), 'active' => 'general', ), ), 'footer_bottom_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'footer_bottom_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'footer_bottom', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'footer_bottom_design', ), 'active' => 'design', ), ), 'footer_bottom_contain' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_bottom', 'priority' => 4, 'default' => kadence()->default( 'footer_bottom_contain' ), 'label' => esc_html__( 'Container Width', 'kadence' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-bottom-footer-wrap', 'pattern' => array( 'desktop' => 'site-footer-row-layout-$', 'tablet' => 'site-footer-row-tablet-layout-$', 'mobile' => 'site-footer-row-mobile-layout-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), ), ), 'footer_bottom_columns' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_bottom', 'label' => esc_html__( 'Columns', 'kadence' ), 'priority' => 5, //'transport' => 'refresh', 'default' => kadence()->default( 'footer_bottom_columns' ), 'partial' => array( 'selector' => '#colophon', 'container_inclusive' => true, 'render_callback' => 'Kadence\footer_markup', ), 'input_attrs' => array( 'layout' => array( '1' => array( 'name' => __( '1', 'kadence' ), ), '2' => array( 'name' => __( '2', 'kadence' ), ), '3' => array( 'name' => __( '3', 'kadence' ), ), '4' => array( 'name' => __( '4', 'kadence' ), ), '5' => array( 'name' => __( '5', 'kadence' ), ), ), 'responsive' => false, 'footer' => 'bottom', ), ), 'footer_bottom_layout' => array( 'control_type' => 'kadence_row_control', 'section' => 'footer_bottom', 'label' => esc_html__( 'Layout', 'kadence' ), 'priority' => 5, //'transport' => 'refresh', 'default' => kadence()->default( 'footer_bottom_layout' ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-top-footer-inner-wrap', 'pattern' => array( 'desktop' => 'site-footer-row-column-layout-$', 'tablet' => 'site-footer-row-tablet-column-layout-$', 'mobile' => 'site-footer-row-mobile-column-layout-$', ), 'key' => '', ), ), 'input_attrs' => array( 'responsive' => true, 'footer' => 'bottom', ), ), 'footer_bottom_collapse' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_bottom', 'priority' => 5, 'default' => kadence()->default( 'footer_bottom_collapse' ), 'label' => esc_html__( 'Row Collapse', 'kadence' ), 'context' => array( array( 'setting' => '__device', 'operator' => 'in', 'value' => array( 'tablet', 'mobile' ), ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-bottom-footer-inner-wrap', 'pattern' => 'ft-ro-collapse-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'name' => __( 'Left to Right', 'kadence' ), 'icon' => '', ), 'rtl' => array( 'name' => __( 'Right to Left', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, 'footer' => 'bottom', ), ), 'footer_bottom_direction' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'footer_bottom', 'priority' => 5, 'default' => kadence()->default( 'footer_bottom_direction' ), 'label' => esc_html__( 'Column Direction', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-bottom-footer-inner-wrap', 'pattern' => array( 'desktop' => 'ft-ro-dir-$', 'tablet' => 'ft-ro-t-dir-$', 'mobile' => 'ft-ro-m-dir-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'row' => array( 'tooltip' => __( 'Left to Right', 'kadence' ), 'name' => __( 'Row', 'kadence' ), 'icon' => '', ), 'column' => array( 'tooltip' => __( 'Top to Bottom', 'kadence' ), 'name' => __( 'Column', 'kadence' ), 'icon' => '', ), ), 'responsive' => true, 'footer' => 'bottom', ), ), 'footer_bottom_column_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_bottom', 'priority' => 5, 'label' => esc_html__( 'Column Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'property' => 'grid-column-gap', 'selector' => '#colophon .site-bottom-footer-inner-wrap', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'property' => 'grid-row-gap', 'selector' => '#colophon .site-bottom-footer-inner-wrap', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_bottom_column_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_bottom_widget_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_bottom', 'priority' => 5, 'label' => esc_html__( 'Widget Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'property' => 'margin-bottom', 'selector' => '.site-bottom-footer-inner-wrap .widget', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_bottom_widget_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_bottom_top_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_bottom', 'priority' => 5, 'label' => esc_html__( 'Top Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-bottom-footer-inner-wrap', 'pattern' => '$', 'property' => 'padding-top', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_bottom_top_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_bottom_bottom_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_bottom', 'priority' => 5, 'label' => esc_html__( 'Bottom Spacing', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-bottom-footer-inner-wrap', 'pattern' => '$', 'property' => 'padding-bottom', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_bottom_bottom_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 200, 'em' => 8, 'rem' => 8, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), ), ), 'footer_bottom_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'footer_bottom', 'priority' => 5, 'label' => esc_html__( 'Min Height', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#colophon .site-bottom-footer-inner-wrap', 'pattern' => '$', 'property' => 'min-height', 'key' => 'size', ), ), 'default' => kadence()->default( 'footer_bottom_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 400, 'em' => 12, 'rem' => 12, 'vh' => 40, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'footer_bottom_widget_settings' => array( 'control_type' => 'kadence_blank_control', 'section' => 'footer_bottom_design', 'settings' => false, 'priority' => 1, 'description' => $component_description, ), 'footer_bottom_widget_title' => array( 'control_type' => 'kadence_typography_control', 'section' => 'footer_bottom_design', 'label' => esc_html__( 'Widget Titles', 'kadence' ), 'default' => kadence()->default( 'footer_bottom_widget_title' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.site-bottom-footer-wrap .site-footer-row-container-inner .widget-title', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'footer_bottom_widget_title', ), ), 'footer_bottom_widget_content' => array( 'control_type' => 'kadence_typography_control', 'section' => 'footer_bottom_design', 'label' => esc_html__( 'Widget Content', 'kadence' ), 'default' => kadence()->default( 'footer_bottom_widget_content' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.site-bottom-footer-wrap .site-footer-row-container-inner', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'footer_bottom_widget_content', ), ), 'footer_bottom_link_colors' => array( 'control_type' => 'kadence_color_control', 'section' => 'footer_bottom_design', 'label' => esc_html__( 'Link Colors', 'kadence' ), 'default' => kadence()->default( 'footer_bottom_link_colors' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-footer .site-bottom-footer-wrap .site-footer-row-container-inner a:where(:not(.button):not(.wp-block-button__link):not(.wp-element-button))', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.site-footer .site-bottom-footer-wrap .site-footer-row-container-inner a:where(:not(.button):not(.wp-block-button__link):not(.wp-element-button)):hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'footer_bottom_link_style' => array( 'control_type' => 'kadence_select_control', 'section' => 'footer_bottom_design', 'default' => kadence()->default( 'footer_bottom_link_style' ), 'label' => esc_html__( 'Link Style', 'kadence' ), 'input_attrs' => array( 'options' => array( 'plain' => array( 'name' => __( 'Underline on Hover', 'kadence' ), ), 'normal' => array( 'name' => __( 'Underline', 'kadence' ), ), 'noline' => array( 'name' => __( 'No Underline', 'kadence' ), ), ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-bottom-footer-inner-wrap', 'pattern' => 'ft-ro-lstyle-$', 'key' => '', ), ), ), 'footer_bottom_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'footer_bottom_design', 'label' => esc_html__( 'Bottom Row Background', 'kadence' ), 'default' => kadence()->default( 'footer_bottom_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.site-bottom-footer-wrap .site-footer-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Bottom Row Background', 'kadence' ), ), ), 'footer_bottom_column_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'footer_bottom_design', 'label' => esc_html__( 'Column Border', 'kadence' ), 'default' => kadence()->default( 'footer_bottom_column_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.site-bottom-footer-inner-wrap .site-footer-section:not(:last-child):after', 'pattern' => '$', 'property' => 'border-right', 'pattern' => '$', 'key' => 'border', ), ), ), 'footer_bottom_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'footer_bottom_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'footer_bottom_border' ), 'settings' => array( 'border_top' => 'footer_bottom_top_border', 'border_bottom' => 'footer_bottom_bottom_border', ), 'live_method' => array( 'footer_bottom_top_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-bottom-footer-wrap .site-footer-row-container-inner', 'tablet' => '.site-bottom-footer-wrap .site-footer-row-container-inner', 'mobile' => '.site-bottom-footer-wrap .site-footer-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-top', 'pattern' => '$', 'key' => 'border', ), ), 'footer_bottom_bottom_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-bottom-footer-wrap .site-footer-row-container-inner', 'tablet' => '.site-bottom-footer-wrap .site-footer-row-container-inner', 'mobile' => '.site-bottom-footer-wrap .site-footer-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), ) ); options/header-search-options.php 0000644 00000032142 15151531437 0013143 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'header_search_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'header_search', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'header_search_label' => array( 'control_type' => 'kadence_text_control', 'section' => 'header_search', 'sanitize' => 'sanitize_text_field', 'priority' => 6, 'default' => kadence()->default( 'header_search_label' ), 'label' => esc_html__( 'Search Label', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'html', 'selector' => '.search-toggle-label', 'pattern' => '$', 'key' => '', ), ), ), 'header_search_label_visiblity' => array( 'control_type' => 'kadence_check_icon_control', 'section' => 'header_search', 'priority' => 10, 'default' => kadence()->default( 'header_search_label_visiblity' ), 'label' => esc_html__( 'Search Label Visibility', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'header_search_label', 'operator' => '!empty', 'value' => '', ), ), 'partial' => array( 'selector' => '.search-toggle-open-container', 'container_inclusive' => true, 'render_callback' => 'Kadence\header_search', ), 'input_attrs' => array( 'options' => array( 'desktop' => array( 'name' => __( 'Desktop', 'kadence' ), 'icon' => 'desktop', ), 'tablet' => array( 'name' => __( 'Tablet', 'kadence' ), 'icon' => 'tablet', ), 'mobile' => array( 'name' => __( 'Mobile', 'kadence' ), 'icon' => 'smartphone', ), ), ), ), 'header_search_icon' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_search', 'priority' => 10, 'default' => kadence()->default( 'header_search_icon' ), 'label' => esc_html__( 'Search Icon', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'partial' => array( 'selector' => '.search-toggle-icon', 'container_inclusive' => false, 'render_callback' => 'Kadence\search_toggle', ), 'input_attrs' => array( 'layout' => array( 'search' => array( 'icon' => 'search', ), 'search2' => array( 'icon' => 'search2', ), ), 'responsive' => false, 'class' => 'radio-icon-padding', ), ), 'header_search_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_search', 'priority' => 10, 'default' => kadence()->default( 'header_search_style' ), 'label' => esc_html__( 'Search Style', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.search-toggle-open', 'pattern' => 'search-toggle-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'default' => array( 'name' => __( 'Default', 'kadence' ), ), 'bordered' => array( 'name' => __( 'Bordered', 'kadence' ), ), ), 'responsive' => false, ), ), 'header_search_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'header_search', 'label' => esc_html__( 'Search Border', 'kadence' ), 'default' => kadence()->default( 'header_search_border' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'header_search_style', 'operator' => 'sub_object_contains', 'sub_key' => 'layout', 'responsive' => false, 'value' => 'bordered', ), ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.search-toggle-open-container .search-toggle-open.search-toggle-style-bordered', 'pattern' => '$', 'property' => 'border', 'key' => 'border', ), ), 'input_attrs' => array( 'color' => false, 'responsive' => false, ), ), 'header_search_icon_size' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_search', 'label' => esc_html__( 'Icon Size', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.search-toggle-open-container .search-toggle-open .search-toggle-icon', 'property' => 'font-size', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_search_icon_size' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => true, ), ), 'header_search_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_search', 'label' => esc_html__( 'Search Colors', 'kadence' ), 'default' => kadence()->default( 'header_search_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.search-toggle-open-container .search-toggle-open', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.search-toggle-open-container .search-toggle-open:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_search_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_search', 'label' => esc_html__( 'Search Background', 'kadence' ), 'default' => kadence()->default( 'header_search_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.search-toggle-open-container .search-toggle-open', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.search-toggle-open-container .search-toggle-open:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), ), ), ), 'header_search_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'header_search', 'label' => esc_html__( 'Label Font', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'header_search_label', 'operator' => '!empty', 'value' => '', ), ), 'default' => kadence()->default( 'header_search_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.search-toggle-open-container .search-toggle-open', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'header_search_typography', 'options' => 'no-color', ), ), 'header_search_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_search', 'priority' => 10, 'default' => kadence()->default( 'header_search_padding' ), 'label' => esc_html__( 'Search Padding', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.search-toggle-open-container .search-toggle-open', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'header_search_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_search', 'priority' => 10, 'default' => kadence()->default( 'header_search_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.search-toggle-open-container .search-toggle-open', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'info_search_modal' => array( 'control_type' => 'kadence_title_control', 'section' => 'header_search', 'priority' => 20, 'label' => esc_html__( 'Modal Options', 'kadence' ), 'settings' => false, 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), ), 'header_search_modal_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'header_search', 'priority' => 20, 'label' => esc_html__( 'Text Colors', 'kadence' ), 'default' => kadence()->default( 'header_search_modal_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#search-drawer .drawer-inner .drawer-content form input.search-field, #search-drawer .drawer-inner .drawer-content form .kadence-search-icon-wrap, #search-drawer .drawer-header', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '#search-drawer .drawer-inner .drawer-content form input.search-field:focus, #search-drawer .drawer-inner .drawer-content form input.search-submit:hover ~ .kadence-search-icon-wrap, #search-drawer .drawer-inner .drawer-content form button[type="submit"]:hover ~ .kadence-search-icon-wrap', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus/Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'header_search_modal_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_search', 'priority' => 20, 'label' => esc_html__( 'Modal Background', 'kadence' ), 'default' => kadence()->default( 'header_search_modal_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#search-drawer .drawer-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Modal Background', 'kadence' ), ), ), ); if ( class_exists( 'woocommerce' ) ) { $settings = array_merge( $settings, array( 'header_search_woo' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'header_search', 'priority' => 10, 'default' => kadence()->default( 'header_search_woo' ), 'label' => esc_html__( 'Search only Products?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), ), ) ); } Theme_Customizer::add_settings( $settings ); options/learndash-topic-layout-options.php 0000644 00000047456 15151531437 0015056 0 ustar 00 <?php /** * Topic Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; $settings = array( 'sfwd-topic_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_topic_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_topic_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_topic_layout_design', ), 'active' => 'general', ), ), 'sfwd-topic_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'sfwd_topic_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'sfwd_topic_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'sfwd_topic_layout_design', ), 'active' => 'design', ), ), 'info_sfwd-topic_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_topic_layout', 'priority' => 2, 'label' => esc_html__( 'Topic Title', 'kadence' ), 'settings' => false, ), 'info_sfwd-topic_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_topic_layout_design', 'priority' => 2, 'label' => esc_html__( 'Topic Title', 'kadence' ), 'settings' => false, ), 'sfwd-topic_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_topic_layout', 'priority' => 3, 'default' => kadence()->default( 'sfwd-topic_title' ), 'label' => esc_html__( 'Show Topic Title?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-topic_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_topic_layout', 'label' => esc_html__( 'Topic Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'sfwd-topic_title_layout' ), 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-topic_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_topic_layout', 'priority' => 4, 'default' => kadence()->default( 'sfwd-topic_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-topic-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'sfwd-topic_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_topic_layout', 'label' => esc_html__( 'Topic Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'sfwd-topic_title_align' ), 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.sfwd-topic-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'sfwd-topic_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'sfwd_topic_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .sfwd-topic-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'sfwd-topic_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'sfwd-topic_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'sfwd_topic_layout', 'priority' => 6, 'default' => kadence()->default( 'sfwd-topic_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'sfwd-topic_title_elements', 'title' => 'sfwd-topic_title_element_title', 'breadcrumb' => 'sfwd-topic_title_element_breadcrumb', ), 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'sfwd-topic_title_element', ), ), 'sfwd-topic_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_topic_layout_design', 'label' => esc_html__( 'Topic Title Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-topic_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-topic-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'sfwd-topic_title_font', 'headingInherit' => true, ), ), 'sfwd-topic_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_topic_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'sfwd-topic_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-topic-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.sfwd-topic-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'sfwd-topic_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'sfwd_topic_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'sfwd-topic_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.sfwd-topic-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'sfwd-topic_title_breadcrumb_font', 'options' => 'no-color', ), ), 'sfwd-topic_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_topic_layout_design', 'label' => esc_html__( 'Topic Above Area Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-topic_title_background' ), 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .sfwd-topic-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Topic Title Background', 'kadence' ), ), ), 'sfwd-topic_title_featured_image' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_topic_layout_design', 'default' => kadence()->default( 'sfwd-topic_title_featured_image' ), 'label' => esc_html__( 'Use Featured Image for Background?', 'kadence' ), 'transport' => 'refresh', 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), ), 'sfwd-topic_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'sfwd_topic_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'sfwd-topic_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.sfwd-topic-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'sfwd-topic_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'sfwd_topic_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'sfwd-topic_title_border' ), 'context' => array( array( 'setting' => 'sfwd-topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'sfwd-topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'sfwd-topic_title_top_border', 'border_bottom' => 'sfwd-topic_title_bottom_border', ), 'live_method' => array( 'sfwd-topic_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-topic-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'sfwd-topic_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.sfwd-topic-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_sfwd-topic_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_topic_layout', 'priority' => 10, 'label' => esc_html__( 'Topic Layout', 'kadence' ), 'settings' => false, ), 'info_sfwd-topic_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'sfwd_topic_layout_design', 'priority' => 10, 'label' => esc_html__( 'Topic Layout', 'kadence' ), 'settings' => false, ), 'sfwd-topic_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_topic_layout', 'label' => esc_html__( 'Topic Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-topic_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'sfwd-topic_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'sfwd_topic_layout', 'label' => esc_html__( 'Topic Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'sfwd-topic_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'sfwd-topic_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_topic_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-topic_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-topic', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'sfwd-topic_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_topic_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'sfwd-topic_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-topic', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'sfwd-topic_feature' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'sfwd_topic_layout', 'priority' => 20, 'default' => kadence()->default( 'sfwd-topic_feature' ), 'label' => esc_html__( 'Show Featured Image?', 'kadence' ), 'transport' => 'refresh', ), 'sfwd-topic_feature_position' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_topic_layout', 'label' => esc_html__( 'Featured Image Position', 'kadence' ), 'priority' => 20, 'transport' => 'refresh', 'default' => kadence()->default( 'sfwd-topic_feature_position' ), 'context' => array( array( 'setting' => 'sfwd-topic_feature', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'above' => array( 'name' => __( 'Above', 'kadence' ), ), 'behind' => array( 'name' => __( 'Behind', 'kadence' ), ), 'below' => array( 'name' => __( 'Below', 'kadence' ), ), ), 'responsive' => false, ), ), 'sfwd-topic_feature_ratio' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'sfwd_topic_layout', 'label' => esc_html__( 'Featured Image Ratio', 'kadence' ), 'priority' => 20, 'default' => kadence()->default( 'sfwd-topic_feature_ratio' ), 'context' => array( array( 'setting' => 'sfwd-topic_feature', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-sfwd-topic .article-post-thumbnail', 'pattern' => 'kadence-thumbnail-ratio-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'inherit' => array( 'name' => __( 'Inherit', 'kadence' ), ), '1-1' => array( 'name' => __( '1:1', 'kadence' ), ), '3-4' => array( 'name' => __( '4:3', 'kadence' ), ), '2-3' => array( 'name' => __( '3:2', 'kadence' ), ), '9-16' => array( 'name' => __( '16:9', 'kadence' ), ), '1-2' => array( 'name' => __( '2:1', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-three-col-short', ), ), 'sfwd-topic_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_topic_layout_design', 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-topic_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-topic', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Topic Background', 'kadence' ), ), ), 'sfwd-topic_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'sfwd_topic_layout_design', 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'sfwd-topic_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-sfwd-topic .content-bg, body.single-sfwd-topic.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Topic Content Background', 'kadence' ), ), ), ); Theme_Customizer::add_settings( $settings ); options/header-navigation-options.php 0000644 00000030566 15151531437 0014045 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'primary_navigation_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'primary_navigation', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'primary_navigation_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'primary_navigation', 'settings' => false, 'priority' => 5, 'label' => esc_html__( 'Select Menu', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'section' => 'menu_locations', ), ), 'primary_navigation_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'primary_navigation', 'priority' => 5, 'label' => esc_html__( 'Items Spacing', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item > a', 'property' => 'padding-left', 'pattern' => 'calc($ / 2)', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item > a', 'property' => 'padding-right', 'pattern' => 'calc($ / 2)', 'key' => 'size', ), ), 'default' => kadence()->default( 'primary_navigation_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vw' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, 'vw' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vw' => 0.01, ), 'units' => array( 'px', 'em', 'rem', 'vw' ), 'responsive' => false, ), ), 'primary_navigation_open_type' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'primary_navigation', 'priority' => 10, 'default' => kadence()->default( 'primary_navigation_open_type' ), 'label' => esc_html__( 'Open on: ', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'input_attrs' => array( 'layout' => array( 'hover' => array( 'tooltip' => __( 'Hover', 'kadence' ), 'name' => __( 'Hover', 'kadence' ), 'icon' => '', ), 'click' => array( 'tooltip' => __( 'Click', 'kadence' ), 'name' => __( 'Click', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, 'class' => 'radio-btn-width-50', ), ), 'primary_navigation_stretch' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'primary_navigation', 'priority' => 6, 'default' => kadence()->default( 'primary_navigation_stretch' ), 'label' => esc_html__( 'Stretch Menu?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-header-item-main-navigation', 'pattern' => 'header-navigation-layout-stretch-$', 'key' => 'switch', ), ), ), 'primary_navigation_fill_stretch' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'primary_navigation', 'priority' => 6, 'default' => kadence()->default( 'primary_navigation_fill_stretch' ), 'label' => esc_html__( 'Fill and Center Menu Items?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), array( 'setting' => 'primary_navigation_stretch', 'operator' => '==', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.site-header-item-main-navigation', 'pattern' => 'header-navigation-layout-fill-stretch-$', 'key' => 'switch', ), ), ), 'primary_navigation_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'primary_navigation', 'priority' => 10, 'default' => kadence()->default( 'primary_navigation_style' ), 'label' => esc_html__( 'Navigation Style', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.main-navigation', 'pattern' => 'header-navigation-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Standard', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullheight' => array( 'tooltip' => __( 'Menu items are full height', 'kadence' ), 'name' => __( 'Full Height', 'kadence' ), 'icon' => '', ), 'underline' => array( 'tooltip' => __( 'Underline Hover/Active', 'kadence' ), 'name' => __( 'Underline', 'kadence' ), 'icon' => '', ), 'underline-fullheight' => array( 'tooltip' => __( 'Full Height Underline Hover/Active', 'kadence' ), 'name' => __( 'Full Height Underline', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, 'class' => 'radio-btn-width-50', ), ), 'primary_navigation_vertical_spacing' => array( 'control_type' => 'kadence_range_control', 'section' => 'primary_navigation', 'label' => esc_html__( 'Items Top and Bottom Padding', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'primary_navigation_style', 'operator' => 'sub_object_does_not_contain', 'sub_key' => 'layout', 'responsive' => false, 'value' => 'fullheight', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item > a', 'property' => 'padding-top', 'pattern' => '$', 'key' => 'size', ), array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item > a', 'property' => 'padding-bottom', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'primary_navigation_vertical_spacing' ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, 'vh' => 0, ), 'max' => array( 'px' => 100, 'em' => 12, 'rem' => 12, 'vh' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 0.01, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), 'responsive' => false, ), ), 'primary_navigation_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'primary_navigation', 'label' => esc_html__( 'Navigation Colors', 'kadence' ), 'default' => kadence()->default( 'primary_navigation_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item > a', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item > a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a, .main-navigation .primary-menu-container > ul > li.current_page_item > a', 'property' => 'color', 'pattern' => '$', 'key' => 'active', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Color', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Color', 'kadence' ), 'palette' => true, ), ), ), ), 'primary_navigation_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'primary_navigation', 'label' => esc_html__( 'Navigation Background', 'kadence' ), 'default' => kadence()->default( 'primary_navigation_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item > a:hover', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), array( 'type' => 'css', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a, .main-navigation .primary-menu-container > ul > li.current_page_item > a', 'property' => 'background', 'pattern' => '$', 'key' => 'active', ), ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Background', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Hover Background', 'kadence' ), 'palette' => true, ), 'active' => array( 'tooltip' => __( 'Active Background', 'kadence' ), 'palette' => true, ), ), ), ), 'primary_navigation_parent_active' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'primary_navigation', 'default' => kadence()->default( 'primary_navigation_parent_active' ), 'label' => esc_html__( 'Make Parent of Current Menu Item Active?', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), ), 'primary_navigation_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'primary_navigation', 'label' => esc_html__( 'Navigation Font', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'default' => kadence()->default( 'primary_navigation_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.main-navigation .primary-menu-container > ul > li.menu-item a', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'primary_navigation_typography', 'options' => 'no-color', ), ), 'info_primary_submenu' => array( 'control_type' => 'kadence_title_control', 'section' => 'primary_navigation', 'priority' => 20, 'label' => esc_html__( 'Dropdown Options', 'kadence' ), 'settings' => false, ), 'primary_dropdown_link' => array( 'control_type' => 'kadence_focus_button_control', 'section' => 'primary_navigation', 'settings' => false, 'priority' => 20, 'label' => esc_html__( 'Dropdown Options', 'kadence' ), 'input_attrs' => array( 'section' => 'kadence_customizer_dropdown_navigation', ), ), ); Theme_Customizer::add_settings( $settings ); options/topic-layout-options.php 0000644 00000060537 15151531437 0013112 0 ustar 00 <?php /** * Product Layout Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( 'topic_layout_tabs' => array( 'control_type' => 'kadence_tab_control', 'section' => 'topic_layout', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'topic_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'topic_layout_design', ), 'active' => 'general', ), ), 'topic_layout_tabs_design' => array( 'control_type' => 'kadence_tab_control', 'section' => 'topic_layout_design', 'settings' => false, 'priority' => 1, 'input_attrs' => array( 'general' => array( 'label' => __( 'General', 'kadence' ), 'target' => 'topic_layout', ), 'design' => array( 'label' => __( 'Design', 'kadence' ), 'target' => 'topic_layout_design', ), 'active' => 'design', ), ), 'info_topic_title' => array( 'control_type' => 'kadence_title_control', 'section' => 'topic_layout', 'priority' => 2, 'label' => esc_html__( 'Topic Title', 'kadence' ), 'settings' => false, ), 'info_topic_title_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'topic_layout_design', 'priority' => 2, 'label' => esc_html__( 'Topic Title', 'kadence' ), 'settings' => false, ), 'topic_title' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'topic_layout', 'priority' => 3, 'default' => kadence()->default( 'topic_title' ), 'label' => esc_html__( 'Show Topic Title?', 'kadence' ), 'transport' => 'refresh', ), 'topic_title_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'topic_layout', 'label' => esc_html__( 'Topic Title Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 4, 'default' => kadence()->default( 'topic_title_layout' ), 'context' => array( array( 'setting' => 'topic_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'In Content', 'kadence' ), 'icon' => 'incontent', ), 'above' => array( 'tooltip' => __( 'Above Content', 'kadence' ), 'icon' => 'abovecontent', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'topic_title_inner_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'topic_layout', 'priority' => 4, 'default' => kadence()->default( 'topic_title_inner_layout' ), 'label' => esc_html__( 'Title Container Width', 'kadence' ), 'context' => array( array( 'setting' => 'topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.topic-hero-section', 'pattern' => 'entry-hero-layout-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), 'responsive' => false, ), ), 'topic_title_align' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'topic_layout', 'label' => esc_html__( 'Topic Title Align', 'kadence' ), 'priority' => 4, 'default' => kadence()->default( 'topic_title_align' ), 'context' => array( array( 'setting' => 'topic_title', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => '.topic-title', 'pattern' => array( 'desktop' => 'title-align-$', 'tablet' => 'title-tablet-align-$', 'mobile' => 'title-mobile-align-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'left' => array( 'tooltip' => __( 'Left Align Title', 'kadence' ), 'dashicon' => 'editor-alignleft', ), 'center' => array( 'tooltip' => __( 'Center Align Title', 'kadence' ), 'dashicon' => 'editor-aligncenter', ), 'right' => array( 'tooltip' => __( 'Right Align Title', 'kadence' ), 'dashicon' => 'editor-alignright', ), ), 'responsive' => true, ), ), 'topic_title_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'topic_layout', 'priority' => 5, 'label' => esc_html__( 'Title Container Min Height', 'kadence' ), 'context' => array( array( 'setting' => 'topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#inner-wrap .topic-hero-section .entry-header', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'topic_title_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 800, 'em' => 12, 'rem' => 12, 'vh' => 100, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'topic_title_elements' => array( 'control_type' => 'kadence_sorter_control', 'section' => 'topic_layout', 'priority' => 6, 'default' => kadence()->default( 'topic_title_elements' ), 'label' => esc_html__( 'Title Elements', 'kadence' ), 'transport' => 'refresh', 'settings' => array( 'elements' => 'topic_title_elements', 'title' => 'topic_title_element_title', 'breadcrumb' => 'topic_title_element_breadcrumb', 'search' => 'topic_title_element_search', 'info' => 'topic_title_element_info', ), 'context' => array( array( 'setting' => 'topic_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'group' => 'topic_title_element', ), ), 'topic_title_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Topic Title Font', 'kadence' ), 'default' => kadence()->default( 'topic_title_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.topic-title h1', 'property' => 'font', 'key' => 'typography', ), ), 'context' => array( array( 'setting' => 'topic_title', 'operator' => '=', 'value' => true, ), ), 'input_attrs' => array( 'id' => 'topic_title_font', 'headingInherit' => true, ), ), 'topic_title_search_width' => array( 'control_type' => 'kadence_range_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Search Bar Width', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.topic-title .bbp-search-form', 'property' => 'width', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'topic_title_search_width' ), 'input_attrs' => array( 'min' => array( 'px' => 100, 'em' => 4, 'rem' => 4, ), 'max' => array( 'px' => 600, 'em' => 12, 'rem' => 12, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => false, ), ), 'topic_title_search_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Input Text Colors', 'kadence' ), 'default' => kadence()->default( 'topic_title_search_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.topic-title .bbp-search-form input.search-field, .topic-title .bbp-search-form .kadence-search-icon-wrap', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.topic-title .bbp-search-form input.search-field:focus, .topic-title .bbp-search-form input.search-submit:hover ~ .kadence-search-icon-wrap', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus Color', 'kadence' ), 'palette' => true, ), ), ), ), 'topic_title_search_background' => array( 'control_type' => 'kadence_color_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Input Background', 'kadence' ), 'default' => kadence()->default( 'topic_title_search_background' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.topic-title .bbp-search-form input.search-field', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.topic-title .bbp-search-form input.search-field:focus', 'property' => 'background', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus Color', 'kadence' ), 'palette' => true, ), ), ), ), 'topic_title_search_border' => array( 'control_type' => 'kadence_border_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'topic_title_search_border' ), 'live_method' => array( array( 'type' => 'css_border', 'selector' => '.topic-title .bbp-search-form input.search-field', 'pattern' => '$', 'property' => 'border', 'pattern' => '$', 'key' => 'border', ), ), 'input_attrs' => array( 'responsive' => false, 'color' => false, ), ), 'topic_title_search_border_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Input Border Color', 'kadence' ), 'default' => kadence()->default( 'topic_title_search_border_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.topic-title .bbp-search-form input.search-field', 'property' => 'border-color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.topic-title .bbp-search-form input.search-field:focus', 'property' => 'border-color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Focus Color', 'kadence' ), 'palette' => true, ), ), ), ), 'topic_title_search_typography' => array( 'control_type' => 'kadence_typography_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Font', 'kadence' ), 'default' => kadence()->default( 'topic_title_search_typography' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.topic-title .bbp-search-form input.search-field', 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'topic_title_search_typography', 'options' => 'no-color', ), ), 'topic_title_search_margin' => array( 'control_type' => 'kadence_measure_control', 'section' => 'topic_layout_design', 'default' => kadence()->default( 'topic_title_search_margin' ), 'label' => esc_html__( 'Margin', 'kadence' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.topic-title .bbp-search-form form', 'property' => 'margin', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'responsive' => false, ), ), 'topic_title_breadcrumb_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Breadcrumb Colors', 'kadence' ), 'default' => kadence()->default( 'topic_title_breadcrumb_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.topic-title .kadence-breadcrumbs', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.topic-title .kadence-breadcrumbs a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'topic_title_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Breadcrumb Font', 'kadence' ), 'default' => kadence()->default( 'topic_title_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.topic-title .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'topic_title_breadcrumb_font', 'options' => 'no-color', ), ), 'topic_title_info_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Info Colors', 'kadence' ), 'default' => kadence()->default( 'topic_title_info_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.wp-site-blocks .topic-title .bbpress-topic-meta', 'property' => 'color', 'pattern' => '$', 'key' => 'color', ), array( 'type' => 'css', 'selector' => '.wp-site-blocks .topic-title .bbpress-topic-meta a:hover', 'property' => 'color', 'pattern' => '$', 'key' => 'hover', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Initial Color', 'kadence' ), 'palette' => true, ), 'hover' => array( 'tooltip' => __( 'Link Hover Color', 'kadence' ), 'palette' => true, ), ), ), ), 'topic_title_info_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Meta Font', 'kadence' ), 'default' => kadence()->default( 'topic_title_info_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.topic-title .bbpress-topic-meta', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'topic_title_info_font', 'options' => 'no-color', ), ), 'topic_title_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Forum Above Area Background', 'kadence' ), 'default' => kadence()->default( 'topic_title_background' ), 'context' => array( array( 'setting' => 'topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '#inner-wrap .topic-hero-section .entry-hero-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Topic Title Background', 'kadence' ), ), ), 'topic_title_overlay_color' => array( 'control_type' => 'kadence_color_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Background Overlay Color', 'kadence' ), 'default' => kadence()->default( 'topic_title_overlay_color' ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.topic-hero-section .hero-section-overlay', 'property' => 'background', 'pattern' => '$', 'key' => 'color', ), ), 'context' => array( array( 'setting' => 'topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'input_attrs' => array( 'colors' => array( 'color' => array( 'tooltip' => __( 'Overlay Color', 'kadence' ), 'palette' => true, ), ), 'allowGradient' => true, ), ), 'topic_title_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'topic_layout_design', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'topic_title_border' ), 'context' => array( array( 'setting' => 'topic_title', 'operator' => '=', 'value' => true, ), array( 'setting' => 'topic_title_layout', 'operator' => '=', 'value' => 'above', ), ), 'settings' => array( 'border_top' => 'topic_title_top_border', 'border_bottom' => 'topic_title_bottom_border', ), 'live_method' => array( 'topic_title_top_border' => array( array( 'type' => 'css_border', 'selector' => '.topic-hero-section .entry-hero-container-inner', 'pattern' => '$', 'property' => 'border-top', 'key' => 'border', ), ), 'topic_title_bottom_border' => array( array( 'type' => 'css_border', 'selector' => '.topic-hero-section .entry-hero-container-inner', 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'info_topic_layout' => array( 'control_type' => 'kadence_title_control', 'section' => 'topic_layout', 'priority' => 10, 'label' => esc_html__( 'Topic Layout', 'kadence' ), 'settings' => false, ), 'info_topic_layout_design' => array( 'control_type' => 'kadence_title_control', 'section' => 'topic_layout_design', 'priority' => 10, 'label' => esc_html__( 'Topic Layout', 'kadence' ), 'settings' => false, ), 'topic_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'topic_layout', 'label' => esc_html__( 'Topic Layout', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'topic_layout' ), 'input_attrs' => array( 'layout' => array( 'normal' => array( 'tooltip' => __( 'Normal', 'kadence' ), 'icon' => 'normal', ), 'narrow' => array( 'tooltip' => __( 'Narrow', 'kadence' ), 'icon' => 'narrow', ), 'fullwidth' => array( 'tooltip' => __( 'Fullwidth', 'kadence' ), 'icon' => 'fullwidth', ), 'left' => array( 'tooltip' => __( 'Left Sidebar', 'kadence' ), 'icon' => 'leftsidebar', ), 'right' => array( 'tooltip' => __( 'Right Sidebar', 'kadence' ), 'icon' => 'rightsidebar', ), ), 'responsive' => false, 'class' => 'kadence-three-col', ), ), 'topic_sidebar_id' => array( 'control_type' => 'kadence_select_control', 'section' => 'topic_layout', 'label' => esc_html__( 'Topic Default Sidebar', 'kadence' ), 'transport' => 'refresh', 'priority' => 10, 'default' => kadence()->default( 'topic_sidebar_id' ), 'input_attrs' => array( 'options' => kadence()->sidebar_options(), ), ), 'topic_content_style' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'topic_layout', 'label' => esc_html__( 'Content Style', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'topic_content_style' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-topic', 'pattern' => 'content-style-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'boxed' => array( 'tooltip' => __( 'Boxed', 'kadence' ), 'icon' => 'boxed', ), 'unboxed' => array( 'tooltip' => __( 'Unboxed', 'kadence' ), 'icon' => 'narrow', ), ), 'responsive' => false, 'class' => 'kadence-two-col', ), ), 'topic_vertical_padding' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'topic_layout', 'label' => esc_html__( 'Content Vertical Padding', 'kadence' ), 'priority' => 10, 'default' => kadence()->default( 'topic_vertical_padding' ), 'live_method' => array( array( 'type' => 'class', 'selector' => 'body.single-forum', 'pattern' => 'content-vertical-padding-$', 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'show' => array( 'name' => __( 'Enable', 'kadence' ), ), 'hide' => array( 'name' => __( 'Disable', 'kadence' ), ), 'top' => array( 'name' => __( 'Top Only', 'kadence' ), ), 'bottom' => array( 'name' => __( 'Bottom Only', 'kadence' ), ), ), 'responsive' => false, 'class' => 'kadence-two-grid', ), ), 'topic_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'topic_layout_design', 'priority' => 20, 'label' => esc_html__( 'Site Background', 'kadence' ), 'default' => kadence()->default( 'topic_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-topic', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Topic Background', 'kadence' ), ), ), 'topic_content_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'topic_layout_design', 'priority' => 20, 'label' => esc_html__( 'Content Background', 'kadence' ), 'default' => kadence()->default( 'topic_content_background' ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => 'body.single-topic .content-bg, body.single-topic.content-style-unboxed .site', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Topic Content Background', 'kadence' ), ), ), ) ); options/general-typography-options.php 0000644 00000021415 15151531437 0014272 0 ustar 00 <?php /** * Header Builder Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; Theme_Customizer::add_settings( array( // 'load_font_pairing' => array( // 'control_type' => 'kadence_font_pairing', // 'section' => 'general_typography', // 'label' => esc_html__( 'Font Pairings', 'kadence' ), // 'settings' => false, // ), 'base_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'Base Font', 'kadence' ), 'default' => kadence()->default( 'base_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'body', 'property' => 'font', 'key' => 'typography', ), array( 'id' => 'base_font_family', 'type' => 'css', 'property' => '--global-body-font-family', 'selector' => 'body', 'pattern' => '$', 'key' => 'family', ), ), 'input_attrs' => array( 'id' => 'base_font', 'canInherit' => false, ), ), 'load_base_italic' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_typography', 'default' => kadence()->default( 'load_base_italic' ), 'label' => esc_html__( 'Load Italics Font Styles', 'kadence' ), 'context' => array( array( 'setting' => 'base_font', 'operator' => 'load_italic', 'value' => 'true', ), ), ), 'info_heading' => array( 'control_type' => 'kadence_title_control', 'section' => 'general_typography', 'label' => esc_html__( 'Headings', 'kadence' ), 'settings' => false, ), 'heading_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'Heading Font Family', 'kadence' ), 'default' => kadence()->default( 'heading_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'h1,h2,h3,h4,h5,h6', 'property' => 'font', 'key' => 'family', ), array( 'type' => 'css', 'property' => '--global-heading-font-family', 'selector' => 'body', 'pattern' => '$', 'key' => 'family', ), ), 'input_attrs' => array( 'id' => 'heading_font', 'options' => 'family', ), ), 'h1_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'H1 Font', 'kadence' ), 'default' => kadence()->default( 'h1_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'h1', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'h1_font', 'headingInherit' => true, ), ), 'h2_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'H2 Font', 'kadence' ), 'default' => kadence()->default( 'h2_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'h2', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'h2_font', 'headingInherit' => true, ), ), 'h3_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'H3 Font', 'kadence' ), 'default' => kadence()->default( 'h3_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'h3', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'h3_font', 'headingInherit' => true, ), ), 'h4_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'H4 Font', 'kadence' ), 'default' => kadence()->default( 'h4_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'h4', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'h4_font', 'headingInherit' => true, ), ), 'h5_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'H5 Font', 'kadence' ), 'default' => kadence()->default( 'h5_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'h5', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'h5_font', 'headingInherit' => true, ), ), 'h6_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'H6 Font', 'kadence' ), 'default' => kadence()->default( 'h6_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => 'h6', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'h6_font', 'headingInherit' => true, ), ), 'info_above_title_heading' => array( 'control_type' => 'kadence_title_control', 'section' => 'general_typography', 'label' => esc_html__( 'Title Above Content', 'kadence' ), 'settings' => false, ), 'title_above_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'H1 Title', 'kadence' ), 'default' => kadence()->default( 'title_above_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.entry-hero h1', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'title_above_font', 'headingInherit' => true, ), ), 'title_above_breadcrumb_font' => array( 'control_type' => 'kadence_typography_control', 'section' => 'general_typography', 'label' => esc_html__( 'Breadcrumbs', 'kadence' ), 'default' => kadence()->default( 'title_above_breadcrumb_font' ), 'live_method' => array( array( 'type' => 'css_typography', 'selector' => '.entry-hero .kadence-breadcrumbs', 'property' => 'font', 'key' => 'typography', ), ), 'input_attrs' => array( 'id' => 'title_above_breadcrumb_font', ), ), 'font_rendering' => array( 'control_type' => 'kadence_switch_control', 'sanitize' => 'kadence_sanitize_toggle', 'section' => 'general_typography', 'transport' => 'refresh', 'default' => kadence()->default( 'font_rendering' ), 'label' => esc_html__( 'Enable Font Smoothing', 'kadence' ), ), 'google_subsets' => array( 'control_type' => 'kadence_check_icon_control', 'section' => 'general_typography', 'sanitize' => 'kadence_sanitize_google_subsets', 'priority' => 20, 'default' => array(), 'label' => esc_html__( 'Google Font Subsets', 'kadence' ), 'input_attrs' => array( 'options' => array( 'latin-ext' => array( 'name' => __( 'Latin Extended', 'kadence' ), ), 'cyrillic' => array( 'name' => __( 'Cyrillic', 'kadence' ), ), 'cyrillic-ext' => array( 'name' => __( 'Cyrillic Extended', 'kadence' ), ), 'greek' => array( 'name' => __( 'Greek', 'kadence' ), ), 'greek-ext' => array( 'name' => __( 'Greek Extended', 'kadence' ), ), 'vietnamese' => array( 'name' => __( 'Vietnamese', 'kadence' ), ), 'arabic' => array( 'name' => __( 'Arabic', 'kadence' ), ), 'khmer' => array( 'name' => __( 'Khmer', 'kadence' ), ), 'chinese' => array( 'name' => __( 'Chinese', 'kadence' ), ), 'chinese-simplified' => array( 'name' => __( 'Chinese Simplified', 'kadence' ), ), 'tamil' => array( 'name' => __( 'Tamil', 'kadence' ), ), 'bengali' => array( 'name' => __( 'Bengali', 'kadence' ), ), 'devanagari' => array( 'name' => __( 'Devanagari', 'kadence' ), ), 'hebrew' => array( 'name' => __( 'Hebrew', 'kadence' ), ), 'korean' => array( 'name' => __( 'Korean', 'kadence' ), ), 'thai' => array( 'name' => __( 'Thai', 'kadence' ), ), 'telugu' => array( 'name' => __( 'Telugu', 'kadence' ), ), ), ), ), ) ); options/header-top-options.php 0000644 00000016501 15151531437 0012501 0 ustar 00 <?php /** * Header Top Row Options * * @package Kadence */ namespace Kadence; use Kadence\Theme_Customizer; use function Kadence\kadence; ob_start(); ?> <div class="kadence-compontent-tabs nav-tab-wrapper wp-clearfix"> <a href="#" class="nav-tab kadence-general-tab kadence-compontent-tabs-button nav-tab-active" data-tab="general"> <span><?php esc_html_e( 'General', 'kadence' ); ?></span> </a> <a href="#" class="nav-tab kadence-design-tab kadence-compontent-tabs-button" data-tab="design"> <span><?php esc_html_e( 'Design', 'kadence' ); ?></span> </a> </div> <?php $compontent_tabs = ob_get_clean(); $settings = array( 'header_top_tabs' => array( 'control_type' => 'kadence_blank_control', 'section' => 'header_top', 'settings' => false, 'priority' => 1, 'description' => $compontent_tabs, ), 'header_top_layout' => array( 'control_type' => 'kadence_radio_icon_control', 'section' => 'header_top', 'priority' => 4, 'default' => kadence()->default( 'header_top_layout' ), 'label' => esc_html__( 'Layout', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'class', 'selector' => array( 'desktop' => '.site-top-header-wrap', 'tablet' => '#mobile-header .site-top-header-wrap', 'mobile' => '#mobile-header .site-top-header-wrap', ), 'pattern' => array( 'desktop' => 'site-header-row-layout-$', 'tablet' => 'site-header-row-tablet-layout-$', 'mobile' => 'site-header-row-mobile-layout-$', ), 'key' => '', ), ), 'input_attrs' => array( 'layout' => array( 'standard' => array( 'tooltip' => __( 'Background Fullwidth, Content Contained', 'kadence' ), 'name' => __( 'Standard', 'kadence' ), 'icon' => '', ), 'fullwidth' => array( 'tooltip' => __( 'Background & Content Fullwidth', 'kadence' ), 'name' => __( 'Fullwidth', 'kadence' ), 'icon' => '', ), 'contained' => array( 'tooltip' => __( 'Background & Content Contained', 'kadence' ), 'name' => __( 'Contained', 'kadence' ), 'icon' => '', ), ), ), ), 'header_top_height' => array( 'control_type' => 'kadence_range_control', 'section' => 'header_top', 'priority' => 5, 'label' => esc_html__( 'Min Height', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'general', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '#masthead .site-top-header-inner-wrap', 'property' => 'min-height', 'pattern' => '$', 'key' => 'size', ), ), 'default' => kadence()->default( 'header_top_height' ), 'input_attrs' => array( 'min' => array( 'px' => 10, 'em' => 1, 'rem' => 1, 'vh' => 2, ), 'max' => array( 'px' => 400, 'em' => 12, 'rem' => 12, 'vh' => 40, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, 'vh' => 1, ), 'units' => array( 'px', 'em', 'rem', 'vh' ), ), ), 'header_top_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_top', 'label' => esc_html__( 'Top Row Background', 'kadence' ), 'default' => kadence()->default( 'header_top_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.site-top-header-wrap .site-header-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Top Row Background', 'kadence' ), ), ), 'header_top_border' => array( 'control_type' => 'kadence_borders_control', 'section' => 'header_top', 'label' => esc_html__( 'Border', 'kadence' ), 'default' => kadence()->default( 'header_top_border' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'settings' => array( 'border_top' => 'header_top_top_border', 'border_bottom' => 'header_top_bottom_border', ), 'live_method' => array( 'header_top_top_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-top-header-wrap .site-header-row-container-inner', 'tablet' => '#mobile-header .site-top-header-wrap .site-header-row-container-inner', 'mobile' => '#mobile-header .site-top-header-wrap .site-header-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-top', 'pattern' => '$', 'key' => 'border', ), ), 'header_top_bottom_border' => array( array( 'type' => 'css_border', 'selector' => array( 'desktop' => '.site-top-header-wrap .site-header-row-container-inner', 'tablet' => '#mobile-header .site-top-header-wrap .site-header-row-container-inner', 'mobile' => '#mobile-header .site-top-header-wrap .site-header-row-container-inner', ), 'pattern' => array( 'desktop' => '$', 'tablet' => '$', 'mobile' => '$', ), 'property' => 'border-bottom', 'pattern' => '$', 'key' => 'border', ), ), ), ), 'header_top_trans_background' => array( 'control_type' => 'kadence_background_control', 'section' => 'header_top', 'label' => esc_html__( '(When Transparent Header) Top Row Background', 'kadence' ), 'default' => kadence()->default( 'header_top_trans_background' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), array( 'setting' => 'transparent_header_enable', 'operator' => '=', 'value' => true, ), ), 'live_method' => array( array( 'type' => 'css_background', 'selector' => '.transparent-header #masthead .site-top-header-wrap .site-header-row-container-inner', 'property' => 'background', 'pattern' => '$', 'key' => 'base', ), ), 'input_attrs' => array( 'tooltip' => __( 'Transparent Header Top Row Background', 'kadence' ), ), ), 'header_top_padding' => array( 'control_type' => 'kadence_measure_control', 'section' => 'header_top', 'default' => kadence()->default( 'header_top_padding' ), 'label' => esc_html__( 'Padding', 'kadence' ), 'context' => array( array( 'setting' => '__current_tab', 'value' => 'design', ), ), 'live_method' => array( array( 'type' => 'css', 'selector' => '.site-top-header-wrap .site-header-row-container-inner>.site-container', 'property' => 'padding', 'pattern' => '$', 'key' => 'measure', ), ), 'input_attrs' => array( 'min' => array( 'px' => 0, 'em' => 0, 'rem' => 0, ), 'max' => array( 'px' => 100, 'em' => 6, 'rem' => 6, ), 'step' => array( 'px' => 1, 'em' => 0.01, 'rem' => 0.01, ), 'units' => array( 'px', 'em', 'rem' ), 'responsive' => true, ), ), ); Theme_Customizer::add_settings( $settings );