Файловый менеджер - Редактировать - /home/freeclou/app.optimyar.com/front-web/build/assets/fonts/iran-yekan/beflpn/includes.zip
Назад
PK CLj[R�w>�� �� addons/jet-accordion-widget.phpnu ȯ�� <?php /** * Class: Jet_Accordion_Widget * Name: Classic Accordion * Slug: jet-accordion */ namespace Elementor; use Elementor\Core\Kits\Documents\Tabs\Global_Colors; use Elementor\Core\Kits\Documents\Tabs\Global_Typography; use Elementor\Controls_Manager; use Elementor\Group_Control_Border; use Elementor\Group_Control_Box_Shadow; use Elementor\Group_Control_Typography; use Elementor\Repeater; use Elementor\Widget_Base; use Elementor\Utils; use Jet_Tabs\JSON_LD_Schema; if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! class_exists( 'JSON_LD_Schema' ) ) { require_once plugin_dir_path( dirname( __FILE__ ) ) . 'base/json-ld-schema.php'; } class Jet_Accordion_Widget extends Jet_Tabs_Base { public function get_name() { return 'jet-accordion'; } public function get_title() { return esc_html__( 'Classic Accordion', 'jet-tabs' ); } public function get_help_url() { return 'https://crocoblock.com/knowledge-base/articles/jettabs-accordion-widget-how-to-display-content-in-the-form-of-a-compact-accordion?utm_source=jettabs&utm_medium=jet-accordion&utm_campaign=need-help'; } public function get_icon() { return 'jet-tabs-icon-accordion'; } public function get_categories() { return array( 'jet-tabs' ); } protected function register_controls() { $css_scheme = apply_filters( 'jet-tabs/accordion/css-scheme', array( 'instance' => '.jet-accordion', 'toggle' => '.jet-accordion > .jet-accordion__inner > .jet-toggle', 'control' => '.jet-accordion > .jet-accordion__inner > .jet-toggle > .jet-toggle__control', 'active_control' => '.jet-accordion > .jet-accordion__inner > .jet-toggle.active-toggle > .jet-toggle__control', 'content' => '.jet-accordion > .jet-accordion__inner > .jet-toggle > .jet-toggle__content', 'label' => '.jet-toggle__label-text', 'icon' => '.jet-toggle__label-icon', ) ); $this->start_controls_section( 'section_items_data', array( 'label' => esc_html__( 'Items', 'jet-tabs' ), ) ); do_action( 'jet-engine-query-gateway/control', $this, 'toggles' ); $repeater = new Repeater(); $repeater->add_control( 'item_active', array( 'label' => esc_html__( 'Active', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'jet-tabs' ), 'label_off' => esc_html__( 'No', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $repeater->add_control( $this->__new_icon_prefix . 'item_icon', array( 'label' => esc_html__( 'Icon', 'jet-tabs' ), 'type' => Controls_Manager::ICONS, 'label_block' => false, 'skin' => 'inline', 'fa4compatibility' => 'item_icon', 'default' => array( 'value' => 'fas fa-plus', 'library' => 'fa-solid', ), ) ); $repeater->add_control( $this->__new_icon_prefix . 'item_active_icon', array( 'label' => esc_html__( 'Active Icon', 'jet-tabs' ), 'type' => Controls_Manager::ICONS, 'label_block' => false, 'skin' => 'inline', 'fa4compatibility' => 'item_active_icon', 'default' => array( 'value' => 'fas fa-minus', 'library' => 'fa-solid', ), ) ); $repeater->add_control( 'item_label', array( 'label' => esc_html__( 'Label', 'jet-tabs' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'New Tab', 'jet-tabs' ), 'dynamic' => array( 'active' => true, ), ) ); $repeater->add_control( 'content_type', array( 'label' => esc_html__( 'Content Type', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'template', 'options' => array( 'template' => esc_html__( 'Template', 'jet-tabs' ), 'editor' => esc_html__( 'Editor', 'jet-tabs' ), ), 'label_block' => 'true', ) ); $repeater->add_control( 'item_template_id', array( 'label' => esc_html__( 'Choose Template', 'jet-tabs' ), 'type' => 'jet-query', 'query_type' => 'elementor_templates', 'edit_button' => array( 'active' => true, 'label' => esc_html__( 'Edit Template', 'jet-tabs' ), ), 'condition' => array( 'content_type' => 'template', ) ) ); $repeater->add_control( 'item_editor_content', array( 'label' => esc_html__( 'Content', 'jet-tabs' ), 'type' => Controls_Manager::WYSIWYG, 'default' => esc_html__( 'Tab Item Content', 'jet-tabs' ), 'dynamic' => array( 'active' => true, ), 'condition' => array( 'content_type' => 'editor', ) ) ); $repeater->add_control( 'control_id', array( 'label' => esc_html__( 'Control CSS ID', 'jet-tabs' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true, ), ) ); $repeater->add_control( 'item_custom_css_class', array( 'label' => esc_html__( 'Item Custom CSS Class', 'jet-tabs' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true, ), ) ); $this->add_control( 'toggles', array( 'type' => Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'default' => array( array( 'item_label' => esc_html__( 'Toggle #1', 'jet-tabs' ), ), array( 'item_label' => esc_html__( 'Toggle #2', 'jet-tabs' ), ), array( 'item_label' => esc_html__( 'Toggle #3', 'jet-tabs' ), ), ), 'title_field' => '{{{ item_label }}}', ) ); $this->end_controls_section(); $this->start_controls_section( 'section_settings_data', array( 'label' => esc_html__( 'Settings', 'jet-tabs' ), ) ); $this->add_control( 'item_html_tag', array( 'label' => esc_html__( 'HTML Tag', 'jet-tabs' ), 'description' => esc_html__( 'Select the HTML Tag for the Item\'s label', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'options' => $this->get_available_item_html_tags(), 'default' => 'div', ) ); $this->add_control( 'collapsible', array( 'label' => esc_html__( 'Collapsible', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'jet-tabs' ), 'label_off' => esc_html__( 'No', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $this->add_control( 'show_effect', array( 'label' => esc_html__( 'Show Effect', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'move-up', 'options' => array( 'none' => esc_html__( 'None', 'jet-tabs' ), 'fade' => esc_html__( 'Fade', 'jet-tabs' ), 'zoom-in' => esc_html__( 'Zoom In', 'jet-tabs' ), 'zoom-out' => esc_html__( 'Zoom Out', 'jet-tabs' ), 'move-up' => esc_html__( 'Move Up', 'jet-tabs' ), 'fall-perspective' => esc_html__( 'Fall Perspective', 'jet-tabs' ), ), ) ); $this->add_control( 'ajax_template', array( 'label' => esc_html__( 'Use Ajax Loading for Template', 'jet-tabs' ), 'description' => esc_html__( 'Note: Do not use with query or dynamic data', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $this->add_control( 'faq_schema', array( 'label' => esc_html__( 'FAQ Schema', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'separator' => 'before', ) ); $this->add_control( 'content_scrolling', array( 'label' => esc_html__( 'Scrolling to the Content', 'jet-tabs' ), 'description' => esc_html__( 'Scrolling to the Content after Switching Tab Control', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $this->add_control( 'content_scrolling_offset', array( 'label' => esc_html__( 'Scrolling offset (px)', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'range' => array( 'px' => array( 'min' => 0, 'max' => 100, ), ), 'default' => array( 'unit' => 'px', 'size' => 0, ), 'condition' => array( 'content_scrolling' => 'yes' ) ) ); $this->add_control( 'content_scrolling_delay', array( 'label' => esc_html__( 'Scroll animation speed (ms)', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 500, 'min' => 100, 'max' => 10000, 'step' => 10, 'condition' => array( 'content_scrolling' => 'yes' ), ) ); $this->end_controls_section(); $this->__start_controls_section( 'section_accordion_container_style', array( 'label' => esc_html__( 'Accordion Container', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'instance_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['instance'], ), 25 ); $this->__add_responsive_control( 'instance_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['instance'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'instance_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['instance'], ), 25 ); $this->__add_control( 'instance_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['instance'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'instance_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['instance'], ), 100 ); $this->__end_controls_section(); /** * Toggle Style Section */ $this->__start_controls_section( 'section_toggle_style', array( 'label' => esc_html__( 'Toggle', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'toggle_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['toggle'], ), 25 ); $this->__add_responsive_control( 'toggle_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['toggle'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'toggle_margin', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['toggle'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'toggle_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'selector' => '{{WRAPPER}} ' . $css_scheme['toggle'], ), 25 ); $this->__add_control( 'toggle_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['toggle'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'toggle_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['toggle'], ), 100 ); $this->__end_controls_section(); /** * Toggle Control Style Section */ $this->__start_controls_section( 'section_toggle_control_style', array( 'label' => esc_html__( 'Toggle Control', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_control( 'toggle_icon_heading', array( 'label' => esc_html__( 'Icon ', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, ), 25 ); $this->__add_control( 'toggle_icon_position', array( 'label' => esc_html__( 'Position', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'options' => array( 'left' => array( 'title' => esc_html__( 'Left', 'jet-tabs' ), 'icon' => 'eicon-h-align-left', ), 'right' => array( 'title' => esc_html__( 'Right', 'jet-tabs' ), 'icon' => 'eicon-h-align-right', ), ), 'default' => 'left', 'label_block' => false, 'classes' => 'jet-tabs-text-align-control', ), 25 ); $this->__add_responsive_control( 'toggle_icon_margin', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' ' . $css_scheme['icon'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'toggle_label_aligment', array( 'label' => esc_html__( 'Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'flex-start', 'options' => array( 'flex-start' => array( 'title' => esc_html__( 'Start', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'fa fa-arrow-left' : 'fa fa-arrow-right', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'fa fa-align-center', ), 'space-between' => array( 'title' => esc_html__( 'Justify', 'jet-tabs' ), 'icon' => 'fa fa-align-justify', ), 'flex-end' => array( 'title' => esc_html__( 'End', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'fa fa-arrow-right' : 'fa fa-arrow-left', ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] => 'justify-content: {{VALUE}};', ), 'separator' => 'before', ), 25 ); $this->__add_responsive_control( 'toggle_label_text_aligment', array( 'label' => esc_html__( 'Text Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'left', 'options' => array( 'left' => array( 'title' => esc_html__( 'Left', 'jet-tabs' ), 'icon' => 'eicon-text-align-left', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-text-align-center', ), 'right' => array( 'title' => esc_html__( 'Right', 'jet-tabs' ), 'icon' => 'eicon-text-align-right', ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['label'] => 'text-align: {{VALUE}};', ), ), 25 ); $this->__start_controls_tabs( 'toggle_general_styles' ); $this->__start_controls_tab( 'toggle_control_normal', array( 'label' => esc_html__( 'Normal', 'jet-tabs' ), ) ); $this->__add_control( 'toggle_label_color', array( 'label' => esc_html__( 'Text Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_TEXT, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' ' . $css_scheme['label'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'toggle_label_typography', 'selector' => '{{WRAPPER}} '. $css_scheme['control'] . ' ' . $css_scheme['label'], 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_PRIMARY, ), ), 50 ); $this->__add_group_control( \Jet_Tabs_Group_Control_Box_Style::get_type(), array( 'label' => esc_html__( 'Icon', 'jet-tabs' ), 'name' => 'toggle_icon_box', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ' ' . $css_scheme['icon'] . ' .icon-normal', ), 25 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'toggle_control_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'], ), 25 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'toggle_control_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'], ), 25 ); $this->__end_controls_tab(); $this->__start_controls_tab( 'toggle_control_hover', array( 'label' => esc_html__( 'Hover', 'jet-tabs' ), ) ); $this->__add_control( 'toggle_label_color_hover', array( 'label' => esc_html__( 'Text Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_TEXT, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ':hover ' . $css_scheme['label'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'toggle_label_typography_hover', 'selector' => '{{WRAPPER}} '. $css_scheme['control'] . ':hover ' . $css_scheme['label'], 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_PRIMARY, ), ), 50 ); $this->__add_group_control( \Jet_Tabs_Group_Control_Box_Style::get_type(), array( 'label' => esc_html__( 'Icon', 'jet-tabs' ), 'name' => 'toggle_icon_box_hover', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ':hover ' . $css_scheme['icon'] . ' .icon-normal', ), 25 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'toggle_control_background_hover', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ':hover', ), 25 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'toggle_control_border_hover', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ':hover', ), 25 ); $this->__end_controls_tab(); $this->__start_controls_tab( 'toggle_control_active', array( 'label' => esc_html__( 'Active', 'jet-tabs' ), ) ); $this->__add_control( 'toggle_label_color_active', array( 'label' => esc_html__( 'Text Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_TEXT, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['active_control'] . ' ' . $css_scheme['label'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'toggle_label_typography_active', 'selector' => '{{WRAPPER}} '. $css_scheme['active_control'] . ' ' . $css_scheme['label'], 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_PRIMARY, ), ), 50 ); $this->__add_group_control( \Jet_Tabs_Group_Control_Box_Style::get_type(), array( 'label' => esc_html__( 'Icon', 'jet-tabs' ), 'name' => 'toggle_icon_box_active', 'selector' => '{{WRAPPER}} ' . $css_scheme['toggle'] . '.active-toggle ' . $css_scheme['icon'] . ' .icon-active', ), 25 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'toggle_control_background_active', 'selector' => '{{WRAPPER}} ' . $css_scheme['toggle'] . '.active-toggle > .jet-toggle__control', ), 25 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'toggle_control_border_active', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['toggle'] . '.active-toggle > .jet-toggle__control', ), 25 ); $this->__end_controls_tab(); $this->__end_controls_tabs(); $this->__add_responsive_control( 'toggle_control_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'separator' => 'before', 'custom_units' => true, ), 50 ); $this->__add_control( 'toggle_control_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'toggle_control_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'], ), 100 ); $this->__end_controls_section(); /** * Toggle Content Style Section */ $this->__start_controls_section( 'section_tabs_content_style', array( 'label' => esc_html__( 'Toggle Content', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'tabs_content_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['content'], ), 50 ); $this->__add_control( 'tabs_content_text_color', array( 'label' => esc_html__( 'Text color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] => 'color: {{VALUE}};', ), ), 25 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'tabs_content_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['content'], ), 25 ); $this->__add_responsive_control( 'tabs_content_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] . ' > .jet-toggle__content-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'tabs_content_margin', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'tabs_content_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['content'], ), 25 ); $this->__add_responsive_control( 'tabs_content_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'tabs_content_box_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['content'], ), 100 ); $this->__add_control( 'tabs_content_loader_style_heading', array( 'label' => esc_html__( 'Loader Styles', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', 'condition' => array( 'ajax_template' => 'yes', ), ), 25 ); $this->__add_control( 'tabs_content_loader_color', array( 'label' => esc_html__( 'Loader color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] . ' .jet-tabs-loader' => 'border-color: {{VALUE}}; border-top-color: white;', ), 'condition' => array( 'ajax_template' => 'yes', ), ), 25 ); $this->__end_controls_section(); } /** * [render description] * @return [type] [description] */ protected function render() { $this->__context = 'render'; $toggles = $this->get_settings_for_display( 'toggles' ); $toggles = apply_filters( 'jet-tabs/widget/loop-items', $toggles, 'toggles', $this ); $faq_schema = $this->get_settings_for_display( 'faq_schema' ); $id_int = substr( $this->get_id_int(), 0, 3 ); $show_effect = $this->get_settings( 'show_effect' ); $ajax_template = filter_var( $this->get_settings( 'ajax_template' ), FILTER_VALIDATE_BOOLEAN ); $settings = array( 'collapsible' => filter_var( $this->get_settings( 'collapsible' ), FILTER_VALIDATE_BOOLEAN ), 'ajaxTemplate' => $ajax_template, 'switchScrolling' => filter_var( $this->get_settings( 'content_scrolling' ), FILTER_VALIDATE_BOOLEAN ), 'switchScrollingOffset' => !empty( $this->get_settings_for_display( 'content_scrolling_offset' ) ) ? $this->get_settings_for_display( 'content_scrolling_offset' ) : 0, 'switchScrollingDelay' => !empty( $this->get_settings_for_display( 'content_scrolling_delay' ) ) ? $this->get_settings_for_display( 'content_scrolling_delay' ) : 500 ); $this->add_render_attribute( 'instance', array( 'class' => array( 'jet-accordion', ), 'data-settings' => json_encode( $settings ), ) ); $toggle_icon_position = $this->get_settings( 'toggle_icon_position' ); $toggle_item_label_tag = ! empty( $this->get_settings( 'item_html_tag' ) ) ? $this->get_settings( 'item_html_tag' ) : 'div'; $toggle_item_label_tag = $this->validate_html_tag( $toggle_item_label_tag ); ?> <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> <div <?php echo $this->get_render_attribute_string( 'instance' ); ?>> <div class="jet-accordion__inner"> <?php do_action( 'jet-engine-query-gateway/before-loop', 'toggles', $this ); foreach ( $toggles as $index => $item ) { do_action( 'jet-engine-query-gateway/do-item', $item ); $toggle_count = $index + 1; $toggle_setting_key = $this->get_repeater_setting_key( 'jet_toggle', 'toggles', $index ); $toggle_control_setting_key = $this->get_repeater_setting_key( 'jet_toggle_control', 'toggles', $index ); $toggle_content_setting_key = $this->get_repeater_setting_key( 'jet_toggle_content', 'toggles', $index ); $is_item_active = filter_var( $item['item_active'], FILTER_VALIDATE_BOOLEAN ); $toggle_control_id = ! empty( $item['control_id'] ) ? esc_attr( $item['control_id'] ) : 'jet-toggle-control-' . $id_int . $toggle_count; $this->add_render_attribute( $toggle_control_setting_key, array( 'id' => $toggle_control_id, 'class' => array( 'jet-toggle__control', 'elementor-menu-anchor', ), 'data-toggle' => $toggle_count, 'role' => 'button', 'tabindex' => 0, 'aria-controls' => 'jet-toggle-content-' . $id_int . $toggle_count, 'aria-expanded' => $is_item_active ? 'true' : 'false', 'data-template-id' => ! empty( $item['item_template_id'] ) ? $item['item_template_id'] : 'false', ) ); $toggle_control_icon_html = ''; $normal_icon_html = $this->__get_icon( 'item_icon', $item, '<span class="jet-toggle__icon icon-normal jet-tabs-icon">%s</span>' ); $active_icon_html = $this->__get_icon( 'item_active_icon', $item, '<span class="jet-toggle__icon icon-active jet-tabs-icon">%s</span>' ); if ( ! empty( $normal_icon_html ) && ! empty( $active_icon_html ) ) { $toggle_control_icon_html .= sprintf( '<div class="jet-toggle__label-icon jet-toggle-icon-position-%3$s">%1$s%2$s</div>', $normal_icon_html, $active_icon_html, $toggle_icon_position ); } $toggle_control_label_html = ''; if ( ! empty( $item['item_label'] ) ) { $toggle_control_label_html = sprintf( '<%1$s class="jet-toggle__label-text">%2$s</%1$s>', esc_attr( $toggle_item_label_tag ), $item['item_label'] ); } $this->add_render_attribute( $toggle_content_setting_key, array( 'id' => 'jet-toggle-content-' . $id_int . $toggle_count, 'class' => array( 'jet-toggle__content' ), 'data-toggle' => $toggle_count, 'role' => 'region', 'data-template-id' => ! empty( $item['item_template_id'] ) ? $item['item_template_id'] : 'false', ) ); $content_html = ''; switch ( $item[ 'content_type' ] ) { case 'template': if ( ! empty( $item['item_template_id'] ) ) { // for multi-language plugins $template_id = apply_filters( 'jet-tabs/widgets/template_id', $item['item_template_id'], $this ); $template_content = jet_tabs()->elementor()->frontend->get_builder_content( $template_id ); if ( ! empty( $template_content ) ) { if ( ! $ajax_template ) { $content_html .= $template_content; } else { $content_html .= '<div class="jet-tabs-loader"></div>'; } if ( jet_tabs_integration()->is_edit_mode() ) { $link = add_query_arg( array( 'elementor' => '', 'jet-tabs-canvas' => '', ), get_permalink( $item['item_template_id'] ) ); $content_html .= sprintf( '<div class="jet-toggle__edit-cover" data-template-edit-link="%s"><i class="fas fa-pencil-alt"></i><span>%s</span></div>', $link, esc_html__( 'Edit Template', 'jet-tabs' ) ); } } else { $content_html = $this->no_template_content_message(); } } else { $content_html = $this->no_templates_message(); } break; case 'editor': $content_html = $this->parse_text_editor( $item['item_editor_content'] ); break; } $item_custom_css_class = ! empty( $item['item_custom_css_class'] ) ? esc_attr( $item['item_custom_css_class'] ) : ''; $this->add_render_attribute( $toggle_setting_key, array( 'class' => array( $item_custom_css_class, 'jet-accordion__item', 'jet-toggle', 'jet-toggle-' . $show_effect . '-effect', $is_item_active ? 'active-toggle' : '', ), ) ); ?><div <?php echo $this->get_render_attribute_string( $toggle_setting_key ); // phpcs:ignore ?>> <div <?php echo $this->get_render_attribute_string( $toggle_control_setting_key ); // phpcs:ignore ?>> <?php echo $toggle_control_icon_html; // phpcs:ignore echo $toggle_control_label_html; // phpcs:ignore ?> </div> <div <?php echo $this->get_render_attribute_string( $toggle_content_setting_key ); // phpcs:ignore ?>> <div class="jet-toggle__content-inner"><?php echo $content_html; // phpcs:ignore ?></div> </div> </div><?php if ( 'yes' === $faq_schema ) { JSON_LD_Schema::instance()->add_item( $item['item_label'], $content_html ); } } do_action( 'jet-engine-query-gateway/reset-item' ); ?> </div> </div> <?php } /** * [empty_templates_message description] * @return [type] [description] */ public function empty_templates_message() { return '<div id="elementor-widget-template-empty-templates"> <div class="elementor-widget-template-empty-templates-icon"><i class="eicon-nerd"></i></div> <div class="elementor-widget-template-empty-templates-title">' . esc_html__( 'You Haven’t Saved Templates Yet.', 'jet-tabs' ) . '</div> <div class="elementor-widget-template-empty-templates-footer">' . esc_html__( 'What is Library?', 'jet-tabs' ) . ' <a class="elementor-widget-template-empty-templates-footer-url" href="https://go.elementor.com/docs-library/" target="_blank">' . esc_html__( 'Read our tutorial on using Library templates.', 'jet-tabs' ) . '</a></div> </div>'; } /** * [no_templates_message description] * @return [type] [description] */ public function no_templates_message() { $message = '<span>' . esc_html__( 'Template is not defined. ', 'jet-tabs' ) . '</span>'; $link = add_query_arg( array( 'post_type' => 'elementor_library', 'action' => 'elementor_new_post', '_wpnonce' => wp_create_nonce( 'elementor_action_new_post' ), 'template_type' => 'section', ), esc_url( admin_url( '/edit.php' ) ) ); $new_link = '<span>' . esc_html__( 'Select an existing template or create a ', 'jet-tabs' ) . '</span><a class="jet-toogle-new-template-link elementor-clickable" target="_blank" href="' . $link . '">' . esc_html__( 'new one', 'jet-tabs' ) . '</a>' ; return sprintf( '<div class="jet-toogle-no-template-message">%1$s%2$s</div>', $message, jet_tabs_integration()->in_elementor() ? $new_link : '' ); } /** * [no_template_content_message description] * @return [type] [description] */ public function no_template_content_message() { $message = '<span>' . esc_html__( 'The toggles are working. Please, note, that you have to add a template to the library in order to be able to display it inside the toggles.', 'jet-tabs' ) . '</span>'; return sprintf( '<div class="jet-toogle-no-template-message">%1$s</div>', $message ); } /** * [get_template_edit_link description] * @param [type] $template_id [description] * @return [type] [description] */ public function get_template_edit_link( $template_id ) { $link = add_query_arg( 'elementor', '', get_permalink( $template_id ) ); return '<a target="_blank" class="elementor-edit-template elementor-clickable" href="' . $link .'"><i class="fas fa-pencil"></i> ' . esc_html__( 'Edit Template', 'jet-tabs' ) . '</a>'; } } PK CLj[����� �� % addons/jet-image-accordion-widget.phpnu ȯ�� <?php /** * Class: Jet_Image_Accordion_Widget * Name: Image Accordion * Slug: jet-image-accordion */ namespace Elementor; use Elementor\Core\Kits\Documents\Tabs\Global_Colors; use Elementor\Core\Kits\Documents\Tabs\Global_Typography; use Elementor\Controls_Manager; use Elementor\Group_Control_Border; use Elementor\Group_Control_Box_Shadow; use Elementor\Group_Control_Typography; use Elementor\Repeater; use Elementor\Widget_Base; if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly class Jet_Image_Accordion_Widget extends Jet_Tabs_Base { public function get_name() { return 'jet-image-accordion'; } public function get_title() { return esc_html__( 'Image Accordion', 'jet-tabs' ); } public function get_help_url() { return 'https://crocoblock.com/knowledge-base/articles/jettabs-image-accordion-widget-for-elementor-how-to-display-images-in-the-form-of-an-accordion?utm_source=jettabs&utm_medium=jet-image-accordion&utm_campaign=need-help'; } public function get_icon() { return 'jet-tabs-icon-image-accordion'; } public function get_categories() { return array( 'jet-tabs' ); } public function get_script_depends() { return array( 'imagesloaded' ); } public $item_count = 0; protected function register_controls() { $css_scheme = apply_filters( 'jet-tabs/image-accordion/css-scheme', array( 'instance' => '.jet-image-accordion', 'list' => '.jet-image-accordion__list', 'item' => '.jet-image-accordion__item', 'item_inner' => '.jet-image-accordion__inner', 'image' => '.jet-image-accordion__image-instance', 'content_container' => '.jet-image-accordion__content', 'title_default' => '.jet-image-accordion__title-default', 'title' => '.jet-image-accordion__title', 'desc' => '.jet-image-accordion__desc', 'button_container' => '.jet-image-accordion__button-container', 'button' => '.jet-image-accordion__button', ) ); $this->start_controls_section( 'section_items_data', array( 'label' => esc_html__( 'Items', 'jet-tabs' ), ) ); do_action( 'jet-engine-query-gateway/control', $this, 'item_list' ); $repeater = new Repeater(); $repeater->add_control( 'item_active', array( 'label' => esc_html__( 'Active', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'jet-tabs' ), 'label_off' => esc_html__( 'No', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $repeater->add_control( 'item_image', array( 'label' => esc_html__( 'Image', 'jet-tabs' ), 'type' => Controls_Manager::MEDIA, 'dynamic' => array( 'active' => true ), 'default' => array( 'url' => Utils::get_placeholder_image_src(), ), ) ); $repeater->add_control( 'item_title', array( 'label' => esc_html__( 'Title', 'jet-tabs' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), ) ); $repeater->add_control( 'item_desc', array( 'label' => esc_html__( 'Description', 'jet-tabs' ), 'type' => Controls_Manager::TEXTAREA, 'dynamic' => array( 'active' => true ), ) ); $repeater->add_control( 'item_link_text', array( 'label' => esc_html__( 'Button text', 'jet-tabs' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'More', 'jet-tabs' ), 'dynamic' => array( 'active' => true ), ) ); $repeater->add_control( 'item_link', array( 'label' => esc_html__( 'Link', 'jet-tabs' ), 'type' => Controls_Manager::URL, 'placeholder' => 'http://your-link.com', 'dynamic' => array( 'active' => true ), 'default' => array( 'url' => '#', ), ) ); $this->add_control( 'item_list', array( 'type' => Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'default' => array( array( 'item_image' => array( 'url' => Utils::get_placeholder_image_src(), ), 'item_title' => esc_html__( 'Item #1', 'jet-tabs' ), 'item_desc' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'jet-tabs' ), ), array( 'item_image' => array( 'url' => Utils::get_placeholder_image_src(), ), 'item_title' => esc_html__( 'Item #2', 'jet-tabs' ), 'item_desc' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'jet-tabs' ), ), array( 'item_image' => array( 'url' => Utils::get_placeholder_image_src(), ), 'item_title' => esc_html__( 'Item #3', 'jet-tabs' ), 'item_desc' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'jet-tabs' ), ), ), 'title_field' => '{{{ item_title }}}', ) ); $this->end_controls_section(); $this->start_controls_section( 'section_settings', array( 'label' => esc_html__( 'Settings', 'jet-tabs' ), ) ); $this->add_control( 'title_display', array( 'label' => esc_html__( 'Title Display', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'options' => array( 'on_hover' => esc_html__( 'On hover', 'jet-tabs' ), 'on_default_state' => esc_html__( 'On default state', 'jet-tabs' ), 'on_both_states' => esc_html__( 'On default state & on hover', 'jet-tabs' ), ), 'default' => 'on_hover', ) ); $this->add_control( 'item_html_tag', array( 'label' => esc_html__( 'Title HTML Tag', 'jet-tabs' ), 'description' => esc_html__( 'Select the HTML Tag for the Item\'s title', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'options' => $this->get_available_item_html_tags(), 'default' => 'h5', ) ); $this->add_control( 'img_size', array( 'type' => 'select', 'label' => esc_html__( 'Images Size', 'jet-tabs' ), 'default' => 'full', 'options' => $this->get_image_sizes(), ) ); $this->add_responsive_control( 'instance_orientation', array( 'label' => esc_html__( 'Orientation', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'vertical', 'options' => array( 'vertical' => esc_html__( 'Vertical', 'jet-tabs' ), 'horizontal' => esc_html__( 'Horizontal', 'jet-tabs' ), ), 'selectors_dictionary' => array( 'vertical' => 'flex-direction: row', 'horizontal' => 'flex-direction: column', ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['list'] => '{{VALUE}}' ), ) ); $this->add_control( 'active_size', array( 'label' => esc_html__( 'Active Size(%)', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'range' => array( '%' => array( 'min' => 50, 'max' => 100, ), ), 'default' => array( 'unit' => '%', 'size' => 50, ), ) ); $this->add_control( 'anim_duration', array( 'label' => esc_html__( 'Animation Duration', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 500, 'min' => 100, 'max' => 3000, 'step' => 100, ) ); $this->add_control( 'anim_ease', array( 'label' => esc_html__( 'Easing', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'circ', 'options' => array( 'sine' => esc_html__( 'Sine', 'jet-tabs' ), 'quint' => esc_html__( 'Quint', 'jet-tabs' ), 'cubic' => esc_html__( 'Cubic', 'jet-tabs' ), 'expo' => esc_html__( 'Expo', 'jet-tabs' ), 'circ' => esc_html__( 'Circ', 'jet-tabs' ), 'back' => esc_html__( 'Back', 'jet-tabs' ), ), ) ); $this->end_controls_section(); $this->__start_controls_section( 'section_container_style', array( 'label' => esc_html__( 'Container', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'instance_height', array( 'label' => esc_html__( 'Height(px)', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'range' => array( 'px' => array( 'min' => 100, 'max' => 1000, ), ), 'default' => array( 'unit' => 'px', 'size' => 600, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['list'] => 'height: {{SIZE}}{{UNIT}}', ), ), 25 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'instance_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['instance'], ), 100 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'instance_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['instance'], ), 50 ); $this->__add_control( 'instance_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['instance'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'instance_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['instance'], ), 100 ); $this->__end_controls_section(); $this->__start_controls_section( 'section_item_style', array( 'label' => esc_html__( 'Item', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'item_gutter', array( 'label' => esc_html__( 'Item Gutter', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'range' => array( 'px' => array( 'min' => 0, 'max' => 50, ), ), 'default' => array( 'unit' => 'px', 'size' => 4, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['item'] => 'margin: calc({{SIZE}}{{UNIT}} / 2);', '{{WRAPPER}} ' . $css_scheme['list'] => 'margin: calc(-{{SIZE}}{{UNIT}} / 2);', ), ), 25 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'item_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['item'], ), 100 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'item_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['item'], ), 50 ); $this->__add_control( 'item_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['item'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'item_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['item'], ), 100 ); $this->__add_control( 'item_cover_style_heading', array( 'label' => esc_html__( 'Cover Styles', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ), 50 ); $this->__start_controls_tabs( 'item_cover_tabs_styles', 50 ); $this->__start_controls_tab( 'item_cover_normal', array( 'label' => esc_html__( 'Normal', 'jet-tabs' ), ), 50 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'item_cover_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['item'] . ':before', ), 25 ); $this->__end_controls_tab( 50 ); $this->__start_controls_tab( 'item_cover_active', array( 'label' => esc_html__( 'Active', 'jet-tabs' ), ), 50 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'item_cover_background_active', 'selector' => '{{WRAPPER}} ' . $css_scheme['item'] . '.active-accordion:before', ), 50 ); $this->__end_controls_tab( 50 ); $this->__end_controls_tabs( 50 ); $this->__end_controls_section(); /** * Content Style Section */ $this->__start_controls_section( 'section_content_style', array( 'label' => esc_html__( 'Content', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'items_alignment', array( 'label' => esc_html__( 'Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'center', 'options' => array( 'flex-start' => array( 'title' => esc_html__( 'Top', 'jet-tabs' ), 'icon' => 'eicon-v-align-top', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-v-align-middle', ), 'flex-end' => array( 'title' => esc_html__( 'Bottom', 'jet-tabs' ), 'icon' => 'eicon-v-align-bottom', ), ), 'selectors' => array( '{{WRAPPER}} '. $css_scheme['content_container'] => 'justify-content: {{VALUE}};', ), ), 25 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'item_content_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['content_container'], ), 50 ); $this->__add_responsive_control( 'item_content_padding', array( 'label' => __( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content_container'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__end_controls_section(); /** * Title Default Style Section */ $this->__start_controls_section( 'section_title_default_style', array( 'label' => esc_html__( 'Title (Default)', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'title_default_horizontal_alignment', array( 'label' => esc_html__( 'Horizontal Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'center', 'options' => array( 'left' => array( 'title' => esc_html__( 'Left', 'jet-tabs' ), 'icon' => 'eicon-h-align-left', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-h-align-center', ), 'right' => array( 'title' => esc_html__( 'Right', 'jet-tabs' ), 'icon' => 'eicon-h-align-right', ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['title_default'] => 'justify-content: {{VALUE}};', ), ), 25 ); $this->__add_responsive_control( 'title_default_vertical_alignment', array( 'label' => esc_html__( 'Vertical Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'flex-start', 'options' => array( 'flex-start' => array( 'title' => esc_html__( 'Top', 'jet-tabs' ), 'icon' => 'eicon-v-align-top', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-v-align-middle', ), 'flex-end' => array( 'title' => esc_html__( 'Bottom', 'jet-tabs' ), 'icon' => 'eicon-v-align-bottom', ), ), 'selectors' => array( '{{WRAPPER}} '. $css_scheme['title_default'] => 'align-self: {{VALUE}};', ), ), 25 ); $this->__add_control( 'title_default_color', array( 'label' => esc_html__( 'Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['title_default'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'title_default_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['title_default'] , 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_TEXT, ), ), 50 ); $this->__add_responsive_control( 'title_default_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['title_default'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 100 ); $this->__add_responsive_control( 'title_default_margin', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['title_default'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__end_controls_section(); /** * Title Style Section */ $this->__start_controls_section( 'section_title_style', array( 'label' => esc_html__( 'Title', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'title_alignment', array( 'label' => esc_html__( 'Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'left', 'options' => array( 'left' => array( 'title' => esc_html__( 'Left', 'jet-tabs' ), 'icon' => 'eicon-h-align-left', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-h-align-center', ), 'right' => array( 'title' => esc_html__( 'Right', 'jet-tabs' ), 'icon' => 'eicon-h-align-right', ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['title'] => 'text-align: {{VALUE}};', ), 'classes' => 'jet-elements-text-align-control', ), 25 ); $this->__add_control( 'title_color', array( 'label' => esc_html__( 'Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['title'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'title_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['title'], 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_TEXT, ), ), 50 ); $this->__add_responsive_control( 'title_padding', array( 'label' => __( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['title'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 100 ); $this->__add_responsive_control( 'title_margin', array( 'label' => __( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['title'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__end_controls_section(); /** * Description Style Section */ $this->__start_controls_section( 'section_desc_style', array( 'label' => esc_html__( 'Description', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'desc_alignment', array( 'label' => esc_html__( 'Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'left', 'options' => array( 'left' => array( 'title' => esc_html__( 'Left', 'jet-tabs' ), 'icon' => 'eicon-h-align-left', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-h-align-center', ), 'right' => array( 'title' => esc_html__( 'Right', 'jet-tabs' ), 'icon' => 'eicon-h-align-right', ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['desc'] => 'text-align: {{VALUE}};', ), 'classes' => 'jet-elements-text-align-control', ), 25 ); $this->__add_control( 'desc_color', array( 'label' => esc_html__( 'Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['desc'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'desc_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['desc'], 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_TEXT, ), ), 50 ); $this->__add_responsive_control( 'desc_padding', array( 'label' => __( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['desc'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 100 ); $this->__add_responsive_control( 'desc_margin', array( 'label' => __( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['desc'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__end_controls_section(); /** * Action Button Style Section */ $this->__start_controls_section( 'section_action_button_style', array( 'label' => esc_html__( 'Action Button', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'button_alignment', array( 'label' => esc_html__( 'Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'flex-start', 'options' => array( 'flex-start' => array( 'title' => ! is_rtl() ? esc_html__( 'Left', 'jet-tabs' ) : esc_html__( 'Right', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'eicon-h-align-left' : 'eicon-h-align-right', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-h-align-center', ), 'flex-end' => array( 'title' => ! is_rtl() ? esc_html__( 'Right', 'jet-tabs' ) : esc_html__( 'Left', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'eicon-h-align-right' : 'eicon-h-align-left', ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['button'] => 'align-self: {{VALUE}};', ), ), 25 ); $this->__add_responsive_control( 'button_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['button'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'button_margin', array( 'label' => __( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['button'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__start_controls_tabs( 'tabs_button_style' ); $this->__start_controls_tab( 'tab_button_normal', array( 'label' => esc_html__( 'Normal', 'jet-tabs' ), ) ); $this->__add_control( 'button_color', array( 'label' => esc_html__( 'Text Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['button'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_control( 'button_bg_color', array( 'label' => esc_html__( 'Background Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_PRIMARY, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['button'] => 'background-color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'button_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['button'], 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_ACCENT, ), ), 50 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'button_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['button'], ), 50 ); $this->__add_responsive_control( 'button_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['button'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'button_box_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['button'], ), 100 ); $this->__end_controls_tab(); $this->__start_controls_tab( 'tab_button_hover', array( 'label' => esc_html__( 'Hover', 'jet-tabs' ), ) ); $this->__add_control( 'button_hover_color', array( 'label' => esc_html__( 'Text Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['button'] . ':hover' => 'color: {{VALUE}}', ), ), 25 ); $this->__add_control( 'primary_button_hover_bg_color', array( 'label' => esc_html__( 'Background Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['button'] . ':hover' => 'background-color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'button_hover_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['button'] . ':hover', ), 50 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'button_hover_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['button'] . ':hover', ), 50 ); $this->__add_responsive_control( 'button_hover_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['button'] . ':hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'button_hover_box_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['button'] . ':hover', ), 100 ); $this->__end_controls_tab(); $this->__end_controls_tabs(); $this->__end_controls_section(); /** * Order Style Section */ $this->__start_controls_section( 'section_order_style', array( 'label' => esc_html__( 'Content Order and Alignment', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_control( 'title_order', array( 'label' => esc_html__( 'Title Order', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 1, 'min' => 1, 'max' => 3, 'step' => 1, 'selectors' => array( '{{WRAPPER}} '. $css_scheme['title'] => 'order: {{VALUE}};', ), ), 25 ); $this->__add_control( 'desc_order', array( 'label' => esc_html__( 'Description Order', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 2, 'min' => 1, 'max' => 3, 'step' => 1, 'selectors' => array( '{{WRAPPER}} '. $css_scheme['desc'] => 'order: {{VALUE}};', ), ), 25 ); $this->__add_control( 'button_order', array( 'label' => esc_html__( 'Button Order', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 3, 'min' => 1, 'max' => 3, 'step' => 1, 'selectors' => array( '{{WRAPPER}} '. $css_scheme['button'] => 'order: {{VALUE}};', ), ), 25 ); $this->__end_controls_section(); } /** * [render description] * @return [type] [description] */ protected function render() { $this->__context = 'render'; $this->__open_wrap(); include $this->__get_global_template( 'index' ); $this->__close_wrap(); } /** * Generate setting json * * @return string */ public function generate_setting_json() { $module_settings = $this->get_settings(); $settings = array( 'orientation' => $module_settings['instance_orientation'] ?? 'vertical', 'activeSize' => $module_settings['active_size'], 'duration' => $module_settings['anim_duration'], 'activeItem' => $this->get_active_item(), ); $settings = json_encode( $settings ); return $settings; } /** * [__generate_action_button description] * @param boolean $cover_location [description] * @return [type] [description] */ public function __generate_action_button( $cover_location = false ) { $item = $this->__processed_item; $button_url = $item[ 'item_link' ]; $button_text = $item[ 'item_link_text' ]; if ( empty( $button_url ) ) { return false; } if ( is_array( $button_url ) && empty( $button_url['url'] ) ) { return false; } $attr_name = 'url_' . $this->item_count; $this->add_render_attribute( $attr_name, 'class', array( 'elementor-button', 'elementor-size-md', 'jet-image-accordion__button', ) ); $this->add_render_attribute( $attr_name, 'role', 'button' ); $this->add_render_attribute( $attr_name, 'tabindex', 0 ); if ( is_array( $button_url ) ) { if ( method_exists( $this, 'add_link_attributes' ) ) { $this->add_link_attributes( $attr_name, $button_url ); } else { $this->add_render_attribute( $attr_name, 'href', $button_url['url'] ); if ( $button_url['is_external'] ) { $this->add_render_attribute( $attr_name, 'target', '_blank' ); } if ( ! empty( $button_url['nofollow'] ) ) { $this->add_render_attribute( $attr_name, 'rel', 'nofollow' ); } } } else { $this->add_render_attribute( $attr_name, 'href', $button_url ); } $format = apply_filters( 'jet-tabs/image-accordion/action-button-format', '<a %1$s>%2$s</a>' ); $this->item_count++; return sprintf( $format, $this->get_render_attribute_string( $attr_name ), $button_text ); } /** * Get active toggle item * * @return int */ public function get_active_item() { $active_index = -1; $items = $this->get_settings( 'item_list' ); $items = apply_filters( 'jet-tabs/widget/loop-items', $items, 'item_list', $this ); foreach ( $items as $index => $item ) { if ( array_key_exists( 'item_active', $item ) && filter_var( $item['item_active'], FILTER_VALIDATE_BOOLEAN ) ) { $active_index = $index; } } return $active_index; } /** * Get item image */ public function __loop_item_image() { $settings = $this->get_settings_for_display(); $item = $this->__processed_item; $image = $item['item_image']; $size = isset( $settings['img_size'] ) ? $settings['img_size'] : 'full'; $format = '<img class="jet-image-accordion__image-instance" src="%1$s" alt="%2$s">'; if ( empty( $image['id'] ) && empty( $image['url'] ) ) { return sprintf( $format, Utils::get_placeholder_image_src(), '' ); } if ( empty( $image['id'] ) ) { return sprintf( $format, $image['url'], '' ); } $src = wp_get_attachment_image_url( $image['id'], $size ); $alt = Control_Media::get_image_alt( $image ); return sprintf( $format, esc_url( $src ), esc_attr( $alt ) ); } /** * Returns image size array in slug => name format * * @return array */ public function get_image_sizes() { global $_wp_additional_image_sizes; $sizes = get_intermediate_image_sizes(); $result = array(); foreach ( $sizes as $size ) { if ( in_array( $size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) { $result[ $size ] = ucwords( trim( str_replace( array( '-', '_' ), array( ' ', ' ' ), $size ) ) ); } else { $result[ $size ] = sprintf( '%1$s (%2$sx%3$s)', ucwords( trim( str_replace( array( '-', '_' ), array( ' ', ' ' ), $size ) ) ), $_wp_additional_image_sizes[ $size ]['width'], $_wp_additional_image_sizes[ $size ]['height'] ); } } return array_merge( array( 'full' => esc_html__( 'Full', 'jet-elements' ), ), $result ); } } PK CLj[<�g&] &] addons/jet-switcher-widget.phpnu ȯ�� <?php /** * Class: Jet_Switcher_Widget * Name: Switcher * Slug: jet-switcher */ namespace Elementor; use Elementor\Core\Kits\Documents\Tabs\Global_Colors; use Elementor\Core\Kits\Documents\Tabs\Global_Typography; use Elementor\Controls_Manager; use Elementor\Group_Control_Border; use Elementor\Group_Control_Box_Shadow; use Elementor\Group_Control_Typography; use Elementor\Repeater; use Elementor\Widget_Base; if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly class Jet_Switcher_Widget extends Jet_Tabs_Base { public function get_name() { return 'jet-switcher'; } public function get_title() { return esc_html__( 'Switcher', 'jet-tabs' ); } public function get_help_url() { return 'https://crocoblock.com/knowledge-base/articles/jettabs-switcher-widget-for-elementor-a-tool-to-switch-between-section-templates-within-one-block?utm_source=jettabs&utm_medium=jet-switcher&utm_campaign=need-help'; } public function get_icon() { return 'jet-tabs-icon-switcher'; } public function get_categories() { return array( 'jet-tabs' ); } protected function register_controls() { $css_scheme = apply_filters( 'jet-tabs/switcher/css-scheme', array( 'instance' => '.jet-switcher', 'control_wrapper' => '.jet-switcher > .jet-switcher__control-wrapper', 'control' => '.jet-switcher > .jet-switcher__control-wrapper > .jet-switcher__control-instance', 'disable_control' => '.jet-switcher.jet-switcher--disable > .jet-switcher__control-wrapper', 'enable_control' => '.jet-switcher.jet-switcher--enable > .jet-switcher__control-wrapper', 'content_wrapper' => '.jet-switcher > .jet-switcher__content-wrapper', 'content' => '.jet-switcher > .jet-switcher__content-wrapper > .jet-switcher__content', ) ); $this->start_controls_section( 'section_items_data', array( 'label' => esc_html__( 'Items', 'jet-tabs' ), ) ); $this->start_controls_tabs( 'swither_content_tabs' ); $this->start_controls_tab( 'swither_content_tabs_disable_state', array( 'label' => esc_html__( 'Disable', 'jet-tabs' ), ) ); $this->add_control( 'disable_label', array( 'label' => esc_html__( 'Label', 'jet-tabs' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'Disable', 'jet-tabs' ), 'dynamic' => array( 'active' => true, ), ) ); $this->add_control( 'disable_content_type', array( 'label' => esc_html__( 'Content Type', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'template', 'options' => array( 'template' => esc_html__( 'Template', 'jet-tabs' ), 'editor' => esc_html__( 'Editor', 'jet-tabs' ), ), 'label_block' => 'true', ) ); $this->add_control( 'disable_template_id', array( 'label' => esc_html__( 'Template', 'jet-tabs' ), 'type' => 'jet-query', 'query_type' => 'elementor_templates', 'edit_button' => array( 'active' => true, 'label' => esc_html__( 'Edit Template', 'jet-tabs' ), ), 'condition' => array( 'disable_content_type' => 'template', ) ) ); $this->add_control( 'disable_item_editor_content', array( 'label' => esc_html__( 'Content', 'jet-tabs' ), 'type' => Controls_Manager::WYSIWYG, 'default' => esc_html__( 'Tab Item Content', 'jet-tabs' ), 'dynamic' => array( 'active' => true, ), 'condition' => array( 'disable_content_type' => 'editor', ) ) ); $this->end_controls_tab(); $this->start_controls_tab( 'swither_content_tabs_enable_state', array( 'label' => esc_html__( 'Enable', 'jet-tabs' ), ) ); $this->add_control( 'enable_label', array( 'label' => esc_html__( 'Label', 'jet-tabs' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'Enable', 'jet-tabs' ), 'dynamic' => array( 'active' => true, ), ) ); $this->add_control( 'enable_content_type', array( 'label' => esc_html__( 'Content Type', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'template', 'options' => array( 'template' => esc_html__( 'Template', 'jet-tabs' ), 'editor' => esc_html__( 'Editor', 'jet-tabs' ), ), 'label_block' => 'true', ) ); $this->add_control( 'enable_template_id', array( 'label' => esc_html__( 'Template', 'jet-tabs' ), 'type' => 'jet-query', 'query_type' => 'elementor_templates', 'edit_button' => array( 'active' => true, 'label' => esc_html__( 'Edit Template', 'jet-tabs' ), ), 'condition' => array( 'enable_content_type' => 'template', ) ) ); $this->add_control( 'enable_item_editor_content', array( 'label' => esc_html__( 'Content', 'jet-tabs' ), 'type' => Controls_Manager::WYSIWYG, 'default' => esc_html__( 'Tab Item Content', 'jet-tabs' ), 'dynamic' => array( 'active' => true, ), 'condition' => array( 'enable_content_type' => 'editor', ) ) ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_settings_data', array( 'label' => esc_html__( 'Settings', 'jet-tabs' ), ) ); $this->add_control( 'initial_state', array( 'label' => esc_html__( 'Initial State', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Enable', 'jet-tabs' ), 'label_off' => esc_html__( 'Disable', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $this->add_control( 'switcher_preset', array( 'label' => esc_html__( 'Switcher Preset', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'preset-1', 'options' => array( 'preset-1' => esc_html__( 'Preset-1', 'jet-tabs' ), 'preset-2' => esc_html__( 'Preset-2', 'jet-tabs' ), ), ) ); $this->add_control( 'show_effect', array( 'label' => esc_html__( 'Show Effect', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'move-up', 'options' => array( 'none' => esc_html__( 'None', 'jet-tabs' ), 'fade' => esc_html__( 'Fade', 'jet-tabs' ), 'zoom-in' => esc_html__( 'Zoom In', 'jet-tabs' ), 'zoom-out' => esc_html__( 'Zoom Out', 'jet-tabs' ), 'move-up' => esc_html__( 'Move Up', 'jet-tabs' ), 'fall-perspective' => esc_html__( 'Fall Perspective', 'jet-tabs' ), ), ) ); $this->end_controls_section(); $this->__start_controls_section( 'section_swither_control_style', array( 'label' => esc_html__( 'Switcher Control', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'swither_control_width', array( 'label' => esc_html__( 'Width', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 180, 'min' => 20, 'max' => 300, 'step' => 1, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] => 'width: {{VALUE}}px', ), ), 25 ); $this->__add_responsive_control( 'swither_control_height', array( 'label' => esc_html__( 'Height', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 60, 'min' => 10, 'max' => 100, 'step' => 1, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] => 'height: {{VALUE}}px', ), ), 25 ); $this->__add_responsive_control( 'swither_handler_width', array( 'label' => esc_html__( 'Handler Width', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 60, 'min' => 1, 'max' => 300, 'step' => 1, 'condition' => array( 'switcher_preset' => 'preset-2', ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' .jet-switcher__control-handler' => 'width: {{VALUE}}px', '{{WRAPPER}} ' . $css_scheme['enable_control'] . ' .jet-switcher__control-handler' => 'left: calc(100% - {{VALUE}}px)', ), ) ); $this->__add_responsive_control( 'swither_container_margin', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control_wrapper'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'swither_container_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'], ), 50 ); $this->__add_responsive_control( 'swither_container_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'swither_container_box_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'], ), 100 ); $this->__add_control( 'handler_style_heading', array( 'label' => esc_html__( 'Handler', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ), 75 ); $this->__add_responsive_control( 'swither_handler_offset', array( 'label' => esc_html__( 'Handler Offset', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 3, 'min' => 0, 'max' => 20, 'step' => 1, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' .jet-switcher__control-handler span' => 'margin: {{VALUE}}px', ), ), 75 ); $this->__add_control( 'labels_style_heading', array( 'label' => esc_html__( 'Typography', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ), 50 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'label' => esc_html__( 'Labels', 'jet-tabs' ), 'name' => 'swither_control_labels_typography', 'selector' => '{{WRAPPER}} '. $css_scheme['control_wrapper'] . ' .jet-switcher__label-text', ), 50 ); $this->__add_control( 'control_state_style_heading', array( 'label' => esc_html__( 'States', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ) ); $this->__start_controls_tabs( 'swither_control_styles_tabs' ); $this->__start_controls_tab( 'swither_control_styles_disable_tab', array( 'label' => esc_html__( 'Disable', 'jet-tabs' ), ) ); $this->__add_control( 'control_disable_background_color', array( 'label' => esc_html__( 'Control Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['disable_control'] . ' .jet-switcher__control-instance' => 'background-color: {{VALUE}}', ), ), 25 ); $this->__add_control( 'control_handler_disable_background_color', array( 'label' => esc_html__( 'Handler Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['disable_control'] . ' .jet-switcher__control-handler span' => 'background-color: {{VALUE}}', ), ), 25 ); $this->__add_control( 'control_disable_state_disable_label_color', array( 'label' => esc_html__( 'Disable Label Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['disable_control'] . ' .jet-switcher__control--disable' => 'color: {{VALUE}}', ), ), 25 ); $this->__add_control( 'control_disable_state_enable_label_color', array( 'label' => esc_html__( 'Enable Label Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['disable_control'] . ' .jet-switcher__control--enable' => 'color: {{VALUE}}', ), ), 25 ); $this->__end_controls_tab(); $this->__start_controls_tab( 'swither_control_styles_enable_tab', array( 'label' => esc_html__( 'Enable', 'jet-tabs' ), ) ); $this->__add_control( 'control_enable_background_color', array( 'label' => esc_html__( 'Control Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['enable_control'] . ' .jet-switcher__control-instance' => 'background-color: {{VALUE}}', ), ), 25 ); $this->__add_control( 'control_handler_enable_background_color', array( 'label' => esc_html__( 'Handler Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['enable_control'] . ' .jet-switcher__control-handler span' => 'background-color: {{VALUE}}', ), ), 25 ); $this->__add_control( 'control_enable_state_disable_label_color', array( 'label' => esc_html__( 'Disable Label Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['enable_control'] . ' .jet-switcher__control--disable' => 'color: {{VALUE}}', ), ), 25 ); $this->__add_control( 'control_enable_state_enable_label_color', array( 'label' => esc_html__( 'Enable Label Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['enable_control'] . ' .jet-switcher__control--enable' => 'color: {{VALUE}}', ), ), 25 ); $this->__end_controls_tab(); $this->__end_controls_tabs(); $this->__end_controls_section(); /** * Swither Content Style Section */ $this->__start_controls_section( 'section_swither_content_style', array( 'label' => esc_html__( 'Switcher Content', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'tabs_content_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['content'], ), 50 ); $this->__add_control( 'tabs_content_text_color', array( 'label' => esc_html__( 'Text color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] => 'color: {{VALUE}};', ), ), 25 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'swither_content_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['content_wrapper'], ), 25 ); $this->__add_responsive_control( 'swither_content_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'swither_content_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['content_wrapper'], ), 50 ); $this->__add_responsive_control( 'swither_content_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content_wrapper'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'tabs_content_box_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['content_wrapper'], ), 100 ); $this->__end_controls_section(); } /** * [render description] * @return [type] [description] */ protected function render() { $this->__context = 'render'; $widget_settings = $this->get_settings_for_display(); $show_effect = $widget_settings[ 'show_effect' ]; $switcher_preset = $widget_settings[ 'switcher_preset' ]; $initial_state = filter_var( $widget_settings[ 'initial_state' ], FILTER_VALIDATE_BOOLEAN ); $allowed_presets = [ 'preset-1', 'preset-2' ]; $switcher_preset = in_array( $switcher_preset, $allowed_presets ) ? $switcher_preset : 'preset-1'; $settings = array( 'effect' => $widget_settings[ 'show_effect' ], ); $this->add_render_attribute( 'instance', array( 'class' => array( 'jet-switcher', 'jet-switcher--' . $switcher_preset, 'jet-switcher-' . $show_effect . '-effect', $initial_state ? 'jet-switcher--enable' : 'jet-switcher--disable', ), 'data-settings' => json_encode( $settings ), ) ); ?><div <?php echo $this->get_render_attribute_string( 'instance' ); // phpcs:ignore ?>> <div class="jet-switcher__control-wrapper"><?php include jet_tabs()->get_template( $this->get_name() . '/global/' . sanitize_file_name( $switcher_preset ) . '.php' ); ?></div> <div class="jet-switcher__content-wrapper"><?php // phpcs:ignore $this->add_render_attribute( 'jet_switcher_content_disable', array( 'id' => 'jet-switcher-content-disable-' . $this->get_id(), 'class' => array( 'jet-switcher__content', 'jet-switcher__content--disable', ! $initial_state ? 'active-content' : '', ), 'aria-hidden' => ! $initial_state ? 'false' : 'true', ) ); switch ( $widget_settings['disable_content_type'] ) { case 'template': $disable_content_html = $this->get_template_content_by_id( $widget_settings['disable_template_id'] ); break; case 'editor': $disable_content_html = $this->parse_text_editor( $widget_settings['disable_item_editor_content'] ); break; } echo sprintf( '<div %1$s>%2$s</div>', $this->get_render_attribute_string( 'jet_switcher_content_disable' ), $disable_content_html ); // phpcs:ignore $this->add_render_attribute( 'jet_switcher_content_enable', array( 'id' => 'jet-switcher-content-enable-' . $this->get_id(), 'class' => array( 'jet-switcher__content', 'jet-switcher__content--enable', $initial_state ? 'active-content' : '', ), 'aria-hidden' => $initial_state ? 'false' : 'true', ) ); switch ( $widget_settings['enable_content_type'] ) { case 'template': $enable_content_html = $this->get_template_content_by_id( $widget_settings['enable_template_id'] ); break; case 'editor': $enable_content_html = $this->parse_text_editor( $widget_settings['enable_item_editor_content'] ); break; } echo sprintf( '<div %1$s>%2$s</div>', $this->get_render_attribute_string( 'jet_switcher_content_enable' ), $enable_content_html );// phpcs:ignore ?></div> </div> <?php } /** * [get_template_content_by_id description] * @param [type] $template_id [description] * @return [type] [description] */ public function get_template_content_by_id( $template_id ) { if ( ! empty( $template_id ) ) { $content_html = ''; // for multi-language plugins $template_id = apply_filters( 'jet-tabs/widgets/template_id', $template_id, $this ); $template_content = jet_tabs()->elementor()->frontend->get_builder_content( $template_id ); if ( ! empty( $template_content ) ) { $content_html .= $template_content; if ( jet_tabs_integration()->is_edit_mode() ) { $link = add_query_arg( array( 'elementor' => '', ), get_permalink( $template_id ) ); $content_html .= sprintf( '<div class="jet-switcher__edit-cover" data-template-edit-link="%s"><i class="fas fa-pencil-alt"></i><span>%s</span></div>', $link, esc_html__( 'Edit Template', 'jet-tabs' ) ); } } else { $content_html = $this->no_template_content_message(); } } else { $content_html = $this->no_templates_message(); } return $content_html; } /** * [empty_templates_message description] * @return [type] [description] */ public function empty_templates_message() { return '<div id="elementor-widget-template-empty-templates"> <div class="elementor-widget-template-empty-templates-icon"><i class="eicon-nerd"></i></div> <div class="elementor-widget-template-empty-templates-title">' . esc_html__( 'You Haven’t Saved Templates Yet.', 'jet-tabs' ) . '</div> <div class="elementor-widget-template-empty-templates-footer">' . esc_html__( 'What is Library?', 'jet-tabs' ) . ' <a class="elementor-widget-template-empty-templates-footer-url" href="https://go.elementor.com/docs-library/" target="_blank">' . esc_html__( 'Read our tutorial on using Library templates.', 'jet-tabs' ) . '</a></div> </div>'; } /** * [no_templates_message description] * @return [type] [description] */ public function no_templates_message() { $message = '<span>' . esc_html__( 'Template is not defined. ', 'jet-tabs' ) . '</span>'; $link = add_query_arg( array( 'post_type' => 'elementor_library', 'action' => 'elementor_new_post', '_wpnonce' => wp_create_nonce( 'elementor_action_new_post' ), 'template_type' => 'section', ), esc_url( admin_url( '/edit.php' ) ) ); $new_link = '<span>' . esc_html__( 'Select an existing template or create a ', 'jet-tabs' ) . '</span><a class="jet-switcher-new-template-link elementor-clickable" target="_blank" href="' . $link . '">' . esc_html__( 'new one', 'jet-tabs' ) . '</a>' ; return sprintf( '<div class="jet-switcher-no-template-message">%1$s%2$s</div>', $message, jet_tabs_integration()->in_elementor() ? $new_link : '' ); } /** * [no_template_content_message description] * @return [type] [description] */ public function no_template_content_message() { $message = '<span>' . esc_html__( 'The switcher are working. Please, note, that you have to add a template to the library in order to be able to display it inside the switcher.', 'jet-tabs' ) . '</span>'; return sprintf( '<div class="jet-toogle-no-template-message">%1$s</div>', $message ); } /** * [get_template_edit_link description] * @param [type] $template_id [description] * @return [type] [description] */ public function get_template_edit_link( $template_id ) { $link = add_query_arg( 'elementor', '', get_permalink( $template_id ) ); return '<a target="_blank" class="elementor-edit-template elementor-clickable" href="' . $link .'"><i class="fas fa-pencil"></i> ' . esc_html__( 'Edit Template', 'jet-tabs' ) . '</a>'; } } PK CLj[�XF� � addons/jet-tabs-widget.phpnu ȯ�� <?php /** * Class: Jet_Tabs_Widget * Name: Tabs * Slug: jet-tabs */ namespace Elementor; use Elementor\Core\Kits\Documents\Tabs\Global_Colors; use Elementor\Core\Kits\Documents\Tabs\Global_Typography; use Elementor\Controls_Manager; use Elementor\Group_Control_Border; use Elementor\Group_Control_Box_Shadow; use Elementor\Group_Control_Typography; use Elementor\Repeater; use Elementor\Widget_Base; use Elementor\Modules\DynamicTags\Module as TagsModule; use Jet_Tabs\Endpoints\Elementor_Template; if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly class Jet_Tabs_Widget extends Jet_Tabs_Base { public function get_name() { return 'jet-tabs'; } public function get_title() { return esc_html__( 'Tabs', 'jet-tabs' ); } public function get_help_url() { return 'https://crocoblock.com/knowledge-base/articles/jettabs-tabs-widget-how-to-arrange-the-content-built-with-elementor-inside-the-tabs?utm_source=jettabs&utm_medium=jet-tabs&utm_campaign=need-help'; } public function get_icon() { return 'jet-tabs-icon-tabs'; } public function get_categories() { return array( 'jet-tabs' ); } protected function register_controls() { $css_scheme = apply_filters( 'jet-tabs/tabs/css-scheme', array( 'instance' => '> .elementor-widget-container > .jet-tabs', 'control_wrapper' => '> .elementor-widget-container > .jet-tabs > .jet-tabs__control-wrapper', 'control' => '> .elementor-widget-container > .jet-tabs > .jet-tabs__control-wrapper > .jet-tabs__control', 'content_wrapper' => '> .elementor-widget-container > .jet-tabs > .jet-tabs__content-wrapper', 'content' => '> .elementor-widget-container > .jet-tabs > .jet-tabs__content-wrapper > .jet-tabs__content', 'label' => '.jet-tabs__label-text', 'icon' => '.jet-tabs__label-icon', 'control_swiper_wrapper' => '> .elementor-widget-container > .jet-tabs > .jet-tabs__control-wrapper > .jet-tabs-swiper-container > .swiper-wrapper', 'control_swiper' => '> .elementor-widget-container > .jet-tabs > .jet-tabs__control-wrapper > .jet-tabs-swiper-container > .swiper-wrapper > .jet-tabs__control', ) ); $this->start_controls_section( 'section_items_data', array( 'label' => esc_html__( 'Items', 'jet-tabs' ), ) ); do_action( 'jet-engine-query-gateway/control', $this, 'tabs' ); $repeater = new Repeater(); $repeater->add_control( 'item_active', array( 'label' => esc_html__( 'Active', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'jet-tabs' ), 'label_off' => esc_html__( 'No', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $repeater->add_control( 'item_use_image', array( 'label' => esc_html__( 'Use Image?', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'jet-tabs' ), 'label_off' => esc_html__( 'No', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $repeater->add_control( $this->__new_icon_prefix . 'item_icon', array( 'label' => esc_html__( 'Icon', 'jet-tabs' ), 'type' => Controls_Manager::ICONS, 'label_block' => false, 'skin' => 'inline', 'fa4compatibility' => 'item_icon', 'default' => array( 'value' => 'fas fa-arrow-circle-right', 'library' => 'fa-solid', ), ) ); $repeater->add_control( 'item_image', array( 'label' => esc_html__( 'Image', 'jet-tabs' ), 'type' => Controls_Manager::MEDIA, 'dynamic' => array( 'active' => true, ), ) ); $repeater->add_control( 'item_label', array( 'label' => esc_html__( 'Label', 'jet-tabs' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'New Tab', 'jet-tabs' ), 'dynamic' => array( 'active' => true, ), ) ); $repeater->add_control( 'content_type', array( 'label' => esc_html__( 'Content Type', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'template', 'options' => array( 'template' => esc_html__( 'Template', 'jet-tabs' ), 'editor' => esc_html__( 'Editor', 'jet-tabs' ), ), 'label_block' => 'true', ) ); $repeater->add_control( 'item_template_id', array( 'label' => esc_html__( 'Choose Template', 'jet-tabs' ), 'type' => 'jet-query', 'query_type' => 'elementor_templates', 'edit_button' => array( 'active' => true, 'label' => esc_html__( 'Edit Template', 'jet-tabs' ), ), 'condition' => array( 'content_type' => 'template', ) ) ); $repeater->add_control( 'item_editor_content', array( 'label' => esc_html__( 'Content', 'jet-tabs' ), 'type' => Controls_Manager::WYSIWYG, 'default' => esc_html__( 'Tab Item Content', 'jet-tabs' ), 'dynamic' => array( 'active' => true, ), 'condition' => array( 'content_type' => 'editor', ) ) ); $repeater->add_control( 'control_id', array( 'label' => esc_html__( 'Control CSS ID', 'jet-tabs' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true, ), ) ); $this->add_control( 'tabs', array( 'type' => Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'default' => array( array( 'item_label' => esc_html__( 'Tab #1', 'jet-tabs' ), ), array( 'item_label' => esc_html__( 'Tab #2', 'jet-tabs' ), ), array( 'item_label' => esc_html__( 'Tab #3', 'jet-tabs' ), ), ), 'title_field' => '{{{ item_label }}}', ) ); $this->end_controls_section(); $this->start_controls_section( 'section_settings_data', array( 'label' => esc_html__( 'Settings', 'jet-tabs' ), ) ); $this->add_control( 'item_html_tag', array( 'label' => esc_html__( 'Item Label HTML Tag', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'options' => $this->get_available_item_html_tags(), 'default' => 'div', ) ); $this->add_responsive_control( 'tabs_position', array( 'label' => esc_html__( 'Tabs Position', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'top', 'options' => array( 'left' => esc_html__( 'Left', 'jet-tabs' ), 'top' => esc_html__( 'Top', 'jet-tabs' ), 'right' => esc_html__( 'Right', 'jet-tabs' ), 'bottom' => esc_html__( 'Bottom', 'jet-tabs' ), ), 'frontend_available' => true, 'render_type' => 'template', ) ); $this->add_control( 'show_effect', array( 'label' => esc_html__( 'Show Effect', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'move-up', 'options' => array( 'none' => esc_html__( 'None', 'jet-tabs' ), 'fade' => esc_html__( 'Fade', 'jet-tabs' ), 'zoom-in' => esc_html__( 'Zoom In', 'jet-tabs' ), 'zoom-out' => esc_html__( 'Zoom Out', 'jet-tabs' ), 'move-up' => esc_html__( 'Move Up', 'jet-tabs' ), 'fall-perspective' => esc_html__( 'Fall Perspective', 'jet-tabs' ), ), ) ); $this->add_control( 'tabs_event', array( 'label' => esc_html__( 'Tabs Event', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'click', 'options' => array( 'click' => esc_html__( 'Click', 'jet-tabs' ), 'hover' => esc_html__( 'Hover', 'jet-tabs' ), ), ) ); $this->add_control( 'auto_switch', array( 'label' => esc_html__( 'Auto Switch', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $this->add_control( 'auto_switch_delay', array( 'label' => esc_html__( 'Auto Switch Delay', 'jet-tabs' ), 'type' => Controls_Manager::NUMBER, 'default' => 3000, 'min' => 1000, 'max' => 20000, 'step' => 100, 'condition' => array( 'auto_switch' => 'yes', ), ) ); $this->add_control( 'no_active_tabs', array( 'label' => esc_html__( 'No Active Tabs', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', 'frontend_available' => true, ) ); $this->add_control( 'ajax_template', array( 'label' => esc_html__( 'Use Ajax Loading for Template', 'jet-tabs' ), 'description' => wp_kses_post( sprintf( __( 'If you need to use dynamic data inside the template, please switch <a href="%s" target="_blank" rel="noopener noreferrer">Ajax Request Type</a> to Self.', 'jet-tabs' ), esc_url( admin_url( 'admin.php?page=jet-dashboard-settings-page&subpage=jet-tabs-general-settings' ) ) ) ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $this->add_control( 'tab_control_switching', array( 'label' => esc_html__( 'Scrolling to the Content', 'jet-tabs' ), 'description' => esc_html__( 'Scrolling to the Content after Switching Tab Control', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', ) ); $this->add_control( 'tab_control_switching_offset', array( 'label' => esc_html__( 'Scrolling offset (px)', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'range' => array( 'px' => array( 'min' => 0, 'max' => 100, ), ), 'default' => array( 'unit' => 'px', 'size' => 0, ), 'condition' => array( 'tab_control_switching' => 'yes' ) ) ); $this->add_control( 'tab_scrolling_navigation', array( 'label' => esc_html__( 'Scrolling Tabs Navigation', 'jet-tabs' ), 'description' => esc_html__( 'Scrolling tabs navigation if it does not fit in viewport', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', 'condition' => array( 'tabs_position!' => ['left', 'right'], ), ) ); $this->add_control( 'tab_scroll_type', array( 'label' => esc_html__( 'Scroll Type', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'plain', 'options' => array( 'plain' => esc_html__( 'Plain', 'jet-tabs' ), 'slider' => esc_html__( 'Slider', 'jet-tabs' ), ), 'condition' => array( 'tab_scrolling_navigation' => 'yes', 'tabs_position!' => ['left', 'right'], ), ) ); $this->add_control( 'fixed_slide_width', array( 'label' => esc_html__( 'Fixed Slide Width', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', 'condition' => array( 'tab_scrolling_navigation' => 'yes', 'tab_scroll_type' => 'slider', 'tabs_position!' => ['left', 'right'], ), ) ); $this->add_control( 'slide_width_value', array( 'label' => esc_html__( 'Slide Width', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', '%', 'em' ), 'range' => array( 'px' => array( 'min' => 50, 'max' => 500, ), '%' => array( 'min' => 10, 'max' => 100, ), 'em' => array( 'min' => 1, 'max' => 50, ), ), 'default' => array( 'unit' => 'px', 'size' => 200, ), 'condition' => array( 'tabs_position!' => ['left', 'right'], 'tab_scrolling_navigation' => 'yes', 'tab_scroll_type' => 'slider', 'fixed_slide_width' => 'yes', ), ) ); $this->add_control( 'slider_centered', array( 'label' => esc_html__( 'Centered', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => '', 'condition' => array( 'tab_scrolling_navigation' => 'yes', 'tab_scroll_type' => 'slider', 'tabs_position!' => ['left', 'right'], ), ) ); $this->add_control( 'slider_looped', array( 'label' => esc_html__( 'Looped', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => '', 'condition' => array( 'tab_scrolling_navigation' => 'yes', 'tab_scroll_type' => 'slider', 'tabs_position!' => ['left', 'right'], ), ) ); $this->add_control( 'slider_show_nav', array( 'type' => Controls_Manager::SWITCHER, 'label' => __( 'Enable Navigation', 'jet-tabs' ), 'label_on' => esc_html__( 'On', 'jet-tabs' ), 'label_off' => esc_html__( 'Off', 'jet-tabs' ), 'return_value' => 'yes', 'default' => 'false', 'condition' => array( 'tabs_position!' => ['left', 'right'], 'tab_scrolling_navigation' => 'yes', 'tab_scroll_type' => 'slider', ), ) ); $this->end_controls_section(); $this->__start_controls_section( 'section_general_style', array( 'label' => esc_html__( 'General', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'tabs_control_wrapper_width', array( 'label' => esc_html__( 'Tabs Control Width', 'jet-tabs' ), 'description' => esc_html__( 'Working with left or right tabs position', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', '%', ), 'range' => array( '%' => array( 'min' => 10, 'max' => 50, ), 'px' => array( 'min' => 100, 'max' => 500, ), ), 'selectors' => array( '{{WRAPPER}} .jet-tabs.jet-tabs-position-left > .jet-tabs__control-wrapper' => 'min-width: {{SIZE}}{{UNIT}}', '{{WRAPPER}} .jet-tabs.jet-tabs-position-right > .jet-tabs__control-wrapper' => 'min-width: {{SIZE}}{{UNIT}}', '{{WRAPPER}} .jet-tabs.jet-tabs-position-left > .jet-tabs__content-wrapper' => 'min-width: calc(100% - {{SIZE}}{{UNIT}})', '{{WRAPPER}} .jet-tabs.jet-tabs-position-right > .jet-tabs__content-wrapper' => 'min-width: calc(100% - {{SIZE}}{{UNIT}})', ), ), 25 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'tabs_container_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['instance'], ), 25 ); $this->__add_responsive_control( 'tabs_container_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['instance'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'tabs_container_margin', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['instance'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'tabs_container_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['instance'], ), 100 ); $this->__add_responsive_control( 'tabs_container_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['instance'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 100 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'tabs_container_box_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['instance'], ), 100 ); $this->__end_controls_section(); /** * Tabs Control Style Section */ $this->__start_controls_section( 'section_tabs_control_style', array( 'label' => esc_html__( 'Tabs Control', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'tabs_controls_container_aligment', array( 'label' => esc_html__( 'Tabs Container Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'flex-start', 'options' => array( 'flex-start' => array( 'title' => ! is_rtl() ? esc_html__( 'Start', 'jet-tabs' ) : esc_html__( 'End', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'eicon-h-align-left' : 'eicon-h-align-right', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-h-align-center', ), 'flex-end' => array( 'title' => ! is_rtl() ? esc_html__( 'End', 'jet-tabs' ) : esc_html__( 'Start', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'eicon-h-align-right' : 'eicon-h-align-left', ), 'stretch' => array( 'title' => esc_html__( 'Stretch', 'jet-tabs' ), 'icon' => 'eicon-h-align-stretch', ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control_wrapper'] => 'align-self: {{VALUE}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] => 'align-self: {{VALUE}};', ), ), 100 ); $this->__add_responsive_control( 'tabs_controls_aligment', array( 'label' => esc_html__( 'Tabs Alignment', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'flex-start', 'options' => array( 'flex-start' => array( 'title' => ! is_rtl() ? esc_html__( 'Start', 'jet-tabs' ) : esc_html__( 'End', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'eicon-h-align-left' : 'eicon-h-align-right', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-h-align-center', ), 'flex-end' => array( 'title' => ! is_rtl() ? esc_html__( 'End', 'jet-tabs' ) : esc_html__( 'Start', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'eicon-h-align-right' : 'eicon-h-align-left', ), 'stretch' => array( 'title' => esc_html__( 'Stretch', 'jet-tabs' ), 'icon' => 'eicon-h-align-stretch', ), ), 'selectors_dictionary' => array( 'flex-start' => 'justify-content: flex-start;', 'center' => 'justify-content: center;', 'flex-end' => 'justify-content: flex-end;', 'stretch' => 'flex-grow: 1;', ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control_wrapper'] => '{{VALUE}}', '{{WRAPPER}} ' . $css_scheme['control'] => '{{VALUE}}', ), ), 100 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'tabs_content_wrapper_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['control_wrapper'], ), 25 ); $this->__add_responsive_control( 'tabs_control_wrapper_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control_wrapper'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'tabs_control_wrapper_margin', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control_wrapper'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'tabs_control_wrapper_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['control_wrapper'], ), 25 ); $this->__add_responsive_control( 'tabs_control_wrapper_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control_wrapper'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'tabs_control_wrapper_box_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['control_wrapper'], ), 100 ); $this->__end_controls_section(); /** * Tabs Control Style Section */ $this->__start_controls_section( 'section_tabs_control_item_style', array( 'label' => esc_html__( 'Tabs Control Item', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_responsive_control( 'tabs_controls_item_aligment_left_right_icon', array( 'label' => esc_html__( 'Alignment', 'jet-tabs' ), 'description' => esc_html__( 'Working with left or right tabs position and left or right icon position', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'center', 'options' => array( 'flex-start' => array( 'title' => esc_html__( 'Start', 'jet-tabs' ), 'icon' => 'eicon-arrow-left', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-text-align-center', ), 'flex-end' => array( 'title' => esc_html__( 'End', 'jet-tabs' ), 'icon' => 'eicon-arrow-right', ), ), 'condition' => array( 'tabs_position!' => ['top', 'bottom'], ), 'selectors' => array( '{{WRAPPER}} .jet-tabs.jet-tabs-position-left > .jet-tabs__control-wrapper > .jet-tabs__control.jet-tabs__control-icon-left .jet-tabs__control-inner' => 'justify-content: {{VALUE}};', '{{WRAPPER}} .jet-tabs.jet-tabs-position-left > .jet-tabs__control-wrapper > .jet-tabs__control.jet-tabs__control-icon-right .jet-tabs__control-inner' => 'justify-content: {{VALUE}};', '{{WRAPPER}} .jet-tabs.jet-tabs-position-right > .jet-tabs__control-wrapper > .jet-tabs__control.jet-tabs__control-icon-left .jet-tabs__control-inner' => 'justify-content: {{VALUE}};', '{{WRAPPER}} .jet-tabs.jet-tabs-position-right > .jet-tabs__control-wrapper > .jet-tabs__control.jet-tabs__control-icon-right .jet-tabs__control-inner' => 'justify-content: {{VALUE}};', ), 'classes' => 'jet-tabs-text-align-control', ), 25 ); $this->__add_responsive_control( 'tabs_controls_item_aligment_top_icon', array( 'label' => esc_html__( 'Alignment', 'jet-tabs' ), 'description' => esc_html__( 'Working with left or right tabs position and top icon position', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'center', 'options' => array( 'flex-start' => array( 'title' => ! is_rtl() ? esc_html__( 'Start', 'jet-tabs' ) : esc_html__( 'End', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'eicon-arrow-left' : 'eicon-arrow-right', ), 'center' => array( 'title' => esc_html__( 'Center', 'jet-tabs' ), 'icon' => 'eicon-text-align-center', ), 'flex-end' => array( 'title' => ! is_rtl() ? esc_html__( 'End', 'jet-tabs' ) : esc_html__( 'Start', 'jet-tabs' ), 'icon' => ! is_rtl() ? 'eicon-arrow-right' : 'eicon-arrow-left', ), ), 'condition' => array( 'tabs_position!' => ['top', 'bottom'], ), 'selectors' => array( '{{WRAPPER}} .jet-tabs.jet-tabs-position-left > .jet-tabs__control-wrapper > .jet-tabs__control.jet-tabs__control-icon-top .jet-tabs__control-inner' => 'align-items: {{VALUE}};', '{{WRAPPER}} .jet-tabs.jet-tabs-position-right > .jet-tabs__control-wrapper > .jet-tabs__control.jet-tabs__control-icon-top .jet-tabs__control-inner' => 'align-items: {{VALUE}}', ), ), 25 ); $this->__add_control( 'tabs_control_icon_style_devider', array( 'type' => Controls_Manager::DIVIDER, ) ); $this->__add_control( 'tabs_control_icon_style_heading', array( 'label' => esc_html__( 'Icon Styles', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, ) ); $this->__add_responsive_control( 'tabs_control_icon_margin', array( 'label' => esc_html__( 'Icon Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' .jet-tabs__label-icon' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ' .jet-tabs__label-icon' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'tabs_control_image_margin', array( 'label' => esc_html__( 'Image Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' .jet-tabs__label-image' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ' .jet-tabs__label-image' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 100 ); $this->__add_responsive_control( 'tabs_control_image_width', array( 'label' => esc_html__( 'Image Width', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em', 'rem', '%', ), 'range' => array( 'px' => array( 'min' => 10, 'max' => 100, ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' .jet-tabs__label-image' => 'width: {{SIZE}}{{UNIT}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ' .jet-tabs__label-image' => 'width: {{SIZE}}{{UNIT}}', ), ), 100 ); $this->__add_control( 'tabs_control_icon_position', array( 'label' => esc_html__( 'Icon Position', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'left', 'options' => array( 'left' => esc_html__( 'Left', 'jet-tabs' ), 'top' => esc_html__( 'Top', 'jet-tabs' ), 'right' => esc_html__( 'Right', 'jet-tabs' ), ), ), 50 ); $this->__add_control( 'tabs_control_state_style_heading', array( 'label' => esc_html__( 'State Styles', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ) ); $this->__start_controls_tabs( 'tabs_control_styles' ); $this->__start_controls_tab( 'tabs_control_normal', array( 'label' => esc_html__( 'Normal', 'jet-tabs' ), ) ); $this->__add_control( 'tabs_control_label_color', array( 'label' => esc_html__( 'Text Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_TEXT, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' ' . $css_scheme['label'] => 'color: {{VALUE}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ' ' . $css_scheme['label'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'tabs_control_label_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ' ' . $css_scheme['label'] . ', {{WRAPPER}} ' . $css_scheme['control_swiper'] . ' ' . $css_scheme['label'], 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_PRIMARY, ), ), 50 ); $this->__add_control( 'tabs_control_icon_color', array( 'label' => esc_html__( 'Icon Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_TEXT, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' ' . $css_scheme['icon'] => 'color: {{VALUE}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ' ' . $css_scheme['icon'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_responsive_control( 'tabs_control_icon_size', array( 'label' => esc_html__( 'Icon Size', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em', 'rem', ), 'range' => array( 'px' => array( 'min' => 18, 'max' => 200, ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' ' . $css_scheme['icon'] => 'font-size: {{SIZE}}{{UNIT}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ' ' . $css_scheme['icon'] => 'font-size: {{SIZE}}{{UNIT}}', ), ), 50 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'tabs_control_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ', {{WRAPPER}} ' . $css_scheme['control_swiper'], ), 25 ); $this->__add_responsive_control( 'tabs_control_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ' .jet-tabs__control-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ' .jet-tabs__control-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'tabs_control_margin', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'tabs_control_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ', {{WRAPPER}} ' . $css_scheme['control_swiper'], ), 25 ); $this->__add_responsive_control( 'tabs_control_border_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'tabs_control_box_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ', {{WRAPPER}} ' . $css_scheme['control_swiper'], ), 100 ); $this->__end_controls_tab(); $this->__start_controls_tab( 'tabs_control_hover', array( 'label' => esc_html__( 'Hover', 'jet-tabs' ), ) ); $this->__add_control( 'tabs_control_label_color_hover', array( 'label' => esc_html__( 'Text Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_SECONDARY, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ':hover ' . $css_scheme['label'] => 'color: {{VALUE}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover ' . $css_scheme['label'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'tabs_control_label_typography_hover', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ':hover ' . $css_scheme['label'] . ', {{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover ' . $css_scheme['label'], 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_PRIMARY, ), ), 50 ); $this->__add_control( 'tabs_control_icon_color_hover', array( 'label' => esc_html__( 'Icon Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_SECONDARY, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ':hover ' . $css_scheme['icon'] => 'color: {{VALUE}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover ' . $css_scheme['icon'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_responsive_control( 'tabs_control_icon_size_hover', array( 'label' => esc_html__( 'Icon Size', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em', 'rem', ), 'range' => array( 'px' => array( 'min' => 18, 'max' => 200, ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ':hover ' . $css_scheme['icon'] => 'font-size: {{SIZE}}{{UNIT}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover ' . $css_scheme['icon'] => 'font-size: {{SIZE}}{{UNIT}}', ), ), 50 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'tabs_control_background_hover', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ':hover' . ', {{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover', ), 25 ); $this->__add_responsive_control( 'tabs_control_padding_hover', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ':hover' . ' .jet-tabs__control-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover' . ' .jet-tabs__control-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'tabs_control_margin_hover', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ':hover' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'tabs_control_border_hover', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ':hover' . ', {{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover', ), 25 ); $this->__add_responsive_control( 'tabs_control_border_radius_hover', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . ':hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'tabs_control_box_shadow_hover', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . ':hover' . ', {{WRAPPER}} ' . $css_scheme['control_swiper'] . ':hover', ), 100 ); $this->__end_controls_tab(); $this->__start_controls_tab( 'tabs_control_active', array( 'label' => esc_html__( 'Active', 'jet-tabs' ), ) ); $this->__add_control( 'tabs_control_label_color_active', array( 'label' => esc_html__( 'Text Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_PRIMARY, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab ' . $css_scheme['label'] => 'color: {{VALUE}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab ' . $css_scheme['label'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'tabs_control_label_typography_active', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab ' . $css_scheme['label'] . ', {{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab ' . $css_scheme['label'], 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_PRIMARY, ), ), 50 ); $this->__add_control( 'tabs_control_icon_color_active', array( 'label' => esc_html__( 'Icon Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_PRIMARY, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab ' . $css_scheme['icon'] => 'color: {{VALUE}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab ' . $css_scheme['icon'] => 'color: {{VALUE}}', ), ), 25 ); $this->__add_responsive_control( 'tabs_control_icon_size_active', array( 'label' => esc_html__( 'Icon Size', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em', 'rem', ), 'range' => array( 'px' => array( 'min' => 18, 'max' => 200, ), ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab ' . $css_scheme['icon'] => 'font-size: {{SIZE}}{{UNIT}}', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab ' . $css_scheme['icon'] => 'font-size: {{SIZE}}{{UNIT}}', ), ), 50 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'tabs_control_background_active', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab' . ', {{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab', ), 25 ); $this->__add_responsive_control( 'tabs_control_padding_active', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab' . ' .jet-tabs__control-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab' . ' .jet-tabs__control-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_responsive_control( 'tabs_control_margin_active', array( 'label' => esc_html__( 'Margin', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'tabs_control_border_active', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab' . ', {{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab', ), 25 ); $this->__add_responsive_control( 'tabs_control_border_radius_active', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'tabs_control_box_shadow_active', 'selector' => '{{WRAPPER}} ' . $css_scheme['control'] . '.active-tab' . ', {{WRAPPER}} ' . $css_scheme['control_swiper'] . '.active-tab', ), 100 ); $this->__end_controls_tab(); $this->__end_controls_tabs(); $this->__end_controls_section(); /** * Tabs Content Style Section */ $this->__start_controls_section( 'section_tabs_content_style', array( 'label' => esc_html__( 'Tabs Content', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'show_label' => false, ) ); $this->__add_control( 'tabs_content_text_color', array( 'label' => esc_html__( 'Text color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] => 'color: {{VALUE}};', ), ), 25 ); $this->__add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'tabs_content_typography', 'selector' => '{{WRAPPER}} ' . $css_scheme['content'], ), 50 ); $this->__add_group_control( Group_Control_Background::get_type(), array( 'name' => 'tabs_content_background', 'selector' => '{{WRAPPER}} ' . $css_scheme['content_wrapper'], ), 25 ); $this->__add_responsive_control( 'tabs_content_padding', array( 'label' => esc_html__( 'Padding', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'vw', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 50 ); $this->__add_group_control( Group_Control_Border::get_type(), array( 'name' => 'tabs_content_border', 'label' => esc_html__( 'Border', 'jet-tabs' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} ' . $css_scheme['content_wrapper'], ), 25 ); $this->__add_responsive_control( 'tabs_content_radius', array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em', 'rem', 'custom' ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content_wrapper'] => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'custom_units' => true, ), 75 ); $this->__add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'tabs_content_box_shadow', 'selector' => '{{WRAPPER}} ' . $css_scheme['content_wrapper'], ), 100 ); $this->__add_control( 'tabs_content_loader_style_heading', array( 'label' => esc_html__( 'Loader Styles', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', 'condition' => array( 'ajax_template' => 'yes', ), ), 25 ); $this->__add_control( 'tabs_content_loader_color', array( 'label' => esc_html__( 'Loader color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['content'] . ' .jet-tabs-loader' => 'border-color: {{VALUE}}; border-top-color: white;', ), 'condition' => array( 'ajax_template' => 'yes', ), ), 25 ); $this->__end_controls_section(); /** * Tabs Slider Navigation */ $this->start_controls_section( 'section_navigation_style', array( 'label' => esc_html__( 'Navigation', 'jet-tabs' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => array( 'tab_scrolling_navigation' => 'yes', 'tab_scroll_type' => 'slider', 'tabs_position!' => ['left', 'right'], 'slider_show_nav' => 'yes', ), ) ); $this->add_control( 'heading_arrows_style', array( 'label' => esc_html__( 'Arrows', 'jet-tabs' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', 'condition' => array( 'tab_scrolling_navigation' => 'yes', 'tab_scroll_type' => 'slider', 'tabs_position!' => ['left', 'right'], 'slider_show_nav' => 'yes', ), ) ); $this->add_responsive_control( 'arrows_size', array( 'label' => __( 'Size', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => array( 'px' => array( 'min' => 6, 'max' => 80, ), ), 'default' => array( 'unit' => 'px', 'size' => 24, ), 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control_wrapper'] . ' .swiper-button-next:after, {{WRAPPER}} ' . $css_scheme['control_wrapper'] . ' .swiper-button-prev:after' => 'font-size: {{SIZE}}{{UNIT}};', ), 'condition' => array( 'tab_scrolling_navigation' => 'yes', 'tab_scroll_type' => 'slider', 'tabs_position!' => ['left', 'right'], 'slider_show_nav' => 'yes', ), ) ); $this->add_control( 'arrows_position', array( 'label' => esc_html__( 'Position', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'default' => 'inside', 'options' => array( 'inside' => esc_html__( 'Inside', 'jet-tabs' ), 'outside' => esc_html__( 'Outside', 'jet-tabs' ), ), 'prefix_class' => 'jet-tabs-nav-position-', 'condition' => array( 'tab_scrolling_navigation' => 'yes', 'tab_scroll_type' => 'slider', 'tabs_position!' => ['left', 'right'], 'slider_show_nav' => 'yes', ), ) ); $this->start_controls_tabs( 'tabs_arrows_colors' ); $this->start_controls_tab( 'tab_arrows_normal', array( 'label' => __( 'Normal', 'jet-tabs' ), ) ); $this->add_control( 'arrows_color', array( 'label' => __( 'Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control_wrapper'] . ' .swiper-button-next, {{WRAPPER}} ' . $css_scheme['control_wrapper'] . ' .swiper-button-prev' => 'color: {{VALUE}};', ), ) ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_arrows_hover', array( 'label' => __( 'Hover', 'jet-tabs' ), ) ); $this->add_control( 'arrows_color_hover', array( 'label' => __( 'Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} ' . $css_scheme['control_wrapper'] . ' .swiper-button-next:hover, {{WRAPPER}} ' . $css_scheme['control_wrapper'] . ' .swiper-button-prev:hover' => 'color: {{VALUE}};', ), ) ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); } public function get_tab_item_content( $item = array(), $index = 0, $args = array() ) { $tab_count = $index + 1; $tab_content_setting_key = $this->get_repeater_setting_key( 'tab_content', 'tabs', $index ); $id_int = $args['id_int']; $active_index = $args['active_index']; $no_active_tabs = $args['no_active_tabs']; $ajax_template = $args['ajax_template']; $this->add_render_attribute( $tab_content_setting_key, array( 'id' => 'jet-tabs-content-' . $id_int . $tab_count, 'class' => array( 'jet-tabs__content', ( $index === $active_index && ! $no_active_tabs ) ? 'active-content' : '', ), 'data-tab' => $tab_count, 'role' => 'tabpanel', 'aria-hidden' => $index === $active_index ? 'false' : 'true', 'data-template-id' => ! empty( $item['item_template_id'] ) ? $item['item_template_id'] : 'false', ) ); $content_html = ''; $template_cache_settings = jet_tabs_settings()->get( 'useTemplateCache', [ 'enable' => false, 'cacheExpiration' => 'week', ] ); $elementor_template = new Elementor_Template(); $in_elementor = jet_tabs_integration()->in_elementor(); switch ( $item[ 'content_type' ] ) { case 'template': if ( ! empty( $item['item_template_id'] ) ) { $template_id = apply_filters( 'jet-tabs/widgets/template_id', $item['item_template_id'], $this ); $template_content = jet_tabs()->elementor()->frontend->get_builder_content( $template_id ); if ( ! empty( $template_content ) ) { if ( ! $ajax_template ) { if ( $template_cache_settings['enable'] && ! $in_elementor && is_array( $template_content ) ) { $content_html .= $template_content['template_content']; $template_styles = $template_content['template_styles'] ?? []; $template_scripts = $template_content['template_scripts'] ?? []; $this->styles_to_enqueue = wp_parse_args( $template_styles, $this->styles_to_enqueue ); $this->scripts_to_enqueue = wp_parse_args( $template_scripts, $this->scripts_to_enqueue ); } else { $content_html .= is_array( $template_content ) ? ( $template_content['template_content'] ?? '' ) : $template_content; } } else { $content_html .= '<div class="jet-tabs-loader"></div>'; } if ( jet_tabs_integration()->is_edit_mode() ) { $link = add_query_arg( array( 'elementor' => '', ), get_permalink( $item['item_template_id'] ) ); $content_html .= sprintf( '<div class="jet-tabs__edit-cover" data-template-edit-link="%s"><i class="fas fa-pencil-alt"></i><span>%s</span></div>', $link, esc_html__( 'Edit Template', 'jet-tabs' ) ); } } else { $content_html = $this->no_template_content_message(); } } else { $content_html = $this->no_templates_message(); } break; case 'editor': $content_html = $this->parse_text_editor( $item['item_editor_content'] ); break; } return sprintf( '<div %1$s>%2$s</div>', $this->get_render_attribute_string( $tab_content_setting_key ), $content_html ); } /** * [render description] * @return [type] [description] */ protected function render() { $this->__context = 'render'; $tabs = $this->get_settings_for_display( 'tabs' ); $id_int = substr( $this->get_id_int(), 0, 3 ); $tabs_position = $this->get_settings( 'tabs_position' ); $tabs_position_tablet = $this->get_settings( 'tabs_position_tablet' ); $tabs_position_mobile = $this->get_settings( 'tabs_position_mobile' ); $show_effect = $this->get_settings( 'show_effect' ); $no_active_tabs = filter_var( $this->get_settings( 'no_active_tabs' ), FILTER_VALIDATE_BOOLEAN ); $ajax_template = filter_var( $this->get_settings( 'ajax_template' ), FILTER_VALIDATE_BOOLEAN ); $tabs_item_label_tag = ! empty( $this->get_settings( 'item_html_tag' ) ) ? $this->get_settings( 'item_html_tag' ) : 'div'; $tabs_scrolling_navigation = filter_var( $this->get_settings( 'tab_scrolling_navigation' ), FILTER_VALIDATE_BOOLEAN ); $tab_scroll_type = $this->get_settings( 'tab_scroll_type' ); $fixed_slide_width = filter_var( $this->get_settings( 'fixed_slide_width' ), FILTER_VALIDATE_BOOLEAN ); $slide_width_value = $this->get_settings( 'slide_width_value' ); $slider_centered = filter_var( $this->get_settings( 'slider_centered' ), FILTER_VALIDATE_BOOLEAN ); $slider_looped = filter_var( $this->get_settings( 'slider_looped' ), FILTER_VALIDATE_BOOLEAN ); $slider_show_nav = filter_var( $this->get_settings( 'slider_show_nav' ), FILTER_VALIDATE_BOOLEAN ); $tabs = apply_filters( 'jet-tabs/widget/loop-items', $tabs, 'tabs', $this ); if ( ! $tabs || empty( $tabs ) ) { return false; } $active_index = -1; foreach ( $tabs as $index => $item ) { if ( ! is_array( $item ) ) { continue; } // Find first active tab if ( $active_index === -1 && array_key_exists( 'item_active', $item ) && filter_var( $item['item_active'], FILTER_VALIDATE_BOOLEAN ) ) { $active_index = $index; } if ( 'template' === ( $item['content_type'] ?? '' ) && ! empty( $item['item_template_id'] ) ) { $post_status = get_post_status( $item['item_template_id'] ); if ( 'draft' === $post_status || 'trash' === $post_status ) { unset( $tabs[ $index ] ); } } } if ( $active_index === -1 ) { $active_index = 0; } $settings = array( 'activeIndex' => ! $no_active_tabs ? $active_index : -1, 'event' => $this->get_settings( 'tabs_event' ), 'autoSwitch' => filter_var( $this->get_settings( 'auto_switch' ), FILTER_VALIDATE_BOOLEAN ), 'autoSwitchDelay' => $this->get_settings( 'auto_switch_delay' ), 'ajaxTemplate' => $ajax_template, 'tabsPosition' => $tabs_position, 'switchScrolling' => filter_var( $this->get_settings( 'tab_control_switching' ), FILTER_VALIDATE_BOOLEAN ), 'switchScrollingOffset' => ! empty( $this->get_settings_for_display( 'tab_control_switching_offset' ) ) ? $this->get_settings_for_display( 'tab_control_switching_offset' ) : 0 ); $attributes = array( 'class' => array( 'jet-tabs', 'jet-tabs-position-' . $tabs_position, 'jet-tabs-' . $show_effect . '-effect', ( $ajax_template ) ? 'jet-tabs-ajax-template' : '', ), 'data-settings' => json_encode( $settings ), ); if ( $tabs_scrolling_navigation && $tab_scroll_type === 'slider' && ( $tabs_position === 'top' || $tabs_position === 'bottom' ) ) { $swiper_settings = array( 'slidesPerView' => $fixed_slide_width ? 'fixed' : 'auto', 'itemWidth' => $fixed_slide_width ? $slide_width_value['size'] . $slide_width_value['unit'] : 'auto', 'centeredSlides'=> $slider_centered, 'loop' => $slider_looped, ); $attributes['data-swiper-settings'] = json_encode( $swiper_settings ); } $this->add_render_attribute( 'instance', $attributes ); $tabs_content = array(); ?> <div <?php echo $this->get_render_attribute_string( 'instance' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>> <div class="jet-tabs__control-wrapper <?php echo ( $tabs_scrolling_navigation && $tab_scroll_type === 'plain' ) ? 'jet-tabs-scrolling-navigation' : ''; ?><?php echo ( $tabs_scrolling_navigation && $tab_scroll_type === 'slider' && ( $tabs_position === 'top' || $tabs_position === 'bottom') ) ? 'jet-tabs-swiper' : ''; ?>" role="tablist"> <?php if ( $tabs_scrolling_navigation && $tab_scroll_type === 'slider' && ( $tabs_position === 'top' || $tabs_position === 'bottom') ) : ?> <div class="swiper jet-tabs-swiper-container"> <div class="swiper-wrapper"> <?php endif; ?> <?php do_action( 'jet-engine-query-gateway/before-loop', 'tabs', $this ); foreach ( $tabs as $index => $item ) { do_action( 'jet-engine-query-gateway/do-item', $item ); $tab_count = $index + 1; $tab_title_setting_key = $this->get_repeater_setting_key( 'jet_tab_control', 'tabs', $index ); $tab_control_id = ! empty( $item['control_id'] ) ? esc_attr( $item['control_id'] ) : 'jet-tabs-control-' . $id_int . $tab_count; $this->add_render_attribute( $tab_title_setting_key, array( 'id' => $tab_control_id, 'class' => array( 'jet-tabs__control', 'jet-tabs__control-icon-' . $this->get_settings( 'tabs_control_icon_position' ), 'elementor-menu-anchor', ( $index === $active_index && ! $no_active_tabs ) ? 'active-tab' : '', ( $tabs_scrolling_navigation && $tab_scroll_type === 'slider' ) ? 'swiper-slide' : '', ), 'data-tab' => $tab_count, 'tabindex' => 0, 'role' => 'tab', 'aria-controls' => 'jet-tabs-content-' . $id_int . $tab_count, 'aria-expanded' => $index === $active_index ? 'true' : 'false', 'data-template-id' => ! empty( $item['item_template_id'] ) ? $item['item_template_id'] : 'false', ) ); $title_icon_html = $this->__get_icon( 'item_icon', $item, '<div class="jet-tabs__label-icon jet-tabs-icon">%s</div>' ); $title_image_html = ''; if ( ! empty( $item['item_image']['url'] ) ) { $title_image_html = sprintf( '<img class="jet-tabs__label-image" src="%1$s" alt="">', $item['item_image']['url'] ); } $title_label_html = ''; if ( ! empty( $item['item_label'] ) ) { $title_label_html = sprintf( '<' . $tabs_item_label_tag . ' class="jet-tabs__label-text">%1$s</' . $tabs_item_label_tag . '>', $item['item_label'] ); } if ( 'right' === $this->get_settings( 'tabs_control_icon_position' ) ) { echo sprintf( '<div %1$s><div class="jet-tabs__control-inner">%2$s%3$s</div></div>', $this->get_render_attribute_string( $tab_title_setting_key ), // phpcs:ignore $title_label_html, // phpcs:ignore filter_var( $item['item_use_image'], FILTER_VALIDATE_BOOLEAN ) ? $title_image_html : $title_icon_html // phpcs:ignore ); } else { echo sprintf( '<div %1$s><div class="jet-tabs__control-inner">%2$s%3$s</div></div>', $this->get_render_attribute_string( $tab_title_setting_key ), // phpcs:ignore filter_var( $item['item_use_image'], FILTER_VALIDATE_BOOLEAN ) ? $title_image_html : $title_icon_html, // phpcs:ignore $title_label_html // phpcs:ignore ); } $tabs_content[] = $this->get_tab_item_content( $item, $index, array( 'id_int' => $id_int, 'active_index' => $active_index, 'no_active_tabs' => $no_active_tabs, 'ajax_template' => $ajax_template, ) ); } do_action( 'jet-engine-query-gateway/reset-item' ); ?> <?php if ( $tabs_scrolling_navigation && $tab_scroll_type === 'slider' && ( $tabs_position === 'top' || $tabs_position === 'bottom') ) : ?> </div> <!-- Close swiper-wrapper --> </div> <!-- Close swiper --> <?php if ( $slider_show_nav ) : ?> <div class="swiper-button-next"></div> <div class="swiper-button-prev"></div> <?php endif; ?> <?php endif; ?> </div> <div class="jet-tabs__content-wrapper"> <?php foreach ( $tabs_content as $index => $tab ) { echo $tab; // phpcs:ignore } ?> </div> <?php $this->maybe_enqueue_styles(); $this->maybe_enqueue_scripts(); ?> </div> <?php } /** * [empty_templates_message description] * @return [type] [description] */ public function empty_templates_message() { return '<div id="elementor-widget-template-empty-templates"> <div class="elementor-widget-template-empty-templates-icon"><i class="eicon-nerd"></i></div> <div class="elementor-widget-template-empty-templates-title">' . esc_html__( 'You Haven’t Saved Templates Yet.', 'jet-tabs' ) . '</div> <div class="elementor-widget-template-empty-templates-footer">' . esc_html__( 'What is Library?', 'jet-tabs' ) . ' <a class="elementor-widget-template-empty-templates-footer-url" href="https://go.elementor.com/docs-library/" target="_blank">' . esc_html__( 'Read our tutorial on using Library templates.', 'jet-tabs' ) . '</a></div> </div>'; } /** * [no_templates_message description] * @return [type] [description] */ public function no_templates_message() { $message = '<span>' . esc_html__( 'Template is not defined. ', 'jet-tabs' ) . '</span>'; $link = add_query_arg( array( 'post_type' => 'elementor_library', 'action' => 'elementor_new_post', '_wpnonce' => wp_create_nonce( 'elementor_action_new_post' ), 'template_type' => 'section', ), esc_url( admin_url( '/edit.php' ) ) ); $new_link = '<span>' . esc_html__( 'Select an existing template or create a ', 'jet-tabs' ) . '</span><a class="jet-tabs-new-template-link elementor-clickable" target="_blank" href="' . $link . '">' . esc_html__( 'new one', 'jet-tabs' ) . '</a>' ; return sprintf( '<div class="jet-tabs-no-template-message">%1$s%2$s</div>', $message, jet_tabs_integration()->in_elementor() ? $new_link : '' ); } /** * [no_template_content_message description] * @return [type] [description] */ public function no_template_content_message() { $message = '<span>' . esc_html__( 'The tabs are working. Please, note, that you have to add a template to the library in order to be able to display it inside the tabs.', 'jet-tabs' ) . '</span>'; return sprintf( '<div class="jet-toogle-no-template-message">%1$s</div>', $message ); } /** * [get_template_edit_link description] * @param [type] $template_id [description] * @return [type] [description] */ public function get_template_edit_link( $template_id ) { $link = add_query_arg( 'elementor', '', get_permalink( $template_id ) ); return '<a target="_blank" class="elementor-edit-template elementor-clickable" href="' . $link .'"><i class="fas fa-pencil"></i> ' . esc_html__( 'Edit Template', 'jet-tabs' ) . '</a>'; } /** * Get seconds by tag for transient caching * * @param string $tag Time duration tag * @return string|int Returns 'none' or seconds */ public static function get_cache_timeout($tag = 'none') { if ('none' === $tag) { return 'none'; } switch ($tag) { case 'hour': $delay = HOUR_IN_SECONDS; break; case 'day': $delay = DAY_IN_SECONDS; break; case '3days': $delay = 3 * DAY_IN_SECONDS; break; case 'week': $delay = WEEK_IN_SECONDS; break; case 'month': $delay = MONTH_IN_SECONDS; break; default: $delay = 'none'; break; } return $delay; } /** * @return false|void */ public function maybe_enqueue_styles() { $style_depends = $this->get_styles_to_enqueue(); if ( empty( $style_depends ) ) { return false; } foreach ( $style_depends as $key => $style_data ) { $style_handle = $style_data['handle']; if ( wp_style_is( $style_handle ) ) { continue; } $style_obj = $style_data['obj']; if ( $style_obj ) { if ( ! isset( wp_styles()->registered[ $style_handle ] ) ) { wp_styles()->registered[ $style_handle ] = $style_obj; } wp_enqueue_style( $style_obj->handle, $style_obj->src, $style_obj->deps, $style_obj->ver ); } else { wp_enqueue_style( $style_handle, $style_data['src'] ); } } } /** * [] * @return [type] [description] */ public function maybe_enqueue_scripts() { $script_depends = $this->get_scripts_to_enqueue(); if ( empty( $script_depends ) ) { return false; } foreach ( $script_depends as $script => $script_data ) { $script_handle = $script_data['handle']; $script_obj = $script_data['obj']; if ( wp_script_is( $script_handle ) ) { continue; } wp_scripts()->registered[ $script_handle ] = $script_obj; } foreach ( $script_depends as $script => $script_data ) { $script_handle = $script_data['handle']; if ( wp_script_is( $script_handle ) ) { continue; } $script_obj = $script_data['obj']; wp_enqueue_script( $script_obj->handle, $script_obj->src, $script_obj->deps, $script_obj->ver ); wp_scripts()->print_extra_script( $script_obj->handle ); } } public function get_styles_to_enqueue() { return $this->styles_to_enqueue; } /** * Get script dependencies. * * Retrieve the list of script dependencies the element requires. * * @since 1.3.0 * @access public * * @return array Element scripts dependencies. */ public function get_scripts_to_enqueue() { return $this->scripts_to_enqueue; } /** * @var array */ public $styles_to_enqueue = []; /** * [$depended_scripts description] * @var array */ public $scripts_to_enqueue = []; } PK CLj[�6O base/json-ld-schema.phpnu ȯ�� <?php /** * Class responsible for handling FAQ structured data schema (JSON-LD) */ namespace Jet_Tabs; if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! class_exists( 'Jet_Tabs\JSON_LD_Schema' ) ) { /** * Define JSON_LD_Schema class */ class JSON_LD_Schema { /** * Holds the single instance of the class. * * @var JSON_LD_Schema|null */ private static $instance = null; /** * Array to store FAQ schema items. * * @var array */ private $schema = []; /** * Indicates whether the schema rendering has been hooked. * * @var bool */ private $hooked = false; /** * Get instance of the class * * @return JSON_LD_Schema */ public static function instance() { if ( is_null( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Add item (Question-Answer) to schema * * @param string $question Question text * @param string $answer Answer text * * @return void */ public function add_item( $question, $answer ) { if ( ! $this->hooked ) { add_action( 'wp_footer', [ $this, 'print_schema' ], 999 ); $this->hooked = true; } $this->schema[] = array( '@type' => 'Question', 'name' => wp_strip_all_tags( $question ), 'acceptedAnswer' => array( '@type' => 'Answer', 'text' => wp_strip_all_tags( $answer ), ), ); } /** * Print schema in JSON-LD format * * @return void */ public function print_schema() { if ( ! empty( $this->schema ) ) { $json_ld = array( '@context' => 'https://schema.org', '@type' => 'FAQPage', 'mainEntity' => $this->schema, ); echo '<script type="application/ld+json">' . wp_json_encode( $json_ld ) . '</script>'; } } } } PK CLj[�͎r�F �F base/class-jet-tabs-base.phpnu ȯ�� <?php namespace Elementor; if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly abstract class Jet_Tabs_Base extends Widget_Base { public $__context = 'render'; public $__processed_item = false; public $__processed_index = 0; public $__query = array(); public $__load_level = 100; public $__include_controls = []; public $__exclude_controls = []; public $__new_icon_prefix = 'selected_'; /** * [__construct description] * @param array $data [description] * @param [type] $args [description] */ public function __construct( $data = [], $args = null ) { parent::__construct( $data, $args ); $this->__load_level = (int)jet_tabs_settings()->get( 'widgets_load_level', 100 ); $widget_name = $this->get_name(); $this->__include_controls = apply_filters( "jet-tabs/editor/{$widget_name}/include-controls", [], $widget_name, $this ); $this->__exclude_controls = apply_filters( "jet-tabs/editor/{$widget_name}/exclude-controls", [], $widget_name, $this ); } /** * Get globaly affected template * * @param [type] $name [description] * @return [type] [description] */ public function __get_global_template( $name = null ) { $template = call_user_func( array( $this, sprintf( '__get_%s_template', $this->__context ) ) ); if ( ! $template ) { $template = jet_tabs()->get_template( $this->get_name() . '/global/' . $name . '.php' ); } return $template; } /** * Get front-end template * @param [type] $name [description] * @return [type] [description] */ public function __get_render_template( $name = null ) { return jet_tabs()->get_template( $this->get_name() . '/render/' . $name . '.php' ); } /** * Get editor template * @param [type] $name [description] * @return [type] [description] */ public function __get_edit_template( $name = null ) { return jet_tabs()->get_template( $this->get_name() . '/edit/' . $name . '.php' ); } /** * Get global looped template for settings * Required only to process repeater settings. * * @param string $name Base template name. * @param string $setting Repeater setting that provide data for template. * @return void */ public function __get_global_looped_template( $name = null, $setting = null ) { $templates = array( 'start' => $this->__get_global_template( $name . '-loop-start' ), 'loop' => $this->__get_global_template( $name . '-loop-item' ), 'end' => $this->__get_global_template( $name . '-loop-end' ), ); call_user_func( array( $this, sprintf( '__get_%s_looped_template', $this->__context ) ), $templates, $setting ); } /** * Get render mode looped template * * @param array $templates [description] * @param [type] $setting [description] * @return [type] [description] */ public function __get_render_looped_template( $templates = array(), $setting = null ) { $loop = $this->get_settings_for_display( $setting ); $loop = apply_filters( 'jet-tabs/widget/loop-items', $loop, $setting, $this ); if ( empty( $loop ) ) { return; } if ( ! empty( $templates['start'] ) ) { include $templates['start']; } do_action( 'jet-engine-query-gateway/before-loop', $setting, $this ); foreach ( $loop as $item ) { $this->__processed_item = $item; if ( ! empty( $templates['start'] ) ) { include $templates['loop']; } $this->__processed_index++; } do_action( 'jet-engine-query-gateway/reset-item' ); $this->__processed_item = false; $this->__processed_index = 0; if ( ! empty( $templates['end'] ) ) { include $templates['end']; } } /** * Get edit mode looped template * * @param array $templates [description] * @param [type] $setting [description] * @return [type] [description] */ public function __get_edit_looped_template( $templates = array(), $setting = null ) { ?> <# if ( settings.<?php echo $setting; ?> ) { #> // phpcs:ignore <?php if ( ! empty( $templates['start'] ) ) { include $templates['start']; } ?> <# _.each( settings.<?php echo $setting; ?>, function( item ) { #> // phpcs:ignore <?php if ( ! empty( $templates['loop'] ) ) { include $templates['loop']; } ?> <# } ); #> <?php if ( ! empty( $templates['end'] ) ) { include $templates['end']; } ?> <# } #> <?php } /** * Get current looped item dependends from context. * * @param string $key Key to get from processed item * @return mixed */ public function __loop_item( $keys = array(), $format = '%s' ) { return call_user_func( array( $this, sprintf( '__%s_loop_item', $this->__context ) ), $keys, $format ); } /** * Loop edit item * * @param [type] $keys [description] * @param string $format [description] * @param boolean $nested_key [description] * @return [type] [description] */ public function __edit_loop_item( $keys = array(), $format = '%s' ) { $settings = $keys[0]; if ( isset( $keys[1] ) ) { $settings .= '.' . $keys[1]; } ob_start(); echo '<# if ( item.' . $settings . ' ) { #>'; // phpcs:ignore printf( $format, '{{{ item.' . $settings . ' }}}' ); // phpcs:ignore echo '<# } #>'; return ob_get_clean(); } /** * Loop render item * * @param string $format [description] * @param [type] $key [description] * @param boolean $nested_key [description] * @return [type] [description] */ public function __render_loop_item( $keys = array(), $format = '%s' ) { $item = $this->__processed_item; $key = $keys[0]; $nested_key = isset( $keys[1] ) ? $keys[1] : false; if ( empty( $item ) || ! isset( $item[ $key ] ) ) { return false; } if ( false === $nested_key || ! is_array( $item[ $key ] ) ) { $value = $item[ $key ]; } else { $value = isset( $item[ $key ][ $nested_key ] ) ? $item[ $key ][ $nested_key ] : false; } if ( ! empty( $value ) ) { return sprintf( $format, $value ); } } /** * Include global template if any of passed settings is defined * * @param [type] $name [description] * @param [type] $settings [description] * @return [type] [description] */ public function __glob_inc_if( $name = null, $settings = array() ) { $template = $this->__get_global_template( $name ); call_user_func( array( $this, sprintf( '__%s_inc_if', $this->__context ) ), $template, $settings ); } /** * Include render template if any of passed setting is not empty * * @param [type] $file [description] * @param [type] $settings [description] * @return [type] [description] */ public function __render_inc_if( $file = null, $settings = array() ) { foreach ( $settings as $setting ) { $val = $this->get_settings_for_display( $setting ); if ( ! empty( $val ) ) { include $file; return; } } } /** * Include render template if any of passed setting is not empty * * @param [type] $file [description] * @param [type] $settings [description] * @return [type] [description] */ public function __edit_inc_if( $file = null, $settings = array() ) { $condition = null; $sep = null; foreach ( $settings as $setting ) { $condition .= $sep . 'settings.' . $setting; $sep = ' || '; } ?> <# if ( <?php echo $condition; // phpcs:ignore ?> ) { #> <?php include $file; ?> <# } #> <?php } /** * Open standard wrapper * * @return void */ public function __open_wrap() { printf( '<div class="elementor-%s jet-tabs-addons">', $this->get_name() ); // phpcs:ignore } /** * Close standard wrapper * * @return void */ public function __close_wrap() { echo '</div>'; } /** * Print HTML markup if passed setting not empty. * * @param string $setting Passed setting. * @param string $format Required markup. * @param array $args Additional variables to pass into format string. * @param bool $echo Echo or return. * @return string|void */ public function __html( $setting = null, $format = '%s' ) { call_user_func( array( $this, sprintf( '__%s_html', $this->__context ) ), $setting, $format ); } /** * Returns HTML markup if passed setting not empty. * * @param string $setting Passed setting. * @param string $format Required markup. * @param array $args Additional variables to pass into format string. * @param bool $echo Echo or return. * @return string|void */ public function __get_html( $setting = null, $format = '%s' ) { ob_start(); $this->__html( $setting, $format ); return ob_get_clean(); } /** * Print HTML template * * @param [type] $setting [description] * @param [type] $format [description] * @return [type] [description] */ public function __render_html( $setting = null, $format = '%s' ) { if ( is_array( $setting ) ) { $key = $setting[1]; $setting = $setting[0]; } $val = $this->get_settings_for_display( $setting ); if ( ! is_array( $val ) && '0' === $val ) { printf( $format, $val ); // phpcs:ignore } if ( is_array( $val ) && empty( $val[ $key ] ) ) { return ''; } if ( ! is_array( $val ) && empty( $val ) ) { return ''; } if ( is_array( $val ) ) { printf( $format, $val[ $key ] ); // phpcs:ignore } else { printf( $format, $val ); // phpcs:ignore } } /** * Print underscore template * * @param [type] $setting [description] * @param [type] $format [description] * @return [type] [description] */ public function __edit_html( $setting = null, $format = '%s' ) { if ( is_array( $setting ) ) { $setting = $setting[0] . '.' . $setting[1]; } echo '<# if ( settings.' . $setting . ' ) { #>'; // phpcs:ignore printf( $format, '{{{ settings.' . $setting . ' }}}' ); // phpcs:ignore echo '<# } #>'; } /** * Set posts query results */ public function __set_query( $posts ) { $this->__query = $posts; } /** * Return posts query results */ public function __get_query() { return $this->__query; } /** * [__add_control description] * @param boolean $control_id [description] * @param array $control_args [description] * @param integer $load_level [description] * @return [type] [description] */ public function __add_control( $control_id = false, $control_args = [], $load_level = 100 ) { if ( ( $this->__load_level < $load_level || 0 === $this->__load_level || in_array( $control_id, $this->__exclude_controls ) ) && !in_array( $control_id, $this->__include_controls ) ) { return false; } if ( function_exists( 'jet_styles_manager' ) && jet_styles_manager()->compatibility ) { $control_args = jet_styles_manager()->compatibility->set_control_args( $control_args, $load_level, 'jet-tabs' ); } $this->add_control( $control_id, $control_args ); } /** * [__add_responsive_control description] * @param boolean $control_id [description] * @param array $control_args [description] * @param integer $load_level [description] * @return [type] [description] */ public function __add_responsive_control( $control_id = false, $control_args = [], $load_level = 100 ) { if ( ( $this->__load_level < $load_level || 0 === $this->__load_level || in_array( $control_id, $this->__exclude_controls ) ) && !in_array( $control_id, $this->__include_controls ) ) { return false; } if ( function_exists( 'jet_styles_manager' ) && jet_styles_manager()->compatibility ) { $control_args = jet_styles_manager()->compatibility->set_control_args( $control_args, $load_level, 'jet-tabs' ); } $this->add_responsive_control( $control_id, $control_args ); } /** * [__add_group_control description] * @param boolean $group_control_type [description] * @param array $group_control_args [description] * @param integer $load_level [description] * @return [type] [description] */ public function __add_group_control( $group_control_type = false, $group_control_args = [], $load_level = 100 ) { if ( ( $this->__load_level < $load_level || 0 === $this->__load_level || in_array( $group_control_args['name'], $this->__exclude_controls ) ) && !in_array( $group_control_args['name'], $this->__include_controls ) ) { return false; } if ( function_exists( 'jet_styles_manager' ) && jet_styles_manager()->compatibility ) { $group_control_args = jet_styles_manager()->compatibility->set_group_control_args( $group_control_type, $group_control_args, $load_level, 'jet-tabs' ); } $this->add_group_control( $group_control_type, $group_control_args ); } /** * [__start_controls_section description] * @param boolean $controls_section_id [description] * @param array $controls_section_args [description] * @param integer $load_level [description] * @return [type] [description] */ public function __start_controls_section( $controls_section_id = false, $controls_section_args = [], $load_level = 25 ) { if ( ! $controls_section_id || $this->__load_level < $load_level || 0 === $this->__load_level ) { return false; } $this->start_controls_section( $controls_section_id, $controls_section_args ); } /** * [__end_controls_section description] * @param integer $load_level [description] * @return [type] [description] */ public function __end_controls_section( $load_level = 25 ) { if ( $this->__load_level < $load_level || 0 === $this->__load_level ) { return false; } $this->end_controls_section(); } /** * [__start_controls_tabs description] * @param boolean $tabs_id [description] * @param integer $load_level [description] * @return [type] [description] */ public function __start_controls_tabs( $tabs_id = false, $load_level = 25 ) { if ( ! $tabs_id || $this->__load_level < $load_level || 0 === $this->__load_level ) { return false; } $this->start_controls_tabs( $tabs_id ); } /** * [__end_controls_tabs description] * @param integer $load_level [description] * @return [type] [description] */ public function __end_controls_tabs( $load_level = 25 ) { if ( $this->__load_level < $load_level || 0 === $this->__load_level ) { return false; } $this->end_controls_tabs(); } /** * [__start_controls_tab description] * @param boolean $tab_id [description] * @param array $tab_args [description] * @param integer $load_level [description] * @return [type] [description] */ public function __start_controls_tab( $tab_id = false, $tab_args = [], $load_level = 25 ) { if ( ! $tab_id || $this->__load_level < $load_level || 0 === $this->__load_level ) { return false; } $this->start_controls_tab( $tab_id, $tab_args ); } /** * [__end_controls_tab description] * @param integer $load_level [description] * @return [type] [description] */ public function __end_controls_tab( $load_level = 25 ) { if ( $this->__load_level < $load_level || 0 === $this->__load_level ) { return false; } $this->end_controls_tab(); } /** * Returns HTML icon markup * * @param array $setting * @param array $settings * @param string $format * @param string $icon_class * @return string */ public function __get_icon( $setting = null, $settings = null, $format = '%s', $icon_class = '' ) { return $this->__render_icon( $setting, $settings, $format, $icon_class, false ); } /** * Print HTML icon template * * @param array $setting * @param array $settings * @param string $format * @param string $icon_class * @param bool $echo * * @return void|string */ public function __render_icon( $setting = null, $settings = null, $format = '%s', $icon_class = '', $echo = true ) { if ( null === $settings ) { $settings = $this->get_settings_for_display(); } $new_setting = $this->__new_icon_prefix . $setting; $migrated = isset( $settings['__fa4_migrated'][ $new_setting ] ); $is_new = ( empty( $settings[ $setting ] ) || 'false' === $settings[ $setting ] ) && class_exists( 'Elementor\Icons_Manager' ) && Icons_Manager::is_migration_allowed(); $icon_html = ''; if ( $is_new || $migrated ) { $attr = array(); if ( ! empty( $icon_class ) ) { $attr['class'] = $icon_class; } if ( isset( $settings[ $new_setting ] ) ) { ob_start(); Icons_Manager::render_icon( $settings[ $new_setting ], $attr ); $icon_html = ob_get_clean(); } } else if ( ! empty( $settings[ $setting ] ) ) { if ( empty( $icon_class ) ) { $icon_class = $settings[ $setting ]; } else { $icon_class .= ' ' . $settings[ $setting ]; } $icon_html = sprintf( '<i class="%s" aria-hidden="true"></i>', esc_attr( $icon_class ) ); } if ( empty( $icon_html ) ) { return; } if ( ! $echo ) { return sprintf( $format, $icon_html ); } printf( $format, $icon_html ); // phpcs:ignore } /** * Return available html tag list * @return array */ public function get_available_item_html_tags() { return array( 'h1' => esc_html__( 'H1', 'jet-tabs' ), 'h2' => esc_html__( 'H2', 'jet-tabs' ), 'h3' => esc_html__( 'H3', 'jet-tabs' ), 'h4' => esc_html__( 'H4', 'jet-tabs' ), 'h5' => esc_html__( 'H5', 'jet-tabs' ), 'h6' => esc_html__( 'H6', 'jet-tabs' ), 'div' => esc_html__( 'div', 'jet-tabs' ), 'span' => esc_html__( 'span', 'jet-tabs' ), 'p' => esc_html__( 'p', 'jet-tabs' ), ); } public function validate_html_tag( $tag ) { $allowed_tags = array( 'article', 'aside', 'div', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'main', 'nav', 'p', 'section', 'span', ); return in_array( strtolower( $tag ), $allowed_tags ) ? $tag : 'div'; } } PK CLj[?d}t 1 compatibility/wpml-modules/jet-wpml-accordion.phpnu ȯ�� <?php /** * Class Jet_Tabs_WPML_Accordion */ class Jet_Tabs_WPML_Accordion extends WPML_Elementor_Module_With_Items { public function get_items_field() { return 'toggles'; } public function get_fields() { return array( 'item_label', 'item_editor_content' ); } protected function get_title( $field ) { switch( $field ) { case 'item_label': return esc_html__( 'Jet Accordion: Item Label', 'jet-tabs' ); case 'item_editor_content': return esc_html__( 'Jet Accordion: Item Editor Content', 'jet-tabs' ); default: return ''; } } protected function get_editor_type( $field ) { switch( $field ) { case 'item_label': return 'LINE'; case 'item_editor_content': return 'VISUAL'; default: return ''; } } } PK CLj[q�g3 3 7 compatibility/wpml-modules/jet-wpml-image-accordion.phpnu ȯ�� <?php /** * Class Jet_Tabs_WPML_Image_Accordion */ class Jet_Tabs_WPML_Image_Accordion extends WPML_Elementor_Module_With_Items { public function get_items_field() { return 'item_list'; } public function get_fields() { return array( 'item_title', 'item_desc', 'item_link_text', 'item_link' ); } protected function get_title( $field ) { switch( $field ) { case 'item_title': return esc_html__( 'Jet Image Accordion: Item Label', 'jet-tabs' ); case 'item_desc': return esc_html__( 'Jet Image Accordion: Item Description', 'jet-tabs' ); case 'item_link_text': return esc_html__( 'Jet Image Accordion: Item Button text', 'jet-tabs' ); case 'item_link': return esc_html__( 'Jet Image Accordion: Item Link', 'jet-tabs' ); default: return ''; } } protected function get_editor_type( $field ) { switch( $field ) { case 'item_title': return 'LINE'; case 'item_desc': return 'AREA'; case 'item_link_text': return 'LINE'; case 'item_link': return 'LINK'; default: return ''; } } } PK CLj[�.�� � , compatibility/wpml-modules/jet-wpml-tabs.phpnu ȯ�� <?php /** * Class Jet_Tabs_WPML_Tabs */ class Jet_Tabs_WPML_Tabs extends WPML_Elementor_Module_With_Items { public function get_items_field() { return 'tabs'; } public function get_fields() { return array( 'item_label', 'item_editor_content' ); } protected function get_title( $field ) { switch( $field ) { case 'item_label': return esc_html__( 'Jet Tabs: Item Label', 'jet-tabs' ); case 'item_editor_content': return esc_html__( 'Jet Tabs: Item Editor Content', 'jet-tabs' ); default: return ''; } } protected function get_editor_type( $field ) { switch( $field ) { case 'item_label': return 'LINE'; case 'item_editor_content': return 'VISUAL'; default: return ''; } } } PK CLj[ �*� compatibility/compatibility.phpnu ȯ�� <?php /** * Jet_Tabs_Compatibility class */ // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } if ( ! class_exists( 'Jet_Tabs_Compatibility' ) ) { /** * Define Jet_Tabs_Compatibility class */ class Jet_Tabs_Compatibility { /** * A reference to an instance of this class. * * @since 1.0.0 * @var Jet_Tabs_Compatibility */ private static $instance = null; /** * Constructor for the class */ public function init() { // WPML Compatibility if ( defined( 'WPML_ST_VERSION' ) ) { add_action( 'init', array( $this, 'load_wpml_modules' ) ); add_filter( 'wpml_elementor_widgets_to_translate', array( $this, 'add_wpml_translatable_nodes' ) ); add_filter( 'jet-tabs/widgets/template_id', array( $this, 'set_wpml_translated_template_id' ) ); } // Polylang compatibility if ( class_exists( 'Polylang' ) ) { add_filter( 'jet-tabs/widgets/template_id', array( $this, 'set_pll_translated_template_id' ) ); } } /** * Load wpml required files. * * @return void */ public function load_wpml_modules() { if ( ! class_exists( 'WPML_Elementor_Module_With_Items' ) ) { return; } require jet_tabs()->plugin_path( 'includes/compatibility/wpml-modules/jet-wpml-accordion.php' ); require jet_tabs()->plugin_path( 'includes/compatibility/wpml-modules/jet-wpml-image-accordion.php' ); require jet_tabs()->plugin_path( 'includes/compatibility/wpml-modules/jet-wpml-tabs.php' ); } /** * Add wpml translation nodes * * @param array $nodes_to_translate * * @return array */ public function add_wpml_translatable_nodes( $nodes_to_translate ) { $nodes_to_translate['jet-accordion'] = array( 'conditions' => array( 'widgetType' => 'jet-accordion' ), 'integration-class' => 'Jet_Tabs_WPML_Accordion', ); $nodes_to_translate['jet-image-accordion'] = array( 'conditions' => array( 'widgetType' => 'jet-image-accordion' ), 'integration-class' => 'Jet_Tabs_WPML_Image_Accordion', ); $nodes_to_translate['jet-switcher'] = array( 'conditions' => array( 'widgetType' => 'jet-switcher' ), 'fields' => array( array( 'field' => 'disable_label', 'type' => esc_html__( 'Jet Switcher: Disable Label', 'jet-tabs' ), 'editor_type' => 'LINE', ), array( 'field' => 'disable_item_editor_content', 'type' => esc_html__( 'Jet Switcher: Disable Editor Content', 'jet-tabs' ), 'editor_type' => 'VISUAL', ), array( 'field' => 'enable_label', 'type' => esc_html__( 'Jet Switcher: Enable Label', 'jet-tabs' ), 'editor_type' => 'LINE', ), array( 'field' => 'enable_item_editor_content', 'type' => esc_html__( 'Jet Switcher: Enable Editor Content', 'jet-tabs' ), 'editor_type' => 'VISUAL', ), ), ); $nodes_to_translate['jet-tabs'] = array( 'conditions' => array( 'widgetType' => 'jet-tabs' ), 'integration-class' => 'Jet_Tabs_WPML_Tabs', ); return $nodes_to_translate; } /** * Set WPML translated template. * * @param $template_id * * @return mixed|void */ public function set_wpml_translated_template_id( $template_id ) { $post_type = get_post_type( $template_id ); return apply_filters( 'wpml_object_id', $template_id, $post_type, true ); } /** * Set Polylang translated template. * * @param $template_id * * @return false|int|null */ public function set_pll_translated_template_id( $template_id ) { if ( function_exists( 'pll_get_post' ) ) { $translation_template_id = pll_get_post( $template_id ); if ( null === $translation_template_id ) { // the current language is not defined yet return $template_id; } elseif ( false === $translation_template_id ) { //no translation yet return $template_id; } elseif ( $translation_template_id > 0 ) { // return translated post id return $translation_template_id; } } return $template_id; } /** * Returns the instance. * * @since 1.0.0 * @return Jet_Tabs_Compatibility */ public static function get_instance() { // If the single instance hasn't been set, set it now. if ( null == self::$instance ) { self::$instance = new self; } return self::$instance; } } } /** * Returns instance of Jet_Tabs_Compatibility * * @return Jet_Tabs_Compatibility */ function jet_tabs_compatibility() { return Jet_Tabs_Compatibility::get_instance(); } PK CLj[ ;|�$ �$ : controls/groups/class-jet-tabs-group-control-box-style.phpnu ȯ�� <?php use Elementor\Controls_Manager; use Elementor\Group_Control_Border; use Elementor\Group_Control_Box_Shadow; use Elementor\Group_Control_Typography; use Elementor\Repeater; use Elementor\Core\Kits\Documents\Tabs\Global_Colors; use Elementor\Core\Kits\Documents\Tabs\Global_Typography; use Elementor\Widget_Base; if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly class Jet_Tabs_Group_Control_Box_Style extends Elementor\Group_Control_Base { protected static $fields; public static function get_type() { return 'jet-tabs-box-style'; } protected function init_fields() { $fields = []; $fields['box_font_color'] = array( 'label' => esc_html__( 'Color', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{SELECTOR}}' => 'color: {{VALUE}}', ), ); $fields['background'] = array( 'label' => _x( 'Background Type', 'Background Control', 'jet-tabs' ), 'type' => Controls_Manager::CHOOSE, 'options' => array( 'color' => array( 'title' => _x( 'Classic', 'Background Control', 'jet-tabs' ), 'icon' => 'fa fa-paint-brush', ), 'gradient' => array( 'title' => _x( 'Gradient', 'Background Control', 'jet-tabs' ), 'icon' => 'fa fa-barcode', ), ), 'label_block' => false, 'render_type' => 'ui', ); $fields['color'] = array( 'label' => _x( 'Color', 'Background Control', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'title' => _x( 'Background Color', 'Background Control', 'jet-tabs' ), 'selectors' => array( '{{SELECTOR}}' => 'background-color: {{VALUE}};', ), 'condition' => array( 'background' => array( 'color', 'gradient' ), ), ); $fields['color_stop'] = array( 'label' => _x( 'Location', 'Background Control', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( '%' ), 'default' => array( 'unit' => '%', 'size' => 0, ), 'render_type' => 'ui', 'condition' => array( 'background' => array( 'gradient' ), ), 'of_type' => 'gradient', ); $fields['color_b'] = array( 'label' => _x( 'Second Color', 'Background Control', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'default' => '#f2295b', 'render_type' => 'ui', 'condition' => array( 'background' => array( 'gradient' ), ), 'of_type' => 'gradient', ); $fields['color_b_stop'] = array( 'label' => _x( 'Location', 'Background Control', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( '%' ), 'default' => array( 'unit' => '%', 'size' => 100, ), 'render_type' => 'ui', 'condition' => array( 'background' => array( 'gradient' ), ), 'of_type' => 'gradient', ); $fields['gradient_type'] = array( 'label' => _x( 'Type', 'Background Control', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'options' => array( 'linear' => _x( 'Linear', 'Background Control', 'jet-tabs' ), 'radial' => _x( 'Radial', 'Background Control', 'jet-tabs' ), ), 'default' => 'linear', 'render_type' => 'ui', 'condition' => array( 'background' => array( 'gradient' ), ), 'of_type' => 'gradient', ); $fields['gradient_angle'] = array( 'label' => _x( 'Angle', 'Background Control', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'deg' ), 'default' => array( 'unit' => 'deg', 'size' => 180, ), 'range' => array( 'deg' => array( 'step' => 10, ), ), 'selectors' => array( '{{SELECTOR}}' => 'background-color: transparent; background-image: linear-gradient({{SIZE}}{{UNIT}}, {{color.VALUE}} {{color_stop.SIZE}}{{color_stop.UNIT}}, {{color_b.VALUE}} {{color_b_stop.SIZE}}{{color_b_stop.UNIT}})', ), 'condition' => array( 'background' => array( 'gradient' ), 'gradient_type' => 'linear', ), 'of_type' => 'gradient', ); $fields['gradient_position'] = array( 'label' => _x( 'Position', 'Background Control', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'options' => array( 'center center' => _x( 'Center Center', 'Background Control', 'jet-tabs' ), 'center left' => _x( 'Center Left', 'Background Control', 'jet-tabs' ), 'center right' => _x( 'Center Right', 'Background Control', 'jet-tabs' ), 'top center' => _x( 'Top Center', 'Background Control', 'jet-tabs' ), 'top left' => _x( 'Top Left', 'Background Control', 'jet-tabs' ), 'top right' => _x( 'Top Right', 'Background Control', 'jet-tabs' ), 'bottom center' => _x( 'Bottom Center', 'Background Control', 'jet-tabs' ), 'bottom left' => _x( 'Bottom Left', 'Background Control', 'jet-tabs' ), 'bottom right' => _x( 'Bottom Right', 'Background Control', 'jet-tabs' ), ), 'default' => 'center center', 'selectors' => array( '{{SELECTOR}}' => 'background-color: transparent; background-image: radial-gradient(at {{VALUE}}, {{color.VALUE}} {{color_stop.SIZE}}{{color_stop.UNIT}}, {{color_b.VALUE}} {{color_b_stop.SIZE}}{{color_b_stop.UNIT}})', ), 'condition' => array( 'background' => array( 'gradient' ), 'gradient_type' => 'radial', ), 'of_type' => 'gradient', ); $fields['box_font_size'] = array( 'label' => esc_html__( 'Icon Size', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em', 'rem', ), 'responsive' => true, 'range' => array( 'px' => array( 'min' => 5, 'max' => 500, ), ), 'selectors' => array( '{{SELECTOR}}' => 'font-size: {{SIZE}}{{UNIT}}', ), ); $fields['box_size'] = array( 'label' => esc_html__( 'Box Size', 'jet-tabs' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em', '%', ), 'range' => array( 'px' => array( 'min' => 5, 'max' => 500, ), ), 'responsive' => true, 'selectors' => array( '{{SELECTOR}}' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', ), ); $fields['box_border'] = array( 'label' => _x( 'Border Type', 'Border Control', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'options' => array( '' => __( 'None', 'jet-tabs' ), 'solid' => _x( 'Solid', 'Border Control', 'jet-tabs' ), 'double' => _x( 'Double', 'Border Control', 'jet-tabs' ), 'dotted' => _x( 'Dotted', 'Border Control', 'jet-tabs' ), 'dashed' => _x( 'Dashed', 'Border Control', 'jet-tabs' ), ), 'selectors' => array( '{{SELECTOR}}' => 'border-style: {{VALUE}};', ), ); $fields['box_border_width'] = array( 'label' => _x( 'Width', 'Border Control', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'selectors' => array( '{{SELECTOR}}' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'condition' => array( 'box_border!' => '', ), ); $fields['box_border_color'] = array( 'label' => _x( 'Color', 'Border Control', 'jet-tabs' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => array( '{{SELECTOR}}' => 'border-color: {{VALUE}};', ), 'condition' => array( 'box_border!' => '', ), ); $fields['box_border_radius'] = array( 'label' => esc_html__( 'Border Radius', 'jet-tabs' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%' ), 'selectors' => array( '{{SELECTOR}}' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ); $fields['allow_box_shadow'] = array( 'label' => _x( 'Box Shadow', 'Box Shadow Control', 'jet-tabs' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'jet-tabs' ), 'label_off' => esc_html__( 'No', 'jet-tabs' ), 'return_value' => 'yes', 'separator' => 'before', 'render_type' => 'ui', ); $fields['box_shadow'] = array( 'label' => _x( 'Box Shadow', 'Box Shadow Control', 'jet-tabs' ), 'type' => Controls_Manager::BOX_SHADOW, 'condition' => array( 'allow_box_shadow!' => '', ), 'selectors' => array( '{{SELECTOR}}' => 'box-shadow: {{HORIZONTAL}}px {{VERTICAL}}px {{BLUR}}px {{SPREAD}}px {{COLOR}} {{box_shadow_position.VALUE}};', ), ); $fields['box_shadow_position'] = array( 'label' => _x( 'Position', 'Box Shadow Control', 'jet-tabs' ), 'type' => Controls_Manager::SELECT, 'options' => array( ' ' => _x( 'Outline', 'Box Shadow Control', 'jet-tabs' ), 'inset' => _x( 'Inset', 'Box Shadow Control', 'jet-tabs' ), ), 'condition' => array( 'allow_box_shadow!' => '', ), 'default' => ' ', 'render_type' => 'ui', ); return $fields; } protected function prepare_fields( $fields ) { array_walk( $fields, function ( &$field, $field_name ) { if ( in_array( $field_name, array( 'popover_toggle' ) ) ) { return; } $condition = array( 'popover_toggle!' => '', ); if( isset( $field['condition'] ) ) { $field['condition'] = array_merge( $field['condition'], $condition ); } else { $field['condition'] = $condition; } } ); return parent::prepare_fields( $fields ); } } PK CLj[�}a� � $ modules/db-updater/cx-db-updater.phpnu ȯ�� <?php /** * DB Updater module * * Version: 1.0.0 */ // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } if ( ! class_exists( 'CX_DB_Updater' ) ) { /** * Class CX_DB_Updater. * * @since 1.0.0 */ class CX_DB_Updater { /** * Module arguments. * * @since 1.0.0 * @var array */ private $args = array( 'path' => '', 'url' => '', 'callbacks' => array(), 'slug' => null, 'version' => null, 'labels' => array( 'start_update' => 'Start Update', 'data_update' => 'Data Update', 'messages' => array( 'error' => 'Module DB Updater init error in %s - version and slug is required arguments', 'update' => 'We need to update your database to the latest version.', 'updated' => 'Update complete, thank you for updating to the latest version!', ), ), ); /** * Option key for DB version. * * @since 1.0.0 * @var string */ protected $version_key = '%s-db-version'; /** * Nonce format. * * @since 1.0.0 * @var string */ protected $nonce = '_%s-db-update-nonce'; /** * Messages array. * * @since 1.0.0 * @var array */ protected $messages = array(); /** * Update done trigger. * * @since 1.0.0 * @var bool */ protected $updated = false; /** * Cherry_Db_Updater constructor. * * @since 1.0.0 * @param array $args Module arguments. * @return void */ public function __construct( $args = array() ) { $this->args = wp_parse_args( $args, $this->args ); if ( ! is_admin() || ! current_user_can( 'update_plugins' ) ) { return; } add_action( 'admin_notices', array( $this, 'init_notices' ) ); add_action( 'admin_init', array( $this, 'do_update' ) ); $this->messages = $this->args['labels']['messages']; } /** * Process DB update. * * @since 1.0.0 */ public function do_update() { if ( ! $this->is_current_update() ) { return; } $callbacks = $this->prepare_callbacks(); if ( ! empty( $callbacks ) ) { foreach ( $callbacks as $callback ) { if ( is_callable( $callback ) ) { call_user_func( $callback ); } } } $this->set_updated(); } /** * Finalize update. * * @since 1.0.0 */ public function set_updated() { $this->updated = true; $option = sprintf( $this->version_key, esc_attr( $this->args['slug'] ) ); update_option( $option, esc_attr( $this->args['version'] ) ); } /** * Prepare callbacks array. * * @since 1.0.0 * @return array */ private function prepare_callbacks() { $callbacks = array(); if ( empty( $this->args['callbacks'] ) ) { return $callbacks; } ksort( $this->args['callbacks'] ); foreach ( $this->args['callbacks'] as $ver => $ver_cb ) { if ( version_compare( $this->get_current_version(), $ver, '<' ) ) { $callbacks = array_merge( $callbacks, $ver_cb ); } } return $callbacks; } /** * Check if we processed update for plugin passed in arguments. * * @since 1.0.0 * @return bool */ private function is_current_update() { if ( empty( $_GET['cherry_x_db_update'] ) || empty( $_GET['slug'] ) || empty( $_GET['_nonce'] ) ) { return false; } if ( $_GET['slug'] !== $this->args['slug'] ) { return false; } $nonce_action = sprintf( $this->nonce, esc_attr( $this->args['slug'] ) ); if ( ! wp_verify_nonce( $_GET['_nonce'], $nonce_action ) ) { return false; } return true; } /** * Init admin notices. * * @since 1.0.0 * @return void */ public function init_notices() { $enabled = $this->validate_module_args(); if ( ! $enabled ) { return; } $slug = esc_attr( $this->args['slug'] ); if ( $this->is_update_required() ) { $this->show_notice( $slug ); } if ( $this->is_updated() ) { $this->show_updated_notice(); } } /** * Returns current DB version. * * @since 1.0.0 * @return string */ private function get_current_version() { $option = sprintf( $this->version_key, esc_attr( $this->args['slug'] ) ); return get_option( $option, '1.0.0' ); } /** * Check if database requires update. * * @since 1.0.0 * @return bool */ private function is_update_required() { $current = $this->get_current_version(); return version_compare( $current, esc_attr( $this->args['version'] ), '<' ); } /** * Check if update was successfully done. * * @since 1.0.0 * @return bool */ private function is_updated() { if ( ! $this->is_current_update() ) { return false; } return (bool) $this->updated; } /** * Validate module arguments. * * @since 1.0.0 * @return bool */ private function validate_module_args() { if ( empty( $this->args['slug'] ) || empty( $this->args['version'] ) ) { echo '<div class="error"><p>'; printf( $this->messages['error'], '<b>' . str_replace( untrailingslashit( ABSPATH ), '', $this->args['path'] ) . '</b>' ); echo '</p></div>'; return false; } return true; } /** * Show notice. * * @since 1.0.0 * @param string $slug Plugin slug. * @return void */ private function show_notice( $slug ) { echo '<div class="notice notice-info">'; echo '<p>'; $this->notice_title( $slug ); echo $this->messages['update']; echo '</p>'; echo '<p>'; $this->notice_submit( $slug ); echo '</p>'; echo '</div>'; } /** * Show update notice. * * @since 1.0.0 * @return void */ private function show_updated_notice() { $slug = esc_attr( $this->args['slug'] ); echo '<div class="notice notice-success is-dismissible">'; echo '<p>'; $this->notice_title( $slug ); echo $this->messages['updated']; echo '</p>'; echo '</div>'; } /** * Show plugin notice submit button. * * @since 1.0.0 * @param string $slug Plugin slug. * @return void */ private function notice_submit( $slug = '' ) { $format = '<a href="%1s" class="button button-primary">%2$s</a>'; $label = $this->args['labels']['start_update']; $url = add_query_arg( array( 'cherry_x_db_update' => true, 'slug' => $slug, '_nonce' => $this->create_nonce( $slug ), ), esc_url( admin_url( 'index.php' ) ) ); printf( $format, $url, $label ); } /** * Create DB update nonce. * * @since 1.0.0 * @param string $slug Plugin slug. * @return string */ private function create_nonce( $slug ) { return wp_create_nonce( sprintf( $this->nonce, $slug ) ); } /** * Show plugin notice title. * * @since 1.0.0 * @param string $slug Plugin slug. * @return void */ private function notice_title( $slug ) { $name = str_replace( '-', ' ', $slug ); $name = ucwords( $name ); printf( '<strong>%1$s %2$s</strong> – ', $name, $this->args['labels']['data_update'] ); } } } PK CLj[-�Q� # modules/jet-cache/inc/functions.phpnu ȯ�� <?php /** * @param $transient * @param $value * @param int $expiration * * @return mixed */ function jet_set_transient( $key = false, $data = false, $expiration = 0, $source_id = 0, $source = 'default' ) { return \Jet_Cache\Manager::get_instance()->db_manager->set_cache( $key, $data, $expiration, $source_id, $source ); } /** * @param $transient * * @return false|mixed */ function jet_get_transient( $key = false, $default = false ) { return \Jet_Cache\Manager::get_instance()->db_manager->get_cache( $key, $default ); }PK CLj[ȟ��� � $ modules/jet-cache/inc/db-manager.phpnu ȯ�� <?php namespace Jet_Cache; // If this file is called directly, abort. if ( !defined( 'WPINC' ) ) { die; } class DB_Manager { /** * A reference to an instance of this class. * * @since 1.0.0 * @var object */ private static $instance = null; /** * Constructor for the class */ function __construct() { $this->init_db_required(); } /** * [wpdb description] * @return [type] [description] */ public function wpdb() { global $wpdb; return $wpdb; } /** * Return table name by key * * @param string $table table key. * @return string */ public static function tables( $table = null, $return = 'all' ) { global $wpdb; $prefix = 'jet_'; $tables = [ 'cache' => [ 'name' => $wpdb->prefix . $prefix . 'cache', 'export_name' => $prefix . 'cache', 'query' => " id bigint(20) NOT NULL AUTO_INCREMENT, source varchar(191) DEFAULT 'default' NOT NULL, source_id bigint(20) DEFAULT '0' NOT NULL, cache_key varchar(191), cache_data longtext, cache_expired text, PRIMARY KEY (id) ", ], ]; if ( ! $table && 'all' === $return ) { return $tables; } switch ( $return ) { case 'all': return isset( $tables[ $table ] ) ? $tables[ $table ] : false; case 'name': return isset( $tables[ $table ] ) ? $tables[ $table ]['name'] : false; case 'query': return isset( $tables[ $table ] ) ? $tables[ $table ]['query'] : false; } return false; } /** * @return void */ public function init_db_required() { global $wpdb; $table_name = $wpdb->prefix . 'jet_cache'; if ( empty( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) ) ) { self::create_tables(); } } /** * Create all tables on activation * * @return [type] [description] */ public static function create_tables() { global $wpdb; $charset_collate = $wpdb->get_charset_collate(); foreach ( self::tables() as $table ) { $table_name = $table['name']; $table_query = $table['query']; if ( $table_name !== $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) ) { $sql = "CREATE TABLE $table_name ( $table_query ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); } } } /** * @param $key * @param $data * @param $expiration * @return bool|int|\mysqli_result|null */ public function set_cache( $key = false, $data = [], $expiration = 0, $source_id = 0, $source = 'default' ) { $table_name = $this->tables( 'cache', 'name' ); $cache_row = $this->wpdb()->get_row( $this->wpdb()->prepare( "SELECT * FROM $table_name WHERE cache_key = %s", $key ), OBJECT ); $cache_data = maybe_serialize( $data ); $status = false; $expiration_time = time() + (int) $expiration; if ( empty( $cache_row ) ) { $status = $this->wpdb()->insert( $table_name, [ 'source' => $source, 'source_id' => $source_id, 'cache_key' => $key, 'cache_data' => $cache_data, 'cache_expired' => $expiration_time, ] ); } return $status; } /** * [insert_review description] * @param array $args [description] * @return [type] [description] */ public function get_cache( $key = false, $default = false ) { $table_name = $this->tables( 'cache', 'name' ); $cache_row = $this->wpdb()->get_row( $this->wpdb()->prepare( "SELECT * FROM $table_name WHERE cache_key = %s", $key ), OBJECT ); if ( empty( $cache_row ) ) { return $default; } $cache_expired = $cache_row->cache_expired; if ( ! empty( $cache_expired ) && $cache_expired < time() ) { $this->delete_cache( $key ); return false; } return maybe_unserialize( $cache_row->cache_data ); } /** * @param $key * @return bool|int|\mysqli_result|null */ public function delete_cache( $key = false ) { if ( ! $key ) { return false; } $table_name = $this->tables( 'cache', 'name' ); return $this->wpdb()->delete( $table_name, [ 'cache_key' => $key ] ); } /** * @param $key * @return bool|int|\mysqli_result|null */ public function delete_cache_by_instance_id( $source_id = false, $source = false ) { if ( ! $source_id ) { return false; } $table_name = $this->tables( 'cache', 'name' ); $params = [ 'source_id' => $source_id ]; if ( ! empty( $source ) ) { $params['source'] = $source; } return $this->wpdb()->delete( $table_name, $params ); } /** * @param $key * @return bool|int|\mysqli_result|null */ public function delete_cache_by_source( $source = false ) { if ( ! $source ) { return false; } $table_name = $this->tables( 'cache', 'name' ); $params = [ 'source' => $source ]; return $this->wpdb()->delete( $table_name, $params ); } /** * Returns the instance. * * @return object * @since 1.0.0 */ public static function get_instance() { // If the single instance hasn't been set, set it now. if ( null == self::$instance ) { self::$instance = new self; } return self::$instance; } } PK CLj[�1� � modules/jet-cache/jet-cache.phpnu ȯ�� <?php /** * Jet Cache Module * * Version: 1.0.0 */ namespace Jet_Cache; // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } class Manager { /** * A reference to an instance of this class. * * @since 1.0.0 * @access private * @var object */ private static $instance = null; /** * Module directory path. * * @since 1.0.0 * @access protected * @var srting. */ protected $path; /** * Module directory URL. * * @since 1.0.0 * @access protected * @var srting. */ protected $url; /** * Module version * * @var string */ protected $version = '1.0.0'; /** * @var null */ public $db_manager = null; /** * Jet_Dashboard constructor. * * @since 1.0.0 * @access public * @return void */ public function __construct() { $this->load_files(); $this->db_manager = new DB_Manager(); } /** * [load_files description] * @return [type] [description] */ public function load_files() { /** * Modules */ require $this->path . 'inc/db-manager.php'; require $this->path . 'inc/functions.php'; } /** * Returns the instance. * * @since 1.0.0 * @access public * @return object */ public static function get_instance() { // If the single instance hasn't been set, set it now. if ( null == self::$instance ) { self::$instance = new self; } return self::$instance; } } PK CLj[I�/� 8 modules/jet-dashboard/assets/css/jet-dashboard-admin.cssnu ȯ�� .jet-dashboard-page .cx-vui-button{font-size:14px;font-weight:400;background-color:rgba(0,0,0,0)}.jet-dashboard-page .cx-vui-button:hover{background-color:rgba(0,0,0,0)}.jet-dashboard-page .cx-vui-button .cx-vui-button__content>span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-page .cx-vui-button .cx-vui-button__content .button-icon{margin-right:5px}.jet-dashboard-page .cx-vui-button .cx-vui-button__content .button-dropdown-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:10px}.jet-dashboard-page .cx-vui-button .cx-vui-button__content .button-dropdown-icon svg{margin:0}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-default{color:#007cba;-webkit-box-shadow:inset 0 0 0 1px #e0e0e0;box-shadow:inset 0 0 0 1px #e0e0e0}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-default:hover{background-color:rgba(224,224,224,.3)}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-default .cx-vui-button__loader svg,.jet-dashboard-page .cx-vui-button.cx-vui-button--style-default .cx-vui-button__loader path{fill:#007cba}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-default .button-icon,.jet-dashboard-page .cx-vui-button.cx-vui-button--style-default path{fill:#007cba}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-accent{color:#007cba;-webkit-box-shadow:inset 0 0 0 1px #007cba;box-shadow:inset 0 0 0 1px #007cba}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-accent:hover{background-color:rgba(0,124,186,.07)}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-accent .cx-vui-button__loader svg,.jet-dashboard-page .cx-vui-button.cx-vui-button--style-accent .cx-vui-button__loader path{fill:#007cba}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-accent .button-icon,.jet-dashboard-page .cx-vui-button.cx-vui-button--style-accent path{fill:#007cba}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-danger{color:#d6336c;-webkit-box-shadow:inset 0 0 0 1px #d6336c;box-shadow:inset 0 0 0 1px #d6336c}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-danger:hover{background-color:rgba(214,51,108,.07)}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-danger .cx-vui-button__loader svg,.jet-dashboard-page .cx-vui-button.cx-vui-button--style-danger .cx-vui-button__loader path{fill:#d6336c}.jet-dashboard-page .cx-vui-button.cx-vui-button--style-danger .button-icon,.jet-dashboard-page .cx-vui-button.cx-vui-button--style-danger path{fill:#d6336c}.jet-dashboard-page__banners{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:20px}.jet-dashboard-page__banner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;gap:20px;border-radius:4px;color:#23282d;overflow:hidden;min-width:300px;position:relative;background-size:cover;background-position:50% 50%;-webkit-box-shadow:0px 2px 6px rgba(35,40,45,.07);box-shadow:0px 2px 6px rgba(35,40,45,.07)}.jet-dashboard-page__banner .banner-frame{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;border-radius:4px}.jet-dashboard-page__banner .banner-inner{height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px}.jet-dashboard-page__banner .banner-label{font-weight:500;font-size:14px;line-height:18px;text-transform:uppercase;margin-bottom:38px}.jet-dashboard-page__banner .banner-title{font-size:20px;line-height:28px;margin-bottom:10px}.jet-dashboard-page__banner .banner-content{font-size:14px;line-height:18px;margin-bottom:20px}.jet-dashboard-page__banner .banner-buttons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.jet-dashboard-page__banner .banner-buttons .cx-vui-button{margin-right:10px}.jet-dashboard-page__banner .banner-buttons .cx-vui-button:last-child{margin-right:0}.jet-dashboard-page__banner.col-4-4{width:100%}.jet-dashboard-page__banner.col-4-3{width:75%}.jet-dashboard-page__banner.col-4-2{width:50%}.jet-dashboard-page__banner.col-4-1{width:25%}.jet-dashboard-page__banner.premade-preset .banner-inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;padding:20px 30px 30px 30px}.jet-dashboard-page__banner.light-1-preset{background-color:#fff}.jet-dashboard-page__banner.light-1-preset .banner-label{color:#bb97ff}.jet-dashboard-page__banner.light-1-preset .banner-content{color:#7b7e81}.jet-dashboard-page__banner.light-2-preset{background-image:url("../images/banner-light-bg-1.png");background-color:#f6f9fe;background-size:100% 98px;background-position:50% 0;background-repeat:no-repeat}.jet-dashboard-page__banner.light-2-preset .banner-frame{background-color:#fff;margin:10px}.jet-dashboard-page__banner.light-2-preset .banner-label{color:#26e8a8}.jet-dashboard-page__banner.light-2-preset .banner-content{color:#7b7e81}.jet-dashboard-page__banner.light-3-preset{background-color:#fff}.jet-dashboard-page__banner.light-3-preset:before{display:block;position:absolute;width:152px;height:152px;top:-50px;right:-30px;background-color:#f6f9fe;content:"";border-radius:50%;z-index:1}.jet-dashboard-page__banner.light-3-preset:after{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-image:url("../images/youtube-icons.svg");background-size:120px;background-position:calc(100% - 5px) -20px;background-repeat:no-repeat;content:"";z-index:2}.jet-dashboard-page__banner.light-3-preset .banner-inner{position:relative;z-index:3}.jet-dashboard-page__banner.light-3-preset .banner-label{color:#26e8a8}.jet-dashboard-page__banner.light-3-preset .banner-content{color:#7b7e81}.jet-dashboard-page__banner.light-4-preset{background-color:#fff}.jet-dashboard-page__banner.light-4-preset:before{display:block;position:absolute;width:152px;height:152px;top:-50px;right:-30px;background-color:#f6f9fe;border-radius:50%;content:"";z-index:1}.jet-dashboard-page__banner.light-4-preset:after{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-image:url("../images/elementor-wordpress-icon.svg");background-size:120px;background-position:calc(100% - 10px) -55px;background-repeat:no-repeat;content:"";z-index:2}.jet-dashboard-page__banner.light-4-preset .banner-inner{position:relative;z-index:3}.jet-dashboard-page__banner.light-4-preset .banner-label{color:#26e8a8}.jet-dashboard-page__banner.light-4-preset .banner-content{color:#7b7e81}.jet-dashboard-page__banner.dark-1-preset{background-color:#0f1419}.jet-dashboard-page__banner.dark-1-preset .banner-label{color:#26e8a8}.jet-dashboard-page__banner.dark-1-preset .banner-title{color:#fff}.jet-dashboard-page__banner.dark-1-preset .banner-content{color:#fff}.jet-dashboard-page__banner.dark-1-preset .cx-vui-button{color:#4efec3;-webkit-box-shadow:inset 0 0 0 1px #4efec3;box-shadow:inset 0 0 0 1px #4efec3}.jet-dashboard-page__banner.dark-2-preset{background-color:#0f1419}.jet-dashboard-page__banner.dark-2-preset:before{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background:-o-radial-gradient(2.82% -9.25%, 120px 120px, rgba(40, 112, 93, 0.81) 0%, rgba(40, 112, 93, 0) 100%);background:radial-gradient(120px 120px at 2.82% -9.25%, rgba(40, 112, 93, 0.81) 0%, rgba(40, 112, 93, 0) 100%);content:"";z-index:1}.jet-dashboard-page__banner.dark-2-preset:after{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background:-o-radial-gradient(94.51% 127.17%, 190px 190px, #5B77E7 0%, rgba(91, 119, 231, 0) 100%);background:radial-gradient(190px 190px at 94.51% 127.17%, #5B77E7 0%, rgba(91, 119, 231, 0) 100%);content:"";z-index:2}.jet-dashboard-page__banner.dark-2-preset .banner-inner{position:relative;z-index:3}.jet-dashboard-page__banner.dark-2-preset .banner-label{color:#26e8a8}.jet-dashboard-page__banner.dark-2-preset .banner-title{color:#fff}.jet-dashboard-page__banner.dark-2-preset .banner-content{color:#fff}.jet-dashboard-page__banner.dark-2-preset .cx-vui-button{color:#4efec3;-webkit-box-shadow:inset 0 0 0 1px #4efec3;box-shadow:inset 0 0 0 1px #4efec3}.jet-dashboard-page__banner.dark-3-preset{background-color:#0f1419}.jet-dashboard-page__banner.dark-3-preset:before{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background:-o-radial-gradient(91% -24.9%, 190px 190px, rgba(91, 119, 231, 0.88) 0%, rgba(91, 119, 231, 0) 100%);background:radial-gradient(190px 190px at 91% -24.9%, rgba(91, 119, 231, 0.88) 0%, rgba(91, 119, 231, 0) 100%);content:"";z-index:1}.jet-dashboard-page__banner.dark-3-preset:after{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-image:url("../images/youtube-icons.svg");background-size:120px;background-position:calc(100% - 5px) -20px;background-repeat:no-repeat;content:"";z-index:2}.jet-dashboard-page__banner.dark-3-preset .banner-inner{position:relative;z-index:3}.jet-dashboard-page__banner.dark-3-preset .banner-label{color:#26e8a8}.jet-dashboard-page__banner.dark-3-preset .banner-title{color:#fff}.jet-dashboard-page__banner.dark-3-preset .banner-content{color:#fff}.jet-dashboard-page__banner.dark-3-preset .cx-vui-button{color:#4efec3;-webkit-box-shadow:inset 0 0 0 1px #4efec3;box-shadow:inset 0 0 0 1px #4efec3}.jet-dashboard-page__banner.dark-4-preset{background-color:#0f1419}.jet-dashboard-page__banner.dark-4-preset:before{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background:-o-radial-gradient(91% -24.9%, 190px 190px, rgba(91, 119, 231, 0.88) 0%, rgba(91, 119, 231, 0) 100%);background:radial-gradient(190px 190px at 91% -24.9%, rgba(91, 119, 231, 0.88) 0%, rgba(91, 119, 231, 0) 100%);content:"";z-index:1}.jet-dashboard-page__banner.dark-4-preset:after{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-image:url("../images/elementor-wordpress-icon.svg");background-size:120px;background-position:calc(100% - 20px) -60px;background-repeat:no-repeat;content:"";z-index:2}.jet-dashboard-page__banner.dark-4-preset .banner-inner{position:relative;z-index:3}.jet-dashboard-page__banner.dark-4-preset .banner-label{color:#26e8a8}.jet-dashboard-page__banner.dark-4-preset .banner-title{color:#fff}.jet-dashboard-page__banner.dark-4-preset .banner-content{color:#fff}.jet-dashboard-page__banner.dark-4-preset .cx-vui-button{color:#4efec3;-webkit-box-shadow:inset 0 0 0 1px #4efec3;box-shadow:inset 0 0 0 1px #4efec3}.jet-dashboard-page .cx-vui-alert{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:10px 20px;margin-top:20px;background-color:#f4f4f5;border-radius:4px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.jet-dashboard-page .cx-vui-alert .cx-vui-alert__icon{margin-top:3px;margin-right:10px}.jet-dashboard-page .cx-vui-alert .cx-vui-alert__message{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;color:#7b7e81;font-size:13px}.jet-dashboard-page .cx-vui-alert.info-type{background-color:#edf6fa}.jet-dashboard-page .cx-vui-alert.info-type .cx-vui-alert__icon svg{fill:#007cba}.jet-dashboard-page .cx-vui-alert.info-type .cx-vui-alert__message{color:#007cba}.jet-dashboard-page .cx-vui-alert.success-type{background-color:#e9f6ea}.jet-dashboard-page .cx-vui-alert.success-type .cx-vui-alert__icon svg{fill:#46b450}.jet-dashboard-page .cx-vui-alert.success-type .cx-vui-alert__message{color:#46b450}.jet-dashboard-page .cx-vui-alert.error-type{background-color:#fbf0f0}.jet-dashboard-page .cx-vui-alert.error-type .cx-vui-alert__icon svg{fill:#c92c2c}.jet-dashboard-page .cx-vui-alert.error-type .cx-vui-alert__message{color:#c92c2c}.jet-dashboard-page__alerts{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-page__alert{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:20px;background-color:#fff;-webkit-box-shadow:0px 2px 6px rgba(35,40,45,.07);box-shadow:0px 2px 6px rgba(35,40,45,.07);padding:20px 30px;margin-top:10px}.jet-dashboard-page__alert:first-child{margin-top:0}.jet-dashboard-page__alert.info-type .alert-type-line{background:#3dddc1;background:-webkit-gradient(linear, left bottom, left top, from(#3DDDC1), to(#5099E6)),#5099e6;background:-o-linear-gradient(bottom, #3DDDC1 0%, #5099E6 100%),#5099e6;background:linear-gradient(0deg, #3DDDC1 0%, #5099E6 100%),#5099e6}.jet-dashboard-page__alert.success-type .alert-type-line{background:#40d825;background:-webkit-gradient(linear, left top, left bottom, from(#40D825), to(#B1EF3A));background:-o-linear-gradient(top, #40D825 0%, #B1EF3A 100%);background:linear-gradient(180deg, #40D825 0%, #B1EF3A 100%)}.jet-dashboard-page__alert.danger-type .alert-type-line{background:#fedb22;background:-webkit-gradient(linear, left bottom, left top, from(#FEDB22), to(#FFA901)),#5099e6;background:-o-linear-gradient(bottom, #FEDB22 0%, #FFA901 100%),#5099e6;background:linear-gradient(0deg, #FEDB22 0%, #FFA901 100%),#5099e6}.jet-dashboard-page__alert.error-type .alert-type-line{background:#ff8b8b;background:-webkit-gradient(linear, left bottom, left top, from(#FF8B8B), to(#F5435A)),#5099e6;background:-o-linear-gradient(bottom, #FF8B8B 0%, #F5435A 100%),#5099e6;background:linear-gradient(0deg, #FF8B8B 0%, #F5435A 100%),#5099e6}.jet-dashboard-page__alert .alert-type-line{display:block;position:absolute;width:4px;height:100%;top:0;left:0;background:-webkit-gradient(linear, left bottom, left top, from(#5B77E7), color-stop(53.65%, #49B5D2), to(#26E8A8));background:-o-linear-gradient(bottom, #5B77E7 0%, #49B5D2 53.65%, #26E8A8 100%);background:linear-gradient(0deg, #5B77E7 0%, #49B5D2 53.65%, #26E8A8 100%)}.jet-dashboard-page__alert .alert-close{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:7px;right:7px;cursor:pointer}.jet-dashboard-page__alert .alert-icon{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:80px;width:48px}.jet-dashboard-page__alert .alert-icon svg{width:100%;height:auto}.jet-dashboard-page__alert .alert-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;gap:10px}.jet-dashboard-page__alert .alert-title{color:#23282d;font-size:14px;line-height:18px;font-weight:500}.jet-dashboard-page__alert .alert-message{color:#7b7e81;font-size:13px;line-height:16px}.jet-dashboard-page__alert .alert-buttons .cx-vui-button{margin-right:10px}.jet-dashboard-page__alert .alert-buttons .cx-vui-button:last-child{margin-right:0}.jet-dashboard-page .cx-vui-popup .cx-vui-popup__header{text-align:center;margin-bottom:30px}.jet-dashboard-page .cx-vui-popup .cx-vui-popup__header-label{font-weight:500;font-size:24px;line-height:36px;text-align:center;color:#23282d}.jet-dashboard-page .cx-vui-popup.license-manager-popup .cx-vui-popup__body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;overflow:hidden;max-height:calc(100% - 100px)}.jet-dashboard-page .cx-vui-popup.license-manager-popup .cx-vui-popup__header{padding-bottom:15px;border-bottom:1px solid #dcdcdd}.jet-dashboard-page .cx-vui-popup.license-manager-popup .cx-vui-popup__header .cx-vui-popup__header-inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-page .cx-vui-popup.license-manager-popup .cx-vui-popup__content{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;overflow-y:auto}.jet-dashboard-page .cx-vui-popup.license-manager-popup .cx-vui-popup__content .license-manager{width:100%;max-width:1260px}.jet-dashboard-page .cx-vui-popup.license-activation-popup .cx-vui-popup__header{text-align:center}.jet-dashboard-page .cx-vui-popup.license-activation-popup .popup-licence-control{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:10px}.jet-dashboard-page .cx-vui-popup.license-activation-popup .popup-licence-control p{width:100%}.jet-dashboard-page .cx-vui-popup.license-activation-popup .popup-licence-control .popup-licence__key{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.jet-dashboard-page .cx-vui-popup.license-activation-popup .popup-licence-control .popup-licence__key input{border-radius:4px 0 0 4px}.jet-dashboard-page .cx-vui-popup.license-activation-popup .popup-licence-control .popup-licence__action-button{border-radius:0 4px 4px 0;-webkit-box-shadow:none;box-shadow:none}.jet-dashboard-page .cx-vui-popup.license-deactivation-popup .cx-vui-popup__content{text-align:center}.jet-dashboard-page .cx-vui-popup.license-deactivation-popup .cx-vui-popup__content .show-license-manager{margin-top:20px}.jet-dashboard-page .cx-vui-popup.update-check-popup .cx-vui-popup__content{text-align:center}.jet-dashboard-page .cx-vui-popup.update-check-popup .cx-vui-popup__content svg{margin-bottom:20px}.jet-dashboard-page .cx-vui-popup.update-check-popup .cx-vui-popup__content p{text-align:center;line-height:30px}.jet-dashboard-page .cx-vui-popup.update-check-popup .cx-vui-popup__content p span{font-size:20px;color:#23282d;display:block}.jet-dashboard-page .cx-vui-popup.update-check-popup .cx-vui-popup__content .cx-vui-button{margin-top:20px}.jet-dashboard-page .cx-vui-popup.rollback-popup p{text-align:center;line-height:30px}.jet-dashboard-page .cx-vui-popup.rollback-popup p i{display:block;color:#d6336c}.jet-dashboard-page .cx-vui-popup.rollback-popup .cx-vui-button{margin-top:10px;width:100%}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner.responce-type-error .responce-data-popup__title{color:#c92c2c}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner.responce-type-success .responce-data-popup__title{color:#46b450}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner .responce-data-popup__header{padding-bottom:15px;border-bottom:1px solid #dcdcdd;margin-bottom:30px}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner .responce-data-popup__title{font-weight:500;font-size:24px;line-height:36px;color:#23282d}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner p:last-child{padding-bottom:0}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner p .activation-limit{display:inline-block;width:20px;height:20px;text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:50%;color:#fff;background-color:#007cba}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner .responce-data-popup__activated-sites{margin-bottom:20px}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner .responce-data-popup__activated-sites p{padding-bottom:5px}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner .responce-data-popup__activated-sites .site-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;max-height:100px;overflow-y:auto}.jet-dashboard-page .cx-vui-popup.responce-data-popup .responce-data-popup__inner .responce-data-popup__activated-sites .site-list .site-item{margin:0 0 0 10px}.jet-dashboard-page .cx-vui-popup.video-guide-popup .cx-vui-popup__body{padding:0;border-radius:0;background-color:#000}.jet-dashboard-page .cx-vui-popup.video-guide-popup .cx-vui-popup__body iframe{width:100%;min-height:450px}.jet-dashboard-page .cx-vui-popup.video-guide-popup .cx-vui-popup__content>div{line-height:0}.jet-dashboard-page .cx-vui-popup.service-actions-popup .service-actions-popup__form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-page .cx-vui-popup.service-actions-popup .service-actions-popup__form>.cx-vui-component-raw{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.jet-dashboard-page .cx-vui-popup.service-actions-popup .service-actions-popup__form>.cx-vui-component-raw select{max-width:100%}.jet-dashboard-page .cx-vui-popup.service-actions-popup .service-actions-popup__form .cx-vui-button{margin-left:10px}.jet-dashboard-welcome-page{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:20px}.jet-dashboard-welcome-page__sidebar{position:relative;width:300px}.jet-dashboard-welcome-page__content{-webkit-box-flex:1;-ms-flex:1 1 600px;flex:1 1 600px}.jet-dashboard-welcome-page__updates .jet-dashboard-page-badge{position:absolute;top:0;right:0;z-index:1}.jet-dashboard-welcome-page__licenses .licence-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.jet-dashboard-welcome-page__licenses .licence-list .licence-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;margin-bottom:12px}.jet-dashboard-welcome-page__licenses .licence-list .licence-item:last-child{margin-bottom:0}.jet-dashboard-welcome-page__licenses .licence-list .licence-item .licence-item-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:10px}.jet-dashboard-welcome-page__licenses .licence-list .licence-item .licence-item-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.jet-dashboard-welcome-page__licenses .licence-list .licence-item .licence-item-name{font-weight:500;font-size:12px;line-height:16px;color:#7b7e81}.jet-dashboard-welcome-page__licenses .licence-list .licence-item .lifetime{color:#46b450}.jet-dashboard-welcome-page__licenses .licence-list .licence-item .expire-date{color:#d6336c}.jet-dashboard-welcome-page__avaliable-plugins div.cx-vui-subtitle{margin-bottom:0}.jet-dashboard-welcome-page__wizard-section div.cx-vui-subtitle{margin-bottom:0}.jet-dashboard-welcome-page__wizard-section div.cx-vui-subtitle .cx-vui-subtitle__label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-welcome-page__wizard-section div.cx-vui-subtitle .cx-vui-subtitle__label svg{margin-right:20px}.jet-dashboard-welcome-page__more-plugins .plugin-list--more-plugins div.plugin-item{width:calc(33.3333% - 20px)}.jet-dashboard-welcome-page__get-more-banner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;background-color:#edf6ff;background-image:url("https://api.crocoblock.com/downloads/images/jet-dashboard/get-more-banner-bg.svg");background-position:0 50%;background-repeat:no-repeat;background-size:contain}.jet-dashboard-welcome-page__get-more-banner .get-more-banner-content{width:calc(50% - 10px)}.jet-dashboard-welcome-page__get-more-banner .get-more-banner-content .desc{font-size:14px;line-height:18px;color:#23282d}.jet-dashboard-welcome-page__get-more-banner .get-more-banner-content .title{font-size:20px;line-height:28px;font-weight:600;color:#23282d;margin:0 0 15px 0}.jet-dashboard-welcome-page__get-more-banner .get-more-banner-content .cx-vui-button{color:#007cba;-webkit-box-shadow:inset 0 0 0 1px #007cba;box-shadow:inset 0 0 0 1px #007cba}.jet-dashboard-welcome-page .extras-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:20px}.jet-dashboard-welcome-page .extras-list .extras-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:calc(50% - 20px);min-height:67px;border:1px solid #e0e0e0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;overflow:hidden}.jet-dashboard-welcome-page .extras-list .extras-item__logo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:55px;max-width:55px;background-color:#f3f5fc}.jet-dashboard-welcome-page .extras-list .extras-item__details{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;padding:10px 10px 12px 10px}.jet-dashboard-welcome-page .extras-list .extras-item__name{font-weight:500;font-size:14px;line-height:18px}.jet-dashboard-welcome-page .extras-list .extras-item__desc{margin:5px 0 0 0}.jet-dashboard-welcome-page .extras-list .extras-item .cx-vui-button{margin-top:10px}.jet-dashboard-welcome-page .offers-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:20px;margin-bottom:-30px}.jet-dashboard-welcome-page .offers-list .offers-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:calc(50% - 20px);margin-bottom:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.jet-dashboard-welcome-page .offers-list .offers-item__logo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:60px;max-width:60px;margin-right:20px}.jet-dashboard-welcome-page .offers-list .offers-item__details{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.jet-dashboard-welcome-page .offers-list .offers-item__name{font-weight:500;font-size:14px;line-height:18px}.jet-dashboard-welcome-page .offers-list .offers-item__desc{margin:5px 0 0 0}.jet-dashboard-welcome-page .offers-list .offers-item .cx-vui-button{margin-top:5px}.jet-dashboard-settings-page__inner.jet-dashboard-page__panel{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;padding-left:0}.jet-dashboard-settings-page .subpage-category-list{min-width:228px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin-right:20px}.jet-dashboard-settings-page .subpage-content{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.jet-dashboard-settings-page .plugin-settings-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:228px;border-top:1px solid #dcdcdd}.jet-dashboard-settings-page .plugin-settings-toggle:first-child{border-top:none}.jet-dashboard-settings-page .plugin-settings-toggle__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:15px 20px 15px 30px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.jet-dashboard-settings-page .plugin-settings-toggle__header-label{font-weight:500;font-size:14px;line-height:18px;color:#23282d}.jet-dashboard-settings-page .plugin-settings-toggle__header-marker{width:20px;height:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-settings-page .plugin-settings-toggle__links{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-settings-page .plugin-settings-toggle__link{border-style:solid;border-color:#fff;border-width:0 0 0 2px}.jet-dashboard-settings-page .plugin-settings-toggle__link:hover{background-color:#f5f8fd}.jet-dashboard-settings-page .plugin-settings-toggle__link:hover span{color:#007cba}.jet-dashboard-settings-page .plugin-settings-toggle__link.active{border-color:#007cba;background-color:#e9f0fd}.jet-dashboard-settings-page .plugin-settings-toggle__link.active span{color:#007cba}.jet-dashboard-settings-page .plugin-settings-toggle__link span{display:block;font-size:14px;line-height:18px;color:#23282d;padding:11px 0 11px 52px;text-decoration:none;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.jet-dashboard-settings-page .plugin-settings-toggle__link span:focus{outline:none;-webkit-box-shadow:none;box-shadow:none}.jet-dashboard-license-page{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-license-page .avaliable-plugins{margin-top:20px}.jet-dashboard-license-page .more-plugins{margin-top:20px}.jet-dashboard-license-page .add-new-license{display:-webkit-box;display:-ms-flexbox;display:flex}.jet-dashboard-license-page .add-new-license .cx-vui-button__content>span{display:-webkit-box;display:-ms-flexbox;display:flex}.jet-dashboard-license-page .add-new-license .cx-vui-button__content .dashicons{font-size:16px;margin:0 4px 0 -5px}.jet-dashboard-license-page .license-manager{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-license-page .license-manager .license-list{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-ms-flex-wrap:wrap;flex-wrap:wrap}.jet-dashboard-license-page .license-manager .license-list .license-item{margin:10px}.jet-dashboard-license-page .license-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:400px}.jet-dashboard-license-page .license-item__label{font-weight:500;font-size:24px;line-height:36px;text-align:center;color:#23282d;margin-bottom:40px}.jet-dashboard-license-page .license-item__control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-license-page .license-item__control .license-item__activation-message{text-align:center;margin-bottom:30px}.jet-dashboard-license-page .license-item__control .license-item__action-button{margin-top:10px}.jet-dashboard-license-page .license-item__deactivation{-ms-flex-item-align:start;align-self:flex-start}.jet-dashboard-license-page .license-item.license-activated .license-status{color:#46b450}.jet-dashboard-license-page .license-item.license-activated .license-item__deactivation{color:#d6336c;-webkit-box-shadow:inset 0 0 0 1px #d6336c;box-shadow:inset 0 0 0 1px #d6336c}.jet-dashboard-license-page .license-details{margin:30px 0}.jet-dashboard-license-page .license-details__label{color:#23282d;font-size:15px;font-weight:700;margin-bottom:20px}.jet-dashboard-license-page .license-details__fields{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-license-page .license-details__field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin-bottom:10px}.jet-dashboard-license-page .license-details__field:last-child{margin-bottom:0}.jet-dashboard-license-page .license-details__field .label{min-width:110px;font-weight:700;color:#23282d}.jet-dashboard-license-page .license-details__field .status-label{text-transform:capitalize;color:#46b450}.jet-dashboard-license-page .license-details__field .license-type{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-license-page .license-details__field .license-type svg{width:110px;height:auto}.jet-dashboard-license-page .license-details__field .included-plugin-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.jet-dashboard-license-page .license-details__field .included-plugin-list .included-plugin{width:50%;margin-bottom:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-license-page .license-details__field .included-plugin-list .included-plugin svg{margin-right:5px}.jet-dashboard-license-page .license-details__field.license-status{color:#c92c2c;font-weight:700;text-transform:capitalize}.jet-dashboard-license-page .license-details__field.license-type{text-transform:capitalize}.jet-dashboard-license-page .license-details__field.license-plugins{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.jet-dashboard-license-page .license-details__actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:20px}.jet-dashboard-license-page .license-details__actions .show-license-manager{font-size:13px}.jet-dashboard-license-page .license-details__actions .cx-vui-button{margin-left:5px}.jet-dashboard-license-page .license-details__actions .cx-vui-button:first-child{margin-left:0}.jet-dashboard-upsale-page__inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;background-image:-o-linear-gradient(23.82deg, #E9EFFD 22.28%, #FFFFFF 100%);background-image:linear-gradient(66.18deg, #E9EFFD 22.28%, #FFFFFF 100%);height:100vh;min-height:400px;gap:40px}.jet-dashboard-upsale-page__extra-image{width:50%;background-image:url("https://api.crocoblock.com/downloads/images/jet-dashboard/upsale-bg.png");background-position:50%;background-repeat:no-repeat;background-size:contain}.jet-dashboard-upsale-page__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:50%;font-size:18px;line-height:24px}@media(max-width: 1140px){.jet-dashboard-upsale-page__content{font-size:14px;line-height:20px}}.jet-dashboard-upsale-page__features{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:30px;margin-bottom:40px}@media(max-width: 1140px){.jet-dashboard-upsale-page__features{gap:15px}}.jet-dashboard-upsale-page__feature{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.jet-dashboard-upsale-page__feature span{color:#7b7e81}.jet-dashboard-upsale-page__title{font-weight:500;font-size:40px;line-height:48px;color:#23282d;margin-bottom:20px}@media(max-width: 1140px){.jet-dashboard-upsale-page__title{font-size:32px}}.jet-dashboard-upsale-page__desc{font-weight:normal;color:#7b7e81;max-width:460px;margin-bottom:40px}.jet-dashboard-page{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:20px 16px 0 15px;visibility:hidden}.jet-dashboard-page.inited{visibility:visible}.jet-dashboard-page .proccesing-state{opacity:.5;pointer-events:none}.jet-dashboard-page__body{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;gap:20px}@media(max-width: 1140px){.jet-dashboard-page__body{-ms-flex-wrap:wrap;flex-wrap:wrap}}.jet-dashboard-page__notice-list{width:100%;margin-bottom:20px}.jet-dashboard-page__before-content{width:100%}.jet-dashboard-page__content{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;max-width:calc(100% - 320px)}@media(max-width: 1140px){.jet-dashboard-page__content{max-width:100%;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}}.jet-dashboard-page__before-sidebar{width:100%;margin-bottom:20px}.jet-dashboard-page__sidebar-container{position:relative;width:300px;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}@media(max-width: 1140px){.jet-dashboard-page__sidebar-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;width:100%}.jet-dashboard-page__sidebar-container>div{margin:0 20px 0 0}.jet-dashboard-page__sidebar-container>div:last-child{margin-right:0}}.jet-dashboard-page__sidebar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;gap:20px}@media(max-width: 1140px){.jet-dashboard-page__sidebar{width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.jet-dashboard-page__after-sidebar{width:100%;margin-top:20px}.jet-dashboard-page__header{position:relative;padding:20px 30px;background:-o-radial-gradient(61.68% 157.61%, 34.83% 346.74%, rgba(38, 232, 168, 0.8) 17.85%, rgba(38, 232, 168, 0) 100%),-o-radial-gradient(78.71% -77.17%, 19.98% 198.91%, rgba(91, 119, 231, 0.9) 0%, rgba(91, 119, 231, 0) 100%),-o-radial-gradient(32.75% -216.3%, 38.43% 382.61%, rgba(0, 132, 68, 0.8) 47.64%, rgba(0, 132, 68, 0) 100%),#23282d;background:radial-gradient(34.83% 346.74% at 61.68% 157.61%, rgba(38, 232, 168, 0.8) 17.85%, rgba(38, 232, 168, 0) 100%),radial-gradient(19.98% 198.91% at 78.71% -77.17%, rgba(91, 119, 231, 0.9) 0%, rgba(91, 119, 231, 0) 100%),radial-gradient(38.43% 382.61% at 32.75% -216.3%, rgba(0, 132, 68, 0.8) 47.64%, rgba(0, 132, 68, 0) 100%),#23282d;margin-bottom:20px;border-radius:4px;overflow:hidden;-webkit-box-shadow:0px 2px 6px rgba(35,40,45,.07);box-shadow:0px 2px 6px rgba(35,40,45,.07)}.jet-dashboard-page__header .header-title{color:#fff;font-size:24px;line-height:32px;font-weight:500;margin:0}.jet-dashboard-page__header .header-desc{color:#fff;font-size:15px;line-height:22px;font-weight:normal;margin-top:5px;color:#26e8a8}.jet-dashboard-page__header .header-icon-link{position:absolute;top:19px;right:21px;width:56px;height:56px;border-radius:50%;background:-webkit-gradient(linear, left top, left bottom, from(#E52D27), color-stop(100.03%, #BF171D));background:-o-linear-gradient(top, #E52D27 0%, #BF171D 100.03%);background:linear-gradient(180deg, #E52D27 0%, #BF171D 100.03%)}.jet-dashboard-page__header .header-icon-link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:56px;height:56px;line-height:0}.jet-dashboard-page__header .header-icon-link svg{-webkit-transition:-webkit-transform .25s ease;transition:-webkit-transform .25s ease;-o-transition:transform .25s ease;transition:transform .25s ease;transition:transform .25s ease, -webkit-transform .25s ease}.jet-dashboard-page__header .header-icon-link:hover svg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.jet-dashboard-page__header.lifetime-product-type{background:-o-radial-gradient(61.68% 157.61%, 34.83% 346.74%, rgba(254, 219, 34, 0.8) 17.85%, rgba(254, 219, 34, 0) 100%),-o-radial-gradient(78.71% -77.17%, 19.98% 198.91%, rgba(195, 109, 0, 0.9) 0%, rgba(195, 109, 0, 0) 100%),-o-radial-gradient(32.75% -216.3%, 38.43% 382.61%, rgba(195, 109, 0, 0.8) 47.64%, rgba(195, 109, 0, 0) 100%),#23282d;background:radial-gradient(34.83% 346.74% at 61.68% 157.61%, rgba(254, 219, 34, 0.8) 17.85%, rgba(254, 219, 34, 0) 100%),radial-gradient(19.98% 198.91% at 78.71% -77.17%, rgba(195, 109, 0, 0.9) 0%, rgba(195, 109, 0, 0) 100%),radial-gradient(38.43% 382.61% at 32.75% -216.3%, rgba(195, 109, 0, 0.8) 47.64%, rgba(195, 109, 0, 0) 100%),#23282d}.jet-dashboard-page__header.lifetime-product-type .header-desc{color:#fedb22}.jet-dashboard-page__header.all-inclusive-product-type{background:-o-radial-gradient(61.68% 157.61%, 34.83% 346.74%, rgba(111, 139, 251, 0.8) 17.85%, rgba(111, 139, 251, 0) 100%),-o-radial-gradient(78.71% -77.17%, 19.98% 198.91%, rgba(255, 8, 201, 0.9) 0%, rgba(255, 8, 201, 0) 100%),-o-radial-gradient(32.75% -216.3%, 38.43% 382.61%, rgba(41, 69, 181, 0.8) 47.64%, rgba(41, 69, 181, 0) 100%),#23282d;background:radial-gradient(34.83% 346.74% at 61.68% 157.61%, rgba(111, 139, 251, 0.8) 17.85%, rgba(111, 139, 251, 0) 100%),radial-gradient(19.98% 198.91% at 78.71% -77.17%, rgba(255, 8, 201, 0.9) 0%, rgba(255, 8, 201, 0) 100%),radial-gradient(38.43% 382.61% at 32.75% -216.3%, rgba(41, 69, 181, 0.8) 47.64%, rgba(41, 69, 181, 0) 100%),#23282d}.jet-dashboard-page__header.all-inclusive-product-type .header-desc{color:#00e0ff}.jet-dashboard-page__header.plugin-set-product-type{background:-o-radial-gradient(61.68% 157.61%, 34.83% 346.74%, rgba(38, 232, 168, 0.8) 17.85%, rgba(38, 232, 168, 0) 100%),-o-radial-gradient(78.71% -77.17%, 19.98% 198.91%, rgba(91, 119, 231, 0.9) 0%, rgba(91, 119, 231, 0) 100%),-o-radial-gradient(32.75% -216.3%, 38.43% 382.61%, rgba(91, 119, 231, 0.8) 47.64%, rgba(91, 119, 231, 0) 100%),#23282d;background:radial-gradient(34.83% 346.74% at 61.68% 157.61%, rgba(38, 232, 168, 0.8) 17.85%, rgba(38, 232, 168, 0) 100%),radial-gradient(19.98% 198.91% at 78.71% -77.17%, rgba(91, 119, 231, 0.9) 0%, rgba(91, 119, 231, 0) 100%),radial-gradient(38.43% 382.61% at 32.75% -216.3%, rgba(91, 119, 231, 0.8) 47.64%, rgba(91, 119, 231, 0) 100%),#23282d}.jet-dashboard-page__header.plugin-set-product-type .header-desc{color:#26e8a8}.jet-dashboard-page__header.theme-plugin-bundle-product-type{background:-o-radial-gradient(61.68% 157.61%, 34.83% 346.74%, rgba(252, 133, 119, 0.8) 17.85%, rgba(252, 133, 119, 0) 100%),-o-radial-gradient(32.75% -216.3%, 38.43% 382.61%, rgba(25, 118, 211, 0.8) 47.64%, rgba(25, 118, 211, 0) 100%),-o-radial-gradient(78.71% -77.17%, 19.98% 198.91%, rgba(95, 49, 159, 0.9) 0%, rgba(95, 49, 159, 0) 100%),#23282d;background:radial-gradient(34.83% 346.74% at 61.68% 157.61%, rgba(252, 133, 119, 0.8) 17.85%, rgba(252, 133, 119, 0) 100%),radial-gradient(38.43% 382.61% at 32.75% -216.3%, rgba(25, 118, 211, 0.8) 47.64%, rgba(25, 118, 211, 0) 100%),radial-gradient(19.98% 198.91% at 78.71% -77.17%, rgba(95, 49, 159, 0.9) 0%, rgba(95, 49, 159, 0) 100%),#23282d}.jet-dashboard-page__header.theme-plugin-bundle-product-type .header-desc{color:#00e0ff}.jet-dashboard-page__before-component{margin-bottom:20px}.jet-dashboard-page__inner-component{margin-top:20px}.jet-dashboard-page__after-component{margin-top:20px}.jet-dashboard-page p{font-size:13px;color:#7b7e81;margin:0 0 10px 0}.jet-dashboard-page .dashicons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-page .cx-vui-subtitle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-page .cx-vui-subtitle--controls{padding-bottom:20px;border-bottom:1px solid #dcdcdd;margin-bottom:20px}.jet-dashboard-page .cx-vui-subtitle__label{font-size:20px;line-height:24px;font-weight:normal}.jet-dashboard-page .cx-vui-subtitle__buttons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-page .cx-vui-subtitle__buttons .cx-vui-button{margin-left:10px}.jet-dashboard-page .cx-vui-collapse__heading{padding:15px 0}.jet-dashboard-page .cx-vui-collapse__heading .cx-vui-subtitle{font-size:14px;font-weight:500}.jet-dashboard-page .cx-vui-collapse .cx-vui-collapse .cx-vui-collapse__heading{padding:15px}.jet-dashboard-page .cx-vui-tabs__nav{background-color:#fff}.jet-dashboard-page .cx-vui-tabs__nav-item{font-size:14px;font-weight:500}.jet-dashboard-page .cx-vui-component__label{font-size:14px;font-weight:400}.jet-dashboard-page .cx-vui-component__desc{font-size:12px}.jet-dashboard-page .cx-vui-dimensions{position:relative}.jet-dashboard-page .cx-vui-dimensions__units{margin-right:0}.jet-dashboard-page .cx-vui-dimensions__inputs .cx-vui-component-raw{min-width:25%}.jet-dashboard-page .cx-vui-dimensions__link{width:22px;height:22px;position:absolute;top:0;margin-left:0}.jet-dashboard-page__panel{min-width:292px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;padding:30px;background-color:#fff;-webkit-box-shadow:0px 2px 6px rgba(35,40,45,.07);box-shadow:0px 2px 6px rgba(35,40,45,.07)}.jet-dashboard-page__panel~.jet-dashboard-page__panel{margin-top:20px}.jet-dashboard-page__panel>.cx-vui-subtitle{margin-bottom:20px}.jet-dashboard-page__panel-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jet-dashboard-page__panel-header .panel-header-icon{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:46px;height:46px;border-radius:50%;border:1px solid #7b7e81;margin-right:12px}.jet-dashboard-page__panel-header .panel-header-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.jet-dashboard-page__panel-header .panel-header-content .panel-header-desc{font-size:14px;line-height:18px;font-weight:300;color:#7b7e81;margin-bottom:3px}.jet-dashboard-page__panel-header .panel-header-content .panel-header-title{font-size:20px;line-height:24px;color:#23282d}.jet-dashboard-page__panel-content{margin-top:12px;border-top:1px solid #dcdcdd;padding-top:23px;font-size:12px;line-height:16px;color:#7b7e81}.jet-dashboard-page__panel-controls{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:20px}.jet-dashboard-page__guide{width:100%}@media(max-width: 1140px){.jet-dashboard-page__guide{width:50%}}.jet-dashboard-page__guide-video{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:162px;background-color:#fff;background-size:cover;background-position:50%;overflow:hidden;border-radius:3px 3px 0 0;cursor:pointer}.jet-dashboard-page__guide-video svg{-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease}.jet-dashboard-page__guide-video:hover svg{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.jet-dashboard-page__guide-content{background-color:#fff;padding:20px 30px 40px 30px;border-radius:0 0 3px 3px}.jet-dashboard-page__guide-links{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.jet-dashboard-page__guide-link{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-bottom:22px}.jet-dashboard-page__guide-link:last-child{margin-bottom:0}.jet-dashboard-page__guide-link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;font-size:14px;line-height:18px;color:#007cba;text-decoration:none}.jet-dashboard-page__guide-link a:hover{color:#066ea2;text-decoration:underline}.jet-dashboard-page__guide-link a svg{margin-top:3px;margin-left:10px}.jet-dashboard-page__help-center{width:100%}@media(max-width: 1140px){.jet-dashboard-page__help-center{width:50%}}.jet-dashboard-page__help-center-links{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:12px;border-top:1px solid #dcdcdd;padding-top:23px}.jet-dashboard-page__help-center-link{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-bottom:22px}.jet-dashboard-page__help-center-link:last-child{margin-bottom:0}.jet-dashboard-page__help-center-link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;line-height:18px;color:#007cba;text-decoration:none}.jet-dashboard-page__help-center-link a:hover{color:#066ea2;text-decoration:underline}.jet-dashboard-page__help-center-link a .help-center-link-icon{margin-right:28px}.jet-dashboard-page .plugin-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-ms-flex-wrap:wrap;flex-wrap:wrap}.jet-dashboard-page .plugin-list .plugin-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-page .plugin-list .plugin-item__inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-page .plugin-list .plugin-item.activate-avaliable .plugin-label{color:#7b7e81}.jet-dashboard-page .plugin-list .plugin-item.activate-avaliable .plugin-version{background-color:#dfdfdf}.jet-dashboard-page .plugin-list .plugin-item.update-avaliable .plugin-version{background-color:#d6336c}.jet-dashboard-page .plugin-list .plugin-tumbnail{position:relative;line-height:0;margin-right:12px}.jet-dashboard-page .plugin-list .plugin-tumbnail img{width:80px}.jet-dashboard-page .plugin-list .plugin-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.jet-dashboard-page .plugin-list .plugin-name{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#23282d;font-weight:500}.jet-dashboard-page .plugin-list .plugin-desc{margin:10px 0 0 0}.jet-dashboard-page .plugin-list .plugin-version{font-size:12px;padding:0 4px;border-radius:2px;background-color:#46b450;color:#fff;white-space:nowrap;margin-left:8px}.jet-dashboard-page .plugin-list .plugin-rollback{line-height:0;margin-left:10px;cursor:pointer}.jet-dashboard-page .plugin-list .plugin-rollback .cx-vui-button{font-size:13px;white-space:nowrap}.jet-dashboard-page .plugin-list .plugin-rollback span{color:#007cba}.jet-dashboard-page .plugin-list .plugin-actions{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-top:7px}.jet-dashboard-page .plugin-list .plugin-actions .cx-vui-button{margin-left:8px}.jet-dashboard-page .plugin-list .plugin-actions .cx-vui-button:first-child{margin-left:0}.jet-dashboard-page .plugin-list .plugin-actions .show-license-control{color:#46b450}.jet-dashboard-page .plugin-list .plugin-actions .deactivate-plugin-button{color:#d6336c}.jet-dashboard-page .plugin-list .plugin-update-label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:5px;color:#7b7e81;font-size:13px}.jet-dashboard-page .plugin-list .plugin-update-label .latest-version{color:#007dba;font-weight:500;margin:0 3px}.jet-dashboard-page .plugin-list .plugin-update-label .cx-vui-button{font-size:13px;margin-left:3px}.jet-dashboard-page .plugin-list--installed-plugins{margin:-15px 0}.jet-dashboard-page .plugin-list--installed-plugins .plugin-item{width:50%;margin:15px 0}@media(max-width: 1140px){.jet-dashboard-page .plugin-list--installed-plugins .plugin-item{width:100%}}.jet-dashboard-page .plugin-list--avaliable-plugins{margin:-10px}.jet-dashboard-page .plugin-list--avaliable-plugins .plugin-item{width:calc(33.3333% - 20px);margin:10px}@media(max-width: 1140px){.jet-dashboard-page .plugin-list--avaliable-plugins .plugin-item{width:100%;margin:10px 0}}.jet-dashboard-page .plugin-list--avaliable-plugins .plugin-item .plugin-tumbnail{width:58px;margin:0;border-radius:4px 0 0 4px;overflow:hidden}.jet-dashboard-page .plugin-list--avaliable-plugins .plugin-item .plugin-tumbnail img{width:65px;margin-left:-3px}.jet-dashboard-page .plugin-list--avaliable-plugins .plugin-item .plugin-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;padding:10px 12px;border-width:1px 0 1px 0;border-right:1px;border-style:solid;border-color:#e0e0e0;border-radius:0 4px 4px 0}.jet-dashboard-page .plugin-list--more-plugins{margin:-10px -10px -30px -10px}.jet-dashboard-page .plugin-list--more-plugins .plugin-item{width:calc(25% - 20px);margin:10px 10px 30px 10px}@media(max-width: 1140px){.jet-dashboard-page .plugin-list--more-plugins .plugin-item{width:calc(50% - 20px)}}.jet-dashboard-page .plugin-list--more-plugins .plugin-item__inner{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-page .plugin-list--more-plugins .plugin-item__inner .plugin-tumbnail{margin:0 0 25px 0}.jet-dashboard-page .plugin-list--more-plugins .plugin-item__inner .plugin-tumbnail img{width:auto;max-width:70%}.jet-dashboard-page .plugin-list--more-plugins .plugin-item__inner .plugin-info{-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.jet-dashboard-page .plugin-list--more-plugins .plugin-item__inner .plugin-info .plugin-actions{-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;margin-top:10px}.jet-dashboard-page .plugin-list--registered-plugins{margin:-10px}.jet-dashboard-page .plugin-list--registered-plugins .plugin-item{width:calc(50% - 20px);margin:10px}@media(max-width: 1140px){.jet-dashboard-page .plugin-list--registered-plugins .plugin-item{width:100%}}.jet-dashboard-page .plugin-list--registered-plugins .plugin-item .button-dropdown-icon{-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;-o-transition:transform .25s;transition:transform .25s;transition:transform .25s, -webkit-transform .25s}.jet-dashboard-page .plugin-list--registered-plugins .plugin-item.dropdown-visible .button-dropdown-icon{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.jet-dashboard-page .plugin-list--registered-plugins .plugin-item .plugin-tumbnail{width:58px;margin:0;border-radius:4px 0 0 4px;overflow:hidden}.jet-dashboard-page .plugin-list--registered-plugins .plugin-item .plugin-tumbnail img{width:65px;margin-left:-3px}.jet-dashboard-page .plugin-list--registered-plugins .plugin-item .plugin-info{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;padding:10px 12px;border-width:1px 0 1px 0;border-right:1px;margin-right:12px;border-style:solid;border-color:#e0e0e0;border-radius:0 4px 4px 0}.jet-dashboard-page .plugin-list--registered-plugins .plugin-item .useful-links{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;position:absolute;overflow:hidden;width:207px;top:calc(100% - 38px);right:-30px;background-color:#fff;-webkit-box-shadow:0px 4px 10px rgba(35,40,45,.3);box-shadow:0px 4px 10px rgba(35,40,45,.3);border-radius:0px 0px 4px 4px;z-index:1}.jet-dashboard-page .plugin-list--registered-plugins .plugin-item .useful-links .useful-link{padding:12px;background-color:#fff;font-size:14px;line-height:16px;color:#007cba;text-decoration:none}.jet-dashboard-page .plugin-list--registered-plugins .plugin-item .useful-links .useful-link:hover{background-color:#f4f4f5}.jet-dashboard-page .jet-dashboard-page-badge{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:16px;height:16px;border-radius:50%;background:#ec1414;border:1px solid #fff;-webkit-box-sizing:border-box;box-sizing:border-box;font-weight:bold;font-size:12px;line-height:16px;color:#fff}.cx-vui-notices{z-index:10000}.fade-enter{opacity:0}.fade-enter-active{-webkit-transition:opacity .25s;-o-transition:opacity .25s;transition:opacity .25s}.fade-enter-to{opacity:1}.fade-leave{opacity:1}.fade-leave-active{-webkit-transition:opacity .25s;-o-transition:opacity .25s;transition:opacity .25s}.fade-leave-to{opacity:0}.popup-enter{opacity:0}.popup-enter .cx-vui-popup__body{-webkit-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}.popup-enter-active{-webkit-transition:opacity .3s;-o-transition:opacity .3s;transition:opacity .3s}.popup-enter-active .cx-vui-popup__body{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;-o-transition:transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s}.popup-enter-to{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.popup-enter-to .cx-vui-popup__body{-webkit-transform:translateY(0px);-ms-transform:translateY(0px);transform:translateY(0px)}.popup-leave{opacity:1}.popup-leave-active{-webkit-transition:opacity .25s;-o-transition:opacity .25s;transition:opacity .25s}.popup-leave-to{opacity:0}.dropdown-menu-enter{opacity:0;-webkit-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}.dropdown-menu-enter-active{-webkit-transition:opacity .25s,-webkit-transform .25s;transition:opacity .25s,-webkit-transform .25s;-o-transition:opacity .25s,transform .25s;transition:opacity .25s,transform .25s;transition:opacity .25s,transform .25s,-webkit-transform .25s}.dropdown-menu-enter-to{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.dropdown-menu-leave{opacity:1}.dropdown-menu-leave-active{-webkit-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.dropdown-menu-leave-to{opacity:0}PK CLj[���Vi i ? modules/jet-dashboard/assets/css/jet-dashboard-admin-inline.cssnu ȯ�� #adminmenu #toplevel_page_jet-dashboard a[href*="admin.php?page=jet-dashboard-license-page&subpage=license-manager"] { color: #4aa5f5; } #adminmenu #toplevel_page_jet-dashboard a[href="admin.php?page=jet-dashboard-upsale-page"] { color: #F5C546; } #adminmenu #toplevel_page_jet-dashboard a[href*="https://account.crocoblock.com/upgrade"] { color: #F5C546; } PK CLj[� ~� � 4 modules/jet-dashboard/assets/css/wp-admin-styles.cssnu ȯ�� body{--jet-button-padding-y: 7px;--jet-button-padding-x: 14px;--jet-button-font-size: 13px;--jet-button-font-weight: 500;--jet-button-line-height: 19px;--jet-button-border-radius: 3px}.jet-notice{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;border:1px solid #c3c4c7;border-left-width:0;padding:16px;gap:16px}.jet-notice--info .jet-notice__type-line{background:#3dddc1;background:-webkit-gradient(linear, left bottom, left top, from(#3DDDC1), to(#5099E6)),#5099e6;background:-o-linear-gradient(bottom, #3DDDC1 0%, #5099E6 100%),#5099e6;background:linear-gradient(0deg, #3DDDC1 0%, #5099E6 100%),#5099e6}.jet-notice--success .jet-notice__type-line{background:#40d825;background:-webkit-gradient(linear, left top, left bottom, from(#40D825), to(#B1EF3A));background:-o-linear-gradient(top, #40D825 0%, #B1EF3A 100%);background:linear-gradient(180deg, #40D825 0%, #B1EF3A 100%)}.jet-notice--warning .jet-notice__type-line{background:#fedb22;background:-webkit-gradient(linear, left bottom, left top, from(#FEDB22), to(#FFA901)),#5099e6;background:-o-linear-gradient(bottom, #FEDB22 0%, #FFA901 100%),#5099e6;background:linear-gradient(0deg, #FEDB22 0%, #FFA901 100%),#5099e6}.jet-notice--error .jet-notice__type-line{background:#ff8b8b;background:-webkit-gradient(linear, left bottom, left top, from(#FF8B8B), to(#F5435A)),#5099e6;background:-o-linear-gradient(bottom, #FF8B8B 0%, #F5435A 100%),#5099e6;background:linear-gradient(0deg, #FF8B8B 0%, #F5435A 100%),#5099e6}.jet-notice__type-line{display:block;position:absolute;width:4px;height:calc(100% + 2px);top:-1px;left:0}.jet-notice__icon-wrapper{width:24px}.jet-notice__icon-wrapper svg{width:100%;height:auto}.jet-notice__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.jet-notice__content h3{margin:0}.jet-notice__content p{line-height:1.2;padding:0;margin:8px 0 0 0}.jet-notice__title{font-size:1.0625rem;line-height:1.2}.jet-notice__message{color:#7b7e81;font-size:13px;line-height:16px}.jet-notice__actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:16px;margin-top:16px}.jet-button{display:inline-block;font-weight:var(--jet-button-font-weight);text-align:center;text-decoration:none;border:1px solid #dcdcdd;background:rgba(0,0,0,0);color:#7b7e81;-webkit-box-shadow:none;box-shadow:none;padding:var(--jet-button-padding-y) var(--jet-button-padding-x);font-size:var(--jet-button-font-size);line-height:var(--jet-button-line-height);border-radius:var(--jet-button-border-radius);white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:background-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;-o-transition:background-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.jet-button:hover{color:#7b7e81;background-color:#f3f5f6}.jet-button--primary{color:#fff;border-color:#007cba;background-color:#007cba}.jet-button--accent{color:#007cba;border-color:#007cba}.jet-button--accent:hover{color:#57595b}PK CLj[r�{x x <