85 Commits

Author SHA1 Message Date
MickeyKay 27835605d3 * Add grunt and various tasks.
* Run csscomb task on stylesheet - not ideal formatting though.
2015-07-24 17:14:59 -07:00
Mickey Kay 51c177d85a Merge pull request #34 from MIGHTYminnow/fix/mobile-menu-jquery
Update jQuery to add +/- signs to mobile menu. Fixes #33.
2015-07-20 13:52:37 -05:00
Mickey Kay 69184c5f90 Merge pull request #36 from MIGHTYminnow/feature/add-img-check-function
Feature/add img check function
2015-07-20 13:36:07 -05:00
MickeyKay b52e7e3387 Add empty line at file end. 2015-07-20 11:31:19 -07:00
MickeyKay 59ec252bc4 Update comment 2015-07-20 11:27:49 -07:00
MickeyKay 331fd2e271 Add helper function to check if img has size. 2015-07-20 11:26:36 -07:00
Braad b1d4ec9775 Add screen-reader-text class to our stylesheet for accessibility
WordPress has been moving in the direction of better accessibility for themes, and as part of this they are encouraging the use of a standard class "screen-reader-text" on the front end of all themes. This change adds the official CSS recommended by core.

For more information see https://make.wordpress.org/themes/2015/01/26/supporting-screen-reader-text/ and https://codex.wordpress.org/CSS#WordPress_Generated_Classes
2015-07-13 11:11:43 -07:00
Braad Martin 974933f5c2 Fix CSS typo and move editor body style 2015-07-12 12:04:13 -07:00
Braad Martin 0ba318f54a Explicitly set the editor background color to white 2015-07-12 12:01:32 -07:00
Braad Martin 2b50585a14 Fix detection of logo for body class 2015-07-12 10:38:17 -07:00
Braad 4d104ab1f2 Add a class "logos" to the anchors that wrap the logos 2015-07-06 16:36:30 -07:00
MickeyKay a6b0a37771 Update jQuery to add +/- signs to mobile menu. Fixes #33. 2015-07-06 11:59:03 -07:00
Mickey Kay eb655a32e1 Merge pull request #32 from MIGHTYminnow/retina-logos
Add support for retina logos
2015-07-01 19:30:08 -07:00
Braad c8125f0d91 Merge pull request #30 from MIGHTYminnow/update-bfal
Update Better Font Awesome Library to 1.3.4
2015-06-30 22:08:56 -07:00
Braad Martin 81b17fd9b7 Add RICG Responsive Images to our recommended plugins list 2015-06-30 20:53:35 -07:00
Braad Martin 3e6432dc8d Add a mime type check, add an extra check on post revision number, and cleanup formatting 2015-06-30 20:37:00 -07:00
Braad Martin 8cd6b7ae9b Switch to storing logos by image ID and outputting them properly 2015-06-30 20:19:35 -07:00
Braad Martin 05448fdd0f Bump version number 2015-06-30 20:10:36 -07:00
MickeyKay e5843ff4a4 Update Better Font Awesome Library to 1.3.4 2015-06-24 15:30:10 -07:00
Mickey Kay 2950acb3b6 Merge pull request #29 from BraadMartin/move-bfal-require
Move BFAL require to allow plugin's copy of the BFAL class to load first
2015-06-24 15:27:22 -07:00
Braad e437b1dd68 Use trailingslashit() 2015-06-23 16:56:54 -07:00
Braad 4341f49977 Move BFAL require to allow plugin's files the change to load first 2015-06-23 16:54:05 -07:00
Braad 4a763ee628 Merge pull request #15 from BraadMartin/dev
Add post-id-xx or page-id-xx class to TinyMCE previews on post/page edit screens
2015-06-23 12:32:55 -07:00
Braad 2199c0709a Update @since to 2.2.0 2015-06-23 12:32:11 -07:00
Mickey Kay 786b246206 Merge pull request #26 from BraadMartin/post-classes
Introduce trestle_post_classes to add custom classes to posts
2015-06-23 09:38:00 -07:00
Braad 77deddd2b8 Introduce trestle_post_classes to add custom classes to posts in certain situations 2015-06-22 13:14:21 -07:00
MickeyKay e1090a9de7 Remove unused button classes. Fixes #25. 2015-06-10 13:53:31 -07:00
MickeyKay d8ea929b16 Undo 1px media query bumps per #24. 2015-06-09 15:37:39 -07:00
MickeyKay f43864af2d Bump all min-width media queries by 1px. Fixes #24. 2015-06-09 15:09:25 -07:00
MickeyKay ddef43a7a5 Fix whitespace. 2015-06-08 17:08:35 -07:00
MickeyKay 6460223c7f Add Font Awesome optimization styles for all icon outputs in stylesheet. Fixes #18. 2015-06-08 17:05:16 -07:00
MickeyKay 02feca7265 Merge branch 'dev' of https://github.com/MIGHTYminnow/trestle into dev 2015-06-08 17:00:17 -07:00
MickeyKay c8b594d747 Remove extract() calls from shortcodes. Fixes #16. 2015-06-08 17:00:11 -07:00
MickeyKay 48a83ba64a Remove extract() calls from shortcodes. 2015-06-08 16:58:15 -07:00
MickeyKay f87fc1e50e Merge branch 'dev' of https://github.com/MIGHTYminnow/trestle into dev 2015-06-08 16:44:25 -07:00
MickeyKay d369ef6853 Update TGM Plugin Class list. Fixes #23. 2015-06-08 16:43:53 -07:00
MickeyKay 2faea53445 Update TGM Plugin Activation class recommened/required plugins list. 2015-06-08 16:41:26 -07:00
MickeyKay df35ff6560 Update TGM Plugin Activation class to version 2.4.2 2015-06-08 16:31:28 -07:00
MickeyKay d8d22e6def Fix missing /lib folder. 2015-06-08 16:18:52 -07:00
MickeyKay 7a5acbbe9a Move TGM Plugin Activation class into /lib and correct include paths for TGM and utilities.php 2015-06-08 16:15:52 -07:00
MickeyKay 88a3261cfd Update utilities.php location, include, and header. 2015-06-08 16:08:48 -07:00
Mickey Kay 7e5e7b03dc Merge pull request #22 from BraadMartin/trestle-log
Add new utilities.php and a custom logging function
2015-06-08 16:06:16 -07:00
Braad e45223311a Add new utilities.php with a custom logging function 2015-06-02 14:05:59 -07:00
Mickey Kay ed20653fbb Merge pull request #19 from BraadMartin/move-css
Move CSS enqueue to a later hook to come after plugins
2015-06-01 11:38:25 -07:00
Braad 68aa66d549 Move CSS enqueue to a later hook to come after plugins 2015-06-01 11:29:37 -07:00
Braad 119078fc26 Add post-id-xx or page-id-xx class to TinyMCE previews 2015-05-27 14:38:05 -07:00
Braad 03de45dadd Switch to using var to avoid hitting the DOM 2015-05-22 12:41:35 -07:00
Braad 851f5ff19d Move CSS for toggle buttons to a better selector 2015-05-22 12:35:34 -07:00
Braad 54eb9ab02c Add option for mobile nav toggle style 2015-05-22 12:19:57 -07:00
Braad 4b85568883 Set font-smoothing property for better font rendering in the editor 2015-05-20 11:09:51 -07:00
Braad Martin 7ec25a1c8d Bump the version number to 2.0.1 2015-05-19 20:25:55 -07:00
Braad ea717c00ff Include Lato in the editor 2015-05-14 00:58:14 -07:00
Braad 7ffeb0c85f Fix margins on content in the editor 2015-05-14 00:47:36 -07:00
Braad 9d30ddbed5 Fix BFA paths
- Introduce setup_root_url() from latest version of the Better Font Awesome Library
- Switch to using new root_url var in place of plugins_url()
- This fixes issue #13
2015-05-14 00:32:22 -07:00
MickeyKay 94f2276f7e Remove test comment. 2015-05-12 13:57:21 -07:00
MickeyKay 7e994c85e8 Merge branch 'master' of https://github.com/MIGHTYminnow/trestle 2015-05-12 13:56:44 -07:00
MickeyKay 86e64b007c Test comment 2015-05-12 13:56:17 -07:00
Mickey Kay 00be1d2046 Merge pull request #12 from BraadMartin/master
Fix for jQuery UI datepicker CSS issue
2015-05-12 13:34:46 -07:00
Braad f24364e114 Fix for jQuery UI datepicker CSS issue 2015-05-12 12:38:03 -07:00
MickeyKay 65d0ea44a6 Update README.md. 2015-05-11 17:18:36 -07:00
MickeyKay d6115d0fae Update README.md. 2015-05-11 17:18:02 -07:00
MickeyKay 880e8c6f50 Bump version to 2.0.0! Woot! 2015-05-11 17:17:19 -07:00
MickeyKay dfe92cbbf3 Fix merge conflict. 2015-05-11 17:16:18 -07:00
MickeyKay 2b989d7424 Fix merge conflict. 2015-05-11 17:15:53 -07:00
MickeyKay 8a6adb7400 Fix whitespace. 2015-05-11 17:13:51 -07:00
MickeyKay 7e666d0bb9 Fixed merge conflicts from feature/trestle-settings. 2015-05-11 17:11:29 -07:00
MickeyKay 1bb6537455 Complete switch over to Trestle settings. 2015-05-11 17:09:22 -07:00
MickeyKay c7055b91ac Merge branch 'dev' of github.com:MickeyKay/trestle into dev 2015-04-30 16:12:35 -07:00
MickeyKay 67996d4e70 Fix whitespace. 2015-04-30 16:11:39 -07:00
Braad 7d1b5573a1 Fix control name for search_in_nav 2015-04-30 15:11:54 -07:00
Braad 3dae9f0443 Formatting 2015-04-30 14:52:22 -07:00
Braad c8667ce065 Better sanitization of options in the Customizer, other fixes 2015-04-30 14:49:46 -07:00
Braad 335594dbd2 Fix saving of default options 2015-04-30 13:00:21 -07:00
Braad d77a0a7440 First pass at switching to trestle-settings and some inline documentation cleanup 2015-04-30 12:24:30 -07:00
Mickey Kay 1b8e9a7e43 Merge pull request #8 from BraadMartin/dev
Fix bug in the [date] shortcode and improve formatting
2015-04-30 10:11:31 -07:00
Braad 39a1e729dd Fix bug in the date shortcode and minor formatting improvements to shortcodes.php 2015-04-29 14:06:10 -07:00
Braad 051fdfb0d1 Fix bug in the date shortcode and minor formatting improvements to shortcodes.php 2015-04-29 13:48:50 -07:00
Braad 6d34078f94 Syncing with dev branch 2015-04-21 12:05:22 -07:00
MickeyKay f8bd7fc700 Add equal height columns to plugin list. 2015-04-03 09:39:36 -07:00
MickeyKay 0b06acc857 Switch recommended FancyBox plugin. 2015-03-31 12:24:48 -07:00
MickeyKay 6abe714a1e Merge dev-test branch. 2015-03-23 15:49:05 -07:00
MickeyKay eac35762fe Update styles to include better input styleing. 2015-02-19 14:52:32 -08:00
Mickey Kay b0506281e8 Update README.md 2014-12-18 10:02:48 -08:00
Mickey Kay eae7e220d9 Update README.md 2014-12-18 09:36:55 -08:00
Mickey Kay 1ebd6ff5df Update README.md 2014-12-18 09:36:00 -08:00
40 changed files with 8704 additions and 6055 deletions
+3
View File
@@ -0,0 +1,3 @@
node_modules/
svn/
vendor/
+101
View File
@@ -0,0 +1,101 @@
/*jslint node: true */
"use strict";
module.exports = function( grunt ) {
// Grab package as variable for later use/
var pkg = grunt.file.readJSON( 'package.json' );
// Load all tasks.
require('load-grunt-tasks')(grunt, {scope: 'devDependencies'});
// Project configuration
grunt.initConfig( {
pkg: pkg,
devUpdate: {
main: {
options: {
updateType: 'prompt',
packages: {
devDependencies: true
},
}
}
},
prompt: {
version: {
options: {
questions: [
{
config: 'newVersion',
type: 'input',
message: 'What specific version would you like',
default: '<%= pkg.version %>'
}
]
}
}
},
replace: {
package: {
src: ['package.json'],
overwrite: true,
replacements: [
{
from: /("version":\s*).*,\n/g,
to: '$1"<%= newVersion %>",\n'
}
]
},
style: {
src: ['style.css'],
overwrite: true,
replacements: [
{
from: /(Version:\s*).*/g,
to: '$1<%= newVersion %>'
}
]
},
functions: {
src: ['functions.php'],
overwrite: true,
replacements: [
{
from: /(define\( \'TRESTLE_THEME_VERSION\'\,\s*\').*\'/g,
to: '$1<%= newVersion %>\''
}
]
}
},
makepot: {
target: {
options: {
domainPath: '/languages/', // Where to save the POT file.
potFilename: 'trestle.pot', // Name of the POT file.
type: 'wp-theme' // Type of project (wp-plugin or wp-theme).
}
}
},
wpcss: {
stylesheet: {
options: {
commentSpacing: true, // Whether to clean up newlines around comments between CSS rules.
config: 'default' // Which CSSComb config to use for sorting properties.
},
files: {
'style.css': ['style.css']
}
},
}
} );
grunt.registerTask( 'build', [
'prompt',
'replace',
'makepot',
'wpcss',
] );
grunt.util.linefeed = '\n';
};
+3 -20
View File
@@ -1,5 +1,5 @@
Trestle
=======
---------------------
### A handy boilerplate child theme for serious Genesis developers.
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/MickeyKay/trestle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
@@ -25,22 +25,5 @@ Here are some of Trestle's many features, check out the [Trestle Demo](http://de
* And more!
#### Settings & Usage
* The Trestle control panel is located at **Genesis &rarr; Theme Settings**, in the **Trestle** metabox.
* Examples and usage can all be viewed on the [Trestle Demo](http://demo.mightyminnow.com/theme/trestle/)
#### To Do
* Add ability to click off of mobile menu/search to hide menu/search.
* Rework menu CSS for simplicity (general / primary / secondary / header)
* Convert non-theme functionality to separate Genesis-dependant plugin
* Add in Grunt support for:
* Sass
* Auto-ordering of CSS (CSSComb)
* Translation
* Check other themes for other ideas. . .
* Switch to customizer for theme options instead of Genesis panel (pros? cons?)
* Remove custom background CSS that doesn't make sense (different max-widths, etc)
* Weird extra icons on accordions on demo site.
* Add checkbox to control author box (along with post info/meta) output (see ES: esw-custom.php)
* Mobile menu button setting - either:
* Remove (currently controlled from JS), or
* Pass icon/text as params to jQuery
* All Trestle settings can be accessed via the **Customizer**.
* Examples and usage can all be viewed on the [Trestle Demo](http://demo.mightyminnow.com/theme/trestle/)
+336
View File
@@ -0,0 +1,336 @@
{
"exclude": [
".git/**",
"node_modules/**"
],
"verbose": true,
"always-semicolon": true,
"block-indent": "\t",
"color-case": "lower",
"color-shorthand": true,
"element-case": "lower",
"eof-newline": true,
"leading-zero": true,
"quotes": "double",
"remove-empty-rulesets": true,
"rule-delimiter": "\n\n",
"sort-order-fallback": "abc",
"space-after-colon": " ",
"space-after-combinator": " ",
"space-after-opening-brace": "\n",
"space-after-selector-delimiter": "\n",
"space-before-closing-brace": "\n",
"space-before-colon": "",
"space-before-combinator": " ",
"space-before-opening-brace": " ",
"space-before-selector-delimiter": "",
"space-between-declarations": "\n",
"strip-spaces": false,
"unitless-zero": true,
"sort-order": [
[
"$variable",
"$include",
"$import"
],
[
"display",
"visibility",
"float",
"clear",
"overflow",
"overflow-x",
"overflow-y",
"-ms-overflow-x",
"-ms-overflow-y",
"clip",
"zoom",
"flex-direction",
"flex-order",
"flex-pack",
"flex-align",
"position",
"z-index",
"top",
"right",
"bottom",
"left",
"-webkit-box-sizing",
"-moz-box-sizing",
"box-sizing",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"border",
"border-width",
"border-style",
"border-color",
"border-top",
"border-top-width",
"border-top-style",
"border-top-color",
"border-right",
"border-right-width",
"border-right-style",
"border-right-color",
"border-bottom",
"border-bottom-width",
"border-bottom-style",
"border-bottom-color",
"border-left",
"border-left-width",
"border-left-style",
"border-left-color",
"-webkit-border-radius",
"-moz-border-radius",
"border-radius",
"-webkit-border-top-left-radius",
"-moz-border-radius-topleft",
"border-top-left-radius",
"-webkit-border-top-right-radius",
"-moz-border-radius-topright",
"border-top-right-radius",
"-webkit-border-bottom-right-radius",
"-moz-border-radius-bottomright",
"border-bottom-right-radius",
"-webkit-border-bottom-left-radius",
"-moz-border-radius-bottomleft",
"border-bottom-left-radius",
"-webkit-border-image",
"-moz-border-image",
"-o-border-image",
"border-image",
"-webkit-border-image-source",
"-moz-border-image-source",
"-o-border-image-source",
"border-image-source",
"-webkit-border-image-slice",
"-moz-border-image-slice",
"-o-border-image-slice",
"border-image-slice",
"-webkit-border-image-width",
"-moz-border-image-width",
"-o-border-image-width",
"border-image-width",
"-webkit-border-image-outset",
"-moz-border-image-outset",
"-o-border-image-outset",
"border-image-outset",
"-webkit-border-image-repeat",
"-moz-border-image-repeat",
"-o-border-image-repeat",
"border-image-repeat",
"table-layout",
"empty-cells",
"caption-side",
"border-spacing",
"border-collapse",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"opacity",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
"-ms-interpolation-mode",
"color",
"background",
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
"background-color",
"background-image",
"background-repeat",
"background-attachment",
"background-position",
"background-position-x",
"-ms-background-position-x",
"background-position-y",
"-ms-background-position-y",
"-webkit-background-clip",
"-moz-background-clip",
"background-clip",
"background-origin",
"-webkit-background-size",
"-moz-background-size",
"-o-background-size",
"background-size",
"box-decoration-break",
"-webkit-box-shadow",
"-moz-box-shadow",
"box-shadow",
"filter:progid:DXImageTransform.Microsoft.gradient",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
"text-shadow",
"font",
"font-family",
"src",
"font-size",
"font-weight",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-effect",
"font-emphasize",
"font-emphasize-position",
"font-emphasize-style",
"-webkit-font-smoothing",
"-moz-osx-font-smoothing",
"font-smooth",
"line-height",
"text-align",
"-webkit-text-align-last",
"-moz-text-align-last",
"-ms-text-align-last",
"text-align-last",
"vertical-align",
"white-space",
"text-decoration",
"text-emphasis",
"text-emphasis-color",
"text-emphasis-style",
"text-emphasis-position",
"text-indent",
"-ms-text-justify",
"text-justify",
"letter-spacing",
"word-spacing",
"-ms-writing-mode",
"text-outline",
"text-transform",
"text-wrap",
"text-overflow",
"-ms-text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"-ms-word-wrap",
"word-wrap",
"word-break",
"-ms-word-break",
"-moz-tab-size",
"-o-tab-size",
"tab-size",
"-webkit-hyphens",
"-moz-hyphens",
"hyphens",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"content",
"quotes",
"counter-reset",
"counter-increment",
"resize",
"cursor",
"-webkit-user-select",
"-moz-user-select",
"-ms-user-select",
"user-select",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"-webkit-transition",
"-moz-transition",
"-ms-transition",
"-o-transition",
"transition",
"-webkit-transition-delay",
"-moz-transition-delay",
"-ms-transition-delay",
"-o-transition-delay",
"transition-delay",
"-webkit-transition-timing-function",
"-moz-transition-timing-function",
"-ms-transition-timing-function",
"-o-transition-timing-function",
"transition-timing-function",
"-webkit-transition-duration",
"-moz-transition-duration",
"-ms-transition-duration",
"-o-transition-duration",
"transition-duration",
"-webkit-transition-property",
"-moz-transition-property",
"-ms-transition-property",
"-o-transition-property",
"transition-property",
"-webkit-transform",
"-moz-transform",
"-ms-transform",
"-o-transform",
"transform",
"-webkit-transform-origin",
"-moz-transform-origin",
"-ms-transform-origin",
"-o-transform-origin",
"transform-origin",
"-webkit-animation",
"-moz-animation",
"-ms-animation",
"-o-animation",
"animation",
"-webkit-animation-name",
"-moz-animation-name",
"-ms-animation-name",
"-o-animation-name",
"animation-name",
"-webkit-animation-duration",
"-moz-animation-duration",
"-ms-animation-duration",
"-o-animation-duration",
"animation-duration",
"-webkit-animation-play-state",
"-moz-animation-play-state",
"-ms-animation-play-state",
"-o-animation-play-state",
"animation-play-state",
"-webkit-animation-timing-function",
"-moz-animation-timing-function",
"-ms-animation-timing-function",
"-o-animation-timing-function",
"animation-timing-function",
"-webkit-animation-delay",
"-moz-animation-delay",
"-ms-animation-delay",
"-o-animation-delay",
"animation-delay",
"-webkit-animation-iteration-count",
"-moz-animation-iteration-count",
"-ms-animation-iteration-count",
"-o-animation-iteration-count",
"animation-iteration-count",
"-webkit-animation-direction",
"-moz-animation-direction",
"-ms-animation-direction",
"-o-animation-direction",
"animation-direction",
"-webkit-backface-visibility",
"-moz-backface-visibility",
"backface-visibility",
"text-rendering",
"pointer-events"
]
]
}
+21 -26
View File
@@ -1,7 +1,7 @@
<?php
/**
* Theme functionality
* Theme functionality.
*
* @since 1.0.0
*
@@ -12,31 +12,31 @@
* Required Files
===========================================*/
// Theme functions
// Theme functions.
require_once dirname( __FILE__ ) . '/includes/functions/theme-functions.php';
// Admin functionality
// Admin functionality.
require_once dirname( __FILE__ ) . '/includes/admin/admin.php';
// Customizer controls
// Customizer controls.
require_once dirname( __FILE__ ) . '/includes/admin/customizer.php';
// Shortcodes
// Shortcodes.
require_once dirname( __FILE__ ) . '/includes/shortcodes/shortcodes.php';
// Additional sidebars
// Additional sidebars.
require_once dirname( __FILE__ ) . '/includes/widget-areas/widget-areas.php';
// Plugin activation class
require_once dirname( __FILE__ ) . '/includes/classes/class-tgm-plugin-activation.php';
// Plugin activation class.
require_once dirname( __FILE__ ) . '/lib/class-tgm-plugin-activation.php';
// Better Font Awesome Library
require_once dirname( __FILE__ ) . '/lib/better-font-awesome-library/better-font-awesome-library.php';
// Dev utility functions.
require_once dirname( __FILE__ ) . '/includes/utilities/utilities.php';
add_action( 'genesis_setup' ,'trestle_theme_setup', 15 );
add_action( 'genesis_setup', 'trestle_theme_setup', 15 );
/**
* Initialize Trestle
* Initialize Trestle.
*
* @since 1.0.0
*/
@@ -46,21 +46,16 @@ function trestle_theme_setup() {
* Theme Setup
===========================================*/
// Child theme definitions (do not remove)
define( 'CHILD_THEME_NAME', 'Trestle' );
define( 'CHILD_THEME_URL', 'http://demo.mightyminnow.com/theme/trestle/' );
define( 'CHILD_THEME_VERSION', '1.2.0' );
// Child theme definitions (do not remove).
define( 'TRESTLE_THEME_NAME', 'Trestle' );
define( 'TRESTLE_THEME_URL', 'http://demo.mightyminnow.com/theme/trestle/' );
define( 'TRESTLE_THEME_VERSION', '2.2.0' );
define( 'TRESTLE_SETTINGS_FIELD', 'trestle-settings' );
// Load theme text domain
// Setup default theme settings.
trestle_settings_defaults();
// Load theme text domain.
load_theme_textdomain( 'trestle', get_stylesheet_directory() . '/languages' );
// Add HTML5 markup structure
add_theme_support( 'html5' );
// Add viewport meta tag for mobile browsers
add_theme_support( 'genesis-responsive-viewport' );
// Add support for footer widgets if specified in Trestle settings
$trestle_footer_widgets_number = esc_attr( genesis_get_option( 'trestle_footer_widgets_number' ) );
add_theme_support( 'genesis-footer-widgets', $trestle_footer_widgets_number );
}
Regular → Executable
+108 -76
View File
@@ -7,6 +7,77 @@
* @package Trestle
*/
/**
* Set up Trestle default settings.
*
* @since 2.0.0
*
* @return array Genesis settings updated to include Trestle defaults.
*/
function trestle_settings_defaults() {
// Trestle default key/value pairs.
$trestle_defaults = array(
'layout' => 'solid',
'logo_id' => '',
'logo_id_mobile' => '',
'favicon_url' => '',
'nav_primary_location' => 'full',
'mobile_nav_toggle' => 'small-icon',
'search_in_nav' => '',
'read_more_text' => __( 'Read&nbsp;More&nbsp;&raquo;', 'trestle' ),
'revisions_number' => 3,
'footer_widgets_number' => 3,
'external_link_icons' => 0,
'email_link_icons' => 0,
'pdf_link_icons' => 0,
'doc_link_icons' => 0,
);
// Populate Trestle settings with default values if they don't yet exist.
$options = get_option( TRESTLE_SETTINGS_FIELD );
// Set up an empty array if we're running for the first time.
if ( ! $options ) {
$options = array();
}
// Bail early if the settings match the defaults.
if ( $options === $trestle_defaults ) {
return;
}
// Populate any defaults that are missing.
foreach ( $trestle_defaults as $k => $v ) {
// Check each key to only add the missing settings.
if ( ! array_key_exists( $k, $options ) ) {
$options[$k] = $v;
}
}
// Update options with defaults.
update_option( TRESTLE_SETTINGS_FIELD, $options );
}
/**
* Wrapper function to get Trestle options.
*
* @since 2.0.0
* @uses genesis_get_option()
*
* @return mixed Trestle option value.
*/
function trestle_get_option( $key, $setting = null, $use_cache = true ) {
// Set default to TRESTLE_SETTINGS_FIELD.
$setting = $setting ? $setting : TRESTLE_SETTINGS_FIELD;
return genesis_get_option( $key, $setting, false );
}
add_action( 'admin_enqueue_scripts', 'trestle_admin_actions' );
/**
* Loads admin scripts and styles.
@@ -15,50 +86,40 @@ add_action( 'admin_enqueue_scripts', 'trestle_admin_actions' );
*/
function trestle_admin_actions() {
// Include the main stylesheet in the editor
// Google fonts.
$font_url = str_replace( ',', '%2C', '//fonts.googleapis.com/css?family=Lato:300,400,700' );
add_editor_style( $font_url );
// Include the main stylesheet in the editor.
add_editor_style( get_stylesheet_uri() );
}
add_filter( 'genesis_theme_settings_defaults', 'trestle_custom_defaults' );
add_filter( 'tiny_mce_before_init', 'trestle_tiny_mce_before_init' );
/**
* Sets up Trestle default settings.
* Add custom classes to the body of TinyMCE previews.
*
* @since 1.0.0
*
* @param array $defaults Genesis default settings.
* @return array Genesis settings updated to include Trestle defaults.
* @since 2.2.0
*/
function trestle_custom_defaults( $defaults ) {
function trestle_tiny_mce_before_init( $init_array ) {
// Trestle default key/value pairs
$trestle_defaults = array(
'trestle_layout' => 'solid',
'trestle_logo_url' => '',
'trestle_logo_url_mobile' => '',
'trestle_favicon_url' => '',
'trestle_nav_primary_location' => 'full',
'trestle_read_more_text' => __( 'Read&nbsp;More&nbsp;&raquo;', 'trestle' ),
'trestle_revisions_number' => 3,
'trestle_footer_widgets_number' => 3,
);
global $post;
// Populate Trestle settings with default values if they don't yet exist
$options = get_option( GENESIS_SETTINGS_FIELD );
$screen = get_current_screen();
foreach ( $trestle_defaults as $k => $v ) {
// If we're on an edit screen, add an appropriate 'post-id-XX' or 'page-id-XX'.
if ( 'edit' == $screen->parent_base ) {
// Add defaults to Genesis default settings array
$defaults[$k] = $v;
// Custom post types always use 'post', so we only need to handle pages.
$post_type = ( 'page' == $post->post_type ) ? 'page' : 'post';
// Update actual options if they don't yet exist
if ( $options && ! array_key_exists( $k, $options ) )
$options[$k] = $v;
$init_array['body_class'] .= sprintf( ' %s-id-%s',
$post_type,
$post->ID
);
}
// Update options with defaults
update_option( GENESIS_SETTINGS_FIELD, $options );
return $defaults;
return $init_array;
}
add_action( 'tgmpa_register', 'trestle_register_required_plugins' );
@@ -96,8 +157,14 @@ function trestle_register_required_plugins() {
),
array(
'name' => 'Events Manager',
'slug' => 'events-manager',
'name' => 'Easy FancyBox',
'slug' => 'easy-fancybox',
'required' => false,
),
array(
'name' => 'Equal Height Columns',
'slug' => 'equal-height-columns',
'required' => false,
),
@@ -107,24 +174,6 @@ function trestle_register_required_plugins() {
'required' => false,
),
array(
'name' => 'Facebook Open Graph Meta Tags for WordPress',
'slug' => 'wonderm00ns-simple-facebook-open-graph-tags',
'required' => false,
),
array(
'name' => 'FancyBox for WordPress',
'slug' => 'fancybox-for-wordpress',
'required' => false,
),
array(
'name' => 'Genesis Featured Widget Amplified',
'slug' => 'genesis-featured-widget-amplified',
'required' => false,
),
array(
'name' => 'Genesis Simple Edits',
'slug' => 'genesis-simple-edits',
@@ -137,30 +186,12 @@ function trestle_register_required_plugins() {
'required' => false,
),
array(
'name' => 'Jetpack by WordPress.com',
'slug' => 'jetpack',
'required' => false,
),
array(
'name' => 'MapPress Easy Google Maps',
'slug' => 'mappress-google-maps-for-wordpress',
'required' => false,
),
array(
'name' => 'My Page Order',
'slug' => 'my-page-order',
'required' => false,
),
array(
'name' => 'NextGen Gallery',
'slug' => 'nextgen-gallery',
'required' => false,
),
array(
'name' => 'Post Thumbnail Editor',
'slug' => 'post-thumbnail-editor',
@@ -180,8 +211,8 @@ function trestle_register_required_plugins() {
),
array(
'name' => 'Social Media Widget',
'slug' => 'social-media-widget',
'name' => 'RICG Responsive Images',
'slug' => 'ricg-responsive-images',
'required' => false,
),
@@ -210,14 +241,15 @@ function trestle_register_required_plugins() {
),
array(
'name' => 'WP Hotkeys',
'slug' => 'wp-hotkeys',
'name' => 'WordPress SEO by Yoast',
'slug' => 'wordpress-seo',
'required' => false,
),
);
// Change this to your theme text domain, used for internationalising strings
$theme_text_domain = 'mightyminnow';
// Change this to your theme text domain, used for internationalising strings.
$theme_text_domain = 'trestle';
/**
* Array of configuration settings. Amend each line as needed.
@@ -258,4 +290,4 @@ function trestle_register_required_plugins() {
);
tgmpa( $plugins, $config );
}
}
-147
View File
@@ -1,147 +0,0 @@
/**
* JavaScript for the Customizer Preview
*
* @since 1.0.0
*/
( function( $ ) {
// Layout
wp.customize( 'genesis-settings[trestle_layout]', function( value ) {
value.bind( function( value ) {
var $body = $( 'body' );
switch ( value ) {
case 'solid':
$body.removeClass( 'bubble' );
break;
case 'bubble':
$body.addClass( 'bubble' );
break;
}
});
});
// Custom logo
wp.customize( 'genesis-settings[trestle_logo_url]', function( value ) {
value.bind( function( url ) {
var $body = $( 'body' );
if ( 0 === $.trim( url ).length ) {
$body.removeClass( 'has-logo' );
$( '.site-title a.image-link' ).remove();
} else {
$body.addClass( 'has-logo' );
$( '.site-title a.image-link' ).remove();
$( '.site-title' ).append( '<a href="/" class="image-link"><img class="logo logo-full show" src="' + url + '" /></a>' );
}
});
});
// Favicon
wp.customize( 'genesis-settings[trestle_favicon_url]', function( value ) {
value.bind( function( url ) {
var $faviconElem = $( 'link[rel="Shortcut Icon"]' );
$faviconElem.attr( 'href', url );
});
});
// Primary Nav Location
wp.customize( 'genesis-settings[trestle_nav_primary_location]', function( value ) {
value.bind( function( value ) {
var $body = $( 'body' );
var $nav = $( '.nav-primary' );
switch ( value ) {
case 'full':
$body.removeClass( 'nav-primary-location-header' )
.addClass( 'nav-primary-location-full' );
$nav.remove().insertAfter( '.site-header' );
break;
case 'header':
$body.removeClass( 'nav-primary-location-full' )
.addClass( 'nav-primary-location-header' );
$nav.remove().appendTo( '.site-header .wrap' );
break;
}
});
});
// Custom Read More Link Text
wp.customize( 'genesis-settings[trestle_read_more_text]', function( value ) {
value.bind( function( value ) {
$( 'a.more-link' ).html( value );
});
});
// External Links
wp.customize( 'genesis-settings[trestle_external_link_icons]', function( value ) {
value.bind( function( value ) {
var $body = $( 'body' );
if ( value ) {
$body.addClass( 'external-link-icons' );
} else {
$body.removeClass( 'external-link-icons' );
}
});
});
// Email Links
wp.customize( 'genesis-settings[trestle_email_link_icons]', function( value ) {
value.bind( function( value ) {
var $body = $( 'body' );
if ( value ) {
$body.addClass( 'email-link-icons' );
} else {
$body.removeClass( 'email-link-icons' );
}
});
});
// PDF Links
wp.customize( 'genesis-settings[trestle_pdf_link_icons]', function( value ) {
value.bind( function( value ) {
var $body = $( 'body' );
if ( value ) {
$body.addClass( 'pdf-link-icons' );
} else {
$body.removeClass( 'pdf-link-icons' );
}
});
});
// Doc Links
wp.customize( 'genesis-settings[trestle_doc_link_icons]', function( value ) {
value.bind( function( value ) {
var $body = $( 'body' );
if ( value ) {
$body.addClass( 'doc-link-icons' );
} else {
$body.removeClass( 'doc-link-icons' );
}
});
});
})( jQuery );
Regular → Executable
+263 -265
View File
@@ -1,365 +1,363 @@
<?php
/**
* Trestle Customizer Controls
* Trestle Customizer Controls.
*
* @since 1.0.0
* @since 2.0.0
*
* @package Trestle
*/
add_action( 'customize_preview_init', 'trestle_customizer_preview_js' );
/**
* Enqueue scripts for the site preview iframe on the customizer screen
*
* @since 1.0.0
*/
function trestle_customizer_preview_js() {
wp_enqueue_script(
'trestle_customizer',
get_stylesheet_directory_uri() . '/includes/admin/customizer.js',
array( 'jquery', 'customize-preview' ), // Dependencies
null, // Version
true // Load in Footer
);
}
add_action( 'customize_register', 'trestle_customizer_controls' );
/**
* Register Trestle's controls
* Register Trestle's controls.
*
* @since 1.0.0
* @since 2.0.0
*
* @param $wp_customize The Customizer Object
* @param $wp_customize The Customizer Object.
*/
function trestle_customizer_controls( $wp_customize ) {
/**
* Trestle Settings Section
* Trestle Settings Section.
*/
// Add the section
// Add the section.
$wp_customize->add_section(
'trestle_settings_section',
array(
'title' => __( 'Trestle Settings', 'trestle' ),
'priority' => 160,
'title' => __( 'Trestle Settings', 'trestle' ),
'priority' => 160,
)
);
// Layout
// Layout.
$wp_customize->add_setting(
'genesis-settings[trestle_layout]',
'trestle-settings[layout]',
array(
'default' => '',
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'default' => trestle_get_option( 'layout' ),
'type' => 'option',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'trestle_layout_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_layout]',
'label' => __( 'Layout', 'trestle' ),
'type' => 'radio',
'choices' => array(
'bubble' => __( 'Bubble', 'trestle' ),
'solid' => __( 'Solid', 'trestle' ),
)
)
);
// Upload a logo
$wp_customize->add_setting(
'genesis-settings[trestle_logo_url]',
array(
'default' => genesis_get_option( 'trestle_logo_url' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'trestle_logo_control',
array(
'label' => __( 'Upload a logo', 'trestle' ),
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_logo_url]',
)
)
);
// Upload a mobile logo
$wp_customize->add_setting(
'genesis-settings[trestle_logo_url_mobile]',
array(
'default' => genesis_get_option( 'trestle_logo_url_mobile' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'trestle_mobile_logo_control',
array(
'label' => __( 'Upload a mobile logo', 'trestle' ),
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_logo_url_mobile]',
)
)
);
// Upload a mobile logo
$wp_customize->add_setting(
'genesis-settings[trestle_favicon_url]',
array(
'default' => genesis_get_option( 'trestle_favicon_url' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'trestle_favicon_control',
array(
'label' => __( 'Upload a favicon', 'trestle' ),
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_favicon_url]',
)
)
);
// Primary nav style
$wp_customize->add_setting(
'genesis-settings[trestle_nav_primary_location]',
'trestle_layout_control',
array(
'default' => genesis_get_option( 'trestle_nav_primary_location' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[layout]',
'label' => __( 'Layout', 'trestle' ),
'type' => 'radio',
'choices' => array(
'bubble' => __( 'Bubble', 'trestle' ),
'solid' => __( 'Solid', 'trestle' ),
)
)
);
// Upload a logo.
$wp_customize->add_setting(
'trestle-settings[logo_id]',
array(
'default' => trestle_get_option( 'logo_id' ),
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'absint',
)
);
$wp_customize->add_control(
'trestle_nav_primary_location_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_nav_primary_location]',
'label' => __( 'Menu style', 'trestle' ),
'type' => 'select',
'choices' => array(
'full' => __( 'Full Width', 'trestle' ),
'header' => __( 'Header Right', 'trestle' ),
)
)
);
new WP_Customize_Media_Control(
$wp_customize,
'trestle_logo_control',
array(
'label' => __( 'Upload a logo', 'trestle' ),
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[logo_id]',
'mime_type' => 'image',
)
)
);
// Primary nav extras
$wp_customize->add_setting(
'genesis-settings[trestle_custom_nav_extras_text]',
// Upload a mobile logo.
$wp_customize->add_setting(
'trestle-settings[logo_id_mobile]',
array(
'default' => genesis_get_option( 'trestle_custom_nav_extras_text' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'default' => trestle_get_option( 'logo_id_mobile' ),
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'absint',
)
);
$wp_customize->add_control(
'trestle_custom_nav_extras_text_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_custom_nav_extras_text]',
'label' => __( 'Add search to mobile navigation', 'trestle' ),
'type' => 'checkbox',
)
);
new WP_Customize_Media_Control(
$wp_customize,
'trestle_mobile_logo_control',
array(
'label' => __( 'Upload a mobile logo', 'trestle' ),
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[logo_id_mobile]',
'mime_type' => 'image',
)
)
);
// Blog post custom read more link text
$wp_customize->add_setting(
'genesis-settings[trestle_read_more_text]',
// Upload a mobile logo.
$wp_customize->add_setting(
'trestle-settings[favicon_url]',
array(
'default' => genesis_get_option( 'trestle_read_more_text' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'wp_kses_post',
'default' => trestle_get_option( 'favicon_url' ),
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
'trestle_read_more_text_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_read_more_text]',
'label' => __( 'Custom read more link text', 'trestle' ),
)
);
new WP_Customize_Image_Control(
$wp_customize,
'trestle_favicon_control',
array(
'label' => __( 'Upload a favicon', 'trestle' ),
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[favicon_url]',
)
)
);
// Post revisions number
$wp_customize->add_setting(
'genesis-settings[trestle_revisions_number]',
// Primary nav style.
$wp_customize->add_setting(
'trestle-settings[nav_primary_location]',
array(
'default' => genesis_get_option( 'trestle_revisions_number' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'default' => trestle_get_option( 'nav_primary_location' ),
'type' => 'option',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'trestle_revisions_number_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_revisions_number]',
'label' => __( 'Number of post revisions', 'trestle' ),
'type' => 'select',
'choices' => array(
'-1' => __( 'Unlimited', 'trestle' ),
'0' => '0',
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
'7' => '7',
'8' => '8',
'9' => '9',
'10' => '10',
)
)
);
// Footer Widget Areas
$wp_customize->add_setting(
'genesis-settings[trestle_footer_widgets_number]',
'trestle_nav_primary_location_control',
array(
'default' => genesis_get_option( 'trestle_footer_widgets_number' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[nav_primary_location]',
'label' => __( 'Menu style', 'trestle' ),
'type' => 'select',
'choices' => array(
'full' => __( 'Full Width', 'trestle' ),
'header' => __( 'Header Right', 'trestle' ),
)
)
);
// Mobile nav toggle.
$wp_customize->add_setting(
'trestle-settings[mobile_nav_toggle]',
array(
'default' => trestle_get_option( 'mobile_nav_toggle' ),
'type' => 'option',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'trestle_footer_widgets_number_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_footer_widgets_number]',
'label' => __( 'Number of footer widgets', 'trestle' ),
'type' => 'select',
'choices' => array(
'0' => '0',
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
)
)
);
// Add a label for the link icons
$wp_customize->add_setting(
'genesis-settings[trestle_link_icons_title]',
'trestle_mobile_nav_toggle_control',
array(
'default' => '',
'type' => 'option',
'capability' => 'edit_theme_options',
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[mobile_nav_toggle]',
'label' => __( 'Mobile Menu Toggle', 'trestle' ),
'type' => 'select',
'choices' => array(
'small-icon' => __( 'Small Icon', 'trestle' ),
'big-button' => __( 'Big Button', 'trestle' ),
)
)
);
// Primary nav extras.
$wp_customize->add_setting(
'trestle-settings[search_in_nav]',
array(
'default' => trestle_get_option( 'search_in_nav' ),
'type' => 'option',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'trestle_search_in_nav_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[search_in_nav]',
'label' => __( 'Add search to mobile navigation', 'trestle' ),
'type' => 'checkbox',
)
);
// Blog post custom read more link text.
$wp_customize->add_setting(
'trestle-settings[read_more_text]',
array(
'default' => trestle_get_option( 'read_more_text' ),
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'wp_kses_post',
)
);
$wp_customize->add_control(
'trestle_read_more_text_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[read_more_text]',
'label' => __( 'Custom read more link text', 'trestle' ),
)
);
// Post revisions number.
$wp_customize->add_setting(
'trestle-settings[revisions_number]',
array(
'default' => trestle_get_option( 'revisions_number' ),
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'absint',
)
);
$wp_customize->add_control(
'trestle_revisions_number_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[revisions_number]',
'label' => __( 'Number of post revisions', 'trestle' ),
'type' => 'select',
'choices' => array(
'-1' => __( 'Unlimited', 'trestle' ),
'0' => '0',
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
'7' => '7',
'8' => '8',
'9' => '9',
'10' => '10',
)
)
);
// Footer Widget Areas.
$wp_customize->add_setting(
'trestle-settings[footer_widgets_number]',
array(
'default' => trestle_get_option( 'footer_widgets_number' ),
'type' => 'option',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'trestle_footer_widgets_number_control',
array(
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[footer_widgets_number]',
'label' => __( 'Number of footer widgets', 'trestle' ),
'type' => 'select',
'choices' => array(
'0' => '0',
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
)
)
);
// Add a label for the link icons.
$wp_customize->add_setting(
'trestle-settings[link_icons_title]',
array(
'default' => '',
'type' => 'option',
)
);
$wp_customize->add_control(
'trestle_link_icons_title',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_link_icons_title]',
'label' => __( 'Icon links', 'trestle' ),
'type' => 'hidden',
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[link_icons_title]',
'label' => __( 'Icon links', 'trestle' ),
'type' => 'hidden',
)
);
// External Link Icons
// External Link Icons.
$wp_customize->add_setting(
'genesis-settings[trestle_external_link_icons]',
'trestle-settings[external_link_icons]',
array(
'default' => genesis_get_option( 'trestle_external_link_icons' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'default' => trestle_get_option( 'external_link_icons' ),
'type' => 'option',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'trestle_external_link_icons',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_external_link_icons]',
'label' => __( 'Add icons to external links', 'trestle' ),
'type' => 'checkbox',
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[external_link_icons]',
'label' => __( 'Add icons to external links', 'trestle' ),
'type' => 'checkbox',
)
);
// E-mail Link Icons
// E-mail Link Icons.
$wp_customize->add_setting(
'genesis-settings[trestle_email_link_icons]',
'trestle-settings[email_link_icons]',
array(
'default' => genesis_get_option( 'trestle_email_link_icons' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'default' => trestle_get_option( 'email_link_icons' ),
'type' => 'option',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'trestle_email_link_icons',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_email_link_icons]',
'label' => __( 'Add icons to email links', 'trestle' ),
'type' => 'checkbox',
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[email_link_icons]',
'label' => __( 'Add icons to email links', 'trestle' ),
'type' => 'checkbox',
)
);
// PDF Link Icons
// PDF Link Icons.
$wp_customize->add_setting(
'genesis-settings[trestle_pdf_link_icons]',
'trestle-settings[pdf_link_icons]',
array(
'default' => genesis_get_option( 'trestle_pdf_link_icons' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'default' => trestle_get_option( 'pdf_link_icons' ),
'type' => 'option',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'trestle_pdf_link_icons',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_pdf_link_icons]',
'label' => __( 'Add icons to .pdf links', 'trestle' ),
'type' => 'checkbox',
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[pdf_link_icons]',
'label' => __( 'Add icons to .pdf links', 'trestle' ),
'type' => 'checkbox',
)
);
// Doc Link Icons
// Doc Link Icons.
$wp_customize->add_setting(
'genesis-settings[trestle_doc_link_icons]',
'trestle-settings[doc_link_icons]',
array(
'default' => genesis_get_option( 'trestle_doc_link_icons' ),
'type' => 'option',
'transport' => 'postMessage',
'capability' => 'edit_theme_options',
'default' => trestle_get_option( 'doc_link_icons' ),
'type' => 'option',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'trestle_doc_link_icons',
array(
'section' => 'trestle_settings_section',
'settings' => 'genesis-settings[trestle_doc_link_icons]',
'label' => __( 'Add icons to .doc links', 'trestle' ),
'type' => 'checkbox',
'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[doc_link_icons]',
'label' => __( 'Add icons to .doc links', 'trestle' ),
'type' => 'checkbox',
)
);
File diff suppressed because it is too large Load Diff
+214 -120
View File
@@ -9,6 +9,40 @@
* @package Trestle
*/
/*===========================================
* Theme Setup
===========================================*/
add_action( 'after_setup_theme', 'trestle_add_theme_support' );
/**
* Initialize Trestle defaults and theme options.
*
* @since 2.0.0
*/
function trestle_add_theme_support() {
// Add HTML5 markup structure.
add_theme_support( 'html5' );
// Add viewport meta tag for mobile browsers.
add_theme_support( 'genesis-responsive-viewport' );
// Add support for footer widgets if specified in Trestle settings.
add_theme_support( 'genesis-footer-widgets', trestle_get_option( 'footer_widgets_number' ) );
}
add_action( 'after_setup_theme', 'trestle_remove_genesis_css_enqueue' );
/**
* Stop Genesis from enqueuing the child theme stylesheet in the usual way.
*
* @since 2.1.0
*/
function trestle_remove_genesis_css_enqueue() {
remove_action( 'genesis_meta', 'genesis_load_stylesheet' );
}
/*===========================================
* 3rd Party Libraries
===========================================*/
@@ -21,8 +55,11 @@ add_action( 'init', 'trestle_load_bfa' );
*/
function trestle_load_bfa() {
// Set the library initialization args
$args = array(
// Better Font Awesome Library
require_once trailingslashit( get_stylesheet_directory() ) . 'lib/better-font-awesome-library/better-font-awesome-library.php';
// Set the library initialization args.
$args = array(
'version' => 'latest',
'minified' => true,
'remove_existing_fa' => false,
@@ -30,10 +67,10 @@ function trestle_load_bfa() {
'load_admin_styles' => true,
'load_shortcode' => true,
'load_tinymce_plugin' => true,
);
);
// Initialize the Better Font Awesome Library.
Better_Font_Awesome_Library::get_instance( $args );
// Initialize the Better Font Awesome Library.
Better_Font_Awesome_Library::get_instance( $args );
}
@@ -41,7 +78,7 @@ function trestle_load_bfa() {
* Header
===========================================*/
add_action( 'wp_enqueue_scripts', 'trestle_header_actions' );
add_action( 'wp_enqueue_scripts', 'trestle_header_actions', 15 );
/**
* Loads theme scripts and styles.
*
@@ -49,26 +86,39 @@ add_action( 'wp_enqueue_scripts', 'trestle_header_actions' );
*/
function trestle_header_actions() {
// Google fonts
// Our main stylesheet.
wp_enqueue_style( 'trestle', get_stylesheet_uri(), array(), TRESTLE_THEME_VERSION );
// Google fonts.
wp_enqueue_style( 'theme-google-fonts', '//fonts.googleapis.com/css?family=Lato:300,400,700' );
// Theme jQuery
wp_enqueue_script( 'theme-jquery', get_stylesheet_directory_uri() . '/includes/js/theme-jquery.js', array( 'jquery' ), CHILD_THEME_VERSION, true );
// Theme jQuery.
wp_enqueue_script( 'theme-jquery', get_stylesheet_directory_uri() . '/includes/js/theme-jquery.js', array( 'jquery' ), TRESTLE_THEME_VERSION, true );
// Get WP uploads directory
// Prepare and include some necessary variables.
$mobile_nav_text = apply_filters( 'trestle_mobile_nav_text', __( 'Navigation', 'trestle' ) );
wp_localize_script(
'theme-jquery',
'trestle_vars',
array(
'mobile_nav_text' => esc_attr( $mobile_nav_text ),
)
);
// Get WP uploads directory.
$upload_dir = wp_upload_dir();
$upload_path = $upload_dir['basedir'];
$upload_url = $upload_dir['baseurl'];
// Custom CSS (if it exists)
// Custom CSS (if it exists).
$custom_css_file = '/trestle/custom.css';
if ( is_readable( $upload_path . $custom_css_file ) )
wp_enqueue_style( 'trestle-custom-css', $upload_url . $custom_css_file );
// Custom jQuery (if it exists)
// Custom jQuery (if it exists).
$custom_js_file = '/trestle/custom.js';
if ( is_readable( $upload_path . $custom_js_file ) )
wp_enqueue_script( 'trestle-custom-jquery', $upload_url . $custom_js_file, array( 'jquery' ), CHILD_THEME_VERSION, true );
wp_enqueue_script( 'trestle-custom-jquery', $upload_url . $custom_js_file, array( 'jquery' ), TRESTLE_THEME_VERSION, true );
}
@@ -83,7 +133,9 @@ add_filter( 'genesis_pre_load_favicon', 'trestle_do_custom_favicon' );
* @return string Custom favicon URL (if specified), or the default URL.
*/
function trestle_do_custom_favicon( $favicon_url ) {
return genesis_get_option( 'trestle_favicon_url' ) ? genesis_get_option( 'trestle_favicon_url' ) : $favicon_url;
$trestle_favicon_url = trestle_get_option( 'favicon_url' );
return $trestle_favicon_url ? $trestle_favicon_url : $favicon_url;
}
/*===========================================
@@ -101,34 +153,51 @@ add_filter( 'body_class', 'trestle_body_classes' );
*/
function trestle_body_classes( $classes ) {
// Add 'no-jquery' class to be removed by jQuery if enabled
// Add 'no-jquery' class to be removed by jQuery if enabled.
$classes[] = 'no-jquery';
// Add 'bubble' class
if ( 'bubble' == genesis_get_option( 'trestle_layout' ) )
// Add 'bubble' class.
if ( 'bubble' == trestle_get_option( 'layout' ) )
$classes[] = 'bubble';
// Add link icon classes
if ( genesis_get_option( 'trestle_external_link_icons' ) )
// Add link icon classes.
if ( trestle_get_option( 'external_link_icons' ) ) {
$classes[] = 'external-link-icons';
if ( genesis_get_option( 'trestle_email_link_icons' ) )
}
if ( trestle_get_option( 'email_link_icons' ) ) {
$classes[] = 'email-link-icons';
if ( genesis_get_option( 'trestle_pdf_link_icons' ) )
}
if ( trestle_get_option( 'pdf_link_icons' ) ) {
$classes[] = 'pdf-link-icons';
if ( genesis_get_option( 'trestle_doc_link_icons' ) )
}
if ( trestle_get_option( 'doc_link_icons' ) ) {
$classes[] = 'doc-link-icons';
}
// Add menu style class
if ( genesis_get_option( 'trestle_nav_primary_location' ) )
$classes[] = 'nav-primary-location-' . esc_attr( genesis_get_option( 'trestle_nav_primary_location' ) );
// Add menu style class.
$nav_primary_location = esc_attr( trestle_get_option( 'nav_primary_location' ) );
if ( $nav_primary_location ) {
$classes[] = 'nav-primary-location-' . $nav_primary_location;
}
// Add footer widget number class
if ( genesis_get_option( 'trestle_footer_widgets_number' ) )
$classes[] = 'footer-widgets-number-' . esc_attr( genesis_get_option( 'trestle_footer_widgets_number' ) );
// Add mobile menu toggle class.
$mobile_nav_toggle = esc_attr( trestle_get_option( 'mobile_nav_toggle' ) );
if ( 'big-button' == $mobile_nav_toggle ) {
$classes[] = 'big-button-nav-toggle';
} elseif ( 'small-icon' == $mobile_nav_toggle ) {
$classes[] = 'small-icon-nav-toggle';
}
// Add logo class
if ( genesis_get_option( 'trestle_logo_url' ) || genesis_get_option( 'trestle_logo_url_mobile' ) )
// Add footer widget number class.
$footer_widgets_number = esc_attr( trestle_get_option( 'footer_widgets_number' ) );
if ( $footer_widgets_number ) {
$classes[] = 'footer-widgets-number-' . $footer_widgets_number;
}
// Add logo class.
if ( trestle_get_option( 'logo_id' ) || trestle_get_option( 'logo_id_mobile' ) ) {
$classes[] = 'has-logo';
}
return $classes;
@@ -147,58 +216,72 @@ add_filter( 'genesis_seo_title', 'trestle_do_logos', 10, 3 );
*/
function trestle_do_logos( $title, $inside, $wrap ) {
$logo_url = genesis_get_option( 'trestle_logo_url' );
$logo_url_mobile = genesis_get_option( 'trestle_logo_url_mobile' );
$logo_id = trestle_get_option( 'logo_id' );
$logo_id_mobile = trestle_get_option( 'logo_id_mobile' );
$logo_html = '';
// Regular logo
if ( $logo_url ) {
// Regular logo.
if ( $logo_id ) {
// Default logo class
$classes = array('logo-full');
// If no mobile logo is specified, make regular logo act as mobile logo too
if( ! $logo_url_mobile )
$classes[] = 'show';
$logo_html .= sprintf( '<img class="logo %s" alt="%s" src="%s" />',
implode(' ', $classes),
esc_attr( get_bloginfo( 'name' ) ),
$logo_url
// Default logo classes.
$classes = array(
'logo',
'logo-full'
);
// If no mobile logo is specified, make regular logo act as mobile logo too.
if( ! $logo_id_mobile ) {
$classes[] = 'show';
}
// Prepare the classes.
$logo_attr = array(
'class' => implode( $classes, ' ' ),
);
// Build the <img> tag.
$logo_html .= wp_get_attachment_image( $logo_id, 'full', false, $logo_attr );
}
// Mobile logo
if ( $logo_url_mobile ) {
// Mobile logo.
if ( $logo_id_mobile ) {
// Default mobile logo class
$classes = array('logo-mobile');
// Default mobile logo class.
$classes = array(
'logo',
'logo-mobile'
);
// If no regular logo is specified, make mobile logo act as regular logo too
if( ! $logo_url )
// If no regular logo is specified, make mobile logo act as regular logo too.
if( ! $logo_id )
$classes[] = 'show';
$logo_html .= sprintf( '<img class="logo %s" alt="%s" src="%s" />',
implode(' ', $classes),
esc_attr( get_bloginfo( 'name' ) ),
$logo_url_mobile
// Prepare the classes.
$logo_attr = array(
'class' => implode( $classes, ' ' ),
);
// Build the <img> tag.
$logo_html .= wp_get_attachment_image( $logo_id_mobile, 'full', false, $logo_attr );
}
if ( $logo_html ) {
$inside .= sprintf( '<a href="%s" title="%s">%s</a>',
$inside .= sprintf( '<a href="%s" title="%s" class="logos">%s</a>',
trailingslashit( home_url() ),
esc_attr( get_bloginfo( 'name' ) ),
$logo_html
);
}
// Build the title
// Build the title.
$title = genesis_html5() ? sprintf( "<{$wrap} %s>", genesis_attr( 'site-title' ) ) : sprintf( '<%s id="title">%s</%s>', $wrap, $inside, $wrap );
$title .= genesis_html5() ? "{$inside}</{$wrap}>" : '';
// Echo (filtered)
// Echo (filtered).
return $title;
}
@@ -206,15 +289,18 @@ function trestle_do_logos( $title, $inside, $wrap ) {
* Navigation
===========================================*/
add_action( 'init', 'trestle_nav_primary_location' );
add_action( 'wp_loaded', 'trestle_nav_primary_location' );
/**
* Move primary navigation into the header if need be.
*
* This is hooked on wp_loaded instead of init because for some reason init
* won't fire on the customizer preview.
*
* @since 1.2.0
*/
function trestle_nav_primary_location() {
if ( 'header' == genesis_get_option( 'trestle_nav_primary_location' ) ) {
if ( 'header' == trestle_get_option( 'nav_primary_location' ) ) {
remove_action( 'genesis_after_header', 'genesis_do_nav' );
add_action( 'genesis_header', 'genesis_do_nav', 12 );
}
@@ -233,7 +319,7 @@ add_filter( 'wp_nav_menu_items', 'trestle_custom_nav_extras', 10, 2 );
*/
function trestle_custom_nav_extras( $nav_items, stdClass $menu_args ) {
if ( 'primary' == $menu_args->theme_location && genesis_get_option( 'trestle_custom_nav_extras_text' ) ) {
if ( 'primary' == $menu_args->theme_location && trestle_get_option( 'search_in_nav' ) ) {
return $nav_items . '<li class="right custom">' . get_search_form( false ) . '</li>';
}
@@ -245,6 +331,26 @@ function trestle_custom_nav_extras( $nav_items, stdClass $menu_args ) {
* Posts & Pages
===========================================*/
add_filter( 'post_class', 'trestle_post_classes' );
/**
* Add extra classes to posts in certain situations.
*
* @since 2.2.0
*
* @param array $classes Post classes.
* @return array Updated post classes.
*/
function trestle_post_classes( $classes ) {
// If post doesn't have a featured image.
if ( ! has_post_thumbnail() ) {
$classes[] = 'no-featured-image';
}
return $classes;
}
add_filter( 'wp_revisions_to_keep', 'trestle_update_revisions_number', 10, 2 );
/**
* Sets the number of post revisions.
@@ -256,69 +362,18 @@ add_filter( 'wp_revisions_to_keep', 'trestle_update_revisions_number', 10, 2 );
*/
function trestle_update_revisions_number( $num ) {
$trestle_revisions_number = esc_attr( genesis_get_option( 'trestle_revisions_number' ) );
$trestle_revisions_number = esc_attr( trestle_get_option( 'revisions_number' ) );
if ( isset( $trestle_revisions_number ) )
if ( isset( $trestle_revisions_number ) ) {
return $trestle_revisions_number;
}
return $num;
}
add_action( 'the_post', 'trestle_post_info_meta', 5 );
/**
* Manually controls display of post info/meta for all post types.
*
* @since 1.0.0
*
* @see trestle_set_page_post_type()
* @global object $post The current $post object.
*/
function trestle_post_info_meta() {
if ( ! is_admin() && in_the_loop() && genesis_get_option( 'trestle_manual_post_info_meta' ) ) {
global $post;
// Get post type
$post_type = get_post_type( $post->ID );
// Remove all Post Info & Meta
remove_action( 'genesis_entry_header', 'genesis_post_info', 12 );
remove_action( 'genesis_entry_footer', 'genesis_post_meta' );
// Single
if ( is_singular() ) {
$single_info_option = 'trestle_post_info_' . $post_type . '_single';
$single_meta_option = 'trestle_post_meta_' . $post_type . '_single';
// Post Info
if ( genesis_get_option( $single_info_option ) )
add_action( 'genesis_entry_header', 'genesis_post_info', 12 );
// Post Meta
if ( genesis_get_option( $single_meta_option ) )
add_action( 'genesis_entry_footer', 'genesis_post_meta' );
}
// Archive
if ( ! is_singular() ) {
$archive_info_option = 'trestle_post_info_' . $post_type . '_archive';
$archive_meta_option = 'trestle_post_meta_' . $post_type . '_archive';
// Post Info
if ( genesis_get_option( $archive_info_option ) )
add_action( 'genesis_entry_header', 'genesis_post_info', 12 );
// Post Meta
if ( genesis_get_option( $archive_meta_option ) )
add_action( 'genesis_entry_footer', 'genesis_post_meta' );
}
}
}
add_filter( 'genesis_get_image_default_args', 'trestle_featured_image_fallback' );
/**
* Unset Genesis default featured image fallback of 'first-attached'
* Unset Genesis default featured image fallback of 'first-attached'.
*
* This function prevents Genesis' default behavior of displaying
* the 'first-attached' image as a post's featured image (in archive)
@@ -326,8 +381,8 @@ add_filter( 'genesis_get_image_default_args', 'trestle_featured_image_fallback'
*
* @since 1.0.0
*
* @param array $args Default Genesis image args
* @return array Updated image args
* @param array $args Default Genesis image args.
* @return array Updated image args.
*/
function trestle_featured_image_fallback( $args ) {
@@ -354,8 +409,8 @@ add_filter( 'the_content_more_link', 'trestle_read_more_link' );
*/
function trestle_read_more_link( $default_text ) {
// Get Trestle custom "read more" link text
$custom_text = esc_attr( genesis_get_option( 'trestle_read_more_text' ) );
// Get Trestle custom "read more" link text.
$custom_text = esc_attr( trestle_get_option( 'read_more_text' ) );
if ( $custom_text ) {
return '&hellip;&nbsp;<a class="more-link" title="' . $custom_text . '" href="' . get_permalink() . '">' . $custom_text . '</a>';
@@ -363,3 +418,42 @@ function trestle_read_more_link( $default_text ) {
return $default_text;
}
}
/*===========================================
* Helper Functions
===========================================*/
/**
* Check if image has specified image size.
*
* @since 2.2.0
*
* @param int $image_id ID of image to check.
* @param string $image_size Slug of image size to check for.
*
* @return true|false Whether or not the image has the specified size generated.
*/
function trestle_image_has_size( $image_id, $image_size = null ) {
global $_wp_additional_image_sizes;
// Return with error if no image_size is specified.
if ( ! $image_size ) {
return new WP_Error( 'no_image_size_specified', __( 'Please specify an image size.', 'trestle' ) );
}
// Get the attributes for the specified image size.
$image_size_atts = $_wp_additional_image_sizes[ $image_size ];
// Get data for specified image ID and size.
$img_data = wp_get_attachment_image_src( $image_id, $image_size );
// Check if the dimensions match.
if ( $img_data[1] == $image_size_atts['width'] && $img_data[2] == $image_size_atts['height'] ) {
return true;
}
return false;
}
Regular → Executable
+110 -95
View File
@@ -6,137 +6,152 @@
* @package Trestle
*/
// Executes when the document is ready
// Executes when the document is ready.
jQuery( document ).ready( function( $ ) {
// Remove .no-jquery body class
$( 'body' ).removeClass( 'no-jquery' );
// Store selectors we use multiple times.
$body = $( 'body' );
// External Links
var h = window.location.host.toLowerCase();
$( '[href^="http"]' ).not( '[href*="' + h + '"]' ).addClass( 'external-link' ).attr( "target", "_blank" );
// Remove .no-jquery body class.
$body.removeClass( 'no-jquery' );
// Add classes to different types of links
$( 'a[href^="mailto:"]' ).addClass( 'email-link' );
$( 'a[href$=".pdf"]' ).attr({ "target":"_blank" }).addClass( 'pdf-link' );
$( 'a[href$=".doc"]' ).attr({ "target":"_blank" }).addClass( 'doc-link' );
$( 'a' ).has( 'img' ).addClass( 'image-link' );
// External Links.
var h = window.location.host.toLowerCase();
$( '[href^="http"]' ).not( '[href*="' + h + '"]' ).addClass( 'external-link' ).attr( "target", "_blank" );
// Add classes to parts of lists
$( 'li:last-child' ).addClass( 'last' );
$( 'li:first-child' ).addClass( 'first' );
$( 'ul, ol' ).parent( 'li' ).addClass( 'parent' );
// Add classes to different types of links.
$( 'a[href^="mailto:"]' ).addClass( 'email-link' );
$( 'a[href$=".pdf"]' ).attr({ "target":"_blank" }).addClass( 'pdf-link' );
$( 'a[href$=".doc"]' ).attr({ "target":"_blank" }).addClass( 'doc-link' );
$( 'a' ).has( 'img' ).addClass( 'image-link' );
// Create mobile header toggle buttons
$( '.site-header .title-area' ).after( '<div class="toggle-buttons" />' );
$( '.site-header .widget-area, .nav-primary' ).each( function( i ) {
// Add classes to parts of lists.
$( 'li:last-child' ).addClass( 'last' );
$( 'li:first-child' ).addClass( 'first' );
$( 'ul, ol' ).parent( 'li' ).addClass( 'parent' );
// Store target
$target = $( this );
// Create container for toggle buttons.
if ( $body.hasClass( 'big-button-nav-toggle' ) ) {
$( '.site-header' ).after( '<div class="header-toggle-buttons" />' );
} else {
$( '.site-header .title-area' ).after( '<div class="header-toggle-buttons" />' );
}
// Scope variables
var $target, buttonClass, targetClass;
// Add either small icon toggles or big button toggle.
$( '.site-header .widget-area, .nav-primary' ).each( function( i ) {
// Setup classes
buttonClass = 'toggle-button';
targetClass = $target.attr( 'class' ).split( /\s+/ );
// Store target.
$target = $( this );
// Add targets-[] class to buttonClass
$.each( targetClass, function( index, value ) {
buttonClass += ' targets-' + value;
});
// Scope variables.
var $target, buttonClass, targetClass;
// Add nav-toggle class to buttonClass if the button is for the nav
if ( $target.is( 'nav' ) ) {
buttonClass += ' nav-toggle';
}
// Setup classes.
buttonClass = 'toggle-button';
targetClass = $target.attr( 'class' ).split( /\s+/ );
// Add toggle buttons to header
$( '.toggle-buttons' ).prepend( '<a id="toggle-button-' + i + '" class="' + buttonClass + '" href="#">Toggle</a>' );
// Add targets-[] class to buttonClass.
$.each( targetClass, function( index, value ) {
buttonClass += ' targets-' + value;
});
// Add target class to nav and widget areas
$target.addClass( 'toggle-target-' + i );
});
// Add nav-toggle class to buttonClass if the button is for the nav.
if ( $target.is( 'nav' ) ) {
buttonClass += ' nav-toggle';
}
// A widget areas and primary nav mobile toggle functionality
$( '.site-header .toggle-button' ).click( function( event ) {
// Allow the use of custom text when using the 'big-button' mobile nav style.
if ( $target.is( 'nav' ) && $body.hasClass( 'big-button-nav-toggle' ) ) {
navText = trestle_vars['mobile_nav_text'];
} else {
navText = 'Toggle';
}
// Prevent default behavior
event.preventDefault();
// Add toggle buttons to header.
$( '.header-toggle-buttons' ).prepend( '<a id="toggle-button-' + i + '" class="' + buttonClass + '" href="#">' + navText + '</a>' );
// Scope our variables
var $button, $target;
// Add target class to nav and widget areas.
$target.addClass( 'toggle-target-' + i );
});
// Get toggle button that was clicked
$button = $( this );
// A widget areas and primary nav mobile toggle functionality.
$( '.header-toggle-buttons .toggle-button' ).click( function( event ) {
// Match the button to the right target
$target = $( '.toggle-target-' + $button.attr( 'id' ).match( /\d+/ ) );
console.log( 'Target: ' + $target.attr('class'));
// Prevent default behavior.
event.preventDefault();
// Toggle buttons
$button.toggleClass( 'open' );
$( '.site-header .toggle-button' ).not( $button ).removeClass( 'open' );
// Scope our variables.
var $button, $target;
// Toggle targets
$target.toggleClass( 'open' );
$( '[class*="toggle-target"]' ).not( $target ).removeClass( 'open' );
// Get toggle button that was clicked.
$button = $( this );
// Remove focus
$button.blur();
// Match the button to the right target.
$target = $( '.toggle-target-' + $button.attr( 'id' ).match( /\d+/ ) );
});
// Toggle buttons.
$button.toggleClass( 'open' );
$( '.header-toggle-buttons .toggle-button' ).not( $button ).removeClass( 'open' );
// Mobile navigation icons
var closedIcon = '+';
var openIcon = '-';
// Toggle targets.
$target.toggleClass( 'open' );
$( '[class*="toggle-target"]' ).not( $target ).removeClass( 'open' );
// Insert the icons into the nav where appropriate
$( '.nav-primary' ).find( '.genesis-nav-menu .parent:not( .current-menu-item, .current_page_item, .current_page_parent, .current_page_ancestor) > a' ).after( '<a class="sub-icon" href="#">' + closedIcon + '</a>' );
$( '.nav-primary' ).find( '.genesis-nav-menu .parent.current-menu-item > a, .genesis-nav-menu .parent.current_page_item > a, .genesis-nav-menu .parent.current_page_parent > a, .genesis-nav-menu .parent.current_page_ancestor > a' ).after( '<a class="sub-icon" href="#">' + openIcon + '</a>' );
// Remove focus.
$button.blur();
// Mobile navigation expand/contract functionality
$( '.sub-icon' ).click( function( event ) {
});
// Prevent default behavior
event.preventDefault();
// Mobile navigation icons.
var closedIcon = '+';
var openIcon = '-';
// Get icon click
var $icon = $( this );
// Insert the icons into the nav where appropriate.
$( '.nav-primary' ).find( '.genesis-nav-menu .parent:not( [class*="current"] ) > a' ).after( '<a class="sub-icon" href="#">' + closedIcon + '</a>' );
$( '.nav-primary' ).find( '.genesis-nav-menu .parent[class*="current"] > a' ).after( '<a class="sub-icon" href="#">' + openIcon + '</a>' );
// Remove focus
$icon.blur();
// Mobile navigation expand/contract functionality.
$( '.sub-icon' ).click( function( event ) {
// Expand/contract
$icon.next( 'ul' ).slideToggle().toggleClass( 'open' );
// Prevent default behavior.
event.preventDefault();
// Change the icon to indicate open/closed
if ( $icon.text().indexOf( closedIcon ) !== -1 ) {
$icon.text( openIcon );
} else if ( $icon.text().indexOf( openIcon ) !== -1 ) {
$icon.text( closedIcon );
}
});
// Get icon click.
var $icon = $( this );
// Header widget area expand/contract functionality
$( '.widget-area-toggle' ).click( function( event ) {
// Remove focus.
$icon.blur();
// Prevent default behavior
event.preventDefault();
// Expand/contract.
$icon.next( 'ul' ).slideToggle().toggleClass( 'open' );
// Get button clicked
var $button = $( this );
// Change the icon to indicate open/closed.
if ( $icon.text().indexOf( closedIcon ) !== -1 ) {
$icon.text( openIcon );
} else if ( $icon.text().indexOf( openIcon ) !== -1 ) {
$icon.text( closedIcon );
}
});
// Remove focus
$button.blur();
// Header widget area expand/contract functionality.
$( '.widget-area-toggle' ).click( function( event ) {
// Expand/contract
$button.toggleClass( 'open' ).next( '.widget-area' ).slideToggle();
});
// Prevent default behavior.
event.preventDefault();
// Executes when complete page is fully loaded, including all frames, objects, and images
$( window ).on( 'load', function() {
// Get button clicked.
var $button = $( this );
});
// Remove focus.
$button.blur();
// Expand/contract.
$button.toggleClass( 'open' ).next( '.widget-area' ).slideToggle();
});
// Executes when complete page is fully loaded, including all frames, objects, and images.
$( window ).on( 'load', function() {
});
}); /* end of page load scripts */
+58 -53
View File
@@ -1,6 +1,6 @@
<?php
<?php
/**
* Trestle shortcodes
* Trestle shortcodes.
*
* @since 1.0.0
*
@@ -11,9 +11,9 @@
* Shortcodes
===========================================*/
add_filter('the_content', 'trestle_shortcode_empty_paragraph_fix');
add_filter( 'the_content', 'trestle_shortcode_empty_paragraph_fix' );
/**
* Fix for empty <p> tags around shortcodes
* Fix for empty <p> tags around shortcodes.
*
* @since 1.0.0
*
@@ -21,23 +21,22 @@ add_filter('the_content', 'trestle_shortcode_empty_paragraph_fix');
*
* @return string Updated content.
*/
function trestle_shortcode_empty_paragraph_fix( $content )
{
function trestle_shortcode_empty_paragraph_fix( $content ) {
$array = array (
'<p>[' => '[',
']</p>' => ']',
'<p>[' => '[',
']</p>' => ']',
']<br />' => ']'
);
$content = strtr($content, $array);
$content = strtr( $content, $array );
return $content;
}
add_shortcode( 'col', 'trestle_column' );
/**
* Columns
*
* Columns.
*
* Example:
* [col class="one-half first no-list-margin"] Contents [/col]
*
@@ -51,18 +50,19 @@ add_shortcode( 'col', 'trestle_column' );
* @return string Shortcode output.
*/
function trestle_column( $atts, $content = null ) {
extract( shortcode_atts( array(
$atts = shortcode_atts( array(
'class' => '',
), $atts ) );
return '<div class="col ' . $class . '">' . do_shortcode( $content ) . '</div>';
), $atts );
return '<div class="col ' . $atts['class'] . '">' . do_shortcode( $content ) . '</div>';
}
add_shortcode( 'button', 'trestle_button' );
/**
* Button
*
* Button.
*
* Example: [button href="url" title="title" target="target" class="class"]Text[/button]
*
* @param array $atts Shortcode attributes.
@@ -70,19 +70,21 @@ add_shortcode( 'button', 'trestle_button' );
* @return string Shortcode output.
*/
function trestle_button( $atts, $content = null ) {
extract( shortcode_atts( array(
$atts = shortcode_atts( array(
'href' => '#',
'target' => '',
'title' => '',
'class' => '',
), $atts ) );
return '<a class="button ' . $class . '" href="' . $href . '" title="' . $title . '" target="' . $target . '">' . do_shortcode( $content ) . '</a>';
}
), $atts );
return '<a class="button ' . $atts['class'] . '" href="' . $atts['href'] . '" title="' . $atts['title'] . '" target="' . $atts['target'] . '">' . do_shortcode( $content ) . '</a>';
}
add_shortcode( 'date', 'trestle_date' );
/**
* Date
* Date.
*
* Example: [date format="M d, Y"]
*
@@ -91,21 +93,23 @@ add_shortcode( 'date', 'trestle_date' );
* @return string Shortcode output.
*/
function trestle_date( $atts ) {
extract( shortcode_atts( array(
'format' => 'M d, Y',
), $format ) );
if ( ! $format ) {
$format = 'M d, Y';
$atts = shortcode_atts( array(
'format' => 'M d, Y',
), $atts );
if ( ! $atts['format'] ) {
$atts['format'] = 'M d, Y';
}
return date( $format );
return date( $atts['format'] );
}
add_shortcode( 'blockquote', 'trestle_blockquote_shortcode' );
/**
* Blockquote
*
* Blockquote.
*
* Example: [blockquote citation=""]Content[/blockquote]
*
* @since 1.2.0
@@ -115,28 +119,29 @@ add_shortcode( 'blockquote', 'trestle_blockquote_shortcode' );
* @return string Shortcode output.
*/
function trestle_blockquote_shortcode( $atts, $content = null ) {
$atts = shortcode_atts( array(
'citation' => '',
), $atts );
ob_start(); ?>
<blockquote>
<?php if ( $content ) : ?>
<?php echo $content; ?>
<?php endif; ?>
<?php if ( $atts['citation'] ) : ?>
<cite>- <?php echo $atts['citation']; ?></cite>
<?php endif; ?>
</blockquote>
<?php
$output = ob_get_clean();
$atts = shortcode_atts( array(
'citation' => '',
), $atts );
ob_start(); ?>
<blockquote>
<?php if ( $content ) : ?>
<?php echo $content; ?>
<?php endif; ?>
<?php if ( $atts['citation'] ) : ?>
<cite>- <?php echo $atts['citation']; ?></cite>
<?php endif; ?>
</blockquote>
<?php
$output = ob_get_clean();
return $output;
return $output;
}
+21
View File
@@ -0,0 +1,21 @@
<?php
/**
* Development utility functions.
*
* @since 2.1.0
*
* @package Trestle
*/
/**
* Custom logging function for development purposes.
*/
function trestle_log( $log ) {
if ( true === WP_DEBUG ) {
if ( is_array( $log ) || is_object( $log ) ) {
error_log( print_r( $log, true ) );
} else {
error_log( $log );
}
}
}
+4 -4
View File
@@ -1,16 +1,16 @@
<?php
/**
* Trestle widget area registration and functionality
*
* Trestle widget area registration and functionality.
*
* @since 1.0.0
*
*
* @package Trestle
*/
//add_action( 'widgets_init', 'trestle_register_widget_areas' );
/**
* Register custom widget areas
* Register custom widget areas.
*
* @since 1.0.0
*/
+371 -202
View File
@@ -1,348 +1,517 @@
# Copyright (C) 2015 MIGHTYminnow
# This file is distributed under the same license as the Trestle package.
msgid ""
msgstr ""
"Project-Id-Version: Trestle\n"
"POT-Creation-Date: 2014-01-16 11:55-0800\n"
"PO-Revision-Date: 2014-01-16 11:55-0800\n"
"Last-Translator: Mickey <mickey@mightyminnow.com>\n"
"Language-Team: MIGHTYminnow <info@mightyminnow.com>\n"
"Language: en\n"
"Project-Id-Version: Trestle 2.2.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/support/theme/style\n"
"POT-Creation-Date: 2015-07-25 00:14:21+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.3\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-KeywordsList: __;_e;_x;_n\n"
"X-Poedit-SearchPath-0: ..\n"
"PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"X-Generator: grunt-wp-i18n 0.5.2\n"
#: ../includes/admin/admin-functions.php:38
msgid "Navigation"
msgstr ""
#: ../includes/admin/admin-functions.php:39
#: includes/admin/admin.php:28
msgid "Read&nbsp;More&nbsp;&raquo;"
msgstr ""
#: ../includes/admin/admin-functions.php:121
msgid "Trestle Settings <small>by</small>"
msgstr ""
#: ../includes/admin/admin-functions.php:135
msgid "Layout"
msgstr ""
#: ../includes/admin/admin-functions.php:143
msgid "Primary Navigation"
msgstr ""
#: ../includes/admin/admin-functions.php:145
msgid ""
"Automatically generate nav menu (replaces custom/manual menu with auto-"
"generated menu)"
msgstr ""
#: ../includes/admin/admin-functions.php:146
msgid "Include home link"
msgstr ""
#: ../includes/admin/admin-functions.php:149
msgid "Text for mobile navigation button (shortcodes can be included):"
msgstr ""
#: ../includes/admin/admin-functions.php:153
msgid "Primary Navigation Extras"
msgstr ""
#: ../includes/admin/admin-functions.php:154
msgid ""
"Display custom navigation extras content (overrides standard Genesis "
"navigation extras)"
msgstr ""
#: ../includes/admin/admin-functions.php:156
msgid "Custom navigation extras text:"
msgstr ""
#: ../includes/admin/admin-functions.php:160
msgid "Blog/Posts"
msgstr ""
#: ../includes/admin/admin-functions.php:162
msgid "Custom read more link text"
msgstr ""
#: ../includes/admin/admin-functions.php:165
msgid "Number of post revisions"
msgstr ""
#: ../includes/admin/admin-functions.php:176
msgid "Post Info & Meta"
msgstr ""
#: ../includes/admin/admin-functions.php:177
msgid "Manually select where to show Post Info & Meta"
msgstr ""
#: ../includes/admin/admin-functions.php:180
msgid "Show Post Info on:"
msgstr ""
#: ../includes/admin/admin-functions.php:190 ../includes/admin/admin-functions.php:210
#, php-format
msgid "%s (single)"
msgstr ""
#: ../includes/admin/admin-functions.php:193 ../includes/admin/admin-functions.php:213
#, php-format
msgid "%s (archive)"
msgstr ""
#: ../includes/admin/admin-functions.php:200
msgid "Show Post Meta on:"
msgstr ""
#: ../includes/admin/admin-functions.php:221
msgid "Footer Widgets"
msgstr ""
#: ../includes/admin/admin-functions.php:223
msgid "Number"
msgstr ""
#: ../includes/admin/admin-functions.php:233
msgid "Link Icons"
msgstr ""
#: ../includes/admin/admin-functions.php:235
msgid "Add icons to external links"
msgstr ""
#: ../includes/admin/admin-functions.php:236
msgid "Add icons to email links"
msgstr ""
#: ../includes/admin/admin-functions.php:237
msgid "Add icons to .pdf links"
msgstr ""
#: ../includes/admin/admin-functions.php:238
msgid "Add icons to .doc links"
msgstr ""
#: ../includes/admin/admin-functions.php:398
#: ../includes/classes/class-tgm-plugin-activation.php:155
#: includes/admin/admin.php:271 lib/class-tgm-plugin-activation.php:161
msgid "Install Required Plugins"
msgstr ""
#: ../includes/admin/admin-functions.php:399
#: ../includes/classes/class-tgm-plugin-activation.php:156
#: includes/admin/admin.php:272 lib/class-tgm-plugin-activation.php:162
msgid "Install Plugins"
msgstr ""
#: ../includes/admin/admin-functions.php:400
#: ../includes/classes/class-tgm-plugin-activation.php:157
#, php-format
#: includes/admin/admin.php:273 lib/class-tgm-plugin-activation.php:163
msgid "Installing Plugin: %s"
msgstr ""
#: ../includes/admin/admin-functions.php:401
#: includes/admin/admin.php:274
msgid "Something went wrong with the plugin API."
msgstr ""
#: ../includes/admin/admin-functions.php:412
#: ../includes/classes/class-tgm-plugin-activation.php:169
#: includes/admin/admin.php:275 lib/class-tgm-plugin-activation.php:165
msgid "This theme requires the following plugin: %1$s."
msgid_plural "This theme requires the following plugins: %1$s."
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:276
msgid "Recommended plugin: %1$s."
msgid_plural "Recommended plugins: %1$s."
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:277 lib/class-tgm-plugin-activation.php:167
msgid ""
"Sorry, but you do not have the correct permissions to install the %s "
"plugin. Contact the administrator of this site for help on getting the "
"plugin installed."
msgid_plural ""
"Sorry, but you do not have the correct permissions to install the %s "
"plugins. Contact the administrator of this site for help on getting the "
"plugins installed."
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:278 lib/class-tgm-plugin-activation.php:168
msgid "The following required plugin is currently inactive: %1$s."
msgid_plural "The following required plugins are currently inactive: %1$s."
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:279 lib/class-tgm-plugin-activation.php:169
msgid "The following recommended plugin is currently inactive: %1$s."
msgid_plural "The following recommended plugins are currently inactive: %1$s."
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:280 lib/class-tgm-plugin-activation.php:170
msgid ""
"Sorry, but you do not have the correct permissions to activate the %s "
"plugin. Contact the administrator of this site for help on getting the "
"plugin activated."
msgid_plural ""
"Sorry, but you do not have the correct permissions to activate the %s "
"plugins. Contact the administrator of this site for help on getting the "
"plugins activated."
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:281 lib/class-tgm-plugin-activation.php:171
msgid ""
"The following plugin needs to be updated to its latest version to ensure "
"maximum compatibility with this theme: %1$s."
msgid_plural ""
"The following plugins need to be updated to their latest version to ensure "
"maximum compatibility with this theme: %1$s."
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:282 lib/class-tgm-plugin-activation.php:172
msgid ""
"Sorry, but you do not have the correct permissions to update the %s plugin. "
"Contact the administrator of this site for help on getting the plugin "
"updated."
msgid_plural ""
"Sorry, but you do not have the correct permissions to update the %s "
"plugins. Contact the administrator of this site for help on getting the "
"plugins updated."
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:283 lib/class-tgm-plugin-activation.php:173
msgid "Begin installing plugin"
msgid_plural "Begin installing plugins"
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:284
msgid "Activate installed plugin"
msgid_plural "Activate installed plugins"
msgstr[0] ""
msgstr[1] ""
#: includes/admin/admin.php:285 lib/class-tgm-plugin-activation.php:175
msgid "Return to Required Plugins Installer"
msgstr ""
#: ../includes/admin/admin-functions.php:413
#: ../includes/classes/class-tgm-plugin-activation.php:171
#: ../includes/classes/class-tgm-plugin-activation.php:1840
#: includes/admin/admin.php:286 lib/class-tgm-plugin-activation.php:177
#: lib/class-tgm-plugin-activation.php:1956
msgid "Plugin activated successfully."
msgstr ""
#: ../includes/admin/admin-functions.php:414
#, php-format
#: includes/admin/admin.php:287
msgid "All plugins installed and activated successfully. %s"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:158
#: includes/admin/customizer.php:28
msgid "Trestle Settings"
msgstr ""
#: includes/admin/customizer.php:47
msgid "Layout"
msgstr ""
#: includes/admin/customizer.php:50
msgid "Bubble"
msgstr ""
#: includes/admin/customizer.php:51
msgid "Solid"
msgstr ""
#: includes/admin/customizer.php:71
msgid "Upload a logo"
msgstr ""
#: includes/admin/customizer.php:94
msgid "Upload a mobile logo"
msgstr ""
#: includes/admin/customizer.php:117
msgid "Upload a favicon"
msgstr ""
#: includes/admin/customizer.php:138
msgid "Menu style"
msgstr ""
#: includes/admin/customizer.php:141
msgid "Full Width"
msgstr ""
#: includes/admin/customizer.php:142
msgid "Header Right"
msgstr ""
#: includes/admin/customizer.php:161
msgid "Mobile Menu Toggle"
msgstr ""
#: includes/admin/customizer.php:164
msgid "Small Icon"
msgstr ""
#: includes/admin/customizer.php:165
msgid "Big Button"
msgstr ""
#: includes/admin/customizer.php:184
msgid "Add search to mobile navigation"
msgstr ""
#: includes/admin/customizer.php:204
msgid "Custom read more link text"
msgstr ""
#: includes/admin/customizer.php:223
msgid "Number of post revisions"
msgstr ""
#: includes/admin/customizer.php:226
msgid "Unlimited"
msgstr ""
#: includes/admin/customizer.php:256
msgid "Number of footer widgets"
msgstr ""
#: includes/admin/customizer.php:283
msgid "Icon links"
msgstr ""
#: includes/admin/customizer.php:302
msgid "Add icons to external links"
msgstr ""
#: includes/admin/customizer.php:321
msgid "Add icons to email links"
msgstr ""
#: includes/admin/customizer.php:340
msgid "Add icons to .pdf links"
msgstr ""
#: includes/admin/customizer.php:359
msgid "Add icons to .doc links"
msgstr ""
#: includes/functions/theme-functions.php:99
msgid "Navigation"
msgstr ""
#: includes/functions/theme-functions.php:443
msgid "Please specify an image size."
msgstr ""
#: includes/widget-areas/widget-areas.php:20
msgid "Sample Widget Area"
msgstr ""
#: includes/widget-areas/widget-areas.php:21
msgid "This is the sample widget area"
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:493
msgid "The jsDelivr API servers appear to be temporarily unavailable."
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:1042
msgid "Insert Icon"
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:1062
msgid "Better Font Awesome"
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:1068
msgid "API Error"
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:1070
msgid ""
"The attempt to reach the jsDelivr API server failed with the following "
"error: %s"
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:1080
msgid "Remote CSS Error"
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:1082
msgid ""
"The attempt to fetch the remote Font Awesome stylesheet failed with the "
"following error: %s %s The embedded fallback Font Awesome will be used "
"instead (version: %s)."
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:1092
msgid ""
"<b>Don't worry! Better Font Awesome will still render using the included "
"fallback version:</b> "
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:1096
msgid "Solution"
msgstr ""
#: lib/better-font-awesome-library/better-font-awesome-library.php:1098
msgid ""
"This may be the result of a temporary server or connectivity issue which "
"will resolve shortly. However if the problem persists please file a support "
"ticket on the %splugin forum%s, citing the errors listed above. "
msgstr ""
#: lib/class-tgm-plugin-activation.php:164
msgid "Something went wrong."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:170
#: lib/class-tgm-plugin-activation.php:166
msgid "This theme recommends the following plugin: %1$s."
msgid_plural "This theme recommends the following plugins: %1$s."
msgstr[0] ""
msgstr[1] ""
#: lib/class-tgm-plugin-activation.php:174
msgid "Begin activating plugin"
msgid_plural "Begin activating plugins"
msgstr[0] ""
msgstr[1] ""
#: lib/class-tgm-plugin-activation.php:176
msgid "Return to the dashboard"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:172
#: ../includes/classes/class-tgm-plugin-activation.php:1538
#: lib/class-tgm-plugin-activation.php:178
#: lib/class-tgm-plugin-activation.php:1644
msgid "The following plugin was activated successfully:"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:173
#, php-format
#: lib/class-tgm-plugin-activation.php:179
msgid "All plugins installed and activated successfully. %1$s"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:174
#: lib/class-tgm-plugin-activation.php:180
msgid "Dismiss this notice"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1085
msgid "External Link"
#: lib/class-tgm-plugin-activation.php:532
#: lib/class-tgm-plugin-activation.php:2173
msgid "Return to the Dashboard"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1090
#: lib/class-tgm-plugin-activation.php:1167
#: lib/class-tgm-plugin-activation.php:1348
msgid "Private Repository"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1093
#: lib/class-tgm-plugin-activation.php:1170
#: lib/class-tgm-plugin-activation.php:1351
msgid "Pre-Packaged"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1097
#: lib/class-tgm-plugin-activation.php:1175
msgid "WordPress Repository"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1100
#: lib/class-tgm-plugin-activation.php:1178
msgid "Required"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1100
#: lib/class-tgm-plugin-activation.php:1178
msgid "Recommended"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1103
#: lib/class-tgm-plugin-activation.php:1181
msgid "Not Installed"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1105
#: lib/class-tgm-plugin-activation.php:1183
msgid "Installed But Not Activated"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1275
#, php-format
#: lib/class-tgm-plugin-activation.php:1288
#: lib/class-tgm-plugin-activation.php:1409
msgid "Install"
msgstr ""
#: lib/class-tgm-plugin-activation.php:1312
#: lib/class-tgm-plugin-activation.php:1410
msgid "Activate"
msgstr ""
#: lib/class-tgm-plugin-activation.php:1372
msgid ""
"No plugins to install or activate. <a href=\"%1$s\" title=\"Return to the "
"Dashboard\">Return to the Dashboard</a>"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1291
#: lib/class-tgm-plugin-activation.php:1388
msgid "Plugin"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1292
#: lib/class-tgm-plugin-activation.php:1389
msgid "Source"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1293
#: lib/class-tgm-plugin-activation.php:1390
msgid "Type"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1294
#: lib/class-tgm-plugin-activation.php:1391
msgid "Status"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1312
msgid "Install"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1313
msgid "Activate"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1823
#: lib/class-tgm-plugin-activation.php:1939
msgid "Install package not available."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1824
#, php-format
#: lib/class-tgm-plugin-activation.php:1940
msgid "Downloading install package from <span class=\"code\">%s</span>&#8230;"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1825
#: lib/class-tgm-plugin-activation.php:1941
msgid "Unpacking the package&#8230;"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1826
#: lib/class-tgm-plugin-activation.php:1942
msgid "Installing the plugin&#8230;"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1827
#: lib/class-tgm-plugin-activation.php:1943
msgid "Plugin install failed."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1828
#: lib/class-tgm-plugin-activation.php:1944
msgid "Plugin installed successfully."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1839
#: lib/class-tgm-plugin-activation.php:1955
msgid "Plugin activation failed."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1949
#: lib/class-tgm-plugin-activation.php:2069
msgid ""
"The installation and activation process is starting. This process may take a "
"while on some hosts, so please be patient."
"The installation and activation process is starting. This process may take "
"a while on some hosts, so please be patient."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1950
#, php-format
#: lib/class-tgm-plugin-activation.php:2070
msgid "%1$s installed and activated successfully."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1950
#: ../includes/classes/class-tgm-plugin-activation.php:1959
#: lib/class-tgm-plugin-activation.php:2070
#: lib/class-tgm-plugin-activation.php:2079
msgid "Show Details"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1950
#: ../includes/classes/class-tgm-plugin-activation.php:1959
#: lib/class-tgm-plugin-activation.php:2070
#: lib/class-tgm-plugin-activation.php:2079
msgid "Hide Details"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1951
#: lib/class-tgm-plugin-activation.php:2071
msgid "All installations and activations have been completed."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1952
#, php-format
#: lib/class-tgm-plugin-activation.php:2072
msgid "Installing and Activating Plugin %1$s (%2$d/%3$d)"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1956
#: lib/class-tgm-plugin-activation.php:2076
msgid ""
"The installation process is starting. This process may take a while on some "
"hosts, so please be patient."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1957
#, php-format
#: lib/class-tgm-plugin-activation.php:2077
msgid "An error occurred while installing %1$s: <strong>%2$s</strong>."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1958
#, php-format
#: lib/class-tgm-plugin-activation.php:2078
msgid "The installation of %1$s failed."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1959
#, php-format
#: lib/class-tgm-plugin-activation.php:2079
msgid "%1$s installed successfully."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1960
#: lib/class-tgm-plugin-activation.php:2080
msgid "All installations have been completed."
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:1961
#, php-format
#: lib/class-tgm-plugin-activation.php:2081
msgid "Installing Plugin %1$s (%2$d/%3$d)"
msgstr ""
#: ../includes/classes/class-tgm-plugin-activation.php:2052
msgid "Return to the Dashboard"
#: page_archive_all_pages.php:35
msgid "Pages:"
msgstr ""
#: ../includes/functions/theme-functions.php:136
msgid "Trestle Auto Nav Placeholder"
#: page_archive_all_pages.php:40
msgid "Categories:"
msgstr ""
#: page_archive_all_pages.php:45
msgid "Authors:"
msgstr ""
#: page_archive_all_pages.php:50
msgid "Monthly:"
msgstr ""
#: page_archive_all_pages.php:55
msgid "Recent Posts:"
msgstr ""
#. Theme Name of the plugin/theme
msgid "Trestle"
msgstr ""
#. Theme URI of the plugin/theme
msgid "http://demo.mightyminnow.com/theme/trestle"
msgstr ""
#. Description of the plugin/theme
msgid ""
"Trestle is a Genesis child theme for developers based on the default <a "
"href=\"http://www.genesisframework.com/\">Genesis 2.0 Sample Theme</a>. It "
"features mobile first CSS, helpful theme options, and lots more tools to "
"support your development process."
msgstr ""
#. Author of the plugin/theme
msgid "MIGHTYminnow"
msgstr ""
#. Author URI of the plugin/theme
msgid "http://www.mightyminnow.com/"
msgstr ""
#. Template Name of the plugin/theme
msgid "Archive - All Pages"
msgstr ""
+9 -12
View File
@@ -32,13 +32,10 @@ The Better Font Awesome Library contains a [Git submodule](http://git-scm.com/bo
git clone --recursive https://github.com/MickeyKay/better-font-awesome-library.git
```
Alternately, if you've already cloned the repo and need to add the submodules, you can run the following commands:
Alternately, if you've already cloned the repo and need to add the submodules, you can run the following command:
```
// Initialize all submodules.
git submodule init
// Pull in updated copies of all submodules.
git submodule update
// Initialize and update all submodules.
git submodule update --init --recursive
```
## Usage ##
@@ -46,16 +43,16 @@ git submodule update
2. Add the following code to your main plugin file or your theme's functions.php file.
```
// Include the main library file. Make sure to modify the path to match your directory structure.
require_once ( dirname( __FILE__ ) . '/better-font-awesome-library/better-font-awesome-library.php' );
add_action( 'plugins_loaded', 'my_prefix_load_bfa' );
add_action( 'init', 'my_prefix_load_bfa' );
/**
* Initialize the Better Font Awesome Library.
*
* (see usage notes below on proper hook priority)
*/
function my_prefix_load_bfa() {
// Include the main library file. Make sure to modify the path to match your directory structure.
require_once ( dirname( __FILE__ ) . '/better-font-awesome-library/better-font-awesome-library.php' );
// Set the library initialization args (defaults shown).
$args = array(
@@ -77,9 +74,9 @@ git submodule update
3. If desired, use the [Better Font Awesome Library object](#the-better-font-awesome-library-object) to manually include Font Awesome CSS, output lists of available icons, create your own shortcodes, and much more.
#### Usage Notes ####
The Better Font Awesome Library is designed to work in conjunction with the [Better Font Awesome](https://wordpress.org/plugins/better-font-awesome/) WordPress plugin. The plugin initializes this library (with its initialization args) on the `plugins_loaded` hook, priority `5`. When using the Better Font Awesome Library in your project, you have two options:
The Better Font Awesome Library is designed to work in conjunction with the [Better Font Awesome](https://wordpress.org/plugins/better-font-awesome/) WordPress plugin. The plugin initializes this library (with its initialization args) on the `init` hook, priority `5`. When using the Better Font Awesome Library in your project, you have two options:
1. Initialize later, to ensure that any Better Font Awesome plugin settings override yours.
1. Initialize later, to ensure that any Better Font Awesome plugin settings override yours (this is the default behavior, shown above by initializing the library on the `init` hook with default priority `10`.
1. Initialize earlier, to "take over" and prevent Better Font Awesome settings from having an effect.
## Initialization Parameters ($args) ##
+186 -154
View File
@@ -32,8 +32,8 @@ class Better_Font_Awesome_Library {
/**
* Better Font Awesome Library slug.
*
* @since 1.0.0
*
* @since 1.0.0
*
* @var string
*/
const SLUG = 'bfa';
@@ -42,7 +42,7 @@ class Better_Font_Awesome_Library {
* Better Font Awesome Library version slug.
*
* @since 1.0.0
*
*
* @var string
*/
const VERSION = '1.0.0';
@@ -51,16 +51,16 @@ class Better_Font_Awesome_Library {
* jsDelivr API URL for Font Awesome version info.
*
* @since 1.0.0
*
*
* @var string
*/
const JSDELIVR_API_URL = 'http://api.jsdelivr.com/v1/jsdelivr/libraries/fontawesome/?fields=versions,lastversion';
/**
* Initialization args.
*
* @since 1.0.0
*
* @since 1.0.0
*
* @var array
*/
private $args;
@@ -69,7 +69,7 @@ class Better_Font_Awesome_Library {
* Default args to use if any $arg isn't specified.
*
* @since 1.0.0
*
*
* @var array
*/
private $default_args = array(
@@ -82,6 +82,15 @@ class Better_Font_Awesome_Library {
'load_tinymce_plugin' => true,
);
/**
* Root URL of the library.
*
* @since 1.0.4
*
* @var string
*/
private $root_url;
/**
* Args for wp_remote_get() calls.
*
@@ -90,14 +99,15 @@ class Better_Font_Awesome_Library {
* @var array
*/
private $wp_remote_get_args = array(
'timeout' => 10
'timeout' => 10,
'sslverify' => false,
);
/**
* Array to hold the jsDelivr API data.
*
* @since 1.0.0
*
*
* @var string
*/
private $api_data = array();
@@ -106,7 +116,7 @@ class Better_Font_Awesome_Library {
* Version of Font Awesome being used.
*
* @since 1.0.0
*
*
* @var string
*/
private $font_awesome_version;
@@ -115,7 +125,7 @@ class Better_Font_Awesome_Library {
* Font Awesome stylesheet URL.
*
* @since 1.0.0
*
*
* @var string
*/
private $stylesheet_url;
@@ -124,7 +134,7 @@ class Better_Font_Awesome_Library {
* Font Awesome CSS.
*
* @since 1.0.0
*
*
* @var string
*/
private $css;
@@ -133,7 +143,7 @@ class Better_Font_Awesome_Library {
* Data associated with the local fallback version of Font Awesome.
*
* @since 1.0.0
*
*
* @var string
*/
private $fallback_data = array(
@@ -148,7 +158,7 @@ class Better_Font_Awesome_Library {
* Array of available Font Awesome icon slugs.
*
* @since 1.0.0
*
*
* @var string
*/
private $icons = array();
@@ -157,7 +167,7 @@ class Better_Font_Awesome_Library {
* Font Awesome prefix to be used ('icon' or 'fa').
*
* @since 1.0.0
*
*
* @var string
*/
private $prefix;
@@ -166,7 +176,7 @@ class Better_Font_Awesome_Library {
* Array to track errors and wp_remote_get() failures.
*
* @since 1.0.0
*
*
* @var array
*/
private $errors = array();
@@ -189,7 +199,7 @@ class Better_Font_Awesome_Library {
* @return Better_Font_Awesome_Library The BFAL object.
*/
public static function get_instance( $args = array() ) {
// If the single instance hasn't been set, set it now.
if ( null == self::$instance ) {
self::$instance = new self( $args );
@@ -238,6 +248,12 @@ class Better_Font_Awesome_Library {
// Get stylesheet and generate list of available icons in Font Awesome stylesheet.
$this->setup_stylesheet_data();
// Add Font Awesome and/or custom CSS to the editor.
$this->add_editor_styles();
// Output any necessary admin notices.
add_action( 'admin_notices', array( $this, 'do_admin_notice' ) );
/**
* Remove existing Font Awesome CSS and shortcodes if needed.
*
@@ -247,9 +263,9 @@ class Better_Font_Awesome_Library {
* remove them.
*/
if ( $this->args['remove_existing_fa'] ) {
add_action( 'wp_enqueue_scripts', array( $this, 'remove_font_awesome_css' ), 15 );
add_action( 'init', array( $this, 'remove_icon_shortcode' ), 15 );
add_action( 'init', array( $this, 'remove_icon_shortcode' ), 20 );
}
@@ -278,24 +294,19 @@ class Better_Font_Awesome_Library {
* Awesome CSS and shortcodes.
*/
if ( $this->args['load_shortcode'] || $this->args['load_tinymce_plugin'] ) {
add_action( 'init', array( $this, 'add_icon_shortcode' ), 15 );
add_action( 'init', array( $this, 'add_icon_shortcode' ), 20 );
}
// Add Font Awesome and/or custom CSS to the editor.
add_action( 'init', array( $this, 'add_editor_styles' ) );
// Load TinyMCE functionality.
if ( $this->args['load_tinymce_plugin'] ) {
add_action( 'admin_init', array( $this, 'add_tinymce_components' ) );
add_action( 'admin_head', array( $this, 'output_admin_head_variables' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'register_custom_admin_css' ), 15 );
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
// Add shortcode insertion button.
add_action( 'media_buttons', array( $this, 'add_insert_shortcode_button' ), 99 );
}
// Output any necessary admin notices.
add_action( 'admin_notices', array( $this, 'do_admin_notice' ) );
}
/**
@@ -308,6 +319,9 @@ class Better_Font_Awesome_Library {
// Parse the initialization args with the defaults.
$this->parse_args( $args );
// Setup root URL, which differs for plugins vs. themes.
$this->setup_root_url();
// Set fallback stylesheet directory URL and path.
$this->setup_fallback_data();
@@ -345,6 +359,45 @@ class Better_Font_Awesome_Library {
}
/**
* Set up root URL for library, which differs for plugins vs. themes.
*
* @since 1.0.4
*/
function setup_root_url() {
// Get BFA directory and theme root directory paths.
$bfa_directory = dirname(__FILE__);
$theme_directory = get_stylesheet_directory();
$plugin_dir = plugin_dir_url( __FILE__ );
/**
* Check if we're inside a theme or plugin.
*
* If we're in a theme, than plugin_dir_url() will return a
* funky URL that includes the actual file path (e.g.
* /srv/www/site_name/wp-content/...)
*/
$is_theme = false;
if ( strpos( $plugin_dir, $bfa_directory ) !== false ) {
$is_theme = true;
}
// First check if we're inside a theme.
if ( $is_theme ) {
// Get relative BFA directory by removing theme root directory path.
$bfa_rel_path = str_replace( $theme_directory, '', $bfa_directory );
$this->root_url = trailingslashit( get_stylesheet_directory_uri() . $bfa_rel_path );
} else { // Otherwise we're inside a plugin.
$this->root_url = trailingslashit( plugin_dir_url( __FILE__ ) );
}
}
/**
* Set up data for the local fallback version of Font Awesome.
*
@@ -366,7 +419,7 @@ class Better_Font_Awesome_Library {
// Set fallback path and URL.
$this->fallback_data['path'] = $directory_path . 'css/font-awesome' . $this->get_min_suffix() . '.css';
$this->fallback_data['url'] = plugins_url( $this->fallback_data['directory'] . 'css/font-awesome' . $this->get_min_suffix() . '.css', dirname( $directory_path ) );
$this->fallback_data['url'] = $this->root_url . $this->fallback_data['directory'] . 'css/font-awesome' . $this->get_min_suffix() . '.css';
// Get the fallback version based on package.json.
$fallback_json_file_path = $directory_path . 'package.json';
@@ -404,11 +457,11 @@ class Better_Font_Awesome_Library {
private function fetch_api_data( $url ) {
if ( false === ( $response = get_transient( self::SLUG . '-api-versions' ) ) ) {
$response = wp_remote_get( $url, $this->wp_remote_get_args );
if ( 200 == wp_remote_retrieve_response_code( $response ) ) {
// Decode the API data and grab the versions info.
$json_data = json_decode( wp_remote_retrieve_body( $response ) );
$response = $json_data[0];
@@ -431,7 +484,7 @@ class Better_Font_Awesome_Library {
$response = '';
} elseif ( isset( $response['response'] ) ) { // Check for 404 and other non-WP_ERROR codes
$this->set_error( 'api', $response['response']['code'], $response['response']['message'] . " (URL: $url)" );
$response = '';
@@ -496,9 +549,9 @@ class Better_Font_Awesome_Library {
$css_transient_latest_version = $this->get_css_transient_latest_version();
if ( version_compare( $css_transient_latest_version, $this->fallback_data['version'], '>' ) ) {
if ( version_compare( $css_transient_latest_version, $this->fallback_data['version'], '>' ) ) {
return $css_transient_latest_version;
} else {
} else {
return $this->fallback_data['version'];
}
@@ -515,7 +568,7 @@ class Better_Font_Awesome_Library {
private function get_css_transient_latest_version() {
$transient_css_array = get_transient( self::SLUG . '-css' );
if ( ! empty( $transient_css_array ) ) {
return max( array_keys( $transient_css_array ) );
} else {
@@ -564,14 +617,14 @@ class Better_Font_Awesome_Library {
*
* @return string $response Font Awesome CSS, from either:
* 1. transient,
* 2. wp_remote_get(), or
* 2. wp_remote_get(), or
* 3. fallback CSS.
*/
private function get_css( $url, $version ) {
// First try getting the transient CSS.
$response = $this->get_transient_css( $version );
// Next, try fetching the CSS from the remote jsDelivr CDN.
if ( ! $response ) {
$response = $this->get_remote_css( $url, $version );
@@ -621,7 +674,7 @@ class Better_Font_Awesome_Library {
* @return string Transient CSS if it exists, otherwise null.
*/
private function get_transient_css( $version ) {
$transient_css_array = get_transient( self::SLUG . '-css' );
return isset( $transient_css_array[ $version ] ) ? $transient_css_array[ $version ] : '';
@@ -643,13 +696,13 @@ class Better_Font_Awesome_Library {
// Get the remote Font Awesome CSS.
$url = set_url_scheme( $url );
$response = wp_remote_get( $url, $this->wp_remote_get_args );
/**
* If fetch was successful, return the remote CSS, and set the CSS
* transient for this version. Otherwise, return a WP_Error object.
*/
if ( 200 == wp_remote_retrieve_response_code( $response ) ) {
$response = wp_remote_retrieve_body( $response );
$this->set_css_transient( $version, $response );
@@ -681,7 +734,7 @@ class Better_Font_Awesome_Library {
* Awesome version.
*/
$transient_css_array = get_transient( self::SLUG . '-css' );
// Set the new value for the specified Font Awesome version.
$transient_css_array[ $version ] = $value;
@@ -693,7 +746,7 @@ class Better_Font_Awesome_Library {
* @param int Expiration for the CSS transient.
*/
$transient_expiration = apply_filters( 'bfa_css_transient_expiration', 30 * DAY_IN_SECONDS );
// Set the new CSS array transient.
set_transient( self::SLUG . '-css', $transient_css_array, $transient_expiration );
@@ -720,7 +773,7 @@ class Better_Font_Awesome_Library {
* @return array All available icon names (e.g. adjust, car, pencil).
*/
private function setup_icon_array( $css ) {
$icons = array();
$hex_codes = array();
@@ -742,7 +795,7 @@ class Better_Font_Awesome_Library {
* Filter the array of available icons.
*
* @since 1.0.0
*
*
* @param array $icons Array of all available icons.
*/
$icons = apply_filters( 'bfa_icon_list', $icons );
@@ -787,12 +840,12 @@ class Better_Font_Awesome_Library {
* @since 1.0.0
*/
public function remove_font_awesome_css() {
global $wp_styles;
// Loop through all registered styles and remove any that appear to be Font Awesome.
foreach ( $wp_styles->registered as $script => $details ) {
if ( false !== strpos( $script, 'fontawesome' ) || false !== strpos( $script, 'font-awesome' ) ) {
wp_dequeue_style( $script );
}
@@ -832,15 +885,15 @@ class Better_Font_Awesome_Library {
* @return string $output Icon HTML (e.g. <i class="fa fa-car"></i>).
*/
public function render_shortcode( $atts ) {
extract( shortcode_atts( array(
'name' => '',
'class' => '',
'name' => '',
'class' => '',
'unprefixed_class' => '',
'title' => '', /* For compatibility with other plugins */
'size' => '', /* For compatibility with other plugins */
'space' => '',
), $atts )
'title' => '', /* For compatibility with other plugins */
'size' => '', /* For compatibility with other plugins */
'space' => '',
), $atts )
);
/**
@@ -856,19 +909,27 @@ class Better_Font_Awesome_Library {
// This helps both:
// 1. Incorrect shortcodes (when user includes full class name including prefix)
// 2. Old shortcodes from other plugins that required prefixes
/**
* Strip 'icon-' and 'fa-' from $name.
*
* Strip 'icon-' and 'fa-' from the BEGINNING of $name.
*
* This corrects for:
* 1. Incorrect shortcodes (when user includes full class name including prefix)
* 2. Old shortcodes from other plugins that required prefixes
*/
$name = str_replace( 'icon-', '', $name );
$prefixes = array( 'icon-', 'fa-' );
foreach ( $prefixes as $prefix ) {
if ( substr( $name, 0, strlen( $prefix ) ) == $prefix ) {
$name = substr( $name, strlen( $prefix ) );
}
}
$name = str_replace( 'fa-', '', $name );
// Add the version-specific prefix back on to $name.
$icon_name = $this->prefix . '-' . $name;
// Add the version-specific prefix back on to $name, if it exists.
$icon_name = $this->prefix ? $this->prefix . '-' . $name : $name;
// Remove "icon-" and "fa-" from the icon class.
$class = str_replace( 'icon-', '', $class );
@@ -879,7 +940,11 @@ class Better_Font_Awesome_Library {
$class = preg_replace( '/\s{3,}/', ' ', $class );
// Add the version-specific prefix back on to each class.
$class = $class ? ' ' . $this->prefix . '-' . str_replace( ' ', ' ' . $this->prefix . '-', $class ) : '';
$class_array = explode( ' ', $class );
foreach ( $class_array as $index => $class ) {
$class_array[ $index ] = $this->prefix ? $this->prefix . '-' . $class : $class;
}
$class = implode( ' ', $class_array );
// Add unprefixed classes.
$class .= $unprefixed_class ? ' ' . $unprefixed_class : '';
@@ -894,9 +959,11 @@ class Better_Font_Awesome_Library {
$class = apply_filters( 'bfa_icon_class', $class, $name );
// Generate the HTML <i> icon element output.
$output = sprintf( '<i class="%s %s" %s>%s</i>',
$output = sprintf( '<i class="%s %s %s %s" %s>%s</i>',
$this->prefix,
$icon_name . $class . $size,
$icon_name,
$class,
$size,
$title,
$space
);
@@ -931,89 +998,54 @@ class Better_Font_Awesome_Library {
add_editor_style( $this->stylesheet_url );
}
/**
* Add TinyMCE button functionality.
*
* @since 1.0.0
*/
function add_tinymce_components() {
if ( ! current_user_can( 'edit_posts' ) && ! current_user_can( 'edit_pages' ) ) {
return;
}
if ( get_user_option( 'rich_editing' ) == 'true' ) {
add_filter( 'mce_external_plugins', array( $this, 'register_tinymce_plugin' ) );
add_filter( 'mce_buttons', array( $this, 'add_tinymce_buttons' ) );
}
}
/**
* Load TinyMCE Font Awesome dropdown plugin.
*
* @since 1.0.0
*/
function register_tinymce_plugin( $plugin_array ) {
global $tinymce_version;
/**
* Register the correct TinyMCE plugin based on the version of TinyMCE
* being used.
*/
if ( version_compare( $tinymce_version, '4000', '>=' ) ) {
$plugin_array['bfa_plugin'] = plugins_url( 'js/tinymce-icons.js', __FILE__ );
} else {
$plugin_array['bfa_plugin'] = plugins_url( 'js/tinymce-icons-old.js', __FILE__ );
}
return $plugin_array;
}
/**
* Add the TinyMCE button(s).
*
* @since 1.0.0
*/
function add_tinymce_buttons( $buttons ) {
array_push( $buttons, 'bfaSelect' );
return $buttons;
}
/**
* Add PHP variables in HTML <head> for use by TinyMCE JavaScript.
*
* @since 1.0.0
*/
function output_admin_head_variables() {
$icon_list = implode( ",", $this->icons );
?>
<!-- Better Font Awesome PHP variables for use by TinyMCE JavaScript -->
<script type='text/javascript'>
var bfa_vars = {
'fa_prefix': '<?php echo $this->prefix; ?>',
'fa_icons': '<?php echo $icon_list; ?>',
};
</script>
<!-- End Better Font Awesome PHP variables for use by TinyMCE JavaScript -->
<?php
}
/**
* Load admin CSS.
*
* @since 1.0.0
*/
public function register_custom_admin_css() {
wp_enqueue_style( self::SLUG . '-admin-styles', plugins_url( 'css/admin-styles.css', __FILE__ ) );
public function enqueue_admin_scripts() {
// Check whether to get minified or non-minified files.
$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
// Custom admin CSS.
wp_enqueue_style( self::SLUG . '-admin', $this->root_url . 'css/admin-styles.css' );
// Custom admin JS.
wp_enqueue_script( self::SLUG . '-admin', $this->root_url . 'js/admin.js' );
// Icon picker JS and CSS.
wp_enqueue_style( 'fontawesome-iconpicker', $this->root_url . 'lib/fontawesome-iconpicker/css/fontawesome-iconpicker' . $suffix . '.css' );
wp_enqueue_script( 'fontawesome-iconpicker', $this->root_url . 'lib/fontawesome-iconpicker/js/fontawesome-iconpicker' . $suffix . '.js' );
// Output PHP variables to JS.
$bfa_vars = array(
'fa_prefix' => $this->prefix,
'fa_icons' => $this->get_icons(),
);
wp_localize_script( self::SLUG . '-admin', 'bfa_vars', $bfa_vars );
}
/**
* [add_insert_shortcode_button description]
*
* @since 1.3.0
*/
public function add_insert_shortcode_button() {
ob_start();
?>
<span class="bfa-iconpicker fontawesome-iconpicker" data-selected="fa-flag">
<a href="#" class="button button-secondary iconpicker-component">
<span class="fa icon fa-flag icon-flag"></span>&nbsp;
<?php esc_html_e( 'Insert Icon', 'better-font-awesome' ); ?>
<i class="change-icon-placeholder"></i>
</a>
</span>
<?php
echo ob_get_clean();
}
/**
@@ -1021,7 +1053,7 @@ class Better_Font_Awesome_Library {
*
* @since 1.0.0
*/
public function do_admin_notice() {
public function do_admin_notice() {
if ( ! empty( $this->errors ) && apply_filters( 'bfa_show_errors', true ) ) :
?>
@@ -1029,13 +1061,13 @@ class Better_Font_Awesome_Library {
<p>
<b><?php _e( 'Better Font Awesome', 'better-font-awesome' ); ?></b>
</p>
<!-- API Error -->
<?php if ( is_wp_error ( $this->get_error('api') ) ) : ?>
<p>
<b><?php _e( 'API Error', 'better-font-awesome' ); ?></b><br />
<?php
printf( __( 'The attempt to reach the jsDelivr API server failed with the following error: %s', 'better-font-awesome' ),
<?php
printf( __( 'The attempt to reach the jsDelivr API server failed with the following error: %s', 'better-font-awesome' ),
'<code>' . $this->get_error('api')->get_error_code() . ': ' . $this->get_error('api')->get_error_message() . '</code>'
);
?>
@@ -1046,8 +1078,8 @@ class Better_Font_Awesome_Library {
<?php if ( is_wp_error ( $this->get_error('css') ) ) : ?>
<p>
<b><?php _e( 'Remote CSS Error', 'better-font-awesome' ); ?></b><br />
<?php
printf( __( 'The attempt to fetch the remote Font Awesome stylesheet failed with the following error: %s %s The embedded fallback Font Awesome will be used instead (version: %s).', 'better-font-awesome' ),
<?php
printf( __( 'The attempt to fetch the remote Font Awesome stylesheet failed with the following error: %s %s The embedded fallback Font Awesome will be used instead (version: %s).', 'better-font-awesome' ),
'<code>' . $this->get_error('css')->get_error_code() . ': ' . $this->get_error('css')->get_error_message() . '</code>',
'<br />',
'<code>' . $this->font_awesome_version . '</code>'
@@ -1088,7 +1120,7 @@ class Better_Font_Awesome_Library {
* @return string $contents Content of local file.
*/
private function get_local_file_contents( $file_path ) {
ob_start();
include $file_path;
$contents = ob_get_clean();
@@ -1117,7 +1149,7 @@ class Better_Font_Awesome_Library {
* @param string $error_type Type of error (api, css, etc).
* @param string $code Error code.
* @param string $message Error message.
*/
*/
private function set_error( $error_type, $code, $message ) {
$this->errors[ $error_type ] = new WP_Error( $code, $message );
}
@@ -1147,7 +1179,7 @@ class Better_Font_Awesome_Library {
if ( $this->api_data ) {
return true;
} else {
return false;
return false;
}
}
@@ -1162,7 +1194,7 @@ class Better_Font_Awesome_Library {
* @return mixed $value Value associated with specified key.
*/
public function get_api_value( $key ) {
if ( $this->api_data ) {
$value = $this->api_data->$key;
} else {
+42 -38
View File
@@ -8,49 +8,53 @@
* @copyright 2014 MIGHTYminnow & Mickey Kay
*/
/**
* TinyMCE
*/
/* Override TinyMCE rules blocking these native Font Awesome styles */
#menu_content_content_bfaSelect_menu .icon-fw,
#menu_content_content_bfaSelect_menu .fa-fw,
.mce-stack-layout-item .icon-fw,
.mce-stack-layout-item .fa-fw {
display: inline-block;
width: 1.2857142857142858em;
text-align: center;
}
/* Override TinyMCE icon font family */
.fa {
font-family: FontAwesome !important;
}
/* BFA select icon (for versions < TinyMCE 4) */
[id*="bfaSelect_text"]:before {
content: "\f024";
margin-right: .5em;
font-family: FontAwesome;
}
/**
* Settings page
* TinyMCE Button & Popup
*/
.bfa-usage-text {
padding: 20px;
.bfa-iconpicker .iconpicker-popover {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
list-style: none;
font-size: 14px;
background-color: #fff;
border: 1px solid #efefef;
border: 1px solid #ccc;
border: 1px solid rgba(0,0,0,.15);
border-radius: 4px;
-webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175);
box-shadow: 0 6px 12px rgba(0,0,0,.175);
background-clip: padding-box;
}
.bfa-usage-text h3 {
margin-top: 0;
.bfa-iconpicker .iconpicker-popover .arrow {
display: none !important;
}
.bfa-usage-text .fa,
.bfa-usage-text .icon {
width: 40px;
text-align: center;
box-sizing: border-box;
}
.bfa-iconpicker .iconpicker-item {
/* Override some unfortunate WP default admin mobile styles */
width: 14px !important;
height: 14px !important;
padding: 14px !important;
font-size: 14px !important;
line-height: 1 !important;
box-shadow: 0 0 0 1px #ddd !important;
}
.bfa-iconpicker input[type="search"] {
width: 100%;
}
.bfa-iconpicker .iconpicker-popover.popover {
width: 253px;
}
.bfa-iconpicker .iconpicker-component i {
display: none;
}
@@ -0,0 +1,43 @@
/**
* Better Font Awesome Library admin JS.
*
* @since 1.0.3
*
* @package Better Font Awesome Library
*/
( function( $ ) {
$( document ).on( 'ready tinymce-editor-init', function() {
$( '.bfa-iconpicker' ).not( '.initialized' )
.addClass( 'initialized' )
.iconpicker({
placement: 'bottomLeft',
hideOnSelect: true,
animation: false,
selectedCustomClass: 'selected',
icons: bfa_vars.fa_icons,
fullClassFormatter: function( val ) {
if ( bfa_vars.fa_prefix ) {
return bfa_vars.fa_prefix + ' ' + bfa_vars.fa_prefix + '-' + val;
} else {
return val;
}
},
})
.on( 'click', function( e ) {
e.preventDefault();
$( this ).find( '.iconpicker-search' ).focus();
})
.on( 'iconpickerSelect', function( e ) {
wp.media.editor.insert( icon_shortcode( e.iconpickerItem.context.title.replace( '.', '' ) ) );
});
});
function icon_shortcode( icon ) {
return '[icon name="' + icon + '" class="" unprefixed_class=""]';
}
} )( jQuery );
@@ -1,43 +0,0 @@
(function() {
if( typeof bfa_vars != 'undefined' ) {
var icons = bfa_vars.fa_icons.split(',');
var prefix = bfa_vars.fa_prefix;
var icon_i = function(id) {
return '<i class="fa ' + prefix + '-' + 'fw ' + prefix + '-' + id + '"></i>';
}
var icon_shortcode = function(id) {
return '[icon name="' + id + '" class=""]';
}
var createControl = function(name, controlManager) {
if (name != 'bfaSelect') return null;
var listBox = controlManager.createListBox('bfaSelect', {
title: 'Icons',
onselect: function(v) {
var editor = this.control_manager.editor;
if (v) {
editor.selection.setContent(icon_shortcode(v));
}
return false;
}
});
for (var i = 0; i < icons.length; i++) {
var _id = icons[i];
listBox.add(icon_i(_id) + ' ' + _id, _id);
}
return listBox;
};
tinymce.create('tinymce.plugins.bfa_plugin', {
createControl: createControl
});
tinymce.PluginManager.add('bfa_plugin', tinymce.plugins.bfa_plugin);
}
})();
@@ -1,48 +0,0 @@
( function() {
"use strict";
var icons = bfa_vars.fa_icons.split(',');
var prefix = bfa_vars.fa_prefix;
var icon_shortcode = function(id) {
return '[icon name="' + id + '" class=""]';
}
var bfaSelect = function( editor, url ) {
editor.addButton('bfaSelect', function() {
var values = [];
for (var i = 0; i < icons.length; i++) {
var _id = icons[i];
values.push({text: _id, value: _id, icon: ' fa fa-fw icon-fw fa-' + _id + ' icon-' + _id });
}
return {
type: 'listbox',
name: 'bfaSelect',
tooltip: 'Better Font Awesome Icons',
icon: ' fa fa-flag icon-flag',
text: 'Icons',
label: 'Select :',
fixedWidth: true,
values: values,
onselect: function(e) {
if (e) {
editor.insertContent(icon_shortcode(e.control.settings.value));
}
// Reset back to inital "Icons" text
this.value(null);
return false;
},
onPostRender: function() {
this.addClass('bfaSelect');
}
};
});
};
tinymce.PluginManager.add( 'bfa_plugin', bfaSelect );
} )();
@@ -1,42 +0,0 @@
*.pyc
*.egg-info
*.db
*.db.old
*.swp
*.db-journal
.coverage
.DS_Store
.installed.cfg
_gh_pages/*
.idea/*
.svn/*
src/website/static/*
src/website/media/*
bin
cfcache
develop-eggs
dist
downloads
eggs
parts
tmp
.sass-cache
node_modules
src/website/settingslocal.py
stunnel.log
.ruby-version
# don't need these in the npm package.
src/
_config.yml
bower.json
component.json
composer.json
CONTRIBUTING.md
Gemfile
Gemfile.lock
+86 -6
View File
@@ -1,7 +1,87 @@
# Font Awesome #
This is a custom version of the Font Awesome repo pared down to only include:
* package.json
* /css
* /fonts
#[Font Awesome v4.3.0](http://fontawesome.io)
###The iconic font and CSS framework
It is intended to be as small as possible while still including all of the necessary components to embed Font Awesome in a project.
Font Awesome is a full suite of 519 pictographic icons for easy scalable vector graphics on websites,
created and maintained by [Dave Gandy](http://twitter.com/davegandy).
Stay up to date with the latest release and announcements on Twitter:
[@fontawesome](http://twitter.com/fontawesome).
Get started at http://fontawesome.io!
##License
- The Font Awesome font is licensed under the SIL OFL 1.1:
- http://scripts.sil.org/OFL
- Font Awesome CSS, LESS, and Sass files are licensed under the MIT License:
- http://opensource.org/licenses/mit-license.html
- The Font Awesome documentation is licensed under the CC BY 3.0 License:
- http://creativecommons.org/licenses/by/3.0/
- Attribution is no longer required as of Font Awesome 3.0, but much appreciated:
- `Font Awesome by Dave Gandy - http://fontawesome.io`
- Full details: http://fontawesome.io/license
##Changelog
- v3.0.0 - all icons redesigned from scratch, optimized for Bootstrap's 14px default
- v3.0.1 - much improved rendering in webkit, various bug fixes
- v3.0.2 - much improved rendering and alignment in IE7
- v3.1.0 - Added 54 icons, icon stacking styles, flipping and rotating icons, removed Sass support
- [v3.1.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=4&page=1&state=closed)
- [v3.2.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=3&page=1&state=closed)
- [v3.2.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=5&page=1&state=closed)
- [v4.0.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=2&page=1&state=closed)
- [v4.0.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=7&page=1&state=closed)
- [v4.0.2 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=8&page=1&state=closed)
- [v4.0.3 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=9&page=1&state=closed)
- [v4.1.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=6&page=1&state=closed)
- [v4.2.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=12&page=1&state=closed)
- [v4.3.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.3.0+is%3Aclosed)
## Contributing
Please read through our [contributing guidelines](https://github.com/FortAwesome/Font-Awesome/blob/master/CONTRIBUTING.md).
Included are directions for opening issues, coding standards, and notes on development.
##Versioning
Font Awesome will be maintained under the Semantic Versioning guidelines as much as possible. Releases will be numbered
with the following format:
`<major>.<minor>.<patch>`
And constructed with the following guidelines:
* Breaking backward compatibility bumps the major (and resets the minor and patch)
* New additions, including new icons, without breaking backward compatibility bumps the minor (and resets the patch)
* Bug fixes and misc changes bumps the patch
For more information on SemVer, please visit http://semver.org.
##Author
- Email: dave@fontawesome.io
- Twitter: http://twitter.com/davegandy
- GitHub: https://github.com/davegandy
##Component
To include as a [component](http://github.com/component/component), just run
$ component install FortAwesome/Font-Awesome
Or add
"FortAwesome/Font-Awesome": "*"
to the `dependencies` in your `component.json`.
## Hacking on Font Awesome
From the root of the repository, install the tools used to develop.
$ bundle install
$ npm install
Build the project and documentation:
$ bundle exec jekyll build
Or serve it on a local server on http://localhost:7998/Font-Awesome/:
$ bundle exec jekyll -w serve
@@ -1,13 +1,13 @@
/*!
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
* Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url('../fonts/fontawesome-webfont.eot?v=4.2.0');
src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
src: url('../fonts/fontawesome-webfont.eot?v=4.3.0');
src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
@@ -18,6 +18,7 @@
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
@@ -80,6 +81,10 @@
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
@@ -610,6 +615,7 @@
.fa-twitter:before {
content: "\f099";
}
.fa-facebook-f:before,
.fa-facebook:before {
content: "\f09a";
}
@@ -1259,7 +1265,8 @@
.fa-male:before {
content: "\f183";
}
.fa-gittip:before {
.fa-gittip:before,
.fa-gratipay:before {
content: "\f184";
}
.fa-sun-o:before {
@@ -1526,6 +1533,7 @@
.fa-history:before {
content: "\f1da";
}
.fa-genderless:before,
.fa-circle-thin:before {
content: "\f1db";
}
@@ -1670,3 +1678,124 @@
.fa-meanpath:before {
content: "\f20c";
}
.fa-buysellads:before {
content: "\f20d";
}
.fa-connectdevelop:before {
content: "\f20e";
}
.fa-dashcube:before {
content: "\f210";
}
.fa-forumbee:before {
content: "\f211";
}
.fa-leanpub:before {
content: "\f212";
}
.fa-sellsy:before {
content: "\f213";
}
.fa-shirtsinbulk:before {
content: "\f214";
}
.fa-simplybuilt:before {
content: "\f215";
}
.fa-skyatlas:before {
content: "\f216";
}
.fa-cart-plus:before {
content: "\f217";
}
.fa-cart-arrow-down:before {
content: "\f218";
}
.fa-diamond:before {
content: "\f219";
}
.fa-ship:before {
content: "\f21a";
}
.fa-user-secret:before {
content: "\f21b";
}
.fa-motorcycle:before {
content: "\f21c";
}
.fa-street-view:before {
content: "\f21d";
}
.fa-heartbeat:before {
content: "\f21e";
}
.fa-venus:before {
content: "\f221";
}
.fa-mars:before {
content: "\f222";
}
.fa-mercury:before {
content: "\f223";
}
.fa-transgender:before {
content: "\f224";
}
.fa-transgender-alt:before {
content: "\f225";
}
.fa-venus-double:before {
content: "\f226";
}
.fa-mars-double:before {
content: "\f227";
}
.fa-venus-mars:before {
content: "\f228";
}
.fa-mars-stroke:before {
content: "\f229";
}
.fa-mars-stroke-v:before {
content: "\f22a";
}
.fa-mars-stroke-h:before {
content: "\f22b";
}
.fa-neuter:before {
content: "\f22c";
}
.fa-facebook-official:before {
content: "\f230";
}
.fa-pinterest-p:before {
content: "\f231";
}
.fa-whatsapp:before {
content: "\f232";
}
.fa-server:before {
content: "\f233";
}
.fa-user-plus:before {
content: "\f234";
}
.fa-user-times:before {
content: "\f235";
}
.fa-hotel:before,
.fa-bed:before {
content: "\f236";
}
.fa-viacoin:before {
content: "\f237";
}
.fa-train:before {
content: "\f238";
}
.fa-subway:before {
content: "\f239";
}
.fa-medium:before {
content: "\f23a";
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata></metadata>
<defs>
<font id="fontawesomeregular" horiz-adv-x="1536" >
@@ -147,14 +147,14 @@
<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5 l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5 t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
<glyph unicode="&#xf080;" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf082;" d="M1536 160q0 -119 -84.5 -203.5t-203.5 -84.5h-192v608h203l30 224h-233v143q0 54 28 83t96 29l132 1v207q-96 9 -180 9q-136 0 -218 -80.5t-82 -225.5v-166h-224v-224h224v-608h-544q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5v-960z" />
<glyph unicode="&#xf082;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960z" />
<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
@@ -275,7 +275,7 @@
<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
<glyph unicode="&#xf110;" horiz-adv-x="1568" d="M496 192q0 -60 -42.5 -102t-101.5 -42q-60 0 -102 42t-42 102t42 102t102 42q59 0 101.5 -42t42.5 -102zM928 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -66 -47 -113t-113 -47t-113 47t-47 113 t47 113t113 47t113 -47t47 -113zM1360 192q0 -46 -33 -79t-79 -33t-79 33t-33 79t33 79t79 33t79 -33t33 -79zM528 1088q0 -73 -51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5t51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5zM992 1280q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1536 640q0 -40 -28 -68t-68 -28t-68 28t-28 68t28 68t68 28t68 -28t28 -68zM1328 1088q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5z" />
<glyph unicode="&#xf110;" horiz-adv-x="1792" d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
@@ -411,7 +411,7 @@
<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
<glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5 t-59.5 -93t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5 t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32z" />
<glyph unicode="&#xf1a1;" horiz-adv-x="1984" d="M831 572q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98zM1292 711q56 0 96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96q0 57 41.5 98t97.5 41zM1984 722q0 -62 -31 -114t-83 -82q5 -33 5 -61 q0 -121 -68.5 -230.5t-197.5 -193.5q-125 -82 -285.5 -125.5t-335.5 -43.5q-176 0 -336.5 43.5t-284.5 125.5q-129 84 -197.5 193t-68.5 231q0 29 5 66q-48 31 -77 81.5t-29 109.5q0 94 66 160t160 66q83 0 148 -55q248 158 592 164l134 423q4 14 17.5 21.5t28.5 4.5 l347 -82q22 50 68.5 81t102.5 31q77 0 131.5 -54.5t54.5 -131.5t-54.5 -132t-131.5 -55q-76 0 -130.5 54t-55.5 131l-315 74l-116 -366q327 -14 560 -166q64 58 151 58q94 0 160 -66t66 -160zM1664 1459q-45 0 -77 -32t-32 -77t32 -77t77 -32t77 32t32 77t-32 77t-77 32z M77 722q0 -67 51 -111q49 131 180 235q-36 25 -82 25q-62 0 -105.5 -43.5t-43.5 -105.5zM1567 105q112 73 171.5 166t59.5 194t-59.5 193.5t-171.5 165.5q-116 75 -265.5 115.5t-313.5 40.5t-313.5 -40.5t-265.5 -115.5q-112 -73 -171.5 -165.5t-59.5 -193.5t59.5 -194 t171.5 -166q116 -75 265.5 -115.5t313.5 -40.5t313.5 40.5t265.5 115.5zM1850 605q57 46 57 117q0 62 -43.5 105.5t-105.5 43.5q-49 0 -86 -28q131 -105 178 -238zM1258 237q11 11 27 11t27 -11t11 -27.5t-11 -27.5q-99 -99 -319 -99h-2q-220 0 -319 99q-11 11 -11 27.5 t11 27.5t27 11t27 -11q77 -77 265 -77h2q188 0 265 77z" />
<glyph unicode="&#xf1a1;" horiz-adv-x="2304" d="M1509 107q0 -14 -12 -29q-52 -59 -147.5 -83t-196.5 -24q-252 0 -346 107q-12 15 -12 29q0 17 12 29.5t29 12.5q15 0 30 -12q58 -49 125.5 -66t159.5 -17t160 17t127 66q15 12 30 12q17 0 29 -12.5t12 -29.5zM978 498q0 -61 -43 -104t-104 -43q-60 0 -104.5 43.5 t-44.5 103.5q0 61 44 105t105 44t104 -44t43 -105zM1622 498q0 -61 -43 -104t-104 -43q-60 0 -104.5 43.5t-44.5 103.5q0 61 44 105t105 44t104 -44t43 -105zM415 793q-39 27 -88 27q-66 0 -113 -47t-47 -113q0 -72 54 -121q53 141 194 254zM2020 382q0 222 -249 387 q-128 85 -291.5 126.5t-331.5 41.5t-331.5 -41.5t-292.5 -126.5q-249 -165 -249 -387t249 -387q129 -85 292.5 -126.5t331.5 -41.5t331.5 41.5t291.5 126.5q249 165 249 387zM2137 660q0 66 -47 113t-113 47q-50 0 -93 -30q140 -114 192 -256q61 48 61 126zM1993 1335 q0 49 -34.5 83.5t-82.5 34.5q-49 0 -83.5 -34.5t-34.5 -83.5q0 -48 34.5 -82.5t83.5 -34.5q48 0 82.5 34.5t34.5 82.5zM2220 660q0 -65 -33 -122t-89 -90q5 -35 5 -66q0 -139 -79 -255.5t-208 -201.5q-140 -92 -313.5 -136.5t-354.5 -44.5t-355 44.5t-314 136.5 q-129 85 -208 201.5t-79 255.5q0 36 6 71q-53 33 -83.5 88.5t-30.5 118.5q0 100 71 171.5t172 71.5q91 0 159 -60q265 170 638 177l144 456q10 29 40 29q24 0 384 -90q24 55 74 88t110 33q82 0 141 -59t59 -142t-59 -141.5t-141 -58.5q-83 0 -141.5 58.5t-59.5 140.5 l-339 80l-125 -395q349 -15 603 -179q71 63 163 63q101 0 172 -71.5t71 -171.5z" />
<glyph unicode="&#xf1a2;" d="M950 393q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18t8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51zM671 613q0 -37 -26 -64t-63 -27t-63 27t-26 64t26 63t63 26t63 -26t26 -63zM1214 1049q-29 0 -50 21t-21 50 q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21zM1216 1408q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227v894q0 133 94 227t226 94h896zM1321 596q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48 q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43q-51 0 -87 -36.5t-36 -87.5q0 -37 19.5 -67.5t52.5 -45.5 q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54zM971 702q37 0 63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64t26 63t63 26z" />
<glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
@@ -438,7 +438,7 @@
<glyph unicode="&#xf1ba;" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
<glyph unicode="&#xf1bb;" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
<glyph unicode="&#xf1bc;" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf1bd;" d="M1397 1408q58 0 98.5 -40.5t40.5 -98.5v-1258q0 -58 -40.5 -98.5t-98.5 -40.5h-1258q-58 0 -98.5 40.5t-40.5 98.5v1258q0 58 40.5 98.5t98.5 40.5h1258zM1465 11v1258q0 28 -20 48t-48 20h-1258q-28 0 -48 -20t-20 -48v-1258q0 -28 20 -48t48 -20h1258q28 0 48 20t20 48 zM694 749l188 -387l533 145v-496q0 -7 -5.5 -12.5t-12.5 -5.5h-1258q-7 0 -12.5 5.5t-5.5 12.5v141l711 195l-212 439q4 1 12 2.5t12 1.5q170 32 303.5 21.5t221 -46t143.5 -94.5q27 -28 -25 -42q-64 -16 -256 -62l-97 198q-111 7 -240 -16zM1397 1287q7 0 12.5 -5.5 t5.5 -12.5v-428q-85 30 -188 52q-294 64 -645 12l-18 -3l-65 134h-233l85 -190q-132 -51 -230 -137v560q0 7 5.5 12.5t12.5 5.5h1258zM286 387q-14 -3 -26 4.5t-14 21.5q-24 203 166 305l129 -270z" />
<glyph unicode="&#xf1bd;" horiz-adv-x="1024" d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236q0 -11 -8 -19 t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22v899 q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
<glyph unicode="&#xf1c0;" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
<glyph unicode="&#xf1c1;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
@@ -513,8 +513,53 @@
<glyph unicode="&#xf20a;" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
<glyph unicode="&#xf20b;" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf20c;" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
<glyph unicode="&#xf20d;" horiz-adv-x="1792" />
<glyph unicode="&#xf20e;" horiz-adv-x="1792" />
<glyph unicode="&#xf20d;" d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
<glyph unicode="&#xf20e;" horiz-adv-x="2048" d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360q2 0 4.5 -1t5.5 -2.5l5 -2.5l188 199v347l-187 194 q-13 -8 -29 -10zM986 1438h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13 zM552 226h402l64 66l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224 l213 -225zM1023 946l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196 l-48 -227l130 227h-82zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" />
<glyph unicode="&#xf210;" d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
<glyph unicode="&#xf211;" d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
<glyph unicode="&#xf212;" horiz-adv-x="2048" d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 q209 0 374 -102q172 107 374 102z" />
<glyph unicode="&#xf213;" horiz-adv-x="2048" d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" />
<glyph unicode="&#xf214;" d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 t-43 -34t-16.5 -53.5z" />
<glyph unicode="&#xf215;" horiz-adv-x="2048" d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
<glyph unicode="&#xf216;" horiz-adv-x="2048" d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126.5t-103.5 132.5t-108.5 126t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" />
<glyph unicode="&#xf217;" horiz-adv-x="1664" d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf218;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf219;" horiz-adv-x="2048" d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
<glyph unicode="&#xf21a;" horiz-adv-x="2048" d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" />
<glyph unicode="&#xf21b;" d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" />
<glyph unicode="&#xf21c;" horiz-adv-x="2304" d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" />
<glyph unicode="&#xf21d;" d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5z" />
<glyph unicode="&#xf21e;" horiz-adv-x="1792" d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 t127 -344z" />
<glyph unicode="&#xf221;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
<glyph unicode="&#xf222;" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h416q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-419 -420q87 -104 129.5 -236.5t30.5 -276.5q-22 -250 -200.5 -431t-428.5 -206q-163 -17 -314 39.5t-256.5 162t-162 256.5t-39.5 314q25 250 206 428.5 t431 200.5q144 12 276.5 -30.5t236.5 -129.5l419 419h-261q-14 0 -23 9t-9 23v64zM704 -128q117 0 223.5 45.5t184 123t123 184t45.5 223.5t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123 t223.5 -45.5z" />
<glyph unicode="&#xf223;" horiz-adv-x="1280" d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf224;" d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf225;" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf226;" horiz-adv-x="1792" d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 q0 -226 -154 -391q103 -57 218 -57z" />
<glyph unicode="&#xf227;" horiz-adv-x="1920" d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -29 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" />
<glyph unicode="&#xf228;" horiz-adv-x="2048" d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" />
<glyph unicode="&#xf229;" horiz-adv-x="1792" d="M1728 1536q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-229 -230l156 -156q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-156 157l-99 -100q87 -104 129.5 -236.5t30.5 -276.5q-22 -250 -200.5 -431t-428.5 -206q-163 -17 -314 39.5 t-256.5 162t-162 256.5t-39.5 314q25 250 206 428.5t431 200.5q144 12 276.5 -30.5t236.5 -129.5l99 99l-156 156q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l156 -156l229 229h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM1280 448q0 117 -45.5 223.5t-123 184t-184 123 t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5z" />
<glyph unicode="&#xf22a;" horiz-adv-x="1280" d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf22b;" horiz-adv-x="2048" d="M2029 685q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-131q-12 -119 -67 -226t-139 -183.5t-196.5 -121.5t-234.5 -45q-180 0 -330.5 91t-234.5 247 t-74 337q8 162 94 300t226.5 219.5t302.5 85.5q166 4 310.5 -71.5t235.5 -208.5t107 -296h131v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM640 128q104 0 198.5 40.5t163.5 109.5t109.5 163.5 t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
<glyph unicode="&#xf22c;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf22d;" horiz-adv-x="1792" />
<glyph unicode="&#xf22e;" horiz-adv-x="1792" />
<glyph unicode="&#xf22f;" horiz-adv-x="1792" />
<glyph unicode="&#xf230;" d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
<glyph unicode="&#xf231;" horiz-adv-x="1280" d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
<glyph unicode="&#xf232;" d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
<glyph unicode="&#xf233;" horiz-adv-x="1792" d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
<glyph unicode="&#xf234;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
<glyph unicode="&#xf235;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
<glyph unicode="&#xf236;" horiz-adv-x="2048" d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 q-26 0 -45 -19t-19 -45v-384h1152z" />
<glyph unicode="&#xf237;" d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
<glyph unicode="&#xf238;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
<glyph unicode="&#xf239;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M1792 204v-209h-642v209h134v926h-6l-314 -1135h-243l-310 1135h-8v-926h135v-209h-538v209h69q21 0 43 19.5t22 37.5v881q0 18 -22 40t-43 22h-69v209h672l221 -821h6l223 821h670v-209h-71q-19 0 -41 -22t-22 -40v-881q0 -18 21.5 -37.5t41.5 -19.5h71z" />
<glyph unicode="&#xf23b;" horiz-adv-x="1792" />
<glyph unicode="&#xf23c;" horiz-adv-x="1792" />
<glyph unicode="&#xf23d;" horiz-adv-x="1792" />
<glyph unicode="&#xf23e;" horiz-adv-x="1792" />
<glyph unicode="&#xf500;" horiz-adv-x="1792" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 306 KiB

@@ -1,7 +1,7 @@
{
"name": "font-awesome",
"description": "The iconic font and CSS framework",
"version": "4.2.0",
"version": "4.3.0",
"keywords": ["font", "awesome", "fontawesome", "icon", "font", "bootstrap"],
"homepage": "http://fontawesome.io/",
"bugs": {
@@ -0,0 +1,326 @@
/*!
* Font Awesome Icon Picker
* http://mjolnic.github.io/fontawesome-iconpicker/
*
* Originally written by (c) 2014 Javier Aguilar @mjolnic
* Licensed under the MIT License
* https://github.com/mjolnic/fontawesome-iconpicker/blob/master/LICENSE
*
*/
/*
* Font Awesome Icon Picker
* http://mjolnic.github.io/fontawesome-iconpicker/
*
* Originally written by (c) 2014 Javier Aguilar @mjolnic
* Licensed under the MIT License
* https://github.com/mjolnic/fontawesome-iconpicker/blob/master/LICENSE
*
*/
/*
* Font Awesome Icon Picker
* http://mjolnic.github.io/fontawesome-iconpicker/
*
* Originally written by (c) 2014 Javier Aguilar @mjolnic
* Licensed under the MIT License
* https://github.com/mjolnic/fontawesome-iconpicker/blob/master/LICENSE
*
*/
.iconpicker-popover.popover {
position: absolute;
top: 0;
left: 0;
display: none;
max-width: none;
padding: 1px;
text-align: left;
width: 242px;
background: #f7f7f7;
}
.iconpicker-popover.popover.top,
.iconpicker-popover.popover.topLeftCorner,
.iconpicker-popover.popover.topLeft,
.iconpicker-popover.popover.topRight,
.iconpicker-popover.popover.topRightCorner {
margin-top: -10px;
}
.iconpicker-popover.popover.right,
.iconpicker-popover.popover.rightTop,
.iconpicker-popover.popover.rightBottom {
margin-left: 10px;
}
.iconpicker-popover.popover.bottom,
.iconpicker-popover.popover.bottomRightCorner,
.iconpicker-popover.popover.bottomRight,
.iconpicker-popover.popover.bottomLeft,
.iconpicker-popover.popover.bottomLeftCorner {
margin-top: 10px;
}
.iconpicker-popover.popover.left,
.iconpicker-popover.popover.leftBottom,
.iconpicker-popover.popover.leftTop {
margin-left: -10px;
}
.iconpicker-popover.popover.inline {
margin: 0 0 14px 0;
position: relative;
display: inline-block;
opacity: 1;
top: auto;
left: auto;
bottom: auto;
right: auto;
max-width: 100%;
box-shadow: none;
z-index: auto;
vertical-align: top;
}
.iconpicker-popover.popover.inline > .arrow {
display: none;
}
.dropdown-menu .iconpicker-popover.inline {
margin: 0;
border: none;
}
.dropdown-menu.iconpicker-container {
padding: 0;
}
.iconpicker-popover.popover .popover-title {
padding: 14px;
font-size: 14px;
line-height: 16px;
border-bottom: 1px solid #ebebeb;
background-color: #f7f7f7;
}
.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search {
margin: 0 0 2px 0;
}
.iconpicker-popover.popover .popover-title-text ~ input[type=search].iconpicker-search {
margin-top: 14px;
}
.iconpicker-popover.popover .popover-content {
padding: 0px;
text-align: center;
}
.iconpicker-popover .popover-footer {
float: none;
clear: both;
padding: 14px;
text-align: right;
margin: 0;
border-top: 1px solid #ebebeb;
background-color: #f7f7f7;
}
.iconpicker-popover .popover-footer:before,
.iconpicker-popover .popover-footer:after {
content: " ";
display: table;
}
.iconpicker-popover .popover-footer:after {
clear: both;
}
.iconpicker-popover .popover-footer .iconpicker-btn {
margin-left: 10px;
}
.iconpicker-popover .popover-footer input[type=search].iconpicker-search {
/*width:auto;
float:left;*/
margin-bottom: 14px;
}
.iconpicker-popover.popover > .arrow,
.iconpicker-popover.popover > .arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.iconpicker-popover.popover > .arrow {
border-width: 11px;
}
.iconpicker-popover.popover > .arrow:after {
border-width: 10px;
content: "";
}
.iconpicker-popover.popover.top > .arrow,
.iconpicker-popover.popover.topLeft > .arrow,
.iconpicker-popover.popover.topRight > .arrow {
left: 50%;
margin-left: -11px;
border-bottom-width: 0;
border-top-color: #999999;
border-top-color: rgba(0, 0, 0, 0.25);
bottom: -11px;
}
.iconpicker-popover.popover.top > .arrow:after,
.iconpicker-popover.popover.topLeft > .arrow:after,
.iconpicker-popover.popover.topRight > .arrow:after {
content: " ";
bottom: 1px;
margin-left: -10px;
border-bottom-width: 0;
border-top-color: #ffffff;
}
.iconpicker-popover.popover.topLeft > .arrow {
left: 14px;
margin-left: 0;
}
.iconpicker-popover.popover.topRight > .arrow {
left: auto;
right: 14px;
margin-left: 0;
}
.iconpicker-popover.popover.right > .arrow,
.iconpicker-popover.popover.rightTop > .arrow,
.iconpicker-popover.popover.rightBottom > .arrow {
top: 50%;
left: -11px;
margin-top: -11px;
border-left-width: 0;
border-right-color: #999999;
border-right-color: rgba(0, 0, 0, 0.25);
}
.iconpicker-popover.popover.right > .arrow:after,
.iconpicker-popover.popover.rightTop > .arrow:after,
.iconpicker-popover.popover.rightBottom > .arrow:after {
content: " ";
left: 1px;
bottom: -10px;
border-left-width: 0;
border-right-color: #ffffff;
}
.iconpicker-popover.popover.rightTop > .arrow {
top: auto;
bottom: 14px;
margin-top: 0;
}
.iconpicker-popover.popover.rightBottom > .arrow {
top: 14px;
margin-top: 0;
}
.iconpicker-popover.popover.bottom > .arrow,
.iconpicker-popover.popover.bottomRight > .arrow,
.iconpicker-popover.popover.bottomLeft > .arrow {
left: 50%;
margin-left: -11px;
border-top-width: 0;
border-bottom-color: #999999;
border-bottom-color: rgba(0, 0, 0, 0.25);
top: -11px;
}
.iconpicker-popover.popover.bottom > .arrow:after,
.iconpicker-popover.popover.bottomRight > .arrow:after,
.iconpicker-popover.popover.bottomLeft > .arrow:after {
content: " ";
top: 1px;
margin-left: -10px;
border-top-width: 0;
border-bottom-color: #ffffff;
}
.iconpicker-popover.popover.bottomLeft > .arrow {
left: 14px;
margin-left: 0;
}
.iconpicker-popover.popover.bottomRight > .arrow {
left: auto;
right: 14px;
margin-left: 0;
}
.iconpicker-popover.popover.left > .arrow,
.iconpicker-popover.popover.leftBottom > .arrow,
.iconpicker-popover.popover.leftTop > .arrow {
top: 50%;
right: -11px;
margin-top: -11px;
border-right-width: 0;
border-left-color: #999999;
border-left-color: rgba(0, 0, 0, 0.25);
}
.iconpicker-popover.popover.left > .arrow:after,
.iconpicker-popover.popover.leftBottom > .arrow:after,
.iconpicker-popover.popover.leftTop > .arrow:after {
content: " ";
right: 1px;
border-right-width: 0;
border-left-color: #ffffff;
bottom: -10px;
}
.iconpicker-popover.popover.leftBottom > .arrow {
top: 14px;
margin-top: 0;
}
.iconpicker-popover.popover.leftTop > .arrow {
top: auto;
bottom: 14px;
margin-top: 0;
}
.iconpicker {
position: relative;
text-align: left;
text-shadow: none;
line-height: 0;
display: block;
margin: 0;
overflow: hidden;
}
.iconpicker * {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
position: relative;
}
.iconpicker:before,
.iconpicker:after {
content: " ";
display: table;
}
.iconpicker:after {
clear: both;
}
.iconpicker .iconpicker-items {
position: relative;
clear: both;
float: none;
padding: 14px 0 0 14px;
background: #fff;
margin: 0;
overflow: hidden;
overflow-y: auto;
min-height: 55px;
max-height: 275px;
}
.iconpicker .iconpicker-items:before,
.iconpicker .iconpicker-items:after {
content: " ";
display: table;
}
.iconpicker .iconpicker-items:after {
clear: both;
}
.iconpicker .iconpicker-item {
float: left;
width: 14px;
height: 14px;
padding: 14px;
margin: 0 14px 14px 0;
text-align: center;
cursor: pointer;
border-radius: 3px;
font-size: 14px;
box-shadow: 0 0 0 1px #dddddd;
/*&:nth-child(4n+4) {
margin-right: 0;
}
&:nth-last-child(-n+4) {
margin-bottom: 0;
}*/
}
.iconpicker .iconpicker-item:hover:not(.iconpicker-selected) {
background-color: #eeeeee;
}
.iconpicker .iconpicker-item.iconpicker-selected {
box-shadow: none;
}
.iconpicker-component {
cursor: pointer;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2209
View File
File diff suppressed because it is too large Load Diff
+20
View File
@@ -0,0 +1,20 @@
{
"title": "Trestle",
"description": "A handy boilerplate child theme for serious Genesis developers.",
"version": "2.2.0",
"homepage": "https://github.com/MIGHTYminnow/trestle",
"author": {
"name": "MIGHTYminnow Web Studio & School",
"email": "info@mightyminnow.com",
"url": "http://mightyminnow.com/plugin-landing-page?utm_source=trestle&utm_medium=theme&utm_campaign=Trestle"
},
"devDependencies": {
"grunt": "latest",
"load-grunt-tasks": "latest",
"grunt-dev-update": "latest",
"grunt-prompt": "latest",
"grunt-text-replace": "latest",
"grunt-wp-i18n": "latest",
"grunt-wp-css": "latest"
}
}
Regular → Executable
+2950 -2603
View File
File diff suppressed because it is too large Load Diff