Browse Source

Add webpack

Abdullah Almsaeed 7 years ago
parent
commit
f390ddcc1f
100 changed files with 25230 additions and 14356 deletions
  1. 5 0
      .eslintignore
  2. 302 0
      .eslintrc
  3. 0 17
      .jshintrc
  4. 0 28
      Gruntfile.js
  5. 28 0
      Plugins.js
  6. 8 8
      README.md
  7. 2 2
      bower.json
  8. 0 23
      build/grunt/babel.js
  9. 0 12
      build/grunt/bootlint.js
  10. 0 10
      build/grunt/clean.js
  11. 0 23
      build/grunt/concat.js
  12. 0 14
      build/grunt/csslint.js
  13. 0 11
      build/grunt/eslint.js
  14. 0 15
      build/grunt/image.js
  15. 0 17
      build/grunt/includes.js
  16. 0 19
      build/grunt/jscs.js
  17. 0 19
      build/grunt/jshint.js
  18. 0 13
      build/grunt/notify.js
  19. 0 29
      build/grunt/sass.js
  20. 0 16
      build/grunt/uglify.js
  21. 0 19
      build/grunt/watch.js
  22. 0 178
      build/js/.eslintrc
  23. 13 0
      build/js/AdminLTE.js
  24. 5 4
      build/js/src/ControlSidebar.js
  25. 11 11
      build/js/src/Layout.js
  26. 4 3
      build/js/src/PushMenu.js
  27. 13 12
      build/js/src/Search.js
  28. 10 8
      build/js/src/SiteSearch.js
  29. 12 11
      build/js/src/Treeview.js
  30. 3 3
      build/js/src/Widget.js
  31. 0 152
      build/js/dist/ControlSidebar.js
  32. 0 1
      build/js/dist/ControlSidebar.js.map
  33. 0 156
      build/js/dist/Layout.js
  34. 0 1
      build/js/dist/Layout.js.map
  35. 0 141
      build/js/dist/PushMenu.js
  36. 0 1
      build/js/dist/PushMenu.js.map
  37. 0 245
      build/js/dist/Search.js
  38. 0 1
      build/js/dist/Search.js.map
  39. 0 146
      build/js/dist/SiteSearch.js
  40. 0 1
      build/js/dist/SiteSearch.js.map
  41. 0 196
      build/js/dist/Treeview.js
  42. 0 1
      build/js/dist/Treeview.js.map
  43. 0 37
      build/js/dist/Widget.js
  44. 0 1
      build/js/dist/Widget.js.map
  45. 0 887
      build/js/src/AdminLTE.js
  46. 5 12
      build/scss/AdminLTE.scss
  47. 4 4
      build/scss/_alerts.scss
  48. 8 8
      build/scss/_bootstrap-social.scss
  49. 828 0
      build/scss/_bootstrap-variables.scss
  50. 0 843
      build/scss/_bootstrap_variables.scss
  51. 0 640
      build/scss/_bootstrap_variables_old.scss
  52. 22 22
      build/scss/_boxes.scss
  53. 15 15
      build/scss/_buttons.scss
  54. 4 4
      build/scss/_callout.scss
  55. 1 1
      build/scss/_control-sidebar.scss
  56. 5 5
      build/scss/_direct-chat.scss
  57. 1 1
      build/scss/_dropdown.scss
  58. 10 10
      build/scss/_forms.scss
  59. 2 2
      build/scss/_header.scss
  60. 1 1
      build/scss/_info-box.scss
  61. 1 1
      build/scss/_labels.scss
  62. 1 1
      build/scss/_lockscreen.scss
  63. 1 1
      build/scss/_login_and_register.scss
  64. 28 28
      build/scss/_miscellaneous.scss
  65. 2 2
      build/scss/_mixins.scss
  66. 5 5
      build/scss/_modal.scss
  67. 9 9
      build/scss/_navs.scss
  68. 2 2
      build/scss/_profile.scss
  69. 6 6
      build/scss/_select2.scss
  70. 2 2
      build/scss/_sidebar-mini.scss
  71. 1 1
      build/scss/_sidebar.scss
  72. 1 1
      build/scss/_timeline.scss
  73. 16 18
      build/scss/_variables.scss
  74. 8 8
      build/scss/skins/skin-blue-light.scss
  75. 7 7
      build/scss/skins/skin-blue.scss
  76. 6 6
      build/scss/skins/skin-green-light.scss
  77. 6 6
      build/scss/skins/skin-green.scss
  78. 6 6
      build/scss/skins/skin-red-light.scss
  79. 6 6
      build/scss/skins/skin-red.scss
  80. 6 6
      build/scss/skins/skin-yellow-light.scss
  81. 6 6
      build/scss/skins/skin-yellow.scss
  82. 2 2
      composer.json
  83. 7173 10165
      dist/css/adminlte.css
  84. 1 1
      dist/css/adminlte.min.css
  85. 1567 0
      dist/css/plugins/bootstrap/css/bootstrap-grid.css
  86. 1 0
      dist/css/plugins/bootstrap/css/bootstrap-grid.css.map
  87. 7 0
      dist/css/plugins/bootstrap/css/bootstrap-grid.min.css
  88. 1 0
      dist/css/plugins/bootstrap/css/bootstrap-grid.min.css.map
  89. 342 0
      dist/css/plugins/bootstrap/css/bootstrap-reboot.css
  90. 1 0
      dist/css/plugins/bootstrap/css/bootstrap-reboot.css.map
  91. 8 0
      dist/css/plugins/bootstrap/css/bootstrap-reboot.min.css
  92. 1 0
      dist/css/plugins/bootstrap/css/bootstrap-reboot.min.css.map
  93. 8374 0
      dist/css/plugins/bootstrap/css/bootstrap.css
  94. 1 0
      dist/css/plugins/bootstrap/css/bootstrap.css.map
  95. 7 0
      dist/css/plugins/bootstrap/css/bootstrap.min.css
  96. 1 0
      dist/css/plugins/bootstrap/css/bootstrap.min.css.map
  97. 6287 0
      dist/css/plugins/bootstrap/js/bootstrap.bundle.js
  98. 1 0
      dist/css/plugins/bootstrap/js/bootstrap.bundle.js.map
  99. 7 0
      dist/css/plugins/bootstrap/js/bootstrap.bundle.min.js
  100. 0 0
      dist/css/plugins/bootstrap/js/bootstrap.bundle.min.js.map

+ 5 - 0
.eslintignore

@@ -0,0 +1,5 @@
+**/*.min.js
+**/plugins/*
+**/dist/*
+webpack.config.js
+ad.js

+ 302 - 0
.eslintrc

@@ -0,0 +1,302 @@
+{
+  "root": true,
+  "parser": "babel-eslint",
+  "env": {
+    "browser": true,
+    "es6": true
+  },
+  "extends": "eslint:recommended",
+  "plugins": [
+    "compat"
+  ],
+  "parserOptions": {
+    "ecmaVersion": 8,
+    "sourceType": "module"
+  },
+  "globals": {
+    "jQuery": false,
+    "module": true
+  },
+  "rules": {
+    // Possible Errors
+    "no-await-in-loop": "error",
+    "no-extra-parens": "error",
+    "no-prototype-builtins": "error",
+    "no-template-curly-in-string": "error",
+    "compat/compat": "error",
+    "valid-jsdoc": "error",
+    // Best Practices
+    "accessor-pairs": "error",
+    "array-callback-return": "error",
+    "block-scoped-var": "error",
+    "class-methods-use-this": "off",
+    "complexity": "error",
+    "consistent-return": "error",
+    "curly": "error",
+    "default-case": "error",
+    "dot-location": [
+      "error",
+      "property"
+    ],
+    "dot-notation": "error",
+    "eqeqeq": "error",
+    "guard-for-in": "error",
+    "no-alert": "error",
+    "no-caller": "error",
+    "no-div-regex": "error",
+    "no-else-return": "error",
+    "no-empty-function": "error",
+    "no-eq-null": "error",
+    "no-eval": "error",
+    "no-extend-native": "error",
+    "no-extra-bind": "error",
+    "no-extra-label": "error",
+    "no-floating-decimal": "error",
+    "no-implicit-coercion": "error",
+    "no-implicit-globals": "error",
+    "no-implied-eval": "error",
+    "no-invalid-this": "off",
+    "no-iterator": "error",
+    "no-labels": "error",
+    "no-lone-blocks": "error",
+    "no-loop-func": "error",
+    "no-magic-numbers": [
+      "error",
+      {
+        "ignore": [
+          -1,
+          0,
+          1
+        ],
+        "ignoreArrayIndexes": true
+      }
+    ],
+    "no-multi-spaces": [
+      "error",
+      {
+        "ignoreEOLComments": true,
+        "exceptions": {
+          "AssignmentExpression": true,
+          "ArrowFunctionExpression": true,
+          "CallExpression": true,
+          "VariableDeclarator": true
+        }
+      }
+    ],
+    "no-multi-str": "error",
+    "no-new": "error",
+    "no-new-func": "error",
+    "no-new-wrappers": "error",
+    "no-octal-escape": "error",
+    "no-param-reassign": "off",
+    "no-proto": "error",
+    "no-restricted-properties": "error",
+    "no-return-assign": "error",
+    "no-return-await": "error",
+    "no-script-url": "error",
+    "no-self-compare": "error",
+    "no-sequences": "error",
+    "no-throw-literal": "error",
+    "no-unmodified-loop-condition": "error",
+    "no-unused-expressions": "error",
+    "no-useless-call": "error",
+    "no-useless-concat": "error",
+    "no-useless-return": "off",
+    "no-void": "error",
+    "no-warning-comments": "off",
+    "no-with": "error",
+    "prefer-promise-reject-errors": "error",
+    "radix": "off",
+    "require-await": "error",
+    "vars-on-top": "error",
+    "wrap-iife": "error",
+    "yoda": "error",
+    // Strict Mode
+    "strict": "error",
+    // Variables
+    "init-declarations": "off",
+    "no-catch-shadow": "error",
+    "no-label-var": "error",
+    "no-restricted-globals": "error",
+    "no-shadow": "off",
+    "no-shadow-restricted-names": "error",
+    "no-undef-init": "error",
+    "no-undefined": "error",
+    "no-use-before-define": "off",
+    // Node.js and CommonJS
+    "callback-return": "off",
+    "global-require": "error",
+    "handle-callback-err": "error",
+    "no-mixed-requires": "error",
+    "no-new-require": "error",
+    "no-path-concat": "error",
+    "no-process-env": "error",
+    "no-process-exit": "error",
+    "no-restricted-modules": "error",
+    "no-sync": "error",
+    // Stylistic Issues
+    "array-bracket-spacing": "error",
+    "block-spacing": "error",
+    "brace-style": "error",
+    "camelcase": "error",
+    "capitalized-comments": "off",
+    "comma-dangle": "error",
+    "comma-spacing": "error",
+    "comma-style": "error",
+    "computed-property-spacing": "error",
+    "consistent-this": "error",
+    "eol-last": "error",
+    "func-call-spacing": "error",
+    "func-name-matching": "error",
+    "func-names": "off",
+    "func-style": [
+      "error",
+      "declaration"
+    ],
+    "id-blacklist": "error",
+    "id-length": "off",
+    "id-match": "error",
+    "indent": "off",
+    "indent-legacy": [
+      "error",
+      2,
+      {
+        "SwitchCase": 1
+      }
+    ],
+    "jsx-quotes": "error",
+    "key-spacing": "off",
+    "keyword-spacing": "error",
+    "line-comment-position": "off",
+    "linebreak-style": [
+      "error",
+      "unix"
+    ],
+    "lines-around-comment": "off",
+    "lines-around-directive": "error",
+    "max-depth": [
+      "error",
+      10
+    ],
+    "max-len": "off",
+    "max-lines": "off",
+    "max-nested-callbacks": "error",
+    "max-params": "off",
+    "max-statements": "off",
+    "max-statements-per-line": "error",
+    "multiline-ternary": "off",
+    "new-cap": [
+      "error",
+      {
+        "capIsNewExceptionPattern": "$.*"
+      }
+    ],
+    "new-parens": "error",
+    "newline-after-var": "off",
+    "newline-before-return": "off",
+    "newline-per-chained-call": [
+      "error",
+      {
+        "ignoreChainWithDepth": 5
+      }
+    ],
+    "no-array-constructor": "error",
+    "no-bitwise": "error",
+    "no-continue": "off",
+    "no-inline-comments": "off",
+    "no-lonely-if": "error",
+    "no-mixed-operators": "off",
+    "no-multi-assign": "error",
+    "no-multiple-empty-lines": "error",
+    "no-negated-condition": "off",
+    "no-nested-ternary": "error",
+    "no-new-object": "error",
+    "no-plusplus": "off",
+    "no-restricted-syntax": "error",
+    "no-tabs": "error",
+    "no-ternary": "off",
+    "no-trailing-spaces": "error",
+    "no-underscore-dangle": "off",
+    "no-unneeded-ternary": "error",
+    "no-whitespace-before-property": "error",
+    "nonblock-statement-body-position": "error",
+    "object-curly-newline": [
+      "error",
+      {
+        "minProperties": 1
+      }
+    ],
+    "object-curly-spacing": [
+      "error",
+      "always"
+    ],
+    "object-property-newline": "error",
+    "one-var": [
+      "error",
+      "never"
+    ],
+    "one-var-declaration-per-line": "error",
+    "operator-assignment": "error",
+    "operator-linebreak": "off",
+    "padded-blocks": "off",
+    "quote-props": [
+      "error",
+      "as-needed"
+    ],
+    "quotes": [
+      "error",
+      "single"
+    ],
+    "require-jsdoc": "off",
+    "semi": [
+      "error",
+      "never"
+    ],
+    "semi-spacing": "error",
+    "sort-keys": "off",
+    "sort-vars": "error",
+    "space-before-blocks": "error",
+    "space-before-function-paren": [
+      "error",
+      {
+        "anonymous": "always",
+        "named": "never"
+      }
+    ],
+    "space-in-parens": "error",
+    "space-infix-ops": "error",
+    "space-unary-ops": "error",
+    "spaced-comment": "error",
+    "template-tag-spacing": "error",
+    "unicode-bom": "error",
+    "wrap-regex": "off",
+    // ECMAScript 6
+    "arrow-body-style": [
+      "error",
+      "as-needed"
+    ],
+    "arrow-parens": "error",
+    "arrow-spacing": "error",
+    "generator-star-spacing": "error",
+    "no-confusing-arrow": "error",
+    "no-duplicate-imports": "error",
+    "no-restricted-imports": "error",
+    "no-useless-computed-key": "error",
+    "no-useless-constructor": "error",
+    "no-useless-rename": "error",
+    "no-var": "error",
+    "object-shorthand": "error",
+    "prefer-arrow-callback": "error",
+    "prefer-const": "error",
+    "prefer-destructuring": "off",
+    "prefer-numeric-literals": "error",
+    "prefer-rest-params": "error",
+    "prefer-spread": "error",
+    "prefer-template": "error",
+    "rest-spread-spacing": "error",
+    "sort-imports": "error",
+    "symbol-description": "error",
+    "template-curly-spacing": "error",
+    "yield-star-spacing": "error"
+  }
+}

+ 0 - 17
.jshintrc

@@ -1,17 +0,0 @@
-{
-  "asi"      : true,
-  "browser"  : true,
-  "eqeqeq"   : false,
-  "eqnull"   : true,
-  "es3"      : true,
-  "expr"     : true,
-  "jquery"   : true,
-  "latedef"  : "nofunc",
-  "laxbreak" : true,
-  "nonbsp"   : true,
-  "strict"   : true,
-  "undef"    : true,
-  "unused"   : true,
-  // External variabls and plugins
-  "predef":  [ "AdminLTEOptions", "FastClick", "moment", "Morris", "Chart" ]
-}

+ 0 - 28
Gruntfile.js

@@ -1,28 +0,0 @@
-// AdminLTE Gruntfile
-
-module.exports = function (grunt) {
-  'use strict';
-  //loading the configurations and grunt tasks
-  var configs = require('load-grunt-config')(grunt, {
-    configPath: __dirname + '/build/grunt',
-    data: {
-      // Metadata.
-      pkg: grunt.file.readJSON('package.json'),
-      banner: '/*!\n' +
-      ' * AdminLTE v<%= pkg.version %> (<%= pkg.homepage %>)\n' +
-      ' * Copyright 2014-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
-      ' * Project website Almsaeed Studio (https://almsaeedstudio.com)\n' +
-      ' * Licensed under MIT (https://github.com/almasaeed2010/AdminLTE/blob/master/LICENSE)\n' +
-      ' */\n'
-    }
-  });
-
-  grunt.initConfig(configs);
-
-  // Linting task
-  grunt.registerTask('lint', ['jscs', 'eslint', 'csslint', 'bootlint'])
-  // JS Build Task
-  grunt.registerTask('build-js', ['babel', 'concat', 'uglify'])
-  // The default task (running 'grunt' in console) is 'watch'
-  grunt.registerTask('default', ['watch'])
-}

+ 28 - 0
Plugins.js

@@ -0,0 +1,28 @@
+const Plugins = [
+  // jQuery
+  {
+    from: 'node_modules/jquery/dist',
+    to: 'plugins/jquery'
+  },
+  // Popper
+  {
+    from: 'node_modules/popper.js/dist',
+    to: 'plugins/popper'
+  },
+  // Bootstrap
+  {
+    from: 'node_modules/bootstrap/dist',
+    to: 'plugins/bootstrap'
+  },
+  // Font Awesome
+  {
+    from: 'node_modules/font-awesome/css',
+    to  : 'plugins/font-awesome/css'
+  },
+  {
+    from: 'node_modules/font-awesome/fonts',
+    to  : 'plugins/font-awesome/fonts'
+  }
+]
+
+module.exports = Plugins

+ 8 - 8
README.md

@@ -3,14 +3,14 @@ Introduction
 
 **AdminLTE** -- is a fully responsive admin template. Based on **[Bootstrap 3](https://github.com/twbs/bootstrap)** framework. Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops. Check out the live preview now and see for yourself.
 
-**Download & Preview on [Almsaeed Studio](https://almsaeedstudio.com)**
+**Download & Preview on [AdminLTE.io](https://adminlte.io)**
 
 Looking for Premium Templates?
 ------------------------------
-**Almsaeed studio just opened a new premium templates page. Hand picked to insure the best quality and the most affordable prices. Visit https://almsaeedstudio.com/premium for more information.**
+**AdminLTE.io just opened a new premium templates page. Hand picked to insure the best quality and the most affordable prices. Visit https://adminlte.io/premium for more information.**
 
 
-!["AdminLTE Presentation"] (https://almsaeedstudio.com/AdminLTE2.png "AdminLTE Presentation")
+!["AdminLTE Presentation"] (https://adminlte.io/AdminLTE2.png "AdminLTE Presentation")
 
 **AdminLTE** has been carefully coded with clear comments in all of its JS, LESS and HTML files. LESS has been used to increase code customizability.
 
@@ -20,7 +20,7 @@ There are multiple ways to install AdminLTE.
 
 ####Download:
 
-Download from Github or [visit Almsaeed Studio](https://almsaeedstudio.com) and download the latest release.
+Download from Github or [visit AdminLTE.io](https://adminlte.io) and download the latest release.
 
 ####Using The Command Line:
 
@@ -46,7 +46,7 @@ composer require "almasaeed2010/adminlte=~2.0"
 
 Documentation
 -------------
-Visit the [online documentation](https://almsaeedstudio.com/themes/AdminLTE/documentation/index.html) for the most
+Visit the [online documentation](https://adminlte.io/themes/AdminLTE/documentation/index.html) for the most
 updated guide. Information will be added on a weekly basis.
 
 Browser Support
@@ -68,14 +68,14 @@ Contribution are always **welcome and recommended**! Here is how:
 
 #### Contribution Requirements:
 
-- When you contribute, you agree to give a non-exclusive license to Almsaeed Studio to use that contribution in any context as we (Almsaeed Studio) see appropriate.
+- When you contribute, you agree to give a non-exclusive license to AdminLTE.io to use that contribution in any context as we (AdminLTE.io) see appropriate.
 - If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license.
 - Contributions are only accepted through Github pull requests.
 - Finally, contributed code must work in all supported browsers (see above for browser support).
 
 License
 -------
-AdminLTE is an open source project by [Almsaeed Studio](https://almsaeedstudio.com) that is licensed under [MIT](http://opensource.org/licenses/MIT). Almsaeed Studio
+AdminLTE is an open source project by [AdminLTE.io](https://adminlte.io) that is licensed under [MIT](http://opensource.org/licenses/MIT). AdminLTE.io
 reserves the right to change the license of future releases.
 
 Todo List
@@ -88,7 +88,7 @@ Todo List
 
 Legacy Realeases
 ----------------
-AdminLTE 1.x can be easily upgraded to 2.x using [this guide](https://almsaeedstudio.com/themes/AdminLTE/documentation/index.html#upgrade), but if you intend to keep using AdminLTE 1.x, you can download the latest release from the [releases](https://github.com/almasaeed2010/AdminLTE/releases) section above.
+AdminLTE 1.x can be easily upgraded to 2.x using [this guide](https://adminlte.io/themes/AdminLTE/documentation/index.html#upgrade), but if you intend to keep using AdminLTE 1.x, you can download the latest release from the [releases](https://github.com/almasaeed2010/AdminLTE/releases) section above.
 
 Change log
 ----------

+ 2 - 2
bower.json

@@ -1,8 +1,8 @@
 {
   "name": "AdminLTE",
-  "homepage": "http://almsaeedstudio.com",
+  "homepage": "http://adminlte.io",
   "authors": [
-    "Abdullah Almsaeed <support@almsaeedstudio.com>"
+    "Abdullah Almsaeed <support@adminlte.io>"
   ],
   "description": "Admin dashboard and control panel template",
   "main": [

+ 0 - 23
build/grunt/babel.js

@@ -1,23 +0,0 @@
-// Compile ES2015 to JS
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    options: {
-      sourceMap: true,
-      presets  : ['es2015']
-    },
-    dist   : {
-      files: {
-        'build/js/dist/Layout.js'        : 'build/js/src/Layout.js',
-        'build/js/dist/Treeview.js'      : 'build/js/src/Treeview.js',
-        'build/js/dist/PushMenu.js'      : 'build/js/src/PushMenu.js',
-        'build/js/dist/Widget.js'        : 'build/js/src/Widget.js',
-        'build/js/dist/ControlSidebar.js': 'build/js/src/ControlSidebar.js',
-        'build/js/dist/Search.js'        : 'build/js/src/Search.js',
-        'build/js/dist/SiteSearch.js'    : 'build/js/src/SiteSearch.js',
-        'dist/js/adminlte.js'            : 'build/js/src/AdminLTE.js'
-      }
-    }
-  };
-};

+ 0 - 12
build/grunt/bootlint.js

@@ -1,12 +0,0 @@
-// Validate Bootstrap HTML
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    options: {
-      relaxerror: ['W005']
-    },
-    // files: ['pages/**/*.html', '*.html']
-    files  : ['starter.html']
-  };
-};

+ 0 - 10
build/grunt/clean.js

@@ -1,10 +0,0 @@
-// Delete images in build directory
-// After compressing the images in the build/img dir, there is no need
-// for them
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    build: ["build/img/*"]
-  };
-};

+ 0 - 23
build/grunt/concat.js

@@ -1,23 +0,0 @@
-// Concat compiled JS files
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    options : {
-      stripBanners: true,
-      banner      : '<%= banner %>'
-    },
-    adminlte: {
-      src : [
-        'build/js/src/Layout.js',
-        'build/js/src/Treeview.js',
-        'build/js/src/PushMenu.js',
-        'build/js/src/Widget.js',
-        'build/js/src/ControlSidebar.js',
-        'build/js/src/Search.js',
-        'build/js/src/SiteSearch.js'
-      ],
-      dest: 'build/js/src/AdminLTE.js'
-    }
-  };
-};

+ 0 - 14
build/grunt/csslint.js

@@ -1,14 +0,0 @@
-// Validate CSS files
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    options: {
-      csslintrc: 'build/less/.csslintrc'
-    },
-    dist   : [
-      'dist/css/AdminLTE.css',
-    ]
-  }
-
-};

+ 0 - 11
build/grunt/eslint.js

@@ -1,11 +0,0 @@
-// Lint ECMASCRIPT 
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    options: {
-      configFile: 'build/js/.eslintrc'
-    },
-    target : 'build/js/src/*.js'
-  };
-};

+ 0 - 15
build/grunt/image.js

@@ -1,15 +0,0 @@
-// Optimize images
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    dynamic: {
-      files: [{
-        expand: true,
-        cwd   : 'build/img/',
-        src   : ['**/*.{png,jpg,gif,svg,jpeg}'],
-        dest  : 'dist/img/'
-      }]
-    }
-  };
-};

+ 0 - 17
build/grunt/includes.js

@@ -1,17 +0,0 @@
-// Build the documentation files
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    build: {
-      src    : ['*.html'], // Source files
-      dest   : 'documentation/', // Destination directory
-      flatten: true,
-      cwd    : 'documentation/build',
-      options: {
-        silent     : true,
-        includePath: 'documentation/build/include'
-      }
-    }
-  };
-};

+ 0 - 19
build/grunt/jscs.js

@@ -1,19 +0,0 @@
-// Lint JS code
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    options: {
-      config: 'build/js/.jscsrc'
-    },
-    grunt  : {
-      src: ['Gruntfile.js']
-    },
-    core   : {
-      src: 'js/src/*.js'
-    }
-    /*app: {
-     src: 'dist/js/app.js'
-     }*/
-  };
-};

+ 0 - 19
build/grunt/jshint.js

@@ -1,19 +0,0 @@
-// Validate JS code
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    options: {
-      jshintrc: '.jshintrc'
-    },
-    core   : {
-      src: 'dist/js/app.js'
-    },
-    demo   : {
-      src: 'dist/js/demo.js'
-    },
-    pages  : {
-      src: 'dist/js/pages/*.js'
-    }
-  };
-};

+ 0 - 13
build/grunt/notify.js

@@ -1,13 +0,0 @@
-// Notify end of copilation tasks
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    watch: {
-      options: {
-        title  : 'Task Complete',  // optional
-        message: 'SASS and Uglify finished running', //required
-      }
-    }
-  };
-};

+ 0 - 29
build/grunt/sass.js

@@ -1,29 +0,0 @@
-// SASS compiler
-
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    development: {
-      options: {
-        precision     : 6,
-        sourceComments: false,
-        sourceMap     : true,
-        outputStyle   : 'expanded'
-      },
-      files  : {
-        'dist/css/adminlte.css': 'build/scss/AdminLTE.scss'
-      }
-    },
-    production : {
-      options: {
-        sourceComments: false,
-        sourceMap     : true,
-        outputStyle   : 'compressed'
-      },
-      files  : {
-        'dist/css/adminlte.min.css': 'build/scss/AdminLTE.scss'
-      }
-    }
-  };
-};

+ 0 - 16
build/grunt/uglify.js

@@ -1,16 +0,0 @@
-// Uglify task info. Compress the js files.
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    options: {
-      mangle          : true,
-      preserveComments: 'some'
-    },
-    target : {
-      files: {
-        'dist/js/adminlte.min.js': ['dist/js/adminlte.js']
-      }
-    }
-  };
-};

+ 0 - 19
build/grunt/watch.js

@@ -1,19 +0,0 @@
-// Watch files for changes and invoke appropriate compiler
-'use strict';
-
-module.exports = function (grunt) {
-  return {
-    sass: {
-      files: ['build/scss/*.scss', 'build/scss/skins/*.scss'],
-      tasks: ['sass', 'notify:watch']
-    },
-    es6 : {
-      files: ['build/js/src/*.js'],
-      tasks: ['concat', 'babel', 'uglify', 'notify:watch']
-    },
-    js  : {
-      files: ['dist/js/adminlte.js'],
-      tasks: ['uglify', 'notify:watch']
-    }
-  };
-};

+ 0 - 178
build/js/.eslintrc

@@ -1,178 +0,0 @@
-{
-  "root": true,
-  "parser": "babel-eslint",
-  "env": {
-    "browser": true,
-    "jquery": true
-  },
-  "rules": {
-
-    // Possible Errors
-    "comma-dangle": [2, "never"],
-    "no-cond-assign": 2,
-    "no-console": 2,
-    "no-constant-condition": 2,
-    "no-control-regex": 2,
-    "no-debugger": 2,
-    "no-dupe-args": 2,
-    "no-dupe-keys": 2,
-    "no-duplicate-case": 2,
-    "no-empty": 2,
-    "no-empty-character-class": 2,
-    "no-ex-assign": 2,
-    "no-extra-boolean-cast": 2,
-    "no-extra-parens": 0,
-    "no-extra-semi": 2,
-    "no-func-assign": 2,
-    "no-inner-declarations": 2,
-    "no-invalid-regexp": 2,
-    "no-irregular-whitespace": 0,
-    "no-negated-in-lhs": 2,
-    "no-obj-calls": 2,
-    "no-regex-spaces": 2,
-    "no-sparse-arrays": 2,
-    "no-unexpected-multiline": 2,
-    "no-unreachable": 2,
-    "use-isnan": 2,
-    "valid-jsdoc": 0,
-    "valid-typeof": 2,
-
-    //Best Practices
-    "accessor-pairs": 2,
-    "block-scoped-var": 2,
-    "consistent-return": 2,
-    "curly": 2,
-    "default-case": 2,
-    "dot-location": 0,
-    "dot-notation": 0,
-    "eqeqeq": 2,
-    "guard-for-in": 2,
-    "no-alert": 2,
-    "no-caller": 2,
-    "no-div-regex": 2,
-    "no-else-return": 2,
-    "no-empty-label": 2,
-    "no-eq-null": 2,
-    "no-eval": 2,
-    "no-extend-native": 2,
-    "no-extra-bind": 2,
-    "no-fallthrough": 2,
-    "no-floating-decimal": 2,
-    "no-implicit-coercion": 2,
-    "no-implied-eval": 2,
-    "no-invalid-this": 0,
-    "no-iterator": 2,
-    "no-labels": 2,
-    "no-lone-blocks": 2,
-    "no-loop-func": 2,
-    "no-multi-spaces": 0,
-    "no-multi-str": 0,
-    "no-native-reassign": 2,
-    "no-new": 2,
-    "no-new-func": 0,
-    "no-new-wrappers": 2,
-    "no-octal": 2,
-    "no-octal-escape": 2,
-    "no-param-reassign": 0,
-    "no-process-env": 2,
-    "no-proto": 2,
-    "no-redeclare": 2,
-    "no-return-assign": 2,
-    "no-script-url": 2,
-    "no-self-compare": 2,
-    "no-sequences": 2,
-    "no-throw-literal": 2,
-    "no-unused-expressions": 2,
-    "no-useless-call": 2,
-    "no-void": 2,
-    "no-warning-comments": 0,
-    "no-with": 2,
-    "radix": 2,
-    "vars-on-top": 0,
-    "wrap-iife": 2,
-    "yoda": 2,
-
-    // Variables
-    "init-declarations": 0,
-    "no-catch-shadow": 2,
-    "no-delete-var": 2,
-    "no-label-var": 2,
-    "no-shadow": 0,
-    "no-shadow-restricted-names": 2,
-    "no-undef": 2,
-    "no-undefined": 0,
-    "no-undef-init": 2,
-    "no-unused-vars": 2,
-    "no-use-before-define": 0,
-
-    // Stylistic
-    "array-bracket-spacing": 2,
-    "block-spacing": 2,
-    "brace-style": 2,
-    "camelcase": 2,
-    "comma-spacing": 2,
-    "comma-style": 2,
-    "computed-property-spacing": 2,
-    "consistent-this": 2,
-    "eol-last": 2,
-    "func-names": 0,
-    "func-style": 0,
-    "indent": 0,
-    "key-spacing": 0,
-    "linebreak-style": 2,
-    "lines-around-comment": 0,
-    "new-cap": 0,
-    "newline-after-var": 0,
-    "new-parens": 2,
-    "no-array-constructor": 2,
-    "no-continue": 0,
-    "no-inline-comments": 0,
-    "no-lonely-if": 2,
-    "no-mixed-spaces-and-tabs": 2,
-    "no-multiple-empty-lines": 2,
-    "no-nested-ternary": 0,
-    "no-new-object": 2,
-    "no-spaced-func": 2,
-    "no-ternary": 0,
-    "no-trailing-spaces": 2,
-    "no-underscore-dangle": 0,
-    "no-unneeded-ternary": 2,
-    "object-curly-spacing": [1, "always"],
-    "one-var": 0,
-    "operator-assignment": 2,
-    "operator-linebreak": 0,
-    "padded-blocks": 0,
-    "quote-props": 0,
-    "quotes": 0,
-    "semi": [2, "never"],
-    "semi-spacing": 0,
-    "sort-vars": 2,
-    "space-after-keywords": 2,
-    "space-before-blocks": 2,
-    "space-before-function-paren": 0,
-    "spaced-comment": 2,
-    "space-infix-ops": 2,
-    "space-in-parens": 2,
-    "space-return-throw-case": 2,
-    "space-unary-ops": 2,
-
-    // es6
-    "arrow-parens": 2,
-    "arrow-spacing": 2,
-    "constructor-super": 2,
-    "generator-star-spacing": 2,
-    "no-class-assign": 2,
-    "no-const-assign": 2,
-    "no-dupe-class-members": 2,
-    "no-this-before-super": 2,
-    "no-var": 2,
-    "object-shorthand": 2,
-    "prefer-arrow-callback": 2,
-    "prefer-const": 0,
-    "prefer-reflect": 0,
-    "prefer-spread": 2,
-    "prefer-template": 2,
-    "require-yield": 2
-
-  }
-}

+ 13 - 0
build/js/AdminLTE.js

@@ -0,0 +1,13 @@
+/*!
+ * AdminLTE v3.0.0-alpha (https://adminlte.io)
+ * Copyright 2014-2017 Abdullah Almsaeed <abdullah@adminlte.io>
+ * Licensed under MIT (https://github.com/almasaeed2010/AdminLTE/blob/master/LICENSE)
+ */
+
+import './ControlSidebar'
+import './Layout'
+import './PushMenu'
+import './Search'
+import './SiteSearch'
+import './Treeview'
+import './Widget'

+ 5 - 4
build/js/src/ControlSidebar.js

@@ -6,7 +6,6 @@
  */
 
 const ControlSidebar = (($) => {
-  'use strict'
 
   /**
    * Constants
@@ -46,7 +45,7 @@ const ControlSidebar = (($) => {
 
     constructor(element, config) {
       this._element = element
-      this._config  = this._getConfig(config);
+      this._config  = this._getConfig(config)
     }
 
     // Public
@@ -96,11 +95,11 @@ const ControlSidebar = (($) => {
           $(this).data(DATA_KEY, data)
         }
 
-        if(data[operation] === undefined) {
+        if (data[operation] === 'undefined') {
           throw new Error(`${operation} is not a function`)
         }
 
-        data[operation]();
+        data[operation]()
       })
     }
   }
@@ -132,3 +131,5 @@ const ControlSidebar = (($) => {
   return ControlSidebar
 
 })(jQuery)
+
+export default ControlSidebar

+ 11 - 11
build/js/src/Layout.js

@@ -6,7 +6,6 @@
  */
 
 const Layout = (($) => {
-  'use strict'
 
   /**
    * Constants
@@ -55,13 +54,13 @@ const Layout = (($) => {
     // Public
 
     fixLayoutHeight() {
-      let heights = [
-            $(window).height(),
-            $(Selector.HEADER).outerHeight(),
-            $(Selector.FOOTER).outerHeight(),
-            $(Selector.SIDEBAR).height()
-          ],
-          max     = this._max(heights)
+      const heights = [
+        $(window).height(),
+        $(Selector.HEADER).outerHeight(),
+        $(Selector.FOOTER).outerHeight(),
+        $(Selector.SIDEBAR).height()
+      ]
+      const max     = this._max(heights)
 
       $(Selector.CONTENT).css('min-height', max - (heights[1] + heights[2]))
     }
@@ -81,7 +80,7 @@ const Layout = (($) => {
         this.fixLayoutHeight()
       })
 
-      $('body, html').css('height', 'auto');
+      $('body, html').css('height', 'auto')
     }
 
     _max(numbers) {
@@ -97,7 +96,6 @@ const Layout = (($) => {
       return max
     }
 
-
     // Static
 
     static _jQueryInterface(operation) {
@@ -122,7 +120,7 @@ const Layout = (($) => {
    */
   $(window).on('load', () => {
     Layout._jQueryInterface.call($('body'))
-  });
+  })
 
   /**
    * jQuery API
@@ -139,3 +137,5 @@ const Layout = (($) => {
   return Layout
 
 })(jQuery)
+
+export default Layout

+ 4 - 3
build/js/src/PushMenu.js

@@ -6,7 +6,6 @@
  */
 
 const PushMenu = (($) => {
-  'use strict'
 
   /**
    * Constants
@@ -48,7 +47,7 @@ const PushMenu = (($) => {
 
       this._isShown = true
 
-      let shownEvent = $.Event(Event.SHOWN)
+      const shownEvent = $.Event(Event.SHOWN)
       $(this._element).trigger(shownEvent)
     }
 
@@ -58,7 +57,7 @@ const PushMenu = (($) => {
 
       this._isShown = false
 
-      let collapsedEvent = $.Event(Event.COLLAPSED)
+      const collapsedEvent = $.Event(Event.COLLAPSED)
       $(this._element).trigger(collapsedEvent)
     }
 
@@ -125,3 +124,5 @@ const PushMenu = (($) => {
   return PushMenu
 
 })(jQuery)
+
+export default PushMenu

+ 13 - 12
build/js/src/Search.js

@@ -41,7 +41,7 @@ const Search = (($) => {
 
   const Default = {
     target        : '',
-    case_sensitive: false
+    caseSensitive: false
   }
 
   /**
@@ -53,7 +53,7 @@ const Search = (($) => {
     constructor(element, config) {
       this._config     = config
       this._element    = element
-      this._open_menus = null
+      this._openMenus = null
     }
 
     // Public
@@ -66,7 +66,7 @@ const Search = (($) => {
       }
 
       // Set treeview original state
-      this._open_menus = this._config.target.find(Selector.OPEN)
+      this._openMenus = this._config.target.find(Selector.OPEN)
 
       // Prevent form submission
       this._element.parents('form').first().submit((event) => {
@@ -79,7 +79,7 @@ const Search = (($) => {
 
         let value = $(event.currentTarget).val()
 
-        if (!this._config.case_sensitive) {
+        if (!this._config.caseSensitive) {
           value = value.toLowerCase()
         }
 
@@ -88,8 +88,8 @@ const Search = (($) => {
     }
 
     search(value) {
-      let items   = this._config.target.find(Selector.LI)
-      let headers = this._config.target.find(Selector.NAV_HEADER)
+      const items   = this._config.target.find(Selector.LI)
+      const headers = this._config.target.find(Selector.NAV_HEADER)
 
       // If the value is back to null
       if (!value) {
@@ -103,7 +103,7 @@ const Search = (($) => {
           .css('display', 'none')
 
         // Open the originally opened treeviews
-        for (let menu of this._open_menus) {
+        for (const menu of this._openMenus) {
           if (!$(menu).hasClass(ClassName.OPEN)) {
             $(menu).addClass(ClassName.OPEN).css('display', 'block')
             $(menu).children(Selector.NAV_TREEVIEW).css('display', 'block')
@@ -118,14 +118,14 @@ const Search = (($) => {
       headers.css('display', 'none')
 
       // Search through the tree elements
-      for (let item of items) {
+      for (const item of items) {
         let text = $(item).children('a').text()
 
-        if (!this._config.case_sensitive) {
+        if (!this._config.caseSensitive) {
           text = text.toLowerCase()
         }
 
-        if (text.indexOf(value) != -1) {
+        if (parseInt(text.indexOf(value)) !== -1) {
           // Found the result
           // Make the parent LI visible
           $(item).parents(Selector.LI)
@@ -148,13 +148,12 @@ const Search = (($) => {
       }
     }
 
-
     // Static
 
     static _jQueryInterface(config) {
       return this.each(function () {
         let data    = $(this).data(DATA_KEY)
-        let _config = $.extend({}, Default, $(this).data())
+        const _config = $.extend({}, Default, $(this).data())
 
         if (!data) {
           data = new Search($(this), _config)
@@ -194,3 +193,5 @@ const Search = (($) => {
   return Search
 
 })(jQuery)
+
+export default Search

+ 10 - 8
build/js/src/SiteSearch.js

@@ -24,7 +24,7 @@ const SiteSearch = (($) => {
     TOGGLE_BUTTON  : '[data-widget="site-search"]',
     SEARCH_BLOCK   : '.site-search-block',
     SEARCH_BACKDROP: '.site-search-backdrop',
-    SEARCH_INPUT   : `.site-search-block .form-control`
+    SEARCH_INPUT   : '.site-search-block .form-control'
   }
 
   const ClassName = {
@@ -44,7 +44,7 @@ const SiteSearch = (($) => {
 
     constructor(_element, _options) {
       this.element = _element
-      this.options = $.extend({}, Default, _options);
+      this.options = $.extend({}, Default, _options)
     }
 
     // Public
@@ -52,7 +52,7 @@ const SiteSearch = (($) => {
     open() {
       $(Selector.SEARCH_BLOCK).slideDown(this.options.transitionSpeed)
       $(Selector.SEARCH_BACKDROP).show(0)
-      $(Selector.SEARCH_INPUT).focus();
+      $(Selector.SEARCH_INPUT).focus()
       $(Selector.SEARCH_BLOCK).addClass(ClassName.OPEN)
     }
 
@@ -81,7 +81,7 @@ const SiteSearch = (($) => {
           $(this).data(DATA_KEY, data)
         }
 
-        if(!/toggle|close/.test(options)) {
+        if (!/toggle|close/.test(options)) {
           throw Error(`Undefined method ${options}`)
         }
 
@@ -95,7 +95,7 @@ const SiteSearch = (($) => {
    * ====================================================
    */
   $(document).on('click', Selector.TOGGLE_BUTTON, (event) => {
-    event.preventDefault();
+    event.preventDefault()
 
     let button = $(event.currentTarget)
 
@@ -104,12 +104,12 @@ const SiteSearch = (($) => {
     }
 
     SiteSearch._jQueryInterface.call(button, 'toggle')
-  });
+  })
 
   $(document).on('click', Selector.SEARCH_BACKDROP, (event) => {
-    let backdrop = $(event.currentTarget)
+    const backdrop = $(event.currentTarget)
     SiteSearch._jQueryInterface.call(backdrop, 'close')
-  });
+  })
 
   /**
    * jQuery API
@@ -126,3 +126,5 @@ const SiteSearch = (($) => {
   return SiteSearch
 
 })(jQuery)
+
+export default SiteSearch

+ 12 - 11
build/js/src/Treeview.js

@@ -63,11 +63,11 @@ const Treeview = (($) => {
     }
 
     expand(treeviewMenu, parentLi) {
-      let expandedEvent = $.Event(Event.EXPANDED)
+      const expandedEvent = $.Event(Event.EXPANDED)
 
       if (this._config.accordion) {
-        let openMenuLi   = parentLi.siblings(Selector.OPEN).first()
-        let openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first()
+        const openMenuLi   = parentLi.siblings(Selector.OPEN).first()
+        const openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first()
         this.collapse(openTreeview, openMenuLi)
       }
 
@@ -78,7 +78,7 @@ const Treeview = (($) => {
     }
 
     collapse(treeviewMenu, parentLi) {
-      let collapsedEvent = $.Event(Event.COLLAPSED)
+      const collapsedEvent = $.Event(Event.COLLAPSED)
 
       treeviewMenu.slideUp(this._config.animationSpeed, () => {
         parentLi.removeClass(ClassName.OPEN)
@@ -97,8 +97,8 @@ const Treeview = (($) => {
     }
 
     toggle(event) {
-      let $relativeTarget = $(event.currentTarget)
-      let treeviewMenu    = $relativeTarget.next()
+      const $relativeTarget = $(event.currentTarget)
+      const treeviewMenu    = $relativeTarget.next()
 
       if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {
         return
@@ -106,8 +106,8 @@ const Treeview = (($) => {
 
       event.preventDefault()
 
-      let parentLi = $relativeTarget.parents(Selector.LI).first()
-      let isOpen   = parentLi.hasClass(ClassName.OPEN)
+      const parentLi = $relativeTarget.parents(Selector.LI).first()
+      const isOpen   = parentLi.hasClass(ClassName.OPEN)
 
       if (isOpen) {
         this.collapse($(treeviewMenu), parentLi)
@@ -129,7 +129,7 @@ const Treeview = (($) => {
     static _jQueryInterface(config) {
       return this.each(function () {
         let data    = $(this).data(DATA_KEY)
-        let _config = $.extend({}, Default, $(this).data())
+        const _config = $.extend({}, Default, $(this).data())
 
         if (!data) {
           data = new Treeview($(this), _config)
@@ -141,7 +141,6 @@ const Treeview = (($) => {
         }
       })
     }
-
   }
 
   /**
@@ -151,7 +150,7 @@ const Treeview = (($) => {
 
   $(window).on(Event.LOAD_DATA_API, () => {
     $(Selector.DATA_WIDGET).each(function () {
-      let $treeview = $(this)
+      const $treeview = $(this)
       Treeview._jQueryInterface.call($treeview, 'init')
     })
   })
@@ -171,3 +170,5 @@ const Treeview = (($) => {
   return Treeview
 
 })(jQuery)
+
+export default Treeview

+ 3 - 3
build/js/src/Widget.js

@@ -6,7 +6,6 @@
  */
 
 const Widget = (($) => {
-  'use strict'
 
   class Widget {
 
@@ -15,11 +14,12 @@ const Widget = (($) => {
     }
 
     static _jQueryInterface(element) {
-      let $this = $(element)
-      $this.show()
+      $(element).show()
     }
   }
 
   return Widget
 
 })(jQuery)
+
+export default Widget

File diff suppressed because it is too large
+ 0 - 152
build/js/dist/ControlSidebar.js


File diff suppressed because it is too large
+ 0 - 1
build/js/dist/ControlSidebar.js.map


File diff suppressed because it is too large
+ 0 - 156
build/js/dist/Layout.js


File diff suppressed because it is too large
+ 0 - 1
build/js/dist/Layout.js.map


File diff suppressed because it is too large
+ 0 - 141
build/js/dist/PushMenu.js


File diff suppressed because it is too large
+ 0 - 1
build/js/dist/PushMenu.js.map


File diff suppressed because it is too large
+ 0 - 245
build/js/dist/Search.js


File diff suppressed because it is too large
+ 0 - 1
build/js/dist/Search.js.map


File diff suppressed because it is too large
+ 0 - 146
build/js/dist/SiteSearch.js


File diff suppressed because it is too large
+ 0 - 1
build/js/dist/SiteSearch.js.map


File diff suppressed because it is too large
+ 0 - 196
build/js/dist/Treeview.js


File diff suppressed because it is too large
+ 0 - 1
build/js/dist/Treeview.js.map


File diff suppressed because it is too large
+ 0 - 37
build/js/dist/Widget.js


File diff suppressed because it is too large
+ 0 - 1
build/js/dist/Widget.js.map


+ 0 - 887
build/js/src/AdminLTE.js

@@ -1,887 +0,0 @@
-/*!
- * AdminLTE v3.0.0-alpha (https://almsaeedstudio.com)
- * Copyright 2014-2017 Abdullah Almsaeed <abdullah@almsaeedstudio.com>
- * Project website Almsaeed Studio (https://almsaeedstudio.com)
- * Licensed under MIT (https://github.com/almasaeed2010/AdminLTE/blob/master/LICENSE)
- */
-const Layout = (($) => {
-  'use strict'
-
-  /**
-   * Constants
-   * ====================================================
-   */
-
-  const NAME               = 'Layout'
-  const DATA_KEY           = 'lte.layout'
-  const EVENT_KEY          = `.${DATA_KEY}`
-  const JQUERY_NO_CONFLICT = $.fn[NAME]
-
-  const Event = {
-    SIDEBAR: 'sidebar'
-  }
-
-  const Selector = {
-    SIDEBAR        : '.main-sidebar',
-    HEADER         : '.main-header',
-    CONTENT        : '.content-wrapper',
-    CONTENT_HEADER : '.content-header',
-    WRAPPER        : '.wrapper',
-    CONTROL_SIDEBAR: '.control-sidebar',
-    LAYOUT_FIXED   : '.layout-fixed',
-    FOOTER         : '.main-footer'
-  }
-
-  const ClassName = {
-    HOLD        : 'hold-transition',
-    SIDEBAR     : 'main-sidebar',
-    LAYOUT_FIXED: 'layout-fixed'
-  }
-
-  /**
-   * Class Definition
-   * ====================================================
-   */
-
-  class Layout {
-
-    constructor(element) {
-      this._element = element
-
-      this._init()
-    }
-
-    // Public
-
-    fixLayoutHeight() {
-      let heights = [
-            $(window).height(),
-            $(Selector.HEADER).outerHeight(),
-            $(Selector.FOOTER).outerHeight(),
-            $(Selector.SIDEBAR).height()
-          ],
-          max     = this._max(heights)
-
-      $(Selector.CONTENT).css('min-height', max - (heights[1] + heights[2]))
-    }
-
-    // Private
-
-    _init() {
-      // Enable transitions
-      $('body').removeClass(ClassName.HOLD)
-
-      // Activate layout height watcher
-      this.fixLayoutHeight()
-      $(Selector.SIDEBAR).on('collapsed.lte.treeview expanded.lte.treeview collapsed.lte.pushmenu expanded.lte.pushmenu', () => {
-        this.fixLayoutHeight()
-      })
-      $(window).resize(() => {
-        this.fixLayoutHeight()
-      })
-
-      $('body, html').css('height', 'auto');
-    }
-
-    _max(numbers) {
-      // Calculate the maximum number in a list
-      let max = 0
-
-      numbers.forEach((v) => {
-        if (v > max) {
-          max = v
-        }
-      })
-
-      return max
-    }
-
-
-    // Static
-
-    static _jQueryInterface(operation) {
-      return this.each(function () {
-        let data = $(this).data(DATA_KEY)
-
-        if (!data) {
-          data = new Layout(this)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (operation) {
-          data[operation]()
-        }
-      })
-    }
-  }
-
-  /**
-   * Data API
-   * ====================================================
-   */
-  $(window).on('load', () => {
-    Layout._jQueryInterface.call($('body'))
-  });
-
-  /**
-   * jQuery API
-   * ====================================================
-   */
-
-  $.fn[NAME] = Layout._jQueryInterface
-  $.fn[NAME].Constructor = Layout
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Layout._jQueryInterface
-  }
-
-  return Layout
-
-})(jQuery)
-
-const Treeview = (($) => {
-
-  /**
-   * Constants
-   * ====================================================
-   */
-
-  const NAME               = 'Treeview'
-  const DATA_KEY           = 'lte.treeview'
-  const EVENT_KEY          = `.${DATA_KEY}`
-  const JQUERY_NO_CONFLICT = $.fn[NAME]
-
-  const Event = {
-    SELECTED     : `selected${EVENT_KEY}`,
-    EXPANDED     : `expanded${EVENT_KEY}`,
-    COLLAPSED    : `collapsed${EVENT_KEY}`,
-    LOAD_DATA_API: `load${EVENT_KEY}`
-  }
-
-  const Selector = {
-    LI           : '.nav-item',
-    LINK         : '.nav-link',
-    TREEVIEW_MENU: '.nav-treeview',
-    OPEN         : '.menu-open',
-    DATA_WIDGET  : '[data-widget="treeview"]'
-  }
-
-  const ClassName = {
-    LI           : 'nav-item',
-    LINK         : 'nav-link',
-    TREEVIEW_MENU: 'nav-treeview',
-    OPEN         : 'menu-open'
-  }
-
-  const Default = {
-    trigger       : `${Selector.DATA_WIDGET} ${Selector.LINK}`,
-    animationSpeed: 300,
-    accordion     : true
-  }
-
-  /**
-   * Class Definition
-   * ====================================================
-   */
-  class Treeview {
-
-    constructor(element, config) {
-      this._config  = config
-      this._element = element
-    }
-
-    // Public
-
-    init() {
-      this._setupListeners()
-    }
-
-    expand(treeviewMenu, parentLi) {
-      let expandedEvent = $.Event(Event.EXPANDED)
-
-      if (this._config.accordion) {
-        let openMenuLi   = parentLi.siblings(Selector.OPEN).first()
-        let openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first()
-        this.collapse(openTreeview, openMenuLi)
-      }
-
-      treeviewMenu.slideDown(this._config.animationSpeed, () => {
-        parentLi.addClass(ClassName.OPEN)
-        $(this._element).trigger(expandedEvent)
-      })
-    }
-
-    collapse(treeviewMenu, parentLi) {
-      let collapsedEvent = $.Event(Event.COLLAPSED)
-
-      treeviewMenu.slideUp(this._config.animationSpeed, () => {
-        parentLi.removeClass(ClassName.OPEN)
-        $(this._element).trigger(collapsedEvent)
-        treeviewMenu.find(`${Selector.OPEN} > ${Selector.TREEVIEW_MENU}`).slideUp()
-        treeviewMenu.find(Selector.OPEN).removeClass(ClassName.OPEN)
-      })
-    }
-
-    collapseAll() {
-
-    }
-
-    expandAll() {
-
-    }
-
-    toggle(event) {
-      let $relativeTarget = $(event.currentTarget)
-      let treeviewMenu    = $relativeTarget.next()
-
-      if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {
-        return
-      }
-
-      event.preventDefault()
-
-      let parentLi = $relativeTarget.parents(Selector.LI).first()
-      let isOpen   = parentLi.hasClass(ClassName.OPEN)
-
-      if (isOpen) {
-        this.collapse($(treeviewMenu), parentLi)
-      } else {
-        this.expand($(treeviewMenu), parentLi)
-      }
-    }
-
-    // Private
-
-    _setupListeners() {
-      $(document).on('click', this._config.trigger, (event) => {
-        this.toggle(event)
-      })
-    }
-
-    // Static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        let data    = $(this).data(DATA_KEY)
-        let _config = $.extend({}, Default, $(this).data())
-
-        if (!data) {
-          data = new Treeview($(this), _config)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (config === 'init') {
-          data[config]()
-        }
-      })
-    }
-
-  }
-
-  /**
-   * Data API
-   * ====================================================
-   */
-
-  $(window).on(Event.LOAD_DATA_API, () => {
-    $(Selector.DATA_WIDGET).each(function () {
-      let $treeview = $(this)
-      Treeview._jQueryInterface.call($treeview, 'init')
-    })
-  })
-
-  /**
-   * jQuery API
-   * ====================================================
-   */
-
-  $.fn[NAME] = Treeview._jQueryInterface
-  $.fn[NAME].Constructor = Treeview
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Treeview._jQueryInterface
-  }
-
-  return Treeview
-
-})(jQuery)
-
-const PushMenu = (($) => {
-  'use strict'
-
-  /**
-   * Constants
-   * ====================================================
-   */
-
-  const NAME = 'PushMenu'
-  const DATA_KEY = 'lte.pushmenu'
-  const EVENT_KEY = `.${DATA_KEY}`
-  const JQUERY_NO_CONFLICT = $.fn[NAME]
-
-  const Event = {
-    COLLAPSED: `collapsed${EVENT_KEY}`,
-    SHOWN: `shown${EVENT_KEY}`
-  }
-
-  const Selector = {
-    COLLAPSED: 'sidebar-collapse',
-    TOGGLE_BUTTON: '[data-widget="pushmenu"]'
-  }
-
-  /**
-   * Class Definition
-   * ====================================================
-   */
-
-  class PushMenu {
-
-    constructor(element) {
-      this._element = element
-      this._isShown = !$('body').hasClass(Selector.COLLAPSED) || $('body').hasClass('sidebar-open')
-    }
-
-    // Public
-
-    show() {
-      $('body').addClass('sidebar-open')
-        .removeClass(Selector.COLLAPSED)
-
-      this._isShown = true
-
-      let shownEvent = $.Event(Event.SHOWN)
-      $(this._element).trigger(shownEvent)
-    }
-
-    collapse() {
-      $('body').removeClass('sidebar-open')
-        .addClass(Selector.COLLAPSED)
-
-      this._isShown = false
-
-      let collapsedEvent = $.Event(Event.COLLAPSED)
-      $(this._element).trigger(collapsedEvent)
-    }
-
-    toggle() {
-
-      if (typeof this._isShown === 'undefined') {
-        this._isShown = !$('body').hasClass(Selector.COLLAPSED) || $('body').hasClass('sidebar-open')
-      }
-
-      if (this._isShown) {
-        this.collapse()
-      } else {
-        this.show()
-      }
-    }
-
-    // Static
-
-    static _jQueryInterface(operation) {
-      return this.each(function () {
-        let data = $(this).data(DATA_KEY)
-
-        if (!data) {
-          data = new PushMenu(this)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (operation) {
-          data[operation]()
-        }
-      })
-    }
-  }
-
-  /**
-   * Data API
-   * ====================================================
-   */
-
-  $(document).on('click', Selector.TOGGLE_BUTTON, (event) => {
-    event.preventDefault()
-
-    let button = event.currentTarget
-
-    if ($(button).data('widget') !== 'pushmenu') {
-      button = $(button).closest(Selector.TOGGLE_BUTTON)
-    }
-
-    PushMenu._jQueryInterface.call($(button), 'toggle')
-  })
-
-  /**
-   * jQuery API
-   * ====================================================
-   */
-
-  $.fn[NAME] = PushMenu._jQueryInterface
-  $.fn[NAME].Constructor = PushMenu
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return PushMenu._jQueryInterface
-  }
-
-  return PushMenu
-
-})(jQuery)
-
-const Widget = (($) => {
-  'use strict'
-
-  class Widget {
-
-    constructor(element) {
-      this._element = element
-    }
-
-    static _jQueryInterface(element) {
-      let $this = $(element)
-      $this.show()
-    }
-  }
-
-  return Widget
-
-})(jQuery)
-
-const ControlSidebar = (($) => {
-  'use strict'
-
-  /**
-   * Constants
-   * ====================================================
-   */
-
-  const NAME               = 'ControlSidebar'
-  const DATA_KEY           = 'lte.control.sidebar'
-  const EVENT_KEY          = `.${DATA_KEY}`
-  const JQUERY_NO_CONFLICT = $.fn[NAME]
-  const DATA_API_KEY       = '.data-api'
-
-  const Event = {
-    CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`
-  }
-
-  const Selector = {
-    CONTROL_SIDEBAR: '.control-sidebar',
-    DATA_TOGGLE    : '[data-widget="control-sidebar"]'
-  }
-
-  const ClassName = {
-    CONTROL_SIDEBAR_OPEN : 'control-sidebar-open',
-    CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open'
-  }
-
-  const Default = {
-    slide: true
-  }
-
-  /**
-   * Class Definition
-   * ====================================================
-   */
-
-  class ControlSidebar {
-
-    constructor(element, config) {
-      this._element = element
-      this._config  = this._getConfig(config);
-    }
-
-    // Public
-
-    show() {
-      // Show the control sidebar
-      if (this._config.slide) {
-        $('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE)
-      } else {
-        $('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN)
-      }
-    }
-
-    collapse() {
-      // Collapse the control sidebar
-      if (this._config.slide) {
-        $('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE)
-      } else {
-        $('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN)
-      }
-    }
-
-    toggle() {
-      if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)) {
-        // Open the control sidebar
-        this.show()
-      } else {
-        // Close the control sidebar
-        this.collapse()
-      }
-    }
-
-    // Private
-
-    _getConfig(config) {
-      return $.extend({}, Default, config)
-    }
-
-    // Static
-
-    static _jQueryInterface(operation) {
-      return this.each(function () {
-        let data = $(this).data(DATA_KEY)
-
-        if (!data) {
-          data = new ControlSidebar(this, $(this).data())
-          $(this).data(DATA_KEY, data)
-        }
-
-        if(data[operation] === undefined) {
-          throw new Error(`${operation} is not a function`)
-        }
-
-        data[operation]();
-      })
-    }
-  }
-
-  /**
-   *
-   * Data Api implementation
-   * ====================================================
-   */
-
-  $(document).on('click', Selector.DATA_TOGGLE, function (event) {
-    event.preventDefault()
-
-    ControlSidebar._jQueryInterface.call($(this), 'toggle')
-  })
-
-  /**
-   * jQuery API
-   * ====================================================
-   */
-
-  $.fn[NAME] = ControlSidebar._jQueryInterface
-  $.fn[NAME].Constructor = ControlSidebar
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return ControlSidebar._jQueryInterface
-  }
-
-  return ControlSidebar
-
-})(jQuery)
-
-const Search = (($) => {
-
-  /**
-   * Constants
-   * ====================================================
-   */
-
-  const NAME               = 'Search'
-  const DATA_KEY           = 'lte.search'
-  const EVENT_KEY          = `.${DATA_KEY}`
-  const JQUERY_NO_CONFLICT = $.fn[NAME]
-
-  const Event = {
-    LOAD_DATA_API: `load${EVENT_KEY}`
-  }
-
-  const Selector = {
-    LI           : '.nav-item',
-    LINK         : '.nav-link',
-    OPEN         : '.menu-open',
-    ACTIVE       : '.active',
-    TREEVIEW_MENU: '[data-widget="treeview"]',
-    NAV_TREEVIEW : '.nav-treeview',
-    NAV_HEADER   : '.nav-header',
-    DATA_WIDGET  : '[data-widget="search"]'
-  }
-
-  const ClassName = {
-    LI          : 'nav-item',
-    LINK        : 'nav-link',
-    NAV_TREEVIEW: 'nav-treeview',
-    OPEN        : 'menu-open'
-  }
-
-  const Default = {
-    target        : '',
-    case_sensitive: false
-  }
-
-  /**
-   * Class Definition
-   * ====================================================
-   */
-  class Search {
-
-    constructor(element, config) {
-      this._config     = config
-      this._element    = element
-      this._open_menus = null
-    }
-
-    // Public
-
-    init() {
-      if (this._config.target === '') {
-        this._config.target = this._element.closest(Selector.TREEVIEW_MENU)
-      } else {
-        this._config.target = $(this._config.target)
-      }
-
-      // Set treeview original state
-      this._open_menus = this._config.target.find(Selector.OPEN)
-
-      // Prevent form submission
-      this._element.parents('form').first().submit((event) => {
-        event.preventDefault()
-      })
-
-      // Setup search function
-      this._element.keyup((event) => {
-        event.preventDefault()
-
-        let value = $(event.currentTarget).val()
-
-        if (!this._config.case_sensitive) {
-          value = value.toLowerCase()
-        }
-
-        this.search(value)
-      })
-    }
-
-    search(value) {
-      let items   = this._config.target.find(Selector.LI)
-      let headers = this._config.target.find(Selector.NAV_HEADER)
-
-      // If the value is back to null
-      if (!value) {
-        // Show all headers
-        headers.css('display', 'block')
-
-        // Close all treeviews
-        items.css('display', 'block')
-          .removeClass(ClassName.OPEN)
-          .find(Selector.NAV_TREEVIEW)
-          .css('display', 'none')
-
-        // Open the originally opened treeviews
-        for (let menu of this._open_menus) {
-          if (!$(menu).hasClass(ClassName.OPEN)) {
-            $(menu).addClass(ClassName.OPEN).css('display', 'block')
-            $(menu).children(Selector.NAV_TREEVIEW).css('display', 'block')
-          }
-        }
-
-        return
-      }
-
-      // Hide all elements
-      items.css('display', 'none')
-      headers.css('display', 'none')
-
-      // Search through the tree elements
-      for (let item of items) {
-        let text = $(item).children('a').text()
-
-        if (!this._config.case_sensitive) {
-          text = text.toLowerCase()
-        }
-
-        if (text.indexOf(value) != -1) {
-          // Found the result
-          // Make the parent LI visible
-          $(item).parents(Selector.LI)
-            .css('display', 'block')
-            .addClass('menu-open')
-
-          $(item).parents(Selector.NAV_TREEVIEW)
-            .css('display', 'block')
-
-          // If this is a treeview parent, make all of its children visible
-          $(item).children(Selector.NAV_TREEVIEW)
-            .css('display', 'block')
-            .children(Selector.LI)
-            .css('display', 'block')
-            .addClass('menu-open')
-
-          // Make this element visible
-          $(item).css('display', 'block')
-        }
-      }
-    }
-
-
-    // Static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        let data    = $(this).data(DATA_KEY)
-        let _config = $.extend({}, Default, $(this).data())
-
-        if (!data) {
-          data = new Search($(this), _config)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (config === 'init') {
-          data[config]()
-        }
-      })
-    }
-  }
-
-  /**
-   * Data API
-   * ====================================================
-   */
-
-  $(window).on(Event.LOAD_DATA_API, () => {
-    $(Selector.DATA_WIDGET).each(function () {
-      Search._jQueryInterface.call($(this), 'init')
-    })
-  })
-
-  /**
-   * jQuery API
-   * ====================================================
-   */
-
-  $.fn[NAME] = Search._jQueryInterface
-  $.fn[NAME].Constructor = Search
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Search._jQueryInterface
-  }
-
-  return Search
-
-})(jQuery)
-
-const SiteSearch = (($) => {
-  'use strict'
-
-  /**
-   * Constants
-   * ====================================================
-   */
-
-  const NAME               = 'SiteSearch'
-  const DATA_KEY           = 'lte.site-search'
-  const EVENT_KEY          = `.${DATA_KEY}`
-  const JQUERY_NO_CONFLICT = $.fn[NAME]
-
-  const Event = {}
-
-  const Selector = {
-    TOGGLE_BUTTON  : '[data-widget="site-search"]',
-    SEARCH_BLOCK   : '.site-search-block',
-    SEARCH_BACKDROP: '.site-search-backdrop',
-    SEARCH_INPUT   : `.site-search-block .form-control`
-  }
-
-  const ClassName = {
-    OPEN: 'site-search-open'
-  }
-
-  const Default = {
-    transitionSpeed: 300
-  }
-
-  /**
-   * Class Definition
-   * ====================================================
-   */
-
-  class SiteSearch {
-
-    constructor(_element, _options) {
-      this.element = _element
-      this.options = $.extend({}, Default, _options);
-    }
-
-    // Public
-
-    open() {
-      $(Selector.SEARCH_BLOCK).slideDown(this.options.transitionSpeed)
-      $(Selector.SEARCH_BACKDROP).show(0)
-      $(Selector.SEARCH_INPUT).focus();
-      $(Selector.SEARCH_BLOCK).addClass(ClassName.OPEN)
-    }
-
-    close() {
-      $(Selector.SEARCH_BLOCK).slideUp(this.options.transitionSpeed)
-      $(Selector.SEARCH_BACKDROP).hide(0)
-      $(Selector.SEARCH_BLOCK).removeClass(ClassName.OPEN)
-    }
-
-    toggle() {
-      if ($(Selector.SEARCH_BLOCK).hasClass(ClassName.OPEN)) {
-        this.close()
-      } else {
-        this.open()
-      }
-    }
-
-    // Static
-
-    static _jQueryInterface(options) {
-      return this.each(function () {
-        let data = $(this).data(DATA_KEY)
-
-        if (!data) {
-          data = new SiteSearch(this, options)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if(!/toggle|close/.test(options)) {
-          throw Error(`Undefined method ${options}`)
-        }
-
-        data[options]()
-      })
-    }
-  }
-
-  /**
-   * Data API
-   * ====================================================
-   */
-  $(document).on('click', Selector.TOGGLE_BUTTON, (event) => {
-    event.preventDefault();
-
-    let button = $(event.currentTarget)
-
-    if (button.data('widget') !== 'site-search') {
-      button = button.closest(Selector.TOGGLE_BUTTON)
-    }
-
-    SiteSearch._jQueryInterface.call(button, 'toggle')
-  });
-
-  $(document).on('click', Selector.SEARCH_BACKDROP, (event) => {
-    let backdrop = $(event.currentTarget)
-    SiteSearch._jQueryInterface.call(backdrop, 'close')
-  });
-
-  /**
-   * jQuery API
-   * ====================================================
-   */
-
-  $.fn[NAME] = SiteSearch._jQueryInterface
-  $.fn[NAME].Constructor = SiteSearch
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return SiteSearch._jQueryInterface
-  }
-
-  return SiteSearch
-
-})(jQuery)

+ 5 - 12
build/scss/AdminLTE.scss

@@ -1,23 +1,20 @@
 /*!
  *   AdminLTE v3.0.0-alpha
  *   Author: Abdullah Almsaeed
- *	 Website: Almsaeed Studio <http://almsaeedstudio.com>
+ *	 Website: AdminLTE.io <http://adminlte.io>
  *   License: Open source - MIT <http://opensource.org/licenses/MIT>
-!*/
-
+ */
 // Bootstrap
-@import "bootstrap_variables";
-@import "../../bower_components/bootstrap/scss/bootstrap";
-
+@import "~bootstrap/scss/functions";
+@import "bootstrap-variables";
+@import "~bootstrap/scss/bootstrap";
 // MISC
 // ----
 @import "variables";
 @import "mixins";
-
 // Core
 // ----
 @import "layout";
-
 // COMPONENTS
 // ----------
 @import "header";
@@ -44,7 +41,6 @@
 @import "carousel";
 @import "modal";
 @import "social-widgets";
-
 // PAGES
 // -----
 @import "mailbox";
@@ -53,18 +49,15 @@
 @import "404_500_errors";
 @import "invoice";
 @import "profile";
-
 // Plugins
 // -------
 @import "bootstrap-social";
 @import "fullcalendar";
 @import "select2";
-
 // Miscellaneous
 // -------------
 @import "miscellaneous";
 @import "print";
-
 // Skins
 // -----
 @import "skins/all-skins";

+ 4 - 4
build/scss/_alerts.scss

@@ -27,21 +27,21 @@
 //Alert Variants
 .alert-success {
   @extend .bg-green;
-  border-color: darken($brand-success, 5%);
+  border-color: darken(theme-color("success"), 5%);
 }
 
 .alert-danger,
 .alert-error {
   @extend .bg-red;
-  border-color: darken($brand-danger, 5%);
+  border-color: darken(theme-color("danger"), 5%);
 }
 
 .alert-warning {
   @extend .bg-yellow;
-  border-color: darken($brand-warning, 5%);
+  border-color: darken(theme-color("warning"), 5%);
 }
 
 .alert-info {
   @extend .bg-aqua;
-  border-color: darken($brand-info, 5%);
+  border-color: darken(theme-color("info"), 5%);
 }

+ 8 - 8
build/scss/_bootstrap-social.scss

@@ -7,14 +7,14 @@
  * https://github.com/lipis/bootstrap-social
  */
 
-$bs-height-base: ($line-height-base + $input-padding-y * 2);
-$bs-height-lg: (floor($font-size-lg * $line-height-base) + $input-padding-y-lg * 2);
-$bs-height-sm: (floor($font-size-sm * 1.5) + $input-padding-y-sm * 2);
-$bs-height-xs: (floor($font-size-sm * 1.2) + $input-padding-y-sm + 1);
+$bs-height-base: ($line-height-base + $input-btn-padding-y * 2);
+$bs-height-lg: (floor($font-size-lg * $line-height-base) + $input-btn-padding-y-lg * 2);
+$bs-height-sm: (floor($font-size-sm * 1.5) + $input-btn-padding-y-sm * 2);
+$bs-height-xs: (floor($font-size-sm * 1.2) + $input-btn-padding-y-sm + 1);
 
 .btn-social {
   position: relative;
-  padding-left: ($bs-height-base + $input-padding-x);
+  padding-left: ($bs-height-base + $input-btn-padding-x);
   text-align: left;
   white-space: nowrap;
   overflow: hidden;
@@ -31,7 +31,7 @@ $bs-height-xs: (floor($font-size-sm * 1.2) + $input-padding-y-sm + 1);
     border-right: 1px solid rgba(0, 0, 0, 0.2);
   }
   &.btn-lg {
-    padding-left: ($bs-height-lg + $input-padding-y-lg);
+    padding-left: ($bs-height-lg + $input-btn-padding-y-lg);
     > :first-child {
       line-height: $bs-height-lg;
       width: $bs-height-lg;
@@ -39,7 +39,7 @@ $bs-height-xs: (floor($font-size-sm * 1.2) + $input-padding-y-sm + 1);
     }
   }
   &.btn-sm {
-    padding-left: ($bs-height-sm + $input-padding-y-sm);
+    padding-left: ($bs-height-sm + $input-btn-padding-y-sm);
     > :first-child {
       line-height: $bs-height-sm;
       width: $bs-height-sm;
@@ -47,7 +47,7 @@ $bs-height-xs: (floor($font-size-sm * 1.2) + $input-padding-y-sm + 1);
     }
   }
   &.btn-xs {
-    padding-left: ($bs-height-xs + $input-padding-y-sm);
+    padding-left: ($bs-height-xs + $input-btn-padding-y-sm);
     > :first-child {
       line-height: $bs-height-xs;
       width: $bs-height-xs;

+ 828 - 0
build/scss/_bootstrap-variables.scss

@@ -0,0 +1,828 @@
+// Variables
+//
+// Variables should follow the `$component-state-property-size` formula for
+// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.
+
+
+//
+// Color system
+//
+
+// stylelint-disable
+$white:    #fff !default;
+$gray-100: #f8f9fa !default;
+$gray-200: #e9ecef !default;
+$gray-300: #dee2e6 !default;
+$gray-400: #ced4da !default;
+$gray-500: #adb5bd !default;
+$gray-600: #868e96 !default;
+$gray-700: #495057 !default;
+$gray-800: #343a40 !default;
+$gray-900: #212529 !default;
+$black:    #000 !default;
+
+$grays: () !default;
+$grays: map-merge((
+        "100": $gray-100,
+        "200": $gray-200,
+        "300": $gray-300,
+        "400": $gray-400,
+        "500": $gray-500,
+        "600": $gray-600,
+        "700": $gray-700,
+        "800": $gray-800,
+        "900": $gray-900
+), $grays);
+
+$blue:    #007bff !default;
+$indigo:  #6610f2 !default;
+$purple:  #6f42c1 !default;
+$pink:    #e83e8c !default;
+$red:     #dc3545 !default;
+$orange:  #fd7e14 !default;
+$yellow:  #ffc107 !default;
+$green:   #28a745 !default;
+$teal:    #20c997 !default;
+$cyan:    #17a2b8 !default;
+
+$colors: () !default;
+$colors: map-merge((
+        "blue":       $blue,
+        "indigo":     $indigo,
+        "purple":     $purple,
+        "pink":       $pink,
+        "red":        $red,
+        "orange":     $orange,
+        "yellow":     $yellow,
+        "green":      $green,
+        "teal":       $teal,
+        "cyan":       $cyan,
+        "white":      $white,
+        "gray":       $gray-600,
+        "gray-dark":  $gray-800
+), $colors);
+
+$primary:       $blue !default;
+$secondary:     $gray-600 !default;
+$success:       $green !default;
+$info:          $cyan !default;
+$warning:       $yellow !default;
+$danger:        $red !default;
+$light:         $gray-100 !default;
+$dark:          $gray-800 !default;
+
+$theme-colors: () !default;
+$theme-colors: map-merge((
+        "primary":    $primary,
+        "secondary":  $secondary,
+        "success":    $success,
+        "info":       $info,
+        "warning":    $warning,
+        "danger":     $danger,
+        "light":      $light,
+        "dark":       $dark
+), $theme-colors);
+// stylelint-enable
+
+// Set a specific jump point for requesting color jumps
+$theme-color-interval:      8% !default;
+
+
+// Options
+//
+// Quickly modify global styling by enabling or disabling optional features.
+
+$enable-caret:              true !default;
+$enable-rounded:            true !default;
+$enable-shadows:            false !default;
+$enable-gradients:          false !default;
+$enable-transitions:        true !default;
+$enable-hover-media-query:  false !default;
+$enable-grid-classes:       true !default;
+$enable-print-styles:       true !default;
+
+
+// Spacing
+//
+// Control the default styling of most Bootstrap elements by modifying these
+// variables. Mostly focused on spacing.
+// You can add more entries to the $spacers map, should you need more variation.
+
+$spacer: 1rem !default;
+$spacers: (
+        0: 0,
+        1: ($spacer * .25),
+        2: ($spacer * .5),
+        3: $spacer,
+        4: ($spacer * 1.5),
+        5: ($spacer * 3)
+) !default;
+
+// This variable affects the `.h-*` and `.w-*` classes.
+$sizes: (
+        25: 25%,
+        50: 50%,
+        75: 75%,
+        100: 100%
+) !default;
+
+// Body
+//
+// Settings for the `<body>` element.
+
+$body-bg:                   $white !default;
+$body-color:                $gray-900 !default;
+
+// Links
+//
+// Style anchor elements.
+
+$link-color:                theme-color("primary") !default;
+$link-decoration:           none !default;
+$link-hover-color:          darken($link-color, 15%) !default;
+$link-hover-decoration:     underline !default;
+
+// Paragraphs
+//
+// Style p element.
+
+$paragraph-margin-bottom:   1rem !default;
+
+
+// Grid breakpoints
+//
+// Define the minimum dimensions at which your layout will change,
+// adapting to different screen sizes, for use in media queries.
+
+$grid-breakpoints: (
+        xs: 0,
+        sm: 576px,
+        md: 768px,
+        lg: 992px,
+        xl: 1200px
+) !default;
+
+@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
+@include _assert-starts-at-zero($grid-breakpoints);
+
+
+// Grid containers
+//
+// Define the maximum width of `.container` for different screen sizes.
+
+$container-max-widths: (
+        sm: 540px,
+        md: 720px,
+        lg: 960px,
+        xl: 1140px
+) !default;
+
+@include _assert-ascending($container-max-widths, "$container-max-widths");
+
+
+// Grid columns
+//
+// Set the number of columns and specify the width of the gutters.
+
+$grid-columns:                12 !default;
+$grid-gutter-width:           30px !default;
+
+// Components
+//
+// Define common padding and border radius sizes and more.
+
+$line-height-lg:              1.5 !default;
+$line-height-sm:              1.5 !default;
+
+$border-width:                1px !default;
+$border-color:                $gray-200 !default;
+
+$border-radius:               .25rem !default;
+$border-radius-lg:            .3rem !default;
+$border-radius-sm:            .2rem !default;
+
+$component-active-color:      $white !default;
+$component-active-bg:         theme-color("primary") !default;
+
+$caret-width:                 .3em !default;
+
+$transition-base:             all .2s ease-in-out !default;
+$transition-fade:             opacity .15s linear !default;
+$transition-collapse:         height .35s ease !default;
+
+
+// Fonts
+//
+// Font, line-height, and color for body text, headings, and more.
+
+// stylelint-disable value-keyword-case
+$font-family-sans-serif:      -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
+$font-family-monospace:       "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
+$font-family-base:            $font-family-sans-serif !default;
+// stylelint-enable value-keyword-case
+
+$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`
+$font-size-lg:                ($font-size-base * 1.25) !default;
+$font-size-sm:                ($font-size-base * .875) !default;
+
+$font-weight-light:           300 !default;
+$font-weight-normal:          400 !default;
+$font-weight-bold:            700 !default;
+
+$font-weight-base:            $font-weight-normal !default;
+$line-height-base:            1.5 !default;
+
+$h1-font-size:                $font-size-base * 2.5 !default;
+$h2-font-size:                $font-size-base * 2 !default;
+$h3-font-size:                $font-size-base * 1.75 !default;
+$h4-font-size:                $font-size-base * 1.5 !default;
+$h5-font-size:                $font-size-base * 1.25 !default;
+$h6-font-size:                $font-size-base !default;
+
+$headings-margin-bottom:      ($spacer / 2) !default;
+$headings-font-family:        inherit !default;
+$headings-font-weight:        500 !default;
+$headings-line-height:        1.2 !default;
+$headings-color:              inherit !default;
+
+$display1-size:               6rem !default;
+$display2-size:               5.5rem !default;
+$display3-size:               4.5rem !default;
+$display4-size:               3.5rem !default;
+
+$display1-weight:             300 !default;
+$display2-weight:             300 !default;
+$display3-weight:             300 !default;
+$display4-weight:             300 !default;
+$display-line-height:         $headings-line-height !default;
+
+$lead-font-size:              ($font-size-base * 1.25) !default;
+$lead-font-weight:            300 !default;
+
+$small-font-size:             80% !default;
+
+$text-muted:                  $gray-600 !default;
+
+$blockquote-small-color:      $gray-600 !default;
+$blockquote-font-size:        ($font-size-base * 1.25) !default;
+
+$hr-border-color:             rgba($black,.1) !default;
+$hr-border-width:             $border-width !default;
+
+$mark-padding:                .2em !default;
+
+$dt-font-weight:              $font-weight-bold !default;
+
+$kbd-box-shadow:              inset 0 -.1rem 0 rgba($black,.25) !default;
+$nested-kbd-font-weight:      $font-weight-bold !default;
+
+$list-inline-padding:         5px !default;
+
+$mark-bg: #fcf8e3 !default;
+
+
+// Tables
+//
+// Customizes the `.table` component with basic values, each used across all table variations.
+
+$table-cell-padding:          .75rem !default;
+$table-cell-padding-sm:       .3rem !default;
+
+$table-bg:                    transparent !default;
+$table-accent-bg:             rgba($black,.05) !default;
+$table-hover-bg:              rgba($black,.075) !default;
+$table-active-bg:             $table-hover-bg !default;
+
+$table-border-width:          $border-width !default;
+$table-border-color:          $gray-200 !default;
+
+$table-head-bg:               $gray-200 !default;
+$table-head-color:            $gray-700 !default;
+
+$table-dark-bg:               $gray-900 !default;
+$table-dark-accent-bg:        rgba($white, .05) !default;
+$table-dark-hover-bg:         rgba($white, .075) !default;
+$table-dark-border-color:     lighten($gray-900, 7.5%) !default;
+$table-dark-color:            $body-bg !default;
+
+
+// Buttons
+//
+// For each of Bootstrap's buttons, define text, background and border color.
+
+$input-btn-padding-y:         .375rem !default;
+$input-btn-padding-x:         .75rem !default;
+$input-btn-line-height:       $line-height-base !default;
+
+$input-btn-focus-width:       .2rem !default;
+$input-btn-focus-color:       rgba(theme-color("primary"), .25) !default;
+$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;
+
+$input-btn-padding-y-sm:      .25rem !default;
+$input-btn-padding-x-sm:      .5rem !default;
+$input-btn-line-height-sm:    $line-height-sm !default;
+
+$input-btn-padding-y-lg:      .5rem !default;
+$input-btn-padding-x-lg:      1rem !default;
+$input-btn-line-height-lg:    $line-height-lg !default;
+
+$btn-font-weight:             $font-weight-normal !default;
+$btn-box-shadow:              inset 0 1px 0 rgba($white,.15), 0 1px 1px rgba($black,.075) !default;
+$btn-active-box-shadow:       inset 0 3px 5px rgba($black,.125) !default;
+
+$btn-link-disabled-color:     $gray-600 !default;
+
+$btn-block-spacing-y:         .5rem !default;
+
+// Allows for customizing button radius independently from global border radius
+$btn-border-radius:           $border-radius !default;
+$btn-border-radius-lg:        $border-radius-lg !default;
+$btn-border-radius-sm:        $border-radius-sm !default;
+
+$btn-transition:              background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+
+// Forms
+
+$input-bg:                              $white !default;
+$input-disabled-bg:                     $gray-200 !default;
+
+$input-color:                           $gray-700 !default;
+$input-border-color:                    $gray-400 !default;
+$input-btn-border-width:                $border-width !default; // For form controls and buttons
+$input-box-shadow:                      inset 0 1px 1px rgba($black,.075) !default;
+
+$input-border-radius:                   $border-radius !default;
+$input-border-radius-lg:                $border-radius-lg !default;
+$input-border-radius-sm:                $border-radius-sm !default;
+
+$input-focus-bg:                        $input-bg !default;
+$input-focus-border-color:              lighten(theme-color("primary"), 25%) !default;
+$input-focus-color:                     $input-color !default;
+
+$input-placeholder-color:               $gray-600 !default;
+
+$input-height-border:                   $input-btn-border-width * 2 !default;
+
+$input-height-inner:                    ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
+$input-height:                          calc(#{$input-height-inner} + #{$input-height-border}) !default;
+
+$input-height-inner-sm:                 ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
+$input-height-sm:                       calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;
+
+$input-height-inner-lg:                 ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;
+$input-height-lg:                       calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;
+
+$input-transition:                      border-color ease-in-out .15s, box-shadow ease-in-out .15s !default;
+
+$form-text-margin-top:                  .25rem !default;
+
+$form-check-margin-bottom:              .5rem !default;
+$form-check-input-gutter:               1.25rem !default;
+$form-check-input-margin-y:             .25rem !default;
+$form-check-input-margin-x:             .25rem !default;
+
+$form-check-inline-margin-x:            .75rem !default;
+
+$form-group-margin-bottom:              1rem !default;
+
+$input-group-addon-color:               $input-color !default;
+$input-group-addon-bg:                  $gray-200 !default;
+$input-group-addon-border-color:        $input-border-color !default;
+
+$custom-control-gutter:                 1.5rem !default;
+$custom-control-spacer-y:               .25rem !default;
+$custom-control-spacer-x:               1rem !default;
+
+$custom-control-indicator-size:         1rem !default;
+$custom-control-indicator-bg:           #ddd !default;
+$custom-control-indicator-bg-size:      50% 50% !default;
+$custom-control-indicator-box-shadow:   inset 0 .25rem .25rem rgba($black,.1) !default;
+
+$custom-control-indicator-disabled-bg:          $gray-200 !default;
+$custom-control-description-disabled-color:     $gray-600 !default;
+
+$custom-control-indicator-checked-color:        $white !default;
+$custom-control-indicator-checked-bg:           theme-color("primary") !default;
+$custom-control-indicator-checked-box-shadow:   none !default;
+
+$custom-control-indicator-focus-box-shadow:     0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
+
+$custom-control-indicator-active-color:         $white !default;
+$custom-control-indicator-active-bg:            lighten(theme-color("primary"), 35%) !default;
+$custom-control-indicator-active-box-shadow:    none !default;
+
+$custom-checkbox-indicator-border-radius:       $border-radius !default;
+$custom-checkbox-indicator-icon-checked:        str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$custom-checkbox-indicator-indeterminate-bg:    theme-color("primary") !default;
+$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
+$custom-checkbox-indicator-icon-indeterminate:  str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E"), "#", "%23") !default;
+$custom-checkbox-indicator-indeterminate-box-shadow: none !default;
+
+$custom-radio-indicator-border-radius:          50% !default;
+$custom-radio-indicator-icon-checked:           str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$custom-select-padding-y:           .375rem !default;
+$custom-select-padding-x:          .75rem !default;
+$custom-select-height:              $input-height !default;
+$custom-select-indicator-padding:   1rem !default; // Extra padding to account for the presence of the background-image based indicator
+$custom-select-line-height:         $input-btn-line-height !default;
+$custom-select-color:               $input-color !default;
+$custom-select-disabled-color:      $gray-600 !default;
+$custom-select-bg:                  $white !default;
+$custom-select-disabled-bg:         $gray-200 !default;
+$custom-select-bg-size:             8px 10px !default; // In pixels because image dimensions
+$custom-select-indicator-color:     #333 !default;
+$custom-select-indicator:           str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E"), "#", "%23") !default;
+$custom-select-border-width:        $input-btn-border-width !default;
+$custom-select-border-color:        $input-border-color !default;
+$custom-select-border-radius:       $border-radius !default;
+
+$custom-select-focus-border-color:  lighten(theme-color("primary"), 25%) !default;
+$custom-select-focus-box-shadow:    inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;
+
+$custom-select-font-size-sm:        75% !default;
+$custom-select-height-sm:           $input-height-sm !default;
+
+$custom-file-height:                $input-height !default;
+$custom-file-width:                 14rem !default;
+$custom-file-focus-box-shadow:      0 0 0 .075rem $white, 0 0 0 .2rem theme-color("primary") !default;
+
+$custom-file-padding-y:             $input-btn-padding-y !default;
+$custom-file-padding-x:             $input-btn-padding-x !default;
+$custom-file-line-height:           $input-btn-line-height !default;
+$custom-file-color:                 $input-color !default;
+$custom-file-bg:                    $input-bg !default;
+$custom-file-border-width:          $input-btn-border-width !default;
+$custom-file-border-color:          $input-border-color !default;
+$custom-file-border-radius:         $input-border-radius !default;
+$custom-file-box-shadow:            $input-box-shadow !default;
+$custom-file-button-color:          $custom-file-color !default;
+$custom-file-button-bg:             $input-group-addon-bg !default;
+$custom-file-text: (
+        placeholder: (
+                en: "Choose file..."
+        ),
+        button-label: (
+                en: "Browse"
+        )
+) !default;
+
+
+// Form validation
+$form-feedback-valid-color:         theme-color("success") !default;
+$form-feedback-invalid-color:       theme-color("danger") !default;
+
+
+// Dropdowns
+//
+// Dropdown menu container and contents.
+
+$dropdown-min-width:                10rem !default;
+$dropdown-padding-y:                .5rem !default;
+$dropdown-spacer:                   .125rem !default;
+$dropdown-bg:                       $white !default;
+$dropdown-border-color:             rgba($black,.15) !default;
+$dropdown-border-width:             $border-width !default;
+$dropdown-divider-bg:               $gray-200 !default;
+$dropdown-box-shadow:               0 .5rem 1rem rgba($black,.175) !default;
+
+$dropdown-link-color:               $gray-900 !default;
+$dropdown-link-hover-color:         darken($gray-900, 5%) !default;
+$dropdown-link-hover-bg:            $gray-100 !default;
+
+$dropdown-link-active-color:        $component-active-color !default;
+$dropdown-link-active-bg:           $component-active-bg !default;
+
+$dropdown-link-disabled-color:      $gray-600 !default;
+
+$dropdown-item-padding-y:           .25rem !default;
+$dropdown-item-padding-x:           1.5rem !default;
+
+$dropdown-header-color:             $gray-600 !default;
+
+
+// Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+
+$zindex-dropdown:                   1000 !default;
+$zindex-sticky:                     1020 !default;
+$zindex-fixed:                      1030 !default;
+$zindex-modal-backdrop:             1040 !default;
+$zindex-modal:                      1050 !default;
+$zindex-popover:                    1060 !default;
+$zindex-tooltip:                    1070 !default;
+
+// Navs
+
+$nav-link-padding-y:                .5rem !default;
+$nav-link-padding-x:                1rem !default;
+$nav-link-disabled-color:           $gray-600 !default;
+
+$nav-tabs-border-color:             #ddd !default;
+$nav-tabs-border-width:             $border-width !default;
+$nav-tabs-border-radius:            $border-radius !default;
+$nav-tabs-link-hover-border-color:  $gray-200 !default;
+$nav-tabs-link-active-color:        $gray-700 !default;
+$nav-tabs-link-active-bg:           $body-bg !default;
+$nav-tabs-link-active-border-color: #ddd !default;
+
+$nav-pills-border-radius:           $border-radius !default;
+$nav-pills-link-active-color:       $component-active-color !default;
+$nav-pills-link-active-bg:          $component-active-bg !default;
+
+// Navbar
+
+$navbar-padding-y:                  ($spacer / 2) !default;
+$navbar-padding-x:                  $spacer !default;
+
+$navbar-brand-font-size:            $font-size-lg !default;
+// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
+$nav-link-height:                   ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;
+$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;
+$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) / 2 !default;
+
+$navbar-toggler-padding-y:          .25rem !default;
+$navbar-toggler-padding-x:          .75rem !default;
+$navbar-toggler-font-size:          $font-size-lg !default;
+$navbar-toggler-border-radius:      $btn-border-radius !default;
+
+$navbar-dark-color:                 rgba($white,.5) !default;
+$navbar-dark-hover-color:           rgba($white,.75) !default;
+$navbar-dark-active-color:          $white !default;
+$navbar-dark-disabled-color:        rgba($white,.25) !default;
+$navbar-dark-toggler-icon-bg:       str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
+$navbar-dark-toggler-border-color:  rgba($white,.1) !default;
+
+$navbar-light-color:                rgba($black,.5) !default;
+$navbar-light-hover-color:          rgba($black,.7) !default;
+$navbar-light-active-color:         rgba($black,.9) !default;
+$navbar-light-disabled-color:       rgba($black,.3) !default;
+$navbar-light-toggler-icon-bg:      str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
+$navbar-light-toggler-border-color: rgba($black,.1) !default;
+
+// Pagination
+
+$pagination-padding-y:              .5rem !default;
+$pagination-padding-x:              .75rem !default;
+$pagination-padding-y-sm:           .25rem !default;
+$pagination-padding-x-sm:           .5rem !default;
+$pagination-padding-y-lg:           .75rem !default;
+$pagination-padding-x-lg:           1.5rem !default;
+$pagination-line-height:            1.25 !default;
+
+$pagination-color:                  $link-color !default;
+$pagination-bg:                     $white !default;
+$pagination-border-width:           $border-width !default;
+$pagination-border-color:           #ddd !default;
+
+$pagination-hover-color:            $link-hover-color !default;
+$pagination-hover-bg:               $gray-200 !default;
+$pagination-hover-border-color:     #ddd !default;
+
+$pagination-active-color:           $white !default;
+$pagination-active-bg:              theme-color("primary") !default;
+$pagination-active-border-color:    theme-color("primary") !default;
+
+$pagination-disabled-color:         $gray-600 !default;
+$pagination-disabled-bg:            $white !default;
+$pagination-disabled-border-color:  #ddd !default;
+
+
+// Jumbotron
+
+$jumbotron-padding:                 2rem !default;
+$jumbotron-bg:                      $gray-200 !default;
+
+
+// Cards
+
+$card-spacer-y:                     .75rem !default;
+$card-spacer-x:                     1.25rem !default;
+$card-border-width:                 $border-width !default;
+$card-border-radius:                $border-radius !default;
+$card-border-color:                 rgba($black,.125) !default;
+$card-inner-border-radius:          calc(#{$card-border-radius} - #{$card-border-width}) !default;
+$card-cap-bg:                       rgba($black, .03) !default;
+$card-bg:                           $white !default;
+
+$card-img-overlay-padding:          1.25rem !default;
+
+$card-group-margin:                 ($grid-gutter-width / 2) !default;
+$card-deck-margin:                  $card-group-margin !default;
+
+$card-columns-count:                3 !default;
+$card-columns-gap:                  1.25rem !default;
+$card-columns-margin:               $card-spacer-y !default;
+
+
+// Tooltips
+
+$tooltip-max-width:                 200px !default;
+$tooltip-color:                     $white !default;
+$tooltip-bg:                        $black !default;
+$tooltip-opacity:                   .9 !default;
+$tooltip-padding-y:                 3px !default;
+$tooltip-padding-x:                 8px !default;
+$tooltip-margin:                    0 !default;
+
+
+$tooltip-arrow-width:               5px !default;
+$tooltip-arrow-height:              5px !default;
+$tooltip-arrow-color:               $tooltip-bg !default;
+
+
+// Popovers
+
+$popover-bg:                        $white !default;
+$popover-max-width:                 276px !default;
+$popover-border-width:              $border-width !default;
+$popover-border-color:              rgba($black,.2) !default;
+$popover-box-shadow:                0 .25rem .5rem rgba($black,.2) !default;
+
+$popover-header-bg:                 darken($popover-bg, 3%) !default;
+$popover-header-color:              $headings-color !default;
+$popover-header-padding-y:          .5rem !default;
+$popover-header-padding-x:          .75rem !default;
+
+$popover-body-color:                $body-color !default;
+$popover-body-padding-y:            $popover-header-padding-y !default;
+$popover-body-padding-x:            $popover-header-padding-x !default;
+
+$popover-arrow-width:               .8rem !default;
+$popover-arrow-height:              .4rem !default;
+$popover-arrow-color:               $popover-bg !default;
+
+$popover-arrow-outer-color:         fade-in($popover-border-color, .05) !default;
+
+
+// Badges
+
+$badge-font-size:                   75% !default;
+$badge-font-weight:                 $font-weight-bold !default;
+$badge-padding-y:                   .25em !default;
+$badge-padding-x:                   .4em !default;
+$badge-border-radius:               $border-radius !default;
+
+$badge-pill-padding-x:              .6em !default;
+// Use a higher than normal value to ensure completely rounded edges when
+// customizing padding or font-size on labels.
+$badge-pill-border-radius:          10rem !default;
+
+
+// Modals
+
+// Padding applied to the modal body
+$modal-inner-padding:               15px !default;
+
+$modal-dialog-margin:               10px !default;
+$modal-dialog-margin-y-sm-up:       30px !default;
+
+$modal-title-line-height:           $line-height-base !default;
+
+$modal-content-bg:                  $white !default;
+$modal-content-border-color:        rgba($black,.2) !default;
+$modal-content-border-width:        $border-width !default;
+$modal-content-box-shadow-xs:       0 3px 9px rgba($black,.5) !default;
+$modal-content-box-shadow-sm-up:    0 5px 15px rgba($black,.5) !default;
+
+$modal-backdrop-bg:                 $black !default;
+$modal-backdrop-opacity:            .5 !default;
+$modal-header-border-color:         $gray-200 !default;
+$modal-footer-border-color:         $modal-header-border-color !default;
+$modal-header-border-width:         $modal-content-border-width !default;
+$modal-footer-border-width:         $modal-header-border-width !default;
+$modal-header-padding:              15px !default;
+
+$modal-lg:                          800px !default;
+$modal-md:                          500px !default;
+$modal-sm:                          300px !default;
+
+$modal-transition:                  transform .3s ease-out !default;
+
+
+// Alerts
+//
+// Define alert colors, border radius, and padding.
+
+$alert-padding-y:                   .75rem !default;
+$alert-padding-x:                   1.25rem !default;
+$alert-margin-bottom:               1rem !default;
+$alert-border-radius:               $border-radius !default;
+$alert-link-font-weight:            $font-weight-bold !default;
+$alert-border-width:                $border-width !default;
+
+
+// Progress bars
+
+$progress-height:                   1rem !default;
+$progress-font-size:                ($font-size-base * .75) !default;
+$progress-bg:                       $gray-200 !default;
+$progress-border-radius:            $border-radius !default;
+$progress-box-shadow:               inset 0 .1rem .1rem rgba($black,.1) !default;
+$progress-bar-color:                $white !default;
+$progress-bar-bg:                   theme-color("primary") !default;
+$progress-bar-animation-timing:     1s linear infinite !default;
+$progress-bar-transition:           width .6s ease !default;
+
+// List group
+
+$list-group-bg:                     $white !default;
+$list-group-border-color:           rgba($black,.125) !default;
+$list-group-border-width:           $border-width !default;
+$list-group-border-radius:          $border-radius !default;
+
+$list-group-item-padding-y:         .75rem !default;
+$list-group-item-padding-x:         1.25rem !default;
+
+$list-group-hover-bg:               $gray-100 !default;
+$list-group-active-color:           $component-active-color !default;
+$list-group-active-bg:              $component-active-bg !default;
+$list-group-active-border-color:    $list-group-active-bg !default;
+
+$list-group-disabled-color:         $gray-600 !default;
+$list-group-disabled-bg:            $list-group-bg !default;
+
+$list-group-action-color:           $gray-700 !default;
+$list-group-action-hover-color:     $list-group-action-color !default;
+
+$list-group-action-active-color:    $body-color !default;
+$list-group-action-active-bg:       $gray-200 !default;
+
+
+// Image thumbnails
+
+$thumbnail-padding:                 .25rem !default;
+$thumbnail-bg:                      $body-bg !default;
+$thumbnail-border-width:            $border-width !default;
+$thumbnail-border-color:            #ddd !default;
+$thumbnail-border-radius:           $border-radius !default;
+$thumbnail-box-shadow:              0 1px 2px rgba($black,.075) !default;
+$thumbnail-transition:              all .2s ease-in-out !default;
+
+
+// Figures
+
+$figure-caption-font-size:          90% !default;
+$figure-caption-color:              $gray-600 !default;
+
+
+// Breadcrumbs
+
+$breadcrumb-padding-y:              .75rem !default;
+$breadcrumb-padding-x:              1rem !default;
+$breadcrumb-item-padding:           .5rem !default;
+
+$breadcrumb-margin-bottom:          1rem !default;
+
+$breadcrumb-bg:                     $gray-200 !default;
+$breadcrumb-divider-color:          $gray-600 !default;
+$breadcrumb-active-color:           $gray-600 !default;
+$breadcrumb-divider:                "/" !default;
+
+
+// Carousel
+
+$carousel-control-color:            $white !default;
+$carousel-control-width:            15% !default;
+$carousel-control-opacity:          .5 !default;
+
+$carousel-indicator-width:          30px !default;
+$carousel-indicator-height:         3px !default;
+$carousel-indicator-spacer:         3px !default;
+$carousel-indicator-active-bg:      $white !default;
+
+$carousel-caption-width:            70% !default;
+$carousel-caption-color:            $white !default;
+
+$carousel-control-icon-width:       20px !default;
+
+$carousel-control-prev-icon-bg:     str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"), "#", "%23") !default;
+$carousel-control-next-icon-bg:     str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$carousel-transition:               transform .6s ease !default;
+
+
+// Close
+
+$close-font-size:                   $font-size-base * 1.5 !default;
+$close-font-weight:                 $font-weight-bold !default;
+$close-color:                       $black !default;
+$close-text-shadow:                 0 1px 0 $white !default;
+
+// Code
+
+$code-font-size:                    90% !default;
+$code-padding-y:                    .2rem !default;
+$code-padding-x:                    .4rem !default;
+$code-color:                        #bd4147 !default;
+$code-bg:                           $gray-100 !default;
+
+$kbd-color:                         $white !default;
+$kbd-bg:                            $gray-900 !default;
+
+$pre-color:                         $gray-900 !default;
+$pre-scrollable-max-height:         340px !default;

+ 0 - 843
build/scss/_bootstrap_variables.scss

@@ -1,843 +0,0 @@
-// Variables
-//
-// Copy settings from this file into the provided `_custom.scss` to override
-// the Bootstrap defaults without modifying key, versioned files.
-
-
-// Table of Contents
-//
-// Colors
-// Options
-// Spacing
-// Body
-// Links
-// Grid breakpoints
-// Grid containers
-// Grid columns
-// Fonts
-// Components
-
-@mixin _assert-ascending($map, $map-name) {
-  $prev-key: null;
-  $prev-num: null;
-  @each $key, $num in $map {
-    @if $prev-num == null {
-      // Do nothing
-    } @else if not comparable($prev-num, $num) {
-      @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
-    } @else if $prev-num >= $num {
-      @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
-    }
-    $prev-key: $key;
-    $prev-num: $num;
-  }
-}
-
-// General variable structure
-//
-// Variable format should follow the `$component-modifier-state-property` order.
-
-
-// Colors
-//
-// Grayscale and brand colors for use across Bootstrap.
-
-$gray-dark:                 #373a3c !default;
-$gray:                      #55595c !default;
-$gray-light:                #818a91 !default;
-$gray-lighter:              #eceeef !default;
-$gray-lightest:             #f7f7f9 !default;
-
-$brand-primary:             #3c8dbc !default;
-$brand-success:             #00a65a !default;
-$brand-info:                #00c0ef !default;
-$brand-warning:             #f39c12 !default;
-$brand-danger:              #dd4b39 !default;
-$brand-inverse:             $gray-dark !default;
-
-
-// Options
-//
-// Quickly modify global styling by enabling or disabling optional features.
-
-$enable-flex:               false !default;
-$enable-rounded:            true !default;
-$enable-shadows:            true !default;
-$enable-gradients:          false !default;
-$enable-transitions:        true !default;
-$enable-hover-media-query:  false !default;
-$enable-grid-classes:       true !default;
-$enable-print-styles:       true !default;
-
-
-// Spacing
-//
-// Control the default styling of most Bootstrap elements by modifying these
-// variables. Mostly focused on spacing.
-// You can add more entries to the $spacers map, should you need more variation.
-
-$spacer:   1rem !default;
-$spacer-x: $spacer !default;
-$spacer-y: $spacer !default;
-$spacers: (
-        0: (
-                x: 0,
-                y: 0
-        ),
-        1: (
-                x: $spacer-x,
-                y: $spacer-y
-        ),
-        2: (
-                x: ($spacer-x * 1.5),
-                y: ($spacer-y * 1.5)
-        ),
-        3: (
-                x: ($spacer-x * 3),
-                y: ($spacer-y * 3)
-        )
-) !default;
-$border-width: 1px !default;
-
-
-// Body
-//
-// Settings for the `<body>` element.
-
-$body-bg:    #fff !default;
-$body-color: $gray !default;
-
-
-// Links
-//
-// Style anchor elements.
-
-$link-color:            $brand-primary !default;
-$link-decoration:       none !default;
-$link-hover-color:      darken($link-color, 15%) !default;
-$link-hover-decoration: underline !default;
-
-
-// Grid breakpoints
-//
-// Define the minimum dimensions at which your layout will change,
-// adapting to different screen sizes, for use in media queries.
-
-$grid-breakpoints: (
-        xs: 0,
-        sm: 576px,
-        md: 768px,
-        lg: 992px,
-        xl: 1200px
-) !default;
-@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
-
-
-// Grid containers
-//
-// Define the maximum width of `.container` for different screen sizes.
-
-$container-max-widths: (
-        sm: 540px,
-        md: 720px,
-        lg: 960px,
-        xl: 1140px
-) !default;
-@include _assert-ascending($container-max-widths, "$container-max-widths");
-
-
-// Grid columns
-//
-// Set the number of columns and specify the width of the gutters.
-
-$grid-columns:               12 !default;
-$grid-gutter-width-base:     30px !default;
-$grid-gutter-widths: (
-        xs: $grid-gutter-width-base,
-        sm: $grid-gutter-width-base,
-        md: $grid-gutter-width-base,
-        lg: $grid-gutter-width-base,
-        xl: $grid-gutter-width-base
-) !default;
-
-// Typography
-//
-// Font, line-height, and color for body text, headings, and more.
-
-$font-family-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default;
-$font-family-serif:      Georgia, "Times New Roman", Times, serif !default;
-$font-family-monospace:  Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
-$font-family-base:       $font-family-sans-serif !default;
-
-// Pixel value used to responsively scale all typography. Applied to the `<html>` element.
-$font-size-root: 16px !default;
-
-$font-size-base: 1rem !default;
-$font-size-lg:   1.25rem !default;
-$font-size-sm:   .875rem !default;
-$font-size-xs:   .75rem !default;
-
-$line-height-base: 1.5 !default;
-
-$font-size-h1: 2.5rem !default;
-$font-size-h2: 2rem !default;
-$font-size-h3: 1.75rem !default;
-$font-size-h4: 1.5rem !default;
-$font-size-h5: 1.25rem !default;
-$font-size-h6: 1rem !default;
-
-$display1-size: 6rem !default;
-$display2-size: 5.5rem !default;
-$display3-size: 4.5rem !default;
-$display4-size: 3.5rem !default;
-
-$display1-weight: 300 !default;
-$display2-weight: 300 !default;
-$display3-weight: 300 !default;
-$display4-weight: 300 !default;
-
-$headings-margin-bottom: ($spacer / 2) !default;
-$headings-font-family:   inherit !default;
-$headings-font-weight:   500 !default;
-$headings-line-height:   1.1 !default;
-$headings-color:         inherit !default;
-
-$lead-font-size:   1.25rem !default;
-$lead-font-weight: 300 !default;
-
-$text-muted: $gray-light !default;
-
-$abbr-border-color: $gray-light !default;
-
-$blockquote-small-color:  $gray-light !default;
-$blockquote-font-size:    ($font-size-base * 1.25) !default;
-$blockquote-border-color: $gray-lighter !default;
-$blockquote-border-width: .25rem !default;
-
-$hr-border-color: rgba(0,0,0,.1) !default;
-$hr-border-width: $border-width !default;
-
-$mark-padding: .2em !default;
-
-$dt-font-weight: bold !default;
-
-$kbd-box-shadow:         inset 0 -.1rem 0 rgba(0,0,0,.25) !default;
-$nested-kbd-font-weight: bold !default;
-
-$list-inline-padding: 5px !default;
-
-
-// Components
-//
-// Define common padding and border radius sizes and more.
-
-$line-height-lg:         (4 / 3) !default;
-$line-height-sm:         1.5 !default;
-
-$border-radius:          .25rem !default;
-$border-radius-lg:       .3rem !default;
-$border-radius-sm:       .2rem !default;
-
-$component-active-color: #fff !default;
-$component-active-bg:    $brand-primary !default;
-
-$caret-width:            .3em !default;
-$caret-width-lg:         $caret-width !default;
-
-
-// Tables
-//
-// Customizes the `.table` component with basic values, each used across all table variations.
-
-$table-cell-padding:            .75rem !default;
-$table-sm-cell-padding:         .3rem !default;
-
-$table-bg:                      transparent !default;
-$table-bg-accent:               rgba(0,0,0,.05) !default;
-$table-bg-hover:                rgba(0,0,0,.075) !default;
-$table-bg-active:               $table-bg-hover !default;
-
-$table-border-width:            $border-width !default;
-$table-border-color:            $gray-lighter !default;
-
-
-// Buttons
-//
-// For each of Bootstrap's buttons, define text, background and border color.
-
-$btn-padding-x:                  1rem !default;
-$btn-padding-y:                  .5rem !default;
-$btn-line-height:                1.25 !default;
-$btn-font-weight:                normal !default;
-$btn-box-shadow:                 inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075) !default;
-$btn-active-box-shadow:          inset 0 3px 5px rgba(0,0,0,.125) !default;
-
-$btn-primary-color:              #fff !default;
-$btn-primary-bg:                 $brand-primary !default;
-$btn-primary-border:             $btn-primary-bg !default;
-
-$btn-secondary-color:            $gray-dark !default;
-$btn-secondary-bg:               #fff !default;
-$btn-secondary-border:           #ccc !default;
-
-$btn-info-color:                 #fff !default;
-$btn-info-bg:                    $brand-info !default;
-$btn-info-border:                $btn-info-bg !default;
-
-$btn-success-color:              #fff !default;
-$btn-success-bg:                 $brand-success !default;
-$btn-success-border:             $btn-success-bg !default;
-
-$btn-warning-color:              #fff !default;
-$btn-warning-bg:                 $brand-warning !default;
-$btn-warning-border:             $btn-warning-bg !default;
-
-$btn-danger-color:               #fff !default;
-$btn-danger-bg:                  $brand-danger !default;
-$btn-danger-border:              $btn-danger-bg !default;
-
-$btn-link-disabled-color:        $gray-light !default;
-
-$btn-padding-x-sm:               .5rem !default;
-$btn-padding-y-sm:               .25rem !default;
-
-$btn-padding-x-lg:               1.5rem !default;
-$btn-padding-y-lg:               .75rem !default;
-
-$btn-block-spacing-y:            .5rem !default;
-$btn-toolbar-margin:             .5rem !default;
-
-// Allows for customizing button radius independently from global border radius
-$btn-border-radius:              $border-radius !default;
-$btn-border-radius-lg:           $border-radius-lg !default;
-$btn-border-radius-sm:           $border-radius-sm !default;
-
-
-// Forms
-
-$input-padding-x:                .75rem !default;
-$input-padding-y:                .5rem !default;
-$input-line-height:              1.25 !default;
-
-$input-bg:                       #fff !default;
-$input-bg-disabled:              $gray-lighter !default;
-
-$input-color:                    $gray !default;
-$input-border-color:             rgba(0,0,0,.15) !default;
-$input-btn-border-width:         $border-width !default; // For form controls and buttons
-$input-box-shadow:               inset 0 1px 1px rgba(0,0,0,.075) !default;
-
-$input-border-radius:            $border-radius !default;
-$input-border-radius-lg:         $border-radius-lg !default;
-$input-border-radius-sm:         $border-radius-sm !default;
-
-$input-bg-focus:                 $input-bg !default;
-$input-border-focus:             #66afe9 !default;
-$input-box-shadow-focus:         $input-box-shadow, 0 0 8px rgba(102,175,233,.6) !default;
-$input-color-focus:              $input-color !default;
-
-$input-color-placeholder:        #999 !default;
-
-$input-padding-x-sm:             .5rem !default;
-$input-padding-y-sm:             .25rem !default;
-
-$input-padding-x-lg:             1.5rem !default;
-$input-padding-y-lg:             .75rem !default;
-
-$input-height:                   (($font-size-base * $line-height-base) + ($input-padding-y * 2)) !default;
-$input-height-lg:                (($font-size-lg * $line-height-lg) + ($input-padding-y-lg * 2)) !default;
-$input-height-sm:                (($font-size-sm * $line-height-sm) + ($input-padding-y-sm * 2)) !default;
-
-$form-group-margin-bottom:       $spacer-y !default;
-
-$input-group-addon-bg:           $gray-lighter !default;
-$input-group-addon-border-color: $input-border-color !default;
-
-$cursor-disabled:                not-allowed !default;
-
-$custom-control-gutter:   1.5rem !default;
-$custom-control-spacer-x: 1rem !default;
-$custom-control-spacer-y: .25rem !default;
-
-$custom-control-indicator-size:       1rem !default;
-$custom-control-indicator-bg:         #ddd !default;
-$custom-control-indicator-bg-size:    50% 50% !default;
-$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba(0,0,0,.1) !default;
-
-$custom-control-disabled-cursor:             $cursor-disabled !default;
-$custom-control-disabled-indicator-bg:       #eee !default;
-$custom-control-disabled-description-color:  #767676 !default;
-
-$custom-control-checked-indicator-color:      #fff !default;
-$custom-control-checked-indicator-bg:         #0074d9 !default;
-$custom-control-checked-indicator-box-shadow: none !default;
-
-$custom-control-focus-indicator-box-shadow: 0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9 !default;
-
-$custom-control-active-indicator-color:      #fff !default;
-$custom-control-active-indicator-bg:         #84c6ff !default;
-$custom-control-active-indicator-box-shadow: none !default;
-
-$custom-checkbox-radius: $border-radius !default;
-$custom-checkbox-checked-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-checked-indicator-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E") !default;
-
-$custom-checkbox-indeterminate-bg: #0074d9 !default;
-$custom-checkbox-indeterminate-indicator-color: $custom-control-checked-indicator-color !default;
-$custom-checkbox-indeterminate-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indeterminate-indicator-color}' d='M0 2h4'/%3E%3C/svg%3E") !default;
-$custom-checkbox-indeterminate-box-shadow: none !default;
-
-$custom-radio-radius: 50% !default;
-$custom-radio-checked-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-checked-indicator-color}'/%3E%3C/svg%3E") !default;
-
-$custom-select-padding-x:          .75rem  !default;
-$custom-select-padding-y:          .375rem !default;
-$custom-select-indicator-padding:  1rem !default; // Extra padding to account for the presence of the background-image based indicator
-$custom-select-color:          $input-color !default;
-$custom-select-disabled-color: $gray-light !default;
-$custom-select-bg:            #fff !default;
-$custom-select-disabled-bg:   $gray-lighter !default;
-$custom-select-bg-size:       8px 10px !default; // In pixels because image dimensions
-$custom-select-indicator-color: #333 !default;
-$custom-select-indicator:     url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") !default;
-$custom-select-border-width:  $input-btn-border-width !default;
-$custom-select-border-color:  $input-border-color !default;
-$custom-select-border-radius: $border-radius !default;
-
-$custom-select-focus-border-color: #51a7e8 !default;
-$custom-select-focus-box-shadow:   inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba(81, 167, 232, .5) !default;
-
-$custom-select-sm-padding-y: .2rem !default;
-$custom-select-sm-font-size: 75% !default;
-
-$custom-file-height:           2.5rem !default;
-$custom-file-width:            14rem !default;
-$custom-file-focus-box-shadow: 0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9 !default;
-
-$custom-file-padding-x:     .5rem !default;
-$custom-file-padding-y:     1rem !default;
-$custom-file-line-height:   1.5 !default;
-$custom-file-color:         #555 !default;
-$custom-file-bg:            #fff !default;
-$custom-file-border-width:  $border-width !default;
-$custom-file-border-color:  #ddd !default;
-$custom-file-border-radius: $border-radius !default;
-$custom-file-box-shadow:    inset 0 .2rem .4rem rgba(0,0,0,.05) !default;
-$custom-file-button-color:  $custom-file-color !default;
-$custom-file-button-bg:     #eee !default;
-$custom-file-text: (
-        placeholder: (
-                en: "Choose file..."
-        ),
-        button-label: (
-                en: "Browse"
-        )
-) !default;
-
-
-// Form validation icons
-$form-icon-success-color: $brand-success !default;
-$form-icon-success: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$form-icon-success-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") !default;
-
-$form-icon-warning-color: $brand-warning !default;
-$form-icon-warning: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$form-icon-warning-color}' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E") !default;
-
-$form-icon-danger-color: $brand-danger !default;
-$form-icon-danger: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-icon-danger-color}' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E") !default;
-
-
-// Dropdowns
-//
-// Dropdown menu container and contents.
-
-$dropdown-min-width:             10rem !default;
-$dropdown-padding-y:             .5rem !default;
-$dropdown-margin-top:            .125rem !default;
-$dropdown-bg:                    #fff !default;
-$dropdown-border-color:          rgba(0,0,0,.15) !default;
-$dropdown-border-width:          $border-width !default;
-$dropdown-divider-bg:            #e5e5e5 !default;
-$dropdown-box-shadow:            0 .5rem 1rem rgba(0,0,0,.175) !default;
-
-$dropdown-link-color:            $gray-dark !default;
-$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
-$dropdown-link-hover-bg:         #f5f5f5 !default;
-
-$dropdown-link-active-color:     $component-active-color !default;
-$dropdown-link-active-bg:        $component-active-bg !default;
-
-$dropdown-link-disabled-color:   $gray-light !default;
-
-$dropdown-item-padding-x:        1rem !default;
-
-$dropdown-header-color:          $gray-light !default;
-
-
-// Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-
-$zindex-dropdown-backdrop:  990 !default;
-$zindex-navbar:            1000 !default;
-$zindex-dropdown:          1000 !default;
-$zindex-popover:           1060 !default;
-$zindex-tooltip:           1070 !default;
-$zindex-navbar-fixed:      1030 !default;
-$zindex-navbar-sticky:     1030 !default;
-$zindex-modal-bg:          1040 !default;
-$zindex-modal:             1050 !default;
-
-
-// Navbar
-
-$navbar-border-radius:              $border-radius !default;
-$navbar-padding-x:                  $spacer !default;
-$navbar-padding-y:                  ($spacer / 2) !default;
-$navbar-brand-padding-y:            .25rem !default;
-
-$navbar-dark-color:                 rgba(255,255,255,1) !default;
-$navbar-dark-hover-color:           rgba(255,255,255,1) !default;
-$navbar-dark-active-color:          rgba(255,255,255,1) !default;
-$navbar-dark-disabled-color:        rgba(255,255,255,.25) !default;
-$navbar-dark-toggler-bg: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E") !default;
-
-$navbar-light-color:                rgba(0,0,0,.3) !default;
-$navbar-light-hover-color:          rgba(0,0,0,.6) !default;
-$navbar-light-active-color:         rgba(0,0,0,.8) !default;
-$navbar-light-disabled-color:       rgba(0,0,0,.15) !default;
-$navbar-light-toggler-bg: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E") !default;
-
-
-// Navs
-
-$nav-item-margin:               .2rem !default;
-$nav-item-inline-spacer:        1rem !default;
-$nav-link-padding:              .5em 1em !default;
-$nav-link-hover-bg:             $gray-lighter !default;
-$nav-disabled-link-color:       $gray-light !default;
-$nav-disabled-link-hover-color: $gray-light !default;
-$nav-disabled-link-hover-bg:    transparent !default;
-
-$nav-tabs-border-color:                       #ddd !default;
-$nav-tabs-border-width:                       $border-width !default;
-$nav-tabs-border-radius:                      $border-radius !default;
-$nav-tabs-link-hover-border-color:            $gray-lighter !default;
-$nav-tabs-active-link-hover-color:            $gray !default;
-$nav-tabs-active-link-hover-bg:               transparent !default;
-$nav-tabs-active-link-hover-border-color:     #ddd !default;
-$nav-tabs-justified-link-border-color:        #ddd !default;
-$nav-tabs-justified-active-link-border-color: $body-bg !default;
-
-$nav-pills-border-radius:     $border-radius !default;
-$nav-pills-active-link-color: $component-active-color !default;
-$nav-pills-active-link-bg:    $component-active-bg !default;
-
-
-// Pagination
-
-$pagination-padding-x:                .75rem !default;
-$pagination-padding-y:                .5rem !default;
-$pagination-padding-x-sm:             .75rem !default;
-$pagination-padding-y-sm:             .275rem !default;
-$pagination-padding-x-lg:             1.5rem !default;
-$pagination-padding-y-lg:             .75rem !default;
-
-
-$pagination-color:                     $link-color !default;
-$pagination-bg:                        #fff !default;
-$pagination-border-width:              $border-width !default;
-$pagination-border-color:              #ddd !default;
-
-$pagination-hover-color:               $link-hover-color !default;
-$pagination-hover-bg:                  $gray-lighter !default;
-$pagination-hover-border:              #ddd !default;
-
-$pagination-active-color:              #fff !default;
-$pagination-active-bg:                 $brand-primary !default;
-$pagination-active-border:             $brand-primary !default;
-
-$pagination-disabled-color:            $gray-light !default;
-$pagination-disabled-bg:               #fff !default;
-$pagination-disabled-border:           #ddd !default;
-
-
-// Jumbotron
-
-$jumbotron-padding:              2rem !default;
-$jumbotron-bg:                   $gray-lighter !default;
-
-
-// Form states and alerts
-//
-// Define colors for form feedback states and, by default, alerts.
-
-$state-success-text:             #3c763d !default;
-$state-success-bg:               #dff0d8 !default;
-$state-success-border:           darken($state-success-bg, 5%) !default;
-
-$state-info-text:                #31708f !default;
-$state-info-bg:                  #d9edf7 !default;
-$state-info-border:              darken($state-info-bg, 7%) !default;
-
-$state-warning-text:             #8a6d3b !default;
-$state-warning-bg:               #fcf8e3 !default;
-$mark-bg:                        $state-warning-bg !default;
-$state-warning-border:           darken($state-warning-bg, 5%) !default;
-
-$state-danger-text:              #a94442 !default;
-$state-danger-bg:                #f2dede !default;
-$state-danger-border:            darken($state-danger-bg, 5%) !default;
-
-
-// Cards
-$card-spacer-x:            1.25rem !default;
-$card-spacer-y:            .75rem !default;
-$card-border-width:        1px !default;
-$card-border-radius:       $border-radius !default;
-$card-border-color:        rgba(0,0,0,.125) !default;
-$card-border-radius-inner: calc(#{$card-border-radius} - #{$card-border-width}) !default;
-$card-cap-bg:              #f5f5f5 !default;
-$card-bg:                  #fff !default;
-
-$card-link-hover-color:    #fff !default;
-
-$card-img-overlay-padding: 1.25rem !default;
-
-$card-deck-margin:         .625rem !default;
-
-$card-columns-sm-up-column-gap: 1.25rem !default;
-
-
-// Tooltips
-
-$tooltip-max-width:           200px !default;
-$tooltip-color:               #fff !default;
-$tooltip-bg:                  #000 !default;
-$tooltip-opacity:             .9 !default;
-$tooltip-padding-y:           3px !default;
-$tooltip-padding-x:           8px !default;
-$tooltip-margin:              3px !default;
-
-$tooltip-arrow-width:         5px !default;
-$tooltip-arrow-color:         $tooltip-bg !default;
-
-
-// Popovers
-
-$popover-inner-padding:               1px !default;
-$popover-bg:                          #fff !default;
-$popover-max-width:                   276px !default;
-$popover-border-width:                $border-width !default;
-$popover-border-color:                rgba(0,0,0,.2) !default;
-$popover-box-shadow:                  0 5px 10px rgba(0,0,0,.2) !default;
-
-$popover-title-bg:                    darken($popover-bg, 3%) !default;
-$popover-title-padding-x:             14px !default;
-$popover-title-padding-y:             8px !default;
-
-$popover-content-padding-x:           14px !default;
-$popover-content-padding-y:           9px !default;
-
-$popover-arrow-width:                 10px !default;
-$popover-arrow-color:                 $popover-bg !default;
-
-$popover-arrow-outer-width:           ($popover-arrow-width + 1px) !default;
-$popover-arrow-outer-color:           fade-in($popover-border-color, .05) !default;
-
-
-// Tags
-
-$tag-default-bg:            $gray-light !default;
-$tag-primary-bg:            $brand-primary !default;
-$tag-success-bg:            $brand-success !default;
-$tag-info-bg:               $brand-info !default;
-$tag-warning-bg:            $brand-warning !default;
-$tag-danger-bg:             $brand-danger !default;
-
-$tag-color:                 #fff !default;
-$tag-link-hover-color:      #fff !default;
-$tag-font-size:             75% !default;
-$tag-font-weight:           bold !default;
-$tag-padding-x:             .4em !default;
-$tag-padding-y:             .25em !default;
-
-$tag-pill-padding-x:        .6em !default;
-// Use a higher than normal value to ensure completely rounded edges when
-// customizing padding or font-size on labels.
-$tag-pill-border-radius:    10rem !default;
-
-// Modals
-
-// Padding applied to the modal body
-$modal-inner-padding:         15px !default;
-
-$modal-dialog-margin:         10px !default;
-$modal-dialog-sm-up-margin-y: 30px !default;
-
-$modal-title-padding:         15px !default;
-$modal-title-line-height:     $line-height-base !default;
-
-$modal-content-bg:               #fff !default;
-$modal-content-border-color:     rgba(0,0,0,.2) !default;
-$modal-content-border-width:     $border-width !default;
-$modal-content-xs-box-shadow:    0 3px 9px rgba(0,0,0,.5) !default;
-$modal-content-sm-up-box-shadow: 0 5px 15px rgba(0,0,0,.5) !default;
-
-$modal-backdrop-bg:           #000 !default;
-$modal-backdrop-opacity:      .5 !default;
-$modal-header-border-color:   #e5e5e5 !default;
-$modal-footer-border-color:   $modal-header-border-color !default;
-$modal-header-border-width:   $modal-content-border-width !default;
-$modal-footer-border-width:   $modal-header-border-width !default;
-
-$modal-lg:                    900px !default;
-$modal-md:                    600px !default;
-$modal-sm:                    300px !default;
-
-
-// Alerts
-//
-// Define alert colors, border radius, and padding.
-
-$alert-padding:               1rem !default;
-$alert-border-radius:         $border-radius !default;
-$alert-link-font-weight:      bold !default;
-$alert-border-width:          $border-width !default;
-
-$alert-success-bg:            $state-success-bg !default;
-$alert-success-text:          $state-success-text !default;
-$alert-success-border:        $state-success-border !default;
-
-$alert-info-bg:               $state-info-bg !default;
-$alert-info-text:             $state-info-text !default;
-$alert-info-border:           $state-info-border !default;
-
-$alert-warning-bg:            $state-warning-bg !default;
-$alert-warning-text:          $state-warning-text !default;
-$alert-warning-border:        $state-warning-border !default;
-
-$alert-danger-bg:             $state-danger-bg !default;
-$alert-danger-text:           $state-danger-text !default;
-$alert-danger-border:         $state-danger-border !default;
-
-
-// Progress bars
-
-$progress-bg:                 #eee !default;
-$progress-bar-color:          #0074d9 !default;
-$progress-border-radius:      $border-radius !default;
-$progress-box-shadow:         none !default;
-
-$progress-bar-bg:             $brand-primary !default;
-$progress-bar-success-bg:     $brand-success !default;
-$progress-bar-warning-bg:     $brand-warning !default;
-$progress-bar-danger-bg:      $brand-danger !default;
-$progress-bar-info-bg:        $brand-info !default;
-
-
-// List group
-
-$list-group-bg:                 #fff !default;
-$list-group-border-color:       #ddd !default;
-$list-group-border-width:       $border-width !default;
-$list-group-border-radius:      $border-radius !default;
-
-$list-group-hover-bg:           #f5f5f5 !default;
-$list-group-active-color:       $component-active-color !default;
-$list-group-active-bg:          $component-active-bg !default;
-$list-group-active-border:      $list-group-active-bg !default;
-$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
-
-$list-group-disabled-color:      $gray-light !default;
-$list-group-disabled-bg:         $gray-lighter !default;
-$list-group-disabled-text-color: $list-group-disabled-color !default;
-
-$list-group-link-color:         #555 !default;
-$list-group-link-hover-color:   $list-group-link-color !default;
-$list-group-link-heading-color: #333 !default;
-
-$list-group-item-padding-x:             1.25rem !default;
-$list-group-item-padding-y:             .75rem !default;
-$list-group-item-heading-margin-bottom: 5px !default;
-
-
-// Image thumbnails
-
-$thumbnail-padding:           .25rem !default;
-$thumbnail-bg:                $body-bg !default;
-$thumbnail-border-width:      $border-width !default;
-$thumbnail-border-color:      #ddd !default;
-$thumbnail-border-radius:     $border-radius !default;
-$thumbnail-box-shadow:        0 1px 2px rgba(0,0,0,.075) !default;
-
-
-// Figures
-
-$figure-caption-font-size: 90% !default;
-
-
-// Breadcrumbs
-
-$breadcrumb-padding-y:          .75rem !default;
-$breadcrumb-padding-x:          1rem !default;
-$breadcrumb-item-padding:       .5rem !default;
-
-$breadcrumb-bg:                 $gray-lighter !default;
-$breadcrumb-divider-color:      $gray-light !default;
-$breadcrumb-active-color:       $gray-light !default;
-$breadcrumb-divider:            "/" !default;
-
-
-// Media objects
-
-$media-margin-top:            15px !default;
-$media-heading-margin-bottom:  5px !default;
-$media-alignment-padding-x:   10px !default;
-
-
-// Carousel
-
-$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
-
-$carousel-control-color:                      #fff !default;
-$carousel-control-width:                      15% !default;
-$carousel-control-sm-up-size:                 30px !default;
-$carousel-control-opacity:                    .5 !default;
-$carousel-control-font-size:                  20px !default;
-
-$carousel-indicators-width:                   60% !default;
-
-$carousel-indicator-size:                     10px !default;
-$carousel-indicator-active-size:              12px !default;
-$carousel-indicator-active-bg:                #fff !default;
-$carousel-indicator-border-color:             #fff !default;
-
-$carousel-caption-width:                      70% !default;
-$carousel-caption-sm-up-width:                60% !default;
-$carousel-caption-color:                      #fff !default;
-
-$carousel-icon-width:                         20px !default;
-
-
-// Close
-
-$close-font-weight:           bold !default;
-$close-color:                 #000 !default;
-$close-text-shadow:           0 1px 0 #fff !default;
-
-
-// Code
-
-$code-font-size:              90% !default;
-$code-padding-x:              .4rem !default;
-$code-padding-y:              .2rem !default;
-$code-color:                  #bd4147 !default;
-$code-bg:                     #f7f7f9 !default;
-
-$kbd-color:                   #fff !default;
-$kbd-bg:                      #333 !default;
-
-$pre-bg:                      #f7f7f9 !default;
-$pre-color:                   $gray-dark !default;
-$pre-border-color:            #ccc !default;
-$pre-scrollable-max-height:   340px !default;

File diff suppressed because it is too large
+ 0 - 640
build/scss/_bootstrap_variables_old.scss


+ 22 - 22
build/scss/_boxes.scss

@@ -18,19 +18,19 @@
 
   // Box color variations
   &.box-primary {
-    border-top-color: $brand-primary;
+    border-top-color: theme-color("primary");
   }
   &.box-info {
-    border-top-color: $brand-info;
+    border-top-color: theme-color("info");
   }
   &.box-danger {
-    border-top-color: $brand-danger;
+    border-top-color: theme-color("danger");
   }
   &.box-warning {
-    border-top-color: $brand-warning;
+    border-top-color: theme-color("warning");
   }
   &.box-success {
-    border-top-color: $brand-success;
+    border-top-color: theme-color("success");
   }
   &.box-default {
     border-top-color: $box-default-border-top-color;
@@ -89,22 +89,22 @@
 
     // Box color variations
     &.box-default {
-      @include box-solid-variant($gray, #444);
+      @include box-solid-variant($gray-500, #444);
     }
     &.box-primary {
-      @include box-solid-variant($brand-primary);
+      @include box-solid-variant(theme-color("primary"));
     }
     &.box-info {
-      @include box-solid-variant($brand-info);
+      @include box-solid-variant(theme-color("info"));
     }
     &.box-danger {
-      @include box-solid-variant($brand-danger);
+      @include box-solid-variant(theme-color("danger"));
     }
     &.box-warning {
-      @include box-solid-variant($brand-warning);
+      @include box-solid-variant(theme-color("warning"));
     }
     &.box-success {
-      @include box-solid-variant($brand-success);
+      @include box-solid-variant(theme-color("success"));
     }
 
     > .box-header > .box-tools .btn {
@@ -229,10 +229,10 @@
   padding: 5px;
   font-size: 12px;
   background: transparent;
-  color: $gray-light;
+  color: $gray-200;
   .open &,
   &:hover {
-    color: $gray;
+    color: $gray-500;
   }
   &.btn:active {
     box-shadow: none;
@@ -369,7 +369,7 @@
     .tools {
       display: none;
       float: right;
-      color: $brand-danger;
+      color: theme-color("danger");
       // icons
       > .fa, > .glyphicon, > .ion {
         margin-right: 5px;
@@ -389,26 +389,26 @@
       }
 
       .label {
-        background: $gray !important;
+        background: $gray-500 !important;
       }
     }
   }
 
   // Color varaity
   .danger {
-    border-left-color: $brand-danger;
+    border-left-color: theme-color("danger");
   }
   .warning {
-    border-left-color: $brand-warning;
+    border-left-color: theme-color("warning");
   }
   .info {
-    border-left-color: $brand-info;
+    border-left-color: theme-color("info");
   }
   .success {
-    border-left-color: $brand-success;
+    border-left-color: theme-color("success");
   }
   .primary {
-    border-left-color: $brand-primary;
+    border-left-color: theme-color("primary");
   }
 
   .handle {
@@ -437,10 +437,10 @@
     }
 
     > .online {
-      border: 2px solid $brand-success;
+      border: 2px solid theme-color("success");
     }
     > .offline {
-      border: 2px solid $brand-danger;
+      border: 2px solid theme-color("danger");
     }
 
     // The message body

+ 15 - 15
build/scss/_buttons.scss

@@ -66,42 +66,42 @@
 }
 
 .btn-primary {
-  background-color: $brand-primary;
-  border-color: darken($brand-primary, 5%);
+  background-color: theme-color("primary");
+  border-color: darken(theme-color("primary"), 5%);
   &:hover, &:active, &.hover {
-    background-color: darken($brand-primary, 5%);
+    background-color: darken(theme-color("primary"), 5%);
   }
 }
 
 .btn-success {
-  background-color: $brand-success;
-  border-color: darken($brand-success, 5%);
+  background-color: theme-color("success");
+  border-color: darken(theme-color("success"), 5%);
   &:hover, &:active, &.hover {
-    background-color: darken($brand-success, 5%);
+    background-color: darken(theme-color("success"), 5%);
   }
 }
 
 .btn-info {
-  background-color: $brand-info;
-  border-color: darken($brand-info, 5%);
+  background-color: theme-color("info");
+  border-color: darken(theme-color("info"), 5%);
   &:hover, &:active, &.hover {
-    background-color: darken($brand-info, 5%);
+    background-color: darken(theme-color("info"), 5%);
   }
 }
 
 .btn-danger {
-  background-color: $brand-danger;
-  border-color: darken($brand-danger, 5%);
+  background-color: theme-color("danger");
+  border-color: darken(theme-color("danger"), 5%);
   &:hover, &:active, &.hover {
-    background-color: darken($brand-danger, 5%);
+    background-color: darken(theme-color("danger"), 5%);
   }
 }
 
 .btn-warning {
-  background-color: $brand-warning;
-  border-color: darken($brand-warning, 5%);
+  background-color: theme-color("warning");
+  border-color: darken(theme-color("warning"), 5%);
   &:hover, &:active, &.hover {
-    background-color: darken($brand-warning, 5%);
+    background-color: darken(theme-color("warning"), 5%);
   }
 }
 

+ 4 - 4
build/scss/_callout.scss

@@ -31,18 +31,18 @@
   // Themes for different contexts
   &.callout-danger {
     @extend  .bg-red;
-    border-color: darken($brand-danger, 10%);
+    border-color: darken(theme-color("danger"), 10%);
   }
   &.callout-warning {
     @extend  .bg-yellow;
-    border-color: darken($brand-warning, 10%);
+    border-color: darken(theme-color("warning"), 10%);
   }
   &.callout-info {
     @extend  .bg-aqua;
-    border-color: darken($brand-info, 10%);
+    border-color: darken(theme-color("info"), 10%);
   }
   &.callout-success {
     @extend  .bg-green;
-    border-color: darken($brand-success, 10%);
+    border-color: darken(theme-color("success"), 10%);
   }
 }

+ 1 - 1
build/scss/_control-sidebar.scss

@@ -142,6 +142,6 @@
   &,
   &:before {
     background: $sidebar-light-bg;
-    border-left: 1px solid $gray;
+    border-left: 1px solid $gray-500;
   }
 }

+ 5 - 5
build/scss/_direct-chat.scss

@@ -174,21 +174,21 @@
 
 //Direct Chat Variants
 .direct-chat-danger {
-  @include direct-chat-variant($brand-danger);
+  @include direct-chat-variant(theme-color("danger"));
 }
 
 .direct-chat-primary {
-  @include direct-chat-variant($brand-primary);
+  @include direct-chat-variant(theme-color("primary"));
 }
 
 .direct-chat-warning {
-  @include direct-chat-variant($brand-warning);
+  @include direct-chat-variant(theme-color("warning"));
 }
 
 .direct-chat-info {
-  @include direct-chat-variant($brand-info);
+  @include direct-chat-variant(theme-color("info"));
 }
 
 .direct-chat-success {
-  @include direct-chat-variant($brand-success);
+  @include direct-chat-variant(theme-color("success"));
 }

+ 1 - 1
build/scss/_dropdown.scss

@@ -47,7 +47,7 @@
 .dropdown-header {
   &:hover {
     background-color: #fff;
-    color: $gray-light;
+    color: $gray-200;
   }
 }
 

+ 10 - 10
build/scss/_forms.scss

@@ -5,9 +5,9 @@
 .form-control {
   //@include border-radius($input-radius);
   box-shadow: none;
-  //border-color: $gray;
+  //border-color: $gray-500;
   &:focus {
-    border-color: $brand-primary;
+    border-color: theme-color("primary");
     box-shadow: none;
   }
   &::-moz-placeholder,
@@ -27,30 +27,30 @@
 .form-group {
   &.has-success {
     label {
-      color: $brand-success;
+      color: theme-color("success");
     }
     .form-control {
-      border-color: $brand-success;
+      border-color: theme-color("success");
       box-shadow: none;
     }
   }
 
   &.has-warning {
     label {
-      color: $brand-warning;
+      color: theme-color("warning");
     }
     .form-control {
-      border-color: $brand-warning;
+      border-color: theme-color("warning");
       box-shadow: none;
     }
   }
 
   &.has-error {
     label {
-      color: $brand-danger;
+      color: theme-color("danger");
     }
     .form-control {
-      border-color: $brand-danger;
+      border-color: theme-color("danger");
       box-shadow: none;
     }
   }
@@ -65,7 +65,7 @@
       position: absolute;
       right: 3px;
       top: 0;
-      padding: $input-padding-y $input-padding-x;
+      padding: $input-btn-padding-y $input-btn-padding-x;
       margin-top: -3px;
       border: 0;
       background-color: transparent;
@@ -78,7 +78,7 @@
 .input-group {
   .input-group-addon {
     //@include border-radius($input-radius);
-    border-color: $gray;
+    border-color: $gray-500;
     background-color: #fff;
   }
 }

+ 2 - 2
build/scss/_header.scss

@@ -9,7 +9,7 @@
     font-weight: 200;
     width: $sidebar-width;
     padding: $main-header-brand-padding-y $main-header-brand-padding-x;
-    background: darken($brand-primary, 5%);
+    background: darken(theme-color("primary"), 5%);
     transition: width $transition-speed $transition-fn;
     overflow: hidden;
     margin-right: 0;
@@ -90,6 +90,6 @@
   position: absolute;
   top: 9px;
   right: 5px;
-  font-size: $font-size-xs - .1;
+  font-size: $font-size-base - .1;
   padding: 2px 4px;
 }

+ 1 - 1
build/scss/_info-box.scss

@@ -19,7 +19,7 @@
     background-color: rgba(0, 0, 0, 0.125);
     margin: 5px 0;
     height: 2px;
-    @include progress-variant(#fff);
+    //@include progress-variant(#fff);
     @include border-radius(0);
   }
   .progress[value]::-webkit-progress-bar {

+ 1 - 1
build/scss/_labels.scss

@@ -3,7 +3,7 @@
  * ----------------
  */
 .label-default {
-  background-color: $gray;
+  background-color: $gray-500;
   color: #444;
 }
 

+ 1 - 1
build/scss/_lockscreen.scss

@@ -4,7 +4,7 @@
  */
 /* ADD THIS CLASS TO THE <BODY> TAG */
 .lockscreen {
-  background: $gray;
+  background: $gray-500;
 }
 
 .lockscreen-logo {

+ 1 - 1
build/scss/_login_and_register.scss

@@ -16,7 +16,7 @@
 
 .login-page,
 .register-page {
-  background: $gray;
+  background: $gray-500;
 }
 
 .login-box,

+ 28 - 28
build/scss/_miscellaneous.scss

@@ -83,7 +83,7 @@
 
 .bg-gray {
   color: #000;
-  background-color: $gray;
+  background-color: $gray-500;
 }
 
 .bg-gray-light {
@@ -95,15 +95,15 @@
 }
 
 .bg-red {
-  background-color: $brand-danger;
+  background-color: theme-color("danger");
 }
 
 .bg-yellow {
-  background-color: $brand-warning;
+  background-color: theme-color("warning");
 }
 
 .bg-aqua {
-  background-color: $brand-info;
+  background-color: theme-color("info");
 }
 
 .bg-blue {
@@ -111,11 +111,11 @@
 }
 
 .bg-light-blue {
-  background-color: $brand-primary;
+  background-color: theme-color("primary");
 }
 
 .bg-green {
-  background-color: $brand-success;
+  background-color: theme-color("success");
 }
 
 .bg-navy {
@@ -153,7 +153,7 @@
 // Set of Active Background Colors
 .bg-gray-active {
   color: #000;
-  background-color: darken($gray, 10%);
+  background-color: darken($gray-500, 10%);
 }
 
 .bg-black-active {
@@ -161,15 +161,15 @@
 }
 
 .bg-red-active {
-  background-color: darken($brand-danger, 6%);
+  background-color: darken(theme-color("danger"), 6%);
 }
 
 .bg-yellow-active {
-  background-color: darken($brand-warning, 6%);
+  background-color: darken(theme-color("warning"), 6%);
 }
 
 .bg-aqua-active {
-  background-color: darken($brand-info, 6%);
+  background-color: darken(theme-color("info"), 6%);
 }
 
 .bg-blue-active {
@@ -177,11 +177,11 @@
 }
 
 .bg-light-blue-active {
-  background-color: darken($brand-primary, 6%);
+  background-color: darken(theme-color("primary"), 6%);
 }
 
 .bg-green-active {
-  background-color: darken($brand-success, 5%);
+  background-color: darken(theme-color("success"), 5%);
 }
 
 .bg-navy-active {
@@ -227,15 +227,15 @@
 
 // Text colors
 .text-red {
-  color: $brand-danger;
+  color: theme-color("danger");
 }
 
 .text-yellow {
-  color: $brand-warning;
+  color: theme-color("warning");
 }
 
 .text-aqua {
-  color: $brand-info;
+  color: theme-color("info");
 }
 
 .text-blue {
@@ -247,15 +247,15 @@
 }
 
 .text-light-blue {
-  color: $brand-primary;
+  color: theme-color("primary");
 }
 
 .text-green {
-  color: $brand-success;
+  color: theme-color("success");
 }
 
 .text-gray {
-  color: $gray;
+  color: $gray-500;
 }
 
 .text-navy {
@@ -291,10 +291,10 @@
 }
 
 .link-muted {
-  color: darken($gray, 30%);
+  color: darken($gray-500, 30%);
   &:hover,
   &:focus {
-    color: darken($gray, 40%);
+    color: darken($gray-500, 40%);
   }
 }
 
@@ -364,7 +364,7 @@
 }
 
 .text-xs {
-  font-size: $font-size-xs;
+  font-size: $font-size-base;
 }
 
 // _fix for sparkline tooltip
@@ -381,7 +381,7 @@
 }
 
 .bg-light-blue-gradient {
-  @include gradient($brand-primary, $brand-primary, lighten($brand-primary, 12%));
+  @include gradient(theme-color("primary"), theme-color("primary"), lighten(theme-color("primary"), 12%));
   color: #fff;
 }
 
@@ -391,12 +391,12 @@
 }
 
 .bg-aqua-gradient {
-  @include gradient($brand-info, $brand-info, lighten($brand-info, 7%));
+  @include gradient(theme-color("info"), theme-color("info"), lighten(theme-color("info"), 7%));
   color: #fff;
 }
 
 .bg-yellow-gradient {
-  @include gradient($brand-warning, $brand-warning, lighten($brand-warning, 16%));
+  @include gradient(theme-color("warning"), theme-color("warning"), lighten(theme-color("warning"), 16%));
   color: #fff;
 }
 
@@ -406,12 +406,12 @@
 }
 
 .bg-green-gradient {
-  @include gradient($brand-success, $brand-success, lighten($brand-success, 7%));
+  @include gradient(theme-color("success"), theme-color("success"), lighten(theme-color("success"), 7%));
   color: #fff;
 }
 
 .bg-red-gradient {
-  @include gradient($brand-danger, $brand-danger, lighten($brand-danger, 10%));
+  @include gradient(theme-color("danger"), theme-color("danger"), lighten(theme-color("danger"), 10%));
   color: #fff;
 }
 
@@ -541,12 +541,12 @@
 
 // Image bordered
 .img-bordered {
-  border: 3px solid $gray;
+  border: 3px solid $gray-500;
   padding: 3px;
 }
 
 .img-bordered-sm {
-  border: 2px solid $gray;
+  border: 2px solid $gray-500;
   padding: 2px;
 }
 

+ 2 - 2
build/scss/_mixins.scss

@@ -226,7 +226,7 @@
   }
   .content-wrapper,
   .main-footer {
-    border-left: 1px solid $gray;
+    border-left: 1px solid $gray-500;
   }
   // User Panel (resides in the sidebar)
   .user-panel {
@@ -296,7 +296,7 @@
   @include media-breakpoint-up(sm) {
     &.sidebar-mini.sidebar-collapse {
       .sidebar-menu > li > .nav-treeview {
-        border-left: 1px solid $gray;
+        border-left: 1px solid $gray-500;
       }
     }
   }

+ 5 - 5
build/scss/_modal.scss

@@ -31,7 +31,7 @@
   .modal-header,
   .modal-footer {
     @extend .bg-light-blue-active;
-    border-color: darken($brand-primary, 10%);
+    border-color: darken(theme-color("primary"), 10%);
   }
 }
 
@@ -42,7 +42,7 @@
   .modal-header,
   .modal-footer {
     @extend .bg-yellow-active;
-    border-color: darken($brand-warning, 10%);
+    border-color: darken(theme-color("warning"), 10%);
   }
 }
 
@@ -53,7 +53,7 @@
   .modal-header,
   .modal-footer {
     @extend .bg-aqua-active;
-    border-color: darken($brand-info, 10%);
+    border-color: darken(theme-color("info"), 10%);
   }
 }
 
@@ -64,7 +64,7 @@
   .modal-header,
   .modal-footer {
     @extend .bg-green-active;
-    border-color: darken($brand-success, 10%);
+    border-color: darken(theme-color("success"), 10%);
   }
 }
 
@@ -75,6 +75,6 @@
   .modal-header,
   .modal-footer {
     @extend .bg-red-active;
-    border-color: darken($brand-danger, 10%);
+    border-color: darken(theme-color("danger"), 10%);
   }
 }

+ 9 - 9
build/scss/_navs.scss

@@ -27,7 +27,7 @@
   > li.active > a,
   > li.active > a:hover,
   > li.active > a:focus {
-    border-top-color: $brand-primary;
+    border-top-color: theme-color("primary");
   }
   > li.active > a {
     font-weight: 600;
@@ -47,7 +47,7 @@
     background: transparent;
     color: #444;
     border-top: 0;
-    border-left-color: $brand-primary;
+    border-left-color: theme-color("primary");
   }
 
   > li.header {
@@ -98,7 +98,7 @@
     }
 
     > li.active {
-      border-top-color: $brand-primary;
+      border-top-color: theme-color("primary");
       & > a,
       &:hover > a {
         background-color: #fff;
@@ -171,42 +171,42 @@
   &.tab-primary {
     > .nav-tabs {
       > li.active {
-        border-top-color: $brand-primary;
+        border-top-color: theme-color("primary");
       }
     }
   }
   &.tab-info {
     > .nav-tabs {
       > li.active {
-        border-top-color: $brand-info;
+        border-top-color: theme-color("info");
       }
     }
   }
   &.tab-danger {
     > .nav-tabs {
       > li.active {
-        border-top-color: $brand-danger;
+        border-top-color: theme-color("danger");
       }
     }
   }
   &.tab-warning {
     > .nav-tabs {
       > li.active {
-        border-top-color: $brand-warning;
+        border-top-color: theme-color("warning");
       }
     }
   }
   &.tab-success {
     > .nav-tabs {
       > li.active {
-        border-top-color: $brand-success;
+        border-top-color: theme-color("success");
       }
     }
   }
   &.tab-default {
     > .nav-tabs {
       > li.active {
-        border-top-color: $gray;
+        border-top-color: $gray-500;
       }
     }
   }

+ 2 - 2
build/scss/_profile.scss

@@ -7,7 +7,7 @@
   margin: 0 auto;
   width: 100px;
   padding: 3px;
-  border: 3px solid $gray;
+  border: 3px solid $gray-500;
 }
 
 .profile-username {
@@ -16,7 +16,7 @@
 }
 
 .post {
-  border-bottom: 1px solid $gray;
+  border-bottom: 1px solid $gray-500;
   margin-bottom: 15px;
   padding-bottom: 15px;
   color: #666;

+ 6 - 6
build/scss/_select2.scss

@@ -20,7 +20,7 @@
 }
 
 .select2-container--default.select2-container--open {
-  border-color: $brand-primary;
+  border-color: theme-color("primary");
 }
 
 .select2-dropdown {
@@ -29,7 +29,7 @@
 }
 
 .select2-container--default .select2-results__option--highlighted[aria-selected] {
-  background-color: $brand-primary;
+  background-color: theme-color("primary");
   color: white;
 }
 
@@ -66,7 +66,7 @@
     border: 1px solid $gray-x-light;
     &:focus {
       outline: none;
-      border: 1px solid $brand-primary;
+      border: 1px solid theme-color("primary");
     }
   }
 }
@@ -89,7 +89,7 @@
     border: 1px solid $gray-x-light;
     //border-radius: $input-radius;
     &:focus {
-      border-color: $brand-primary;
+      border-color: theme-color("primary");
     }
   }
   &.select2-container--focus .select2-selection--multiple {
@@ -98,8 +98,8 @@
 }
 
 .select2-container--default .select2-selection--multiple .select2-selection__choice {
-  background-color: $brand-primary;
-  border-color: darken($brand-primary, 5%);
+  background-color: theme-color("primary");
+  border-color: darken(theme-color("primary"), 5%);
   padding: 1px 10px;
   color: #fff;
 }

+ 2 - 2
build/scss/_sidebar-mini.scss

@@ -74,7 +74,7 @@
             > .nav-link > .text {
               top: 0;
               margin-left: -3px;
-              padding: $nav-link-padding;
+              padding: $nav-link-padding-x $nav-link-padding-y;
               background-color: inherit;
               @include border-right-radius($border-radius);
             }
@@ -84,7 +84,7 @@
             }
 
             > .nav-treeview {
-              top: $nav-link-padding;
+              top: $nav-link-padding-y;
               margin-left: 0;
               border-bottom-right-radius: $border-radius;
             }

+ 1 - 1
build/scss/_sidebar.scss

@@ -110,7 +110,7 @@
 
   .nav-header {
     font-size: .9em;
-    padding: $nav-link-padding;
+    padding: $nav-link-padding-y;
 
     &:not(:first-of-type) {
       padding: 1.7em 1em .5em 1em;

+ 1 - 1
build/scss/_timeline.scss

@@ -75,7 +75,7 @@
       line-height: 30px;
       position: absolute;
       color: #666;
-      background: $gray;
+      background: $gray-500;
       border-radius: 50%;
       text-align: center;
       left: 18px;

+ 16 - 18
build/scss/_variables.scss

@@ -3,8 +3,7 @@
 
 // PATHS
 // --------------------------------------------------------
-$path-to-bootstrap-sass: "../../bower_components/bootstrap/scss" !default;
-$boxed-layout-bg-image-path: "../img/boxed-bg.jpg" !default;
+$boxed-layout-bg-image-path: "/css/img/boxed-bg.jpg" !default;
 
 // COLORS
 // --------------------------------------------------------
@@ -18,11 +17,13 @@ $fuchsia: #F012BE !default;
 $purple: #605ca8 !default;
 $maroon: #D81B60 !default;
 $black: #111 !default;
-$gray-x-light: #d2d6de!default;
+$gray-x-light: #d2d6de !default;
 
 // LAYOUT
 // --------------------------------------------------------
 
+$font-size-root: 16px !default;
+
 // Side bar and logo width
 $sidebar-width: 230px !default;
 // Boxed layout maximum width
@@ -31,38 +32,37 @@ $boxed-layout-max-width: 1250px !default;
 $screen-header-collapse: map-get($grid-breakpoints, md) !default;
 
 // Link colors (aka: <a> tags)
-$link-color: $brand-primary !default;
+$link-color: theme-color("primary") !default;
 $link-hover-color: lighten($link-color, 15%) !default;
 
 // Body background (Affects main content background only)
-$main-bg: $gray-lighter !default;
-
+$main-bg: $gray-100 !default;
 
 // MAIN HEADER
 // --------------------------------------------------------
-$main-header-link-padding-y:  15px !default;
-$main-header-link-padding-x:  15px !default;
+$main-header-link-padding-y: 15px !default;
+$main-header-link-padding-x: 15px !default;
 $main-header-brand-padding-y: 12px !default;
 $main-header-brand-padding-x: $main-header-brand-padding-y !default;
-$main-header-height:          (($font-size-root * $line-height-base) + ($main-header-link-padding-y * 2)) !default;
+$main-header-height: (($font-size-root * $line-height-base) + ($main-header-link-padding-y * 2)) !default;
 
 // MAIN FOOTER
 // --------------------------------------------------------
-$main-footer-padding:          15px !default;
+$main-footer-padding: 15px !default;
 $main-footer-border-top-width: 2px !default;
-$main-footer-border-top:       $main-footer-border-top-width solid darken($main-bg, 10%) !default;
-$main-footer-height:           (($font-size-root * $line-height-base) + ($main-footer-padding * 2)) + $main-footer-border-top-width !default;
+$main-footer-border-top: $main-footer-border-top-width solid darken($main-bg, 10%) !default;
+$main-footer-height: (($font-size-root * $line-height-base) + ($main-footer-padding * 2)) + $main-footer-border-top-width !default;
 
 // SIDEBAR SKINS
 // --------------------------------------------------------
 
 // Dark sidebar
-$sidebar-dark-bg: #2c333c !default;//#222d32 !default;
+$sidebar-dark-bg: #2c333c !default; //#222d32 !default;
 $sidebar-dark-hover-bg: darken($sidebar-dark-bg, 4%) !default;
-$sidebar-dark-color: #C2C7D0!default;//lighten($sidebar-dark-bg, 60%) !default;
+$sidebar-dark-color: #C2C7D0 !default; //lighten($sidebar-dark-bg, 60%) !default;
 $sidebar-dark-hover-color: #fff !default;
 $sidebar-dark-submenu-bg: lighten($sidebar-dark-bg, 5%) !default;
-$sidebar-dark-submenu-color: #C2C7D0!default;//lighten($sidebar-dark-submenu-bg, 40%) !default;
+$sidebar-dark-submenu-color: #C2C7D0 !default; //lighten($sidebar-dark-submenu-bg, 40%) !default;
 $sidebar-dark-submenu-hover-color: #fff !default;
 
 // Light sidebar
@@ -91,7 +91,7 @@ $box-boxshadow: 0 1px 1px rgba(0, 0, 0, 0.125) !default;
 $box-padding: 10px !default;
 
 // Box variants
-$box-default-border-top-color: $gray-x-light !default;// #d2d6de !default;
+$box-default-border-top-color: $gray-x-light !default; // #d2d6de !default;
 
 // BUTTONS
 // --------------------------------------------------------
@@ -103,8 +103,6 @@ $progress-bar-border-radius: 1px !default;
 $progress-bar-sm-border-radius: 1px !default;
 $progress-bar-xs-border-radius: 1px !default;
 
-
-
 // DIRECT CHAT
 // --------------------------------------------------------
 $direct-chat-height: 250px !default;

+ 8 - 8
build/scss/skins/skin-blue-light.scss

@@ -7,11 +7,11 @@
   //Navbar
   .main-header {
     .navbar {
-      @include navbar-variant($brand-primary, #fff);
+      @include navbar-variant(theme-color("primary"), #fff);
       .sidebar-toggle {
         color: #fff;
         &:hover {
-          background-color: darken($brand-primary, 5%);
+          background-color: darken(theme-color("primary"), 5%);
         }
       }
       @media (max-width: $screen-header-collapse) {
@@ -23,7 +23,7 @@
             a {
               color: #fff;
               &:hover {
-                background: darken($brand-primary, 5%);
+                background: darken(theme-color("primary"), 5%);
               }
             }
           }
@@ -32,21 +32,21 @@
     }
     //Logo
     .logo {
-      @include logo-variant($brand-primary);
+      @include logo-variant(theme-color("primary"));
     }
 
     li.user-header {
-      background-color: $brand-primary;
+      background-color: theme-color("primary");
     }
   }
 
   //Create the sidebar skin
-  @include skin-light-sidebar($brand-primary);
+  @include skin-light-sidebar(theme-color("primary"));
   .main-footer {
-    border-top-color: $gray;
+    border-top-color: $gray-500;
   }
 }
 
 .skin-blue.layout-top-nav .main-header > .logo {
-  @include logo-variant($brand-primary);
+  @include logo-variant(theme-color("primary"));
 }

+ 7 - 7
build/scss/skins/skin-blue.scss

@@ -6,11 +6,11 @@
   //Navbar
   .main-header {/*
     .navbar {
-      @include navbar-variant($brand-primary, #fff);
+      @include navbar-variant(theme-color("primary"), #fff);
       .sidebar-toggle {
         color: #fff;
         &:hover {
-          background-color: darken($brand-primary, 5%);
+          background-color: darken(theme-color("primary"), 5%);
         }
       }
       @media (max-width: $screen-header-collapse) {
@@ -22,7 +22,7 @@
             a {
               color: #fff;
               &:hover {
-                background: darken($brand-primary, 5%);
+                background: darken(theme-color("primary"), 5%);
               }
             }
           }
@@ -31,18 +31,18 @@
     }*/
     //Logo
     .logo {
-      @include logo-variant(darken($brand-primary, 5%));
+      @include logo-variant(darken(theme-color("primary"), 5%));
     }
 
     li.user-header {
-      background-color: $brand-primary;
+      background-color: theme-color("primary");
     }
   }
 
   //Create the sidebar skin
-  @include skin-dark-sidebar($brand-primary);
+  @include skin-dark-sidebar(theme-color("primary"));
 }
 
 .skin-blue.layout-top-nav .main-header > .logo {
-  @include logo-variant($brand-primary);
+  @include logo-variant(theme-color("primary"));
 }

+ 6 - 6
build/scss/skins/skin-green-light.scss

@@ -7,11 +7,11 @@
   //Navbar
   .main-header {
     .navbar {
-      @include navbar-variant($brand-success, #fff);
+      @include navbar-variant(theme-color("success"), #fff);
       .sidebar-toggle {
         color: #fff;
         &:hover {
-          background-color: darken($brand-success, 5%);
+          background-color: darken(theme-color("success"), 5%);
         }
       }
       @media (max-width: $screen-header-collapse) {
@@ -23,7 +23,7 @@
             a {
               color: #fff;
               &:hover {
-                background: darken($brand-success, 5%);
+                background: darken(theme-color("success"), 5%);
               }
             }
           }
@@ -32,15 +32,15 @@
     }
     //Logo
     .logo {
-      @include logo-variant($brand-success);
+      @include logo-variant(theme-color("success"));
     }
 
     li.user-header {
-      background-color: $brand-success;
+      background-color: theme-color("success");
     }
   }
 
   //Create the sidebar skin
-  @include skin-light-sidebar($brand-success);
+  @include skin-light-sidebar(theme-color("success"));
 
 }

+ 6 - 6
build/scss/skins/skin-green.scss

@@ -7,11 +7,11 @@
   //Navbar
   .main-header {
     .navbar {
-      @include navbar-variant($brand-success, #fff);
+      @include navbar-variant(theme-color("success"), #fff);
       .sidebar-toggle {
         color: #fff;
         &:hover {
-          background-color: darken($brand-success, 5%);
+          background-color: darken(theme-color("success"), 5%);
         }
       }
       @media (max-width: $screen-header-collapse) {
@@ -23,7 +23,7 @@
             a {
               color: #fff;
               &:hover {
-                background: darken($brand-success, 5%);
+                background: darken(theme-color("success"), 5%);
               }
             }
           }
@@ -32,15 +32,15 @@
     }
     //Logo
     .logo {
-      @include logo-variant(darken($brand-success, 5%));
+      @include logo-variant(darken(theme-color("success"), 5%));
     }
 
     li.user-header {
-      background-color: $brand-success;
+      background-color: theme-color("success");
     }
   }
 
   //Create the sidebar skin
-  @include skin-dark-sidebar($brand-success);
+  @include skin-dark-sidebar(theme-color("success"));
 
 }

+ 6 - 6
build/scss/skins/skin-red-light.scss

@@ -7,11 +7,11 @@
   //Navbar
   .main-header {
     .navbar {
-      @include navbar-variant($brand-danger, #fff);
+      @include navbar-variant(theme-color("danger"), #fff);
       .sidebar-toggle {
         color: #fff;
         &:hover {
-          background-color: darken($brand-danger, 5%);
+          background-color: darken(theme-color("danger"), 5%);
         }
       }
       @media (max-width: $screen-header-collapse) {
@@ -23,7 +23,7 @@
             a {
               color: #fff;
               &:hover {
-                background: darken($brand-danger, 5%);
+                background: darken(theme-color("danger"), 5%);
               }
             }
           }
@@ -32,14 +32,14 @@
     }
     //Logo
     .logo {
-      @include logo-variant($brand-danger);
+      @include logo-variant(theme-color("danger"));
     }
 
     li.user-header {
-      background-color: $brand-danger;
+      background-color: theme-color("danger");
     }
   }
 
   //Create the sidebar skin
-  @include skin-light-sidebar($brand-danger);
+  @include skin-light-sidebar(theme-color("danger"));
 }

+ 6 - 6
build/scss/skins/skin-red.scss

@@ -7,11 +7,11 @@
   //Navbar
   .main-header {
     .navbar {
-      @include navbar-variant($brand-danger, #fff);
+      @include navbar-variant(theme-color("danger"), #fff);
       .sidebar-toggle {
         color: #fff;
         &:hover {
-          background-color: darken($brand-danger, 5%);
+          background-color: darken(theme-color("danger"), 5%);
         }
       }
       @media (max-width: $screen-header-collapse) {
@@ -23,7 +23,7 @@
             a {
               color: #fff;
               &:hover {
-                background: darken($brand-danger, 5%);
+                background: darken(theme-color("danger"), 5%);
               }
             }
           }
@@ -32,14 +32,14 @@
     }
     //Logo
     .logo {
-      @include logo-variant(darken($brand-danger, 5%));
+      @include logo-variant(darken(theme-color("danger"), 5%));
     }
 
     li.user-header {
-      background-color: $brand-danger;
+      background-color: theme-color("danger");
     }
   }
 
   //Create the sidebar skin
-  @include skin-dark-sidebar($brand-danger);
+  @include skin-dark-sidebar(theme-color("danger"));
 }

+ 6 - 6
build/scss/skins/skin-yellow-light.scss

@@ -7,11 +7,11 @@
   //Navbar
   .main-header {
     .navbar {
-      @include navbar-variant($brand-warning, #fff);
+      @include navbar-variant(theme-color("warning"), #fff);
       .sidebar-toggle {
         color: #fff;
         &:hover {
-          background-color: darken($brand-warning, 5%);
+          background-color: darken(theme-color("warning"), 5%);
         }
       }
       @media (max-width: $screen-header-collapse) {
@@ -23,7 +23,7 @@
             a {
               color: #fff;
               &:hover {
-                background: darken($brand-warning, 5%);
+                background: darken(theme-color("warning"), 5%);
               }
             }
           }
@@ -32,14 +32,14 @@
     }
     //Logo
     .logo {
-      @include logo-variant($brand-warning);
+      @include logo-variant(theme-color("warning"));
     }
 
     li.user-header {
-      background-color: $brand-warning;
+      background-color: theme-color("warning");
     }
   }
 
   //Create the sidebar skin
-  @include skin-light-sidebar($brand-warning);
+  @include skin-light-sidebar(theme-color("warning"));
 }

+ 6 - 6
build/scss/skins/skin-yellow.scss

@@ -7,11 +7,11 @@
   //Navbar
   .main-header {
     .navbar {
-      @include navbar-variant($brand-warning, #fff);
+      @include navbar-variant(theme-color("warning"), #fff);
       .sidebar-toggle {
         color: #fff;
         &:hover {
-          background-color: darken($brand-warning, 5%);
+          background-color: darken(theme-color("warning"), 5%);
         }
       }
       @media (max-width: $screen-header-collapse) {
@@ -23,7 +23,7 @@
             a {
               color: #fff;
               &:hover {
-                background: darken($brand-warning, 5%);
+                background: darken(theme-color("warning"), 5%);
               }
             }
           }
@@ -32,14 +32,14 @@
     }
     //Logo
     .logo {
-      @include logo-variant(darken($brand-warning, 5%));
+      @include logo-variant(darken(theme-color("warning"), 5%));
     }
 
     li.user-header {
-      background-color: $brand-warning;
+      background-color: theme-color("warning");
     }
   }
 
   //Create the sidebar skin
-  @include skin-dark-sidebar($brand-warning);
+  @include skin-dark-sidebar(theme-color("warning"));
 }

+ 2 - 2
composer.json

@@ -1,7 +1,7 @@
 {
   "name": "almasaeed2010/adminlte",
   "description": "AdminLTE - admin control panel and dashboard that's based on Bootstrap 3",
-  "homepage": "http://almsaeedstudio.com/",
+  "homepage": "http://adminlte.io/",
   "keywords": [
     "css",
     "js",
@@ -16,7 +16,7 @@
   "authors": [
     {
       "name": "Abdullah Almsaeed",
-      "email": "support@almsaeedstudio.com"
+      "email": "support@adminlte.io"
     }
   ],
   "license": "MIT",

File diff suppressed because it is too large
+ 7173 - 10165
dist/css/adminlte.css


+ 1 - 1
dist/css/adminlte.min.css

@@ -1,7 +1,7 @@
 /*!
  *   AdminLTE v3.0.0-alpha
  *   Author: Abdullah Almsaeed
- *	 Website: Almsaeed Studio <http://almsaeedstudio.com>
+ *	 Website: AdminLTE.io <http://adminlte.io>
  *   License: Open source - MIT <http://opensource.org/licenses/MIT>
 !*//*!
  * Bootstrap v4.0.0-alpha.5 (https://getbootstrap.com)

File diff suppressed because it is too large
+ 1567 - 0
dist/css/plugins/bootstrap/css/bootstrap-grid.css


File diff suppressed because it is too large
+ 1 - 0
dist/css/plugins/bootstrap/css/bootstrap-grid.css.map


File diff suppressed because it is too large
+ 7 - 0
dist/css/plugins/bootstrap/css/bootstrap-grid.min.css


File diff suppressed because it is too large
+ 1 - 0
dist/css/plugins/bootstrap/css/bootstrap-grid.min.css.map


+ 342 - 0
dist/css/plugins/bootstrap/css/bootstrap-reboot.css

@@ -0,0 +1,342 @@
+/*!
+ * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
+ * Copyright 2011-2017 The Bootstrap Authors
+ * Copyright 2011-2017 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
+ */
+*,
+*::before,
+*::after {
+  box-sizing: border-box;
+}
+
+html {
+  font-family: sans-serif;
+  line-height: 1.15;
+  -webkit-text-size-adjust: 100%;
+  -ms-text-size-adjust: 100%;
+  -ms-overflow-style: scrollbar;
+  -webkit-tap-highlight-color: transparent;
+}
+
+@-ms-viewport {
+  width: device-width;
+}
+
+article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
+  display: block;
+}
+
+body {
+  margin: 0;
+  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+  font-size: 1rem;
+  font-weight: 400;
+  line-height: 1.5;
+  color: #212529;
+  text-align: left;
+  background-color: #fff;
+}
+
+[tabindex="-1"]:focus {
+  outline: none !important;
+}
+
+hr {
+  box-sizing: content-box;
+  height: 0;
+  overflow: visible;
+}
+
+h1, h2, h3, h4, h5, h6 {
+  margin-top: 0;
+  margin-bottom: 0.5rem;
+}
+
+p {
+  margin-top: 0;
+  margin-bottom: 1rem;
+}
+
+abbr[title],
+abbr[data-original-title] {
+  text-decoration: underline;
+  -webkit-text-decoration: underline dotted;
+          text-decoration: underline dotted;
+  cursor: help;
+  border-bottom: 0;
+}
+
+address {
+  margin-bottom: 1rem;
+  font-style: normal;
+  line-height: inherit;
+}
+
+ol,
+ul,
+dl {
+  margin-top: 0;
+  margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+  margin-bottom: 0;
+}
+
+dt {
+  font-weight: 700;
+}
+
+dd {
+  margin-bottom: .5rem;
+  margin-left: 0;
+}
+
+blockquote {
+  margin: 0 0 1rem;
+}
+
+dfn {
+  font-style: italic;
+}
+
+b,
+strong {
+  font-weight: bolder;
+}
+
+small {
+  font-size: 80%;
+}
+
+sub,
+sup {
+  position: relative;
+  font-size: 75%;
+  line-height: 0;
+  vertical-align: baseline;
+}
+
+sub {
+  bottom: -.25em;
+}
+
+sup {
+  top: -.5em;
+}
+
+a {
+  color: #007bff;
+  text-decoration: none;
+  background-color: transparent;
+  -webkit-text-decoration-skip: objects;
+}
+
+a:hover {
+  color: #0056b3;
+  text-decoration: underline;
+}
+
+a:not([href]):not([tabindex]) {
+  color: inherit;
+  text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
+  color: inherit;
+  text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):focus {
+  outline: 0;
+}
+
+pre,
+code,
+kbd,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+
+pre {
+  margin-top: 0;
+  margin-bottom: 1rem;
+  overflow: auto;
+  -ms-overflow-style: scrollbar;
+}
+
+figure {
+  margin: 0 0 1rem;
+}
+
+img {
+  vertical-align: middle;
+  border-style: none;
+}
+
+svg:not(:root) {
+  overflow: hidden;
+}
+
+a,
+area,
+button,
+[role="button"],
+input:not([type="range"]),
+label,
+select,
+summary,
+textarea {
+  -ms-touch-action: manipulation;
+      touch-action: manipulation;
+}
+
+table {
+  border-collapse: collapse;
+}
+
+caption {
+  padding-top: 0.75rem;
+  padding-bottom: 0.75rem;
+  color: #868e96;
+  text-align: left;
+  caption-side: bottom;
+}
+
+th {
+  text-align: inherit;
+}
+
+label {
+  display: inline-block;
+  margin-bottom: .5rem;
+}
+
+button {
+  border-radius: 0;
+}
+
+button:focus {
+  outline: 1px dotted;
+  outline: 5px auto -webkit-focus-ring-color;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+  margin: 0;
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+
+button,
+input {
+  overflow: visible;
+}
+
+button,
+select {
+  text-transform: none;
+}
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+  -webkit-appearance: button;
+}
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+  padding: 0;
+  border-style: none;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+  box-sizing: border-box;
+  padding: 0;
+}
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+  -webkit-appearance: listbox;
+}
+
+textarea {
+  overflow: auto;
+  resize: vertical;
+}
+
+fieldset {
+  min-width: 0;
+  padding: 0;
+  margin: 0;
+  border: 0;
+}
+
+legend {
+  display: block;
+  width: 100%;
+  max-width: 100%;
+  padding: 0;
+  margin-bottom: .5rem;
+  font-size: 1.5rem;
+  line-height: inherit;
+  color: inherit;
+  white-space: normal;
+}
+
+progress {
+  vertical-align: baseline;
+}
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+
+[type="search"] {
+  outline-offset: -2px;
+  -webkit-appearance: none;
+}
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+::-webkit-file-upload-button {
+  font: inherit;
+  -webkit-appearance: button;
+}
+
+output {
+  display: inline-block;
+}
+
+summary {
+  display: list-item;
+}
+
+template {
+  display: none;
+}
+
+[hidden] {
+  display: none !important;
+}
+/*# sourceMappingURL=bootstrap-reboot.css.map */

File diff suppressed because it is too large
+ 1 - 0
dist/css/plugins/bootstrap/css/bootstrap-reboot.css.map


File diff suppressed because it is too large
+ 8 - 0
dist/css/plugins/bootstrap/css/bootstrap-reboot.min.css


File diff suppressed because it is too large
+ 1 - 0
dist/css/plugins/bootstrap/css/bootstrap-reboot.min.css.map


File diff suppressed because it is too large
+ 8374 - 0
dist/css/plugins/bootstrap/css/bootstrap.css


File diff suppressed because it is too large
+ 1 - 0
dist/css/plugins/bootstrap/css/bootstrap.css.map


File diff suppressed because it is too large
+ 7 - 0
dist/css/plugins/bootstrap/css/bootstrap.min.css


File diff suppressed because it is too large
+ 1 - 0
dist/css/plugins/bootstrap/css/bootstrap.min.css.map


File diff suppressed because it is too large
+ 6287 - 0
dist/css/plugins/bootstrap/js/bootstrap.bundle.js


File diff suppressed because it is too large
+ 1 - 0
dist/css/plugins/bootstrap/js/bootstrap.bundle.js.map


File diff suppressed because it is too large
+ 7 - 0
dist/css/plugins/bootstrap/js/bootstrap.bundle.min.js


+ 0 - 0
dist/css/plugins/bootstrap/js/bootstrap.bundle.min.js.map


Some files were not shown because too many files changed in this diff