Просмотр исходного кода

Merge branch 'master' of github.com:elasticsearch/kibana

Conflicts:
	docs/kibana/configuration/config.js.asciidoc
	src/app/directives/configModal.js
	src/app/directives/kibanaPanel.js
	src/app/panels/filtering/module.html
	src/app/panels/query/module.html
	src/app/panels/query/query.css
	src/app/panels/table/editor.html
	src/app/panels/table/module.js
	src/app/partials/dashLoader.html
	src/app/partials/dashboard.html
	src/app/services/querySrv.js
	src/css/bootstrap.dark.min.css
	src/index.html
	tasks/docs_task.js
Torkel Ödegaard 12 лет назад
Родитель
Сommit
24e624ba63
32 измененных файлов с 2216 добавлено и 622 удалено
  1. 15 1
      grafana.sublime-workspace
  2. 24 0
      sample/lighttpd_basic.conf
  3. 8 2
      src/app/controllers/dash.js
  4. 3 3
      src/app/controllers/dashLoader.js
  5. 0 1
      src/app/controllers/graphiteTarget.js
  6. 16 3
      src/app/directives/configModal.js
  7. 2 5
      src/app/directives/kibanaPanel.js
  8. 2 12
      src/app/panels/filtering/module.html
  9. 19 1
      src/app/panels/filtering/module.js
  10. 2 2
      src/app/panels/histogram/module.html
  11. 14 12
      src/app/panels/timepicker/editor.html
  12. 18 21
      src/app/partials/dashboard.html
  13. 1 1
      src/app/partials/dasheditor.html
  14. 2 1
      src/app/partials/paneleditor.html
  15. 3 2
      src/app/partials/roweditor.html
  16. 0 2
      src/app/services/dashboard.js
  17. 3 1
      src/app/services/filterSrv.js
  18. 1 1
      src/app/services/graphite/graphiteSrv.js
  19. 1 1
      src/config.js
  20. 0 0
      src/css/bootstrap.dark.min.css
  21. 0 0
      src/css/bootstrap.light.min.css
  22. BIN
      src/img/cubes.png
  23. BIN
      src/img/light.png
  24. 1 0
      src/index.html
  25. 555 0
      src/vendor/bootstrap/less/bak/bootswatch.dark.less
  26. 304 0
      src/vendor/bootstrap/less/bak/variables.dark.less
  27. 349 327
      src/vendor/bootstrap/less/bootswatch.dark.less
  28. 591 7
      src/vendor/bootstrap/less/bootswatch.light.less
  29. 1 1
      src/vendor/bootstrap/less/modals.less
  30. 101 37
      src/vendor/bootstrap/less/overrides.less
  31. 96 97
      src/vendor/bootstrap/less/variables.dark.less
  32. 84 81
      src/vendor/bootstrap/less/variables.light.less

Разница между файлами не показана из-за своего большого размера
+ 15 - 1
grafana.sublime-workspace


+ 24 - 0
sample/lighttpd_basic.conf

@@ -0,0 +1,24 @@
+$HTTP["host"] =~ "kibana" {
+
+    server.document-root = "/var/ww/kibana/src"
+    auth.backend = "plain"
+    auth.backend.plain.userfile = "/etc/lighttpd/kibanapassword"
+
+    index-file.names            = ( "index.html", "index.htm" )
+
+    auth.require = ( "/" => (
+            "method"    => "basic",
+            "realm"     => "Password Protected",
+            "require"   => "valid-user"
+            )
+        )
+
+    $HTTP["url"] =~ "^/kibana-int/(dashboard/|temp).*$" {
+        proxy.balance = "hash"
+        proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "9200" ) ) )
+    }
+    $HTTP["url"] =~ "^.*/_(mapping|search|nodes|aliases)$" {
+        proxy.balance = "hash"
+        proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "9200" ) ) )
+    }
+}

+ 8 - 2
src/app/controllers/dash.js

@@ -77,7 +77,7 @@ function (angular, $, config, _) {
         $rootScope.$emit('open-search', evt);
       }, { inputDisabled: true });
 
-      keyboardManager.bind('ctrl+h', function(evt) {
+      keyboardManager.bind('ctrl+h', function() {
         var current = dashboard.current.hideControls;
         dashboard.current.hideControls = !current;
         dashboard.current.panel_hints = !current;
@@ -87,7 +87,7 @@ function (angular, $, config, _) {
         $rootScope.$emit('save-dashboard', evt);
       }, { inputDisabled: true });
 
-      keyboardManager.bind('ctrl+r', function(evt) {
+      keyboardManager.bind('ctrl+r', function() {
         dashboard.refresh();
       }, { inputDisabled: true });
 
@@ -162,6 +162,12 @@ function (angular, $, config, _) {
       }
     };
 
+    $scope.pulldownTabStyle = function(i) {
+      var classes = ['bgPrimary','bgSuccess','bgWarning','bgDanger','bgInverse','bgInfo'];
+      i = i%classes.length;
+      return classes[i];
+    };
+
     $scope.setEditorTabs = function(panelMeta) {
       $scope.editorTabs = ['General','Panel'];
       if(!_.isUndefined(panelMeta.editorTabs)) {

+ 3 - 3
src/app/controllers/dashLoader.js

@@ -1,8 +1,9 @@
 define([
   'angular',
-  'underscore'
+  'underscore',
+  'moment'
 ],
-function (angular, _) {
+function (angular, _, moment) {
   'use strict';
 
   var module = angular.module('kibana.controllers');
@@ -160,7 +161,6 @@ function (angular, _) {
         type:'time',
         from:moment.utc(_from).toDate(),
         to:moment.utc(_to).toDate(),
-        field:"@timestamp"
       });
     };
 

+ 0 - 1
src/app/controllers/graphiteTarget.js

@@ -15,7 +15,6 @@ function (angular, _, config, graphiteFuncs, Parser) {
     $scope.init = function() {
       $scope.funcCategories = graphiteFuncs.getCategories();
       parseTarget();
-      i = 10;
     };
 
     function parseTarget() {

+ 16 - 3
src/app/directives/configModal.js

@@ -1,8 +1,8 @@
 define([
   'angular',
-  'app',
+  'underscore'
 ],
-function (angular) {
+function (angular,_) {
   'use strict';
 
   angular
@@ -11,6 +11,7 @@ function (angular) {
       return {
         restrict: 'A',
         link: function(scope, elem) {
+
           // create a new modal. Can't reuse one modal unforunately as the directive will not
           // re-render on show.
           elem.bind('click',function(){
@@ -20,11 +21,23 @@ function (angular) {
               return;
             }
 
+
+            // Create a temp scope so we can discard changes to it if needed
+            var tmpScope = scope.$new();
+            tmpScope.panel = angular.copy(scope.panel);
+
+            tmpScope.editSave = function(panel) {
+              // Correctly set the top level properties of the panel object
+              _.each(panel,function(v,k) {
+                scope.panel[k] = panel[k];
+              });
+            };
+
             var panelModal = $modal({
               template: './app/partials/paneleditor.html',
               persist: true,
               show: false,
-              scope: scope,
+              scope: tmpScope,
               keyboard: false
             });
 

+ 2 - 5
src/app/directives/kibanaPanel.js

@@ -30,9 +30,6 @@ function (angular) {
               'onStop:\'panelMoveStop\''+
               '}"  ng-model="row.panels"><i class="icon-move"></i></span>'+
           '</span>' +
-          '<span class="extra row-button" ng-show="panel.draggable == false">' +
-            '<span class="row-text">{{panel.type}}</span>'+
-          '</span>' +
 
           '<span class="row-button extra" ng-show="panel.editable != false">' +
             '<span config-modal class="pointer">'+
@@ -51,7 +48,7 @@ function (angular) {
           '</span>' +
 
           '<span ng-if="panelMeta.menuItems" class="dropdown" ng-show="panel.title">' +
-            '<span class="pointer dropdown-toggle row-text row-button panel-title pointer" data-toggle="dropdown" tabindex="1">' +
+            '<span class="dropdown-toggle panel-text panel-title pointer" data-toggle="dropdown" tabindex="1">' +
               '{{panel.title}}' +
             '</span>' +
             '<ul class="dropdown-menu" role="menu">' +
@@ -59,7 +56,7 @@ function (angular) {
             '</ul>' +
           '</span>'+
 
-          '<span ng-if="!panelMeta.menuItems" class="row-button row-text panel-title pointer" ng-show="panel.title">' +
+          '<span ng-if="!panelMeta.menuItems" class="panel-text panel-title" ng-show="panel.title">' +
             '{{panel.title}}' +
           '</span>'+
 

+ 2 - 12
src/app/panels/filtering/module.html

@@ -8,23 +8,14 @@
       vertical-align: top;
       width: 220px;
       padding: 5px 5px 0px 5px;
-      border: #555 1px solid;
       margin: 5px 5px 5px 0px;
+      color: #fff;
+      background-color: #444;
     }
     .filter-panel-filter ul {
       margin-bottom: 3px;
     }
 
-
-    .filter-must {
-      border-top: #7EB26D 3px solid;
-    }
-    .filter-mustNot {
-      border-top: #E24D42 3px solid;
-    }
-    .filter-either {
-      border-top: #EF843C 3px solid;
-    }
     .filter-deselected {
       opacity: 0.5;
     }
@@ -39,7 +30,6 @@
     }
     .filter-apply {
       float:right;
-      margin-bottom: 5px;
     }
   </style>
 

+ 19 - 1
src/app/panels/filtering/module.js

@@ -44,7 +44,7 @@ function (angular, app, _) {
       dashboard.refresh();
     };
 
-    $scope.add = function(query) {
+    $scope.add = function() {
       filterSrv.set({
         editing   : true,
         type      : 'filter',
@@ -74,6 +74,24 @@ function (angular, app, _) {
       return !_.contains(['type','id','active','editing', 'name', 'query', 'value'],key);
     };
 
+    $scope.getFilterClass = function(filter) {
+      if(filter.active !== true) {
+        return 'muted';
+      } else {
+        switch (filter.mandate)
+        {
+        case 'must':
+          return 'text-success';
+        case 'mustNot':
+          return 'text-error';
+        case 'either':
+          return 'text-warning';
+        default:
+          return 'text-info';
+        }
+      }
+    };
+
     $scope.isEditable = function(filter) {
       var uneditable = ['time'];
       if(_.contains(uneditable,filter.type)) {

+ 2 - 2
src/app/panels/histogram/module.html

@@ -35,8 +35,8 @@
   </style>
   <div>
     <span ng-show='panel.options'>
-      <a class="link underline small" ng-show='panel.options' ng-click="options=!options">
-        <i ng-show="!options" class="icon-caret-right"></i><i ng-show="options" class="icon-caret-down"></i> View
+      <a class="link small" ng-show='panel.options' ng-click="options=!options">
+        View <i ng-show="!options" class="icon-caret-right"></i><i ng-show="options" class="icon-caret-down"></i>
       </a> |&nbsp
     </span>
     <span ng-show='panel.zoomlinks && data'>

+ 14 - 12
src/app/panels/timepicker/editor.html

@@ -1,14 +1,16 @@
-  <div class="row-fluid">
-    <div class="span4">
-      <label class="small">Relative time options <small>comma seperated</small></label>
-      <input type="text" array-join class="input-large" ng-model="panel.time_options">
-    </div>
-    <div class="span4">
-      <label class="small">Auto-refresh options <small>comma seperated</small></label>
-      <input type="text" array-join class="input-large" ng-model="panel.refresh_intervals">
-    </div>
-    <div class="span2">
-      <label class="small">Time Field</label>
-      <input type="text" class="input-small" ng-model="panel.timefield">
+  <div class="editor-row">
+    <div class="section">
+      <div class="editor-option">
+        <label class="small">Relative time options <small>comma seperated</small></label>
+        <input type="text" array-join class="input-large" ng-model="panel.time_options">
+      </div>
+      <div class="editor-option">
+        <label class="small">Auto-refresh options <small>comma seperated</small></label>
+        <input type="text" array-join class="input-large" ng-model="panel.refresh_intervals">
+      </div>
+      <div class="editor-option">
+        <label class="small">Time Field</label>
+        <input type="text" class="input-small" ng-model="panel.timefield">
+      </div>
     </div>
   </div>

+ 18 - 21
src/app/partials/dashboard.html

@@ -1,15 +1,16 @@
 <!-- is there a better way to repeat without actually affecting the page? -->
 <nil ng-repeat="pulldown in dashboard.current.pulldowns" ng-controller="PulldownCtrl" ng-show="pulldown.enable">
+  <div class="top-row-close pointer pull-left" ng-class="pulldownTabStyle($index)" ng-click="toggle_pulldown(pulldown);dismiss();" bs-tooltip="'Toggle '+pulldown.type" data-placement="bottom">
+    <span class="small">{{pulldown.type}}</span>
+    <i class="small" ng-class="{'icon-caret-left':pulldown.collapse,'icon-caret-right':!pulldown.collapse}"></i>
+    <i class="small icon-star" ng-show="row.notice && pulldown.collapse"></i>
+  </div>
+  <div class="clearfix bgNav" ng-hide="pulldown.collapse"></div>
   <div class="top-row-open" ng-hide="pulldown.collapse">
     <kibana-simple-panel type="pulldown.type" ng-cloak></kibana-simple-panel>
   </div>
-  <div class="top-row-close pointer" ng-click="toggle_pulldown(pulldown);dismiss();" bs-tooltip="'Toggle '+pulldown.type" data-placement="bottom">
-    <span class="small row-text">{{pulldown.type}}</span>
-    <i class="small" ng-class="{'icon-caret-left':pulldown.collapse,'icon-caret-up':!pulldown.collapse}"></i>
-    <i class="small icon-star text-warning" ng-show="row.notice && pulldown.collapse"></i>
-  </div>
 </nil>
-
+<div class="clearfix bgNav" ></div>
 <div class="container-fluid main" ng-class="{'grafana-dashboard-hide-controls': dashboard.current.hideControls}">
   <div class="row-fluid">
     <div class="row-fluid container" style="margin-top:10px; width:98%">
@@ -21,32 +22,28 @@
           <div class="row-fluid grafana-row" style="padding:0px;margin:0px;position:relative;">
 
             <div class="row-close span12" ng-show="row.collapse" data-placement="bottom" >
-              <span class="row-button" bs-modal="'app/partials/roweditor.html'" class="pointer">
+              <span class="row-button bgWarning" bs-modal="'app/partials/roweditor.html'" class="pointer">
                 <i bs-tooltip="'Configure row'" data-placement="right" ng-show="row.editable" class="icon-cog pointer"></i>
               </span>
-              <span class="row-button" ng-click="toggle_row(row)" ng-show="row.collapsable">
-                <i bs-tooltip="'Expand row'" data-placement="right" ng-show="row.editable" class="icon-caret-right pointer" ></i>
+              <span class="row-button bgPrimary" ng-click="toggle_row(row)" ng-show="row.collapsable">
+                <i bs-tooltip="'Expand row'" data-placement="right" ng-show="row.editable" class="icon-caret-left pointer" ></i>
               </span>
               <span class="row-button row-text" ng-click="toggle_row(row)" ng-class="{'pointer':row.collapsable}">{{row.title || 'Row '+$index}}</span>
             </div>
 
             <div style="text-align:center" class="row-open" ng-show="!row.collapse">
-              <span ng-show="row.collapsable">
-                <i bs-tooltip="'Hide row'" data-placement="right"  class="icon-caret-up" ng-click="toggle_row(row)"></i>
+              <div ng-show="row.collapsable" class='row-tab bgPrimary' ng-click="toggle_row(row)">
+                <i bs-tooltip="'Hide row'" data-placement="right"  class="icon-caret-right" ></i>
                 <br>
-              </span>
-              <span bs-modal="'app/partials/roweditor.html'" ng-show="row.editable">
+              </div>
+              <div bs-modal="'app/partials/roweditor.html'" class='row-tab bgWarning' ng-show="row.editable">
                 <i bs-tooltip="'Configure row'" data-placement="right"  class="icon-cog pointer"></i>
                 <br>
-              </span>
-              <span ng-show="rowSpan(row) == 12 && row.editable">
-                <i bs-tooltip="'Row full. Create a new row to add more panels'" data-placement="right" class="icon-columns"></i>
-                <br>
-              </span>
-              <span ng-show="rowSpan(row) > 12">
-                <i bs-tooltip="'Total span > 12. This row may format poorly'" data-placement="right" class="icon-warning-sign text-warning"></i>
+              </div>
+              <div ng-show="rowSpan(row) > 12" class='row-tab bgDanger'>
+                <i bs-tooltip="'Total span > 12. This row may format poorly'" data-placement="right" class="icon-warning-sign"></i>
                 <br>
-              </span>
+              </div>
             </div>
 
           </div>

+ 1 - 1
src/app/partials/dasheditor.html

@@ -35,7 +35,7 @@
     <div class="row-fluid">
       <div class="span8">
         <h4>Rows</h4>
-        <table class="table table-condensed table-bordered">
+        <table class="table table-striped">
           <thead>
             <th width="1%"></th>
             <th width="1%"></th>

+ 2 - 1
src/app/partials/paneleditor.html

@@ -19,5 +19,6 @@
 
 <div class="modal-footer">
   <!-- close_edit() is provided here to allow for a scope to perform action on dismiss -->
-  <button type="button" class="btn btn-danger" ng-click="editor.index=0;close_edit();dismiss()">Close</button>
+  <button type="button" class="btn btn-success" ng-click="editor.index=0;editSave(panel);close_edit();dismiss()">Save</button>
+  <button type="button" class="btn btn-danger" ng-click="editor.index=0;dismiss()">Cancel</button>
 </div>

+ 3 - 2
src/app/partials/roweditor.html

@@ -22,7 +22,7 @@
   </div>
   <div class="row-fluid" ng-if="editor.index == 1">
     <div class="span12">
-      <h4>Panels <i class="icon-plus-sign link" bs-tooltip="'Add panel'" ng-click="editor.index = 2"></i></h4>
+      <h4>Panels</h4>
       <table class="table table-condensed table-striped">
         <thead>
           <th>Title</th>
@@ -60,6 +60,7 @@
   </div>
 </div>
 <div class="modal-footer">
-  <button ng-show="panel.type &amp;&amp; editor.index == 2" ng-click="add_panel(row,panel); reset_panel(); editor.index == 1;" class="btn btn-success" ng-disabled="panel.loadingEditor">Add Panel</button>
+  <button ng-show="editor.index == 1" ng-click="editor.index = 2;" class="btn btn-success" ng-disabled="panel.loadingEditor">Add Panel</button>
+  <button ng-show="panel.type && editor.index == 2" ng-click="add_panel(row,panel); reset_panel(); editor.index = 1;" class="btn btn-success" ng-disabled="panel.loadingEditor">Add Panel</button>
   <button type="button" class="btn btn-danger" ng-click="editor.index=0;dismiss();reset_panel();close_edit()">Close</button>
 </div>

+ 0 - 2
src/app/services/dashboard.js

@@ -115,7 +115,6 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
         // as their default
         if (Modernizr.localstorage) {
           if(!(_.isUndefined(window.localStorage['dashboard'])) && window.localStorage['dashboard'] !== '') {
-            console.log(window.localStorage['dashboard']);
             $location.path(config.default_route);
             alertSrv.set('Saving to browser storage has been replaced',' with saving to Elasticsearch.'+
               ' Click <a href="#/dashboard/local/deprecated">here</a> to load your old dashboard anyway.');
@@ -215,7 +214,6 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
     };
 
     this.set_default = function(route) {
-      console.log(route);
       if (Modernizr.localstorage) {
         // Purge any old dashboards
         if(!_.isUndefined(window.localStorage['dashboard'])) {

+ 3 - 1
src/app/services/filterSrv.js

@@ -236,7 +236,9 @@ define([
       var idCount = dashboard.current.services.filter.ids.length;
       if(idCount > 0) {
         // Make a sorted copy of the ids array
-        var ids = _.clone(dashboard.current.services.filter.ids).sort();
+        var ids = _.sortBy(_.clone(dashboard.current.services.filter.ids),function(num){
+          return num;
+        });
         return kbn.smallestMissing(ids);
       } else {
         // No ids currently in list

+ 1 - 1
src/app/services/graphite/graphiteSrv.js

@@ -57,7 +57,7 @@ function (angular, _, $, config) {
             };
           });
         });
-    }
+    };
 
 
     function buildGraphitePostParams(options) {

+ 1 - 1
src/config.js

@@ -18,7 +18,7 @@ function (Settings) {
      * The URL to your elasticsearch server. You almost certainly don't
      * want +http://localhost:9200+ here. Even if Kibana and Elasticsearch are on
      * the same host. By default this will attempt to reach ES at the same host you have
-     * elasticsearch installed on. You probably want to set it to the FQDN of your
+     * kibana installed on. You probably want to set it to the FQDN of your
      * elasticsearch host
      */
     elasticsearch: "http://"+window.location.hostname+":9200",

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/css/bootstrap.dark.min.css


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/css/bootstrap.light.min.css


BIN
src/img/cubes.png


BIN
src/img/light.png


+ 1 - 0
src/index.html

@@ -22,6 +22,7 @@
 
   <body ng-cloak>
 
+    <!--<link rel="stylesheet" ng-href="css/bootstrap.{{dashboard.current.style||'dark'}}.min.css">-->
     <link rel="stylesheet" ng-href="css/bootstrap.{{dashboard.current.style||'dark'}}.min.css">
     <link rel="stylesheet" href="css/bootstrap-responsive.min.css">
     <link rel="stylesheet" href="css/font-awesome.min.css">

+ 555 - 0
src/vendor/bootstrap/less/bak/bootswatch.dark.less

@@ -0,0 +1,555 @@
+// Slate 2.3.2
+// Bootswatch
+// -----------------------------------------------------
+
+// KIBANA
+.panelCont {
+    outline: 1px solid darken(@bodyBackground, 10%);
+    border-top: 1px solid lighten(@bodyBackground, 10%);
+    padding: 0px 10px 10px 10px;
+    background: darken(@bodyBackground, 3%);
+    margin: 0px;
+}
+
+
+// TYPOGRAPHY
+// -----------------------------------------------------
+
+h1, h2, h3, h4, h5, h6 {
+	text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
+}
+
+code, pre {
+	background-color: #F7F7F7;
+	border: 1px solid darken(@grayDarker, 5%);
+	text-shadow: none;
+}
+
+// SCAFFOLDING
+// -----------------------------------------------------
+
+legend, .page-header {
+	border-bottom: 1px solid @hrBorder;
+}
+
+hr {
+	border-bottom: none;
+}
+
+// NAVBAR
+// -----------------------------------------------------
+
+.navbar {
+
+	.navbar-inner {
+		#gradient > .vertical-three-colors(@grayDark, darken(@bodyBackground,3%), 70%, darken(@bodyBackground,3%));
+	}
+
+	.brand {
+		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+		border-right: none;
+	}
+
+	.navbar-text {
+		padding: 0 15px;
+		font-weight: bold;
+	}
+
+	.nav > li > a  {
+		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+		border-right: 1px solid rgba(0, 0, 0, 0.2);
+		border-left: 1px solid rgba(255, 255, 255, 0.1);
+
+		&:hover {
+			#gradient > .directional(@grayDarker, @grayDark, 280deg);
+			border-left: 1px solid transparent;
+			border-right: 1px solid transparent;
+		}
+	}
+
+	.nav > li.active > a,
+	.nav > li.active > a:hover {
+		color: @grayLighter;
+		background-color: @grayDark;
+		#gradient > .directional(lighten(@grayDarker, 2%), lighten(@grayDark, 2%), 0deg);
+		border-right: 1px solid darken(@gray, 15%);
+	}
+
+	.navbar-search .search-query {
+		border: 1px solid darken(@gray, 15%);
+	}
+
+	.btn,
+	.btn-group {
+		margin: 4px 0;
+	}
+
+	.divider-vertical {
+		background-color: transparent;
+		border-right: none;
+	}
+
+	.dropdown-menu::after {
+		border-bottom: 6px solid @grayDark;
+	}
+
+	&-inverse {
+
+		.navbar-inner {
+			#gradient > .vertical-three-colors(darken(@grayDarker, 3%), darken(@grayDarker, 8%), 70%, darken(@grayDarker, 8%));
+		}
+
+		.nav li > a {
+			background-image: none;
+			background-color: transparent;
+		}
+
+		.nav li > a:hover,
+		.nav li.active > a,
+		.nav li.active > a:hover {
+			#gradient > .directional(darken(@grayDarker, 10%), darken(@grayDarker, 5%), 280deg);
+		}
+	}
+}
+
+@media (max-width: @navbarCollapseWidth) {
+
+	.navbar .nav-collapse {
+
+		.nav li > a,
+		.nav li > a:hover,
+		.nav .active > a,
+		.nav .active > a:hover {
+			.box-shadow(none);
+			color: @grayLighter;
+			border: 1px solid transparent;
+			background-color: transparent;
+			background-image: none;
+		}
+
+		.nav li > a:hover,
+		.nav .active > a:hover {
+			background-color: @grayDarker;
+		}
+
+		.navbar-form,
+		.navbar-search {
+			border-color: transparent;
+			.box-shadow(none);
+		}
+
+		.nav-header {
+			color: @grayLight;
+		}
+	}
+
+	.navbar-inverse .nav-collapse {
+
+		.nav li > a:hover,
+		.nav .active > a:hover {
+			background-color: @grayDarker !important;
+		}
+	}
+}
+
+.nav-tabs {
+	.active > a, .active a:hover {
+		border-bottom: 1px solid darken(@grayDark, 5%);;
+	}
+}
+
+div.subnav {
+
+	margin: 0 1px;
+	//#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
+	border: 1px solid transparent;
+	.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
+
+	.nav > li > a {
+		color: @grayLighter;
+		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+		border-right: 1px solid darken(@gray, 15%);
+		border-left: 1px solid @gray;
+
+		&:hover {
+			color: @grayLighter;
+			background-color: @grayDark;
+			//#gradient > .directional(@grayDarker, @grayDark, 280deg);
+			border-left: 1px solid transparent;
+			border-right: 1px solid transparent;
+		}
+	}
+
+	.nav > li.active > a,
+	.nav > li.active > a:hover {
+		color: @grayLighter;
+		background-color: @grayDark;
+		#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
+		border-right: 1px solid darken(@gray, 15%);
+	}
+
+	.nav > li:first-child > a,
+	.nav > li:first-child > a:hover {
+		border-left: 1px solid transparent;
+	}
+
+	.nav > li.active:last-child > a,
+	.nav > li:last-child > a:hover {
+		border-right: 1px solid darken(@gray, 15%);
+	}
+
+	.open .dropdown-toggle {
+		border-right: 1px solid darken(@gray, 15%);
+		border-left: 1px solid @gray;
+	}
+
+	&.subnav-fixed {
+		top: @navbarHeight;
+		margin: 0;
+		.box-shadow(none);
+
+		.nav > li.active:first-child > a,
+		.nav > li:first-child > a:hover {
+			border-left: 1px solid darken(@gray, 15%);
+		}
+	}
+}
+
+// NAV
+// -----------------------------------------------------
+
+.nav {
+
+	.nav-header {
+		text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
+	}
+
+	& > li > a {
+		//#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
+		.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
+		border: none;
+		color: @grayLight;
+		font-weight: bold;
+		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+	}
+
+	li.active > a,
+	li.active > a:hover {
+		background-color: transparent;
+		color: @white;
+	}
+
+	& > li.disabled > a,
+	& > li.disabled > a:hover {
+		color: @gray;
+	}
+
+	li > a:hover {
+		background-color: transparent;
+		color: @grayLighter;
+	}
+
+}
+
+.breadcrumb {
+	border: 1px solid transparent;
+	#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
+	.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
+
+	a {
+		color: @grayLighter;
+		font-weight: bold;
+	}
+
+	li {
+		color: @grayLight;
+		font-weight: bold;
+		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+	}
+}
+
+.pagination {
+
+	ul {
+		.box-shadow(none);
+	}
+
+	ul > li > a,
+	ul > li > span {
+		border-left: 1px solid @gray;
+		border-right: 1px solid darken(@gray, 15%);
+		border-top: none;
+		border-bottom: none;
+		#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
+		.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
+		color: @grayLighter;
+		font-weight: bold;
+		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+
+		&:hover {
+			#gradient > .directional(@grayDarker, @grayDark, 280deg);
+			border-left: 1px solid transparent;
+		}
+	}
+
+	ul > .active > a,
+	ul > .active > a:hover,
+	ul > .active > span,
+	ul > .active > span:hover {
+		color: @grayLighter;
+		background-color: @grayDark;
+		#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
+		border-left: 1px solid transparent;
+	}
+
+	ul > .disabled > a,
+	ul > .disabled > a:hover,
+	ul > .disabled > span,
+	ul > .disabled > span:hover {
+		border-left: 1px solid @gray;
+		border-right: 1px solid darken(@gray, 15%);
+		border-top: none;
+		border-bottom: none;
+		#gradient > .vertical-three-colors(@grayLight, @gray, 70%, @gray);
+	}
+}
+
+.pager {
+
+	li > a,
+	li > span {
+
+		border: 1px solid transparent;
+		.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
+		#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
+
+		&:hover {
+			#gradient > .directional(@grayDarker, @grayDark, 280deg);
+			border: 1px solid transparent;
+		}
+	}
+
+	.disabled a,
+	.disabled a:hover {
+		background-color: transparent;
+		#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
+	}
+}
+
+// BUTTONS
+// -----------------------------------------------------
+
+.btn {
+    .buttonBackground(@gray, darken(@gray, 10%));
+	.border-radius(3px);
+	border: 1px solid @grayDarker;
+}
+
+.btn, .btn:hover {
+	color: @white;
+	font-weight: bold;
+	text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.3);
+}
+
+.btn-primary {
+	.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
+	color: @grayDark;
+	text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.3);
+}
+
+.btn-warning {
+	.buttonBackground(lighten(@orange, 15%), @orange);
+}
+
+.btn-danger {
+	.buttonBackground(@red, #bd362f);
+}
+
+.btn-success {
+	.buttonBackground(@green, #51a351);
+}
+
+.btn-info {
+	.buttonBackground(@blue, #2f96b4);
+}
+
+.btn-inverse {
+	.buttonBackground(@gray, @grayDarker);
+}
+
+.caret {
+	border-top-color: @white;
+}
+
+// TABLES
+// -----------------------------------------------------
+
+.table {
+
+	tbody tr.success td {
+		background-color: @successText;
+	}
+
+	tbody tr.error td {
+		background-color: @errorText;
+	}
+
+	tbody tr.info td {
+		background-color: @infoText;
+	}
+
+}
+
+
+// FORMS
+// -----------------------------------------------------
+
+label, input, button, select, textarea, legend {
+	color: @textColor;
+}
+
+legend, label {
+	text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
+}
+
+.input-prepend .add-on,
+.input-append .add-on {
+	vertical-align: top;
+	background-color: @gray;
+	border-top: 1px solid @grayLight;
+	border-left: 1px solid @grayLight;
+	border-bottom: 1px solid @grayDark;
+	border-right: 1px solid @grayDark;
+	text-shadow: none;
+}
+
+.input-append .btn,
+.input-prepend .btn {
+	margin-top: -1px;
+	padding: 5px 14px;
+}
+
+.uneditable-input,
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+	color: @gray;
+	background: @grayDarker;
+}
+
+.form-actions {
+	border-top: none;
+}
+
+// DROPDOWNS
+// -----------------------------------------------------
+
+.dropdown-menu {
+	.box-shadow(0 5px 5px rgba(0, 0, 0, 0.2));
+}
+
+.dropdown.open .dropdown-toggle {
+	background-color: @grayDark;
+	color: @grayLighter;
+}
+
+.dropdown-submenu > a::after {
+	border-left-color: @white;
+}
+
+// ALERTS, LABELS, BADGES
+// -----------------------------------------------------
+
+.label, .alert {
+  	color: rgba(255, 255, 255, 0.9);
+	text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
+	.box-shadow(1px 1px 1px rgba(0, 0, 0, 0.3));
+}
+
+.alert {
+  background-color: @orange;
+  border-color: @orange;
+
+	.alert-heading {
+		color: rgba(255, 255, 255, 0.9);
+		text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.4);
+	}
+}
+
+.alert-success {
+  background-color: @successText;
+  border-color: @successText;
+}
+
+.alert-error {
+  background-color: @errorText;
+  border-color: @errorText;
+}
+
+.alert-info {
+  background-color: @infoText;
+  border-color: @infoText;
+}
+
+// MISC
+// -----------------------------------------------------
+
+.well, .hero-unit {
+	.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
+}
+
+.thumbnail,
+a.thumbnail:hover {
+  border: 1px solid darken(@grayDarker, 5%);
+}
+
+.progress {
+	background-color: darken(@grayDarker, 3%);
+	#gradient > .vertical(darken(@grayDarker, 3%), darken(@grayDarker, 3%));
+	.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
+}
+
+.footer {
+	border-top: 1px solid darken(@grayDarker, 5%);
+
+	p {
+		color: @textColor;
+	}
+}
+
+.modal {
+
+	background-color: darken(@grayDark, 5%);
+
+	&-header {
+		border-bottom: none;
+	}
+
+	&-body {
+		border-bottom: 1px solid #1C1E22;
+	}
+
+	&-footer {
+		border-top: none;
+		background-color: @grayDarker;
+		.box-shadow(none);
+	}
+}
+
+// MEDIA QUERIES
+// -----------------------------------------------------
+
+@media (max-width: 979px) {
+	.navbar .brand {
+		border-right: none;
+	}
+}
+
+@media (max-width: 768px) {
+	div.subnav .nav > li + li > a {
+		border-top: 1px solid transparent;
+	}
+}

+ 304 - 0
src/vendor/bootstrap/less/bak/variables.dark.less

@@ -0,0 +1,304 @@
+// Slate 2.3.2
+// Variables
+// --------------------------------------------------
+
+
+// Global values
+// --------------------------------------------------
+
+
+// Grays
+// -------------------------
+@black:                 #000;
+@grayDarker:            #272B30;
+@grayDark:              #3A3F44;
+@gray:                  #52575C;
+@grayLight:             #7A8288;
+@grayLighter:           #BBBFC2;
+@white:                 #fff;
+
+
+// Accent colors
+// -------------------------
+@blue:                  #5bc0de;
+@blueDark:              #108CBB;
+@green:                 #62c462;
+@red:                   #ee5f5b;
+@yellow:                #F6D30D;
+@orange:                #f89406;
+@pink:                  #c3325f;
+@purple:                #7a43b6;
+
+
+// Scaffolding
+// -------------------------
+@bodyBackground:        @grayDarker;
+@textColor:             #C8C8C8;
+
+
+// Links
+// -------------------------
+@linkColor:             @white;
+@linkColorHover:        @white;
+
+
+// Typography
+// -------------------------
+@sansFontFamily:        "Helvetica Neue", Helvetica, Arial, sans-serif;
+@serifFontFamily:       Georgia, "Times New Roman", Times, serif;
+@monoFontFamily:        Monaco, Menlo, Consolas, "Courier New", monospace;
+
+@baseFontSize:          14px;
+@baseFontFamily:        @sansFontFamily;
+@baseLineHeight:        21px;
+@altFontFamily:         @serifFontFamily;
+
+@headingsFontFamily:    inherit; // empty to use BS default, @baseFontFamily
+@headingsFontWeight:    bold;    // instead of browser default, bold
+@headingsColor:         inherit; // empty to use BS default, @textColor
+
+
+// Component sizing
+// -------------------------
+// Based on 14px font-size and 20px line-height
+
+@fontSizeLarge:         @baseFontSize * 1.25; // ~18px
+@fontSizeSmall:         @baseFontSize * 0.85; // ~12px
+@fontSizeMini:          @baseFontSize * 0.75; // ~11px
+
+@paddingLarge:          11px 19px; // 44px
+@paddingSmall:          2px 10px;  // 26px
+@paddingMini:           0px 6px;   // 22px
+
+@baseBorderRadius:      4px;
+@borderRadiusLarge:     6px;
+@borderRadiusSmall:     3px;
+
+
+// Tables
+// -------------------------
+@tableBackground:                   transparent; // overall background-color
+@tableBackgroundAccent:             darken(@grayDark, 5%); // for striping
+@tableBackgroundHover:              @grayDark; // for hover
+@tableBorder:                       lighten(@grayDark, 2%); // table and cell border
+
+// Buttons
+// -------------------------
+@btnBackground:                     @gray;
+@btnBackgroundHighlight:            darken(@gray, 10%);
+@btnBorder:                         darken(@gray, 20%);
+
+@btnPrimaryBackground:              @grayLight;
+@btnPrimaryBackgroundHighlight:     spin(@btnPrimaryBackground, 15%);
+
+@btnInfoBackground:                 @blue;
+@btnInfoBackgroundHighlight:        #2f96b4;
+
+@btnSuccessBackground:              @green;
+@btnSuccessBackgroundHighlight:     #51a351;
+
+@btnWarningBackground:              lighten(@orange, 15%);
+@btnWarningBackgroundHighlight:     @orange;
+
+@btnDangerBackground:               @red;
+@btnDangerBackgroundHighlight:      #bd362f;
+
+@btnInverseBackground:              @gray;
+@btnInverseBackgroundHighlight:     @grayDarker;
+
+// Forms
+// -------------------------
+@inputText:                     @white;
+@inputBackground:               @gray;
+@inputBorder:                   @grayLight;
+@inputBorderRadius:             @baseBorderRadius;
+@inputDisabledBackground:       @grayLighter;
+@formActionsBackground:         darken(@grayDarker, 3%);
+@inputHeight:                   @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
+
+
+// Dropdowns
+// -------------------------
+@dropdownBackground:            @grayDark;
+@dropdownBorder:                rgba(0,0,0,.2);
+@dropdownDividerTop:            transparent;
+@dropdownDividerBottom:         darken(@grayDarker, 5%);
+
+@dropdownLinkColor:             @grayLight;
+@dropdownLinkColorHover:        @white;
+@dropdownLinkColorActive:       @white;
+
+@dropdownLinkBackgroundActive:  @grayDarker;
+@dropdownLinkBackgroundHover:   @grayDarker;
+
+
+
+// COMPONENT VARIABLES
+// --------------------------------------------------
+
+
+// Z-index master list
+// -------------------------
+// Used for a bird's eye view of components dependent on the z-axis
+// Try to avoid customizing these :)
+@zindexDropdown:          1000;
+@zindexPopover:           1010;
+@zindexTooltip:           1030;
+@zindexFixedNavbar:       1030;
+@zindexModalBackdrop:     1040;
+@zindexModal:             1050;
+
+
+// Sprite icons path
+// -------------------------
+@iconSpritePath:          "../img/glyphicons-halflings.png";
+@iconWhiteSpritePath:     "../img/glyphicons-halflings-white.png";
+
+
+// Input placeholder text color
+// -------------------------
+@placeholderText:         @grayLight;
+
+
+// Hr border color
+// -------------------------
+@hrBorder:                darken(@grayDarker, 5%);
+
+
+// Horizontal forms & lists
+// -------------------------
+@horizontalComponentOffset:       180px;
+
+
+// Wells
+// -------------------------
+@wellBackground:                  darken(@grayDarker, 3%);
+
+
+// Navbar
+// -------------------------
+
+@navbarCollapseWidth:             979px;
+@navbarCollapseDesktopWidth:      @navbarCollapseWidth + 1;
+@navbarHeight:                    40px;
+@navbarBackground:                @grayDarker;
+@navbarBackgroundHighlight:       @grayDark;
+@navbarBorder:                    darken(@navbarBackground, 12%);
+
+@navbarText:                      @textColor;
+@navbarLinkColor:                 @textColor;
+@navbarLinkColorHover:            @white;
+@navbarLinkColorActive:           @navbarLinkColorHover;
+@navbarLinkBackgroundHover:       @grayDark;
+@navbarLinkBackgroundActive:      @navbarBackground;
+
+@navbarBrandColor:                @grayLighter;
+
+// Inverted navbar
+@navbarInverseBackground:                darken(@grayDarker, 10%);
+@navbarInverseBackgroundHighlight:       @grayDarker;
+@navbarInverseBorder:                    #252525;
+
+@navbarInverseText:                      @grayLight;
+@navbarInverseLinkColor:                 @grayLight;
+@navbarInverseLinkColorHover:            @white;
+@navbarInverseLinkColorActive:           @navbarInverseLinkColorHover;
+@navbarInverseLinkBackgroundHover:       transparent;
+@navbarInverseLinkBackgroundActive:      @navbarInverseBackground;
+
+@navbarInverseSearchBackground:          lighten(@navbarInverseBackground, 25%);
+@navbarInverseSearchBackgroundFocus:     @white;
+@navbarInverseSearchBorder:              @navbarInverseBackground;
+@navbarInverseSearchPlaceholderColor:    #ccc;
+
+@navbarInverseBrandColor:                @navbarInverseLinkColor;
+
+
+// Pagination
+// -------------------------
+@paginationBackground:                #fff;
+@paginationBorder:                    #ddd;
+@paginationActiveBackground:          #f5f5f5;
+
+
+// Hero unit
+// -------------------------
+@heroUnitBackground:              darken(@grayDarker, 3%);
+@heroUnitHeadingColor:            inherit;
+@heroUnitLeadColor:               inherit;
+
+
+// Form states and alerts
+// -------------------------
+@warningText:             #c09853;
+@warningBackground:       #fcf8e3;
+@warningBorder:           darken(spin(@warningBackground, -10), 3%);
+
+@errorText:               #b94a48;
+@errorBackground:         #f2dede;
+@errorBorder:             darken(spin(@errorBackground, -10), 3%);
+
+@successText:             #468847;
+@successBackground:       #dff0d8;
+@successBorder:           darken(spin(@successBackground, -10), 5%);
+
+@infoText:                #3a87ad;
+@infoBackground:          #d9edf7;
+@infoBorder:              darken(spin(@infoBackground, -10), 7%);
+
+
+// Tooltips and popovers
+// -------------------------
+@tooltipColor:            #fff;
+@tooltipBackground:       @dropdownBackground;
+@tooltipArrowWidth:       5px;
+@tooltipArrowColor:       @tooltipBackground;
+
+@popoverBackground:       @dropdownBackground;
+@popoverArrowWidth:       10px;
+@popoverArrowColor:       @dropdownBackground;
+@popoverTitleBackground:  lighten(@popoverBackground, 3%);
+
+// Special enhancement for popovers
+@popoverArrowOuterWidth:  @popoverArrowWidth + 1;
+@popoverArrowOuterColor:  rgba(0,0,0,.25);
+
+
+
+// GRID
+// --------------------------------------------------
+
+
+// Default 940px grid
+// -------------------------
+@gridColumns:             12;
+@gridColumnWidth:         60px;
+@gridGutterWidth:         10px;
+@gridRowWidth:            (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
+
+// 1200px min
+@gridColumnWidth1200:     70px;
+@gridGutterWidth1200:     10px;
+@gridRowWidth1200:        (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
+
+// 768px-979px
+@gridColumnWidth768:      42px;
+@gridGutterWidth768:      10px;
+@gridRowWidth768:         (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
+
+
+// Fluid grid
+// -------------------------
+@fluidGridColumnWidth:    percentage(@gridColumnWidth/@gridRowWidth);
+@gridGutterWidth:         10px;
+//@fluidGridGutterWidth:    percentage(@gridGutterWidth/@gridRowWidth);
+
+// 1200px min
+@fluidGridColumnWidth1200:    percentage(@gridColumnWidth1200/@gridRowWidth1200);
+@gridGutterWidth:             10px;
+//@fluidGridGutterWidth1200:     percentage(@gridGutterWidth1200/@gridRowWidth1200);
+
+// 768px-979px
+@fluidGridColumnWidth768:   percentage(@gridColumnWidth768/@gridRowWidth768);
+@gridGutterWidth:           10px;
+//@fluidGridGutterWidth768:      percentage(@gridGutterWidth768/@gridRowWidth768);

+ 349 - 327
src/vendor/bootstrap/less/bootswatch.dark.less

@@ -1,35 +1,44 @@
-// Slate 2.3.2
+// Cyborg 2.3.2
 // Bootswatch
 // -----------------------------------------------------
 
-// KIBANA
-.panelCont {
-    outline: 1px solid darken(@bodyBackground, 10%);
-    border-top: 1px solid lighten(@bodyBackground, 10%);
-    padding: 0px 10px 10px 10px;
-    background: darken(@bodyBackground, 3%);
-    margin: 0px;
-}
-
-
 // TYPOGRAPHY
 // -----------------------------------------------------
 
-h1, h2, h3, h4, h5, h6 {
-	text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
+label, input, button, select, textarea,
+.navbar .search-query:-moz-placeholder,
+.navbar .search-query::-webkit-input-placeholder {
+	font-family: 'Droid Sans', sans-serif;
+	color: @gray;
 }
 
-code, pre {
-	background-color: #F7F7F7;
-	border: 1px solid darken(@grayDarker, 5%);
-	text-shadow: none;
+
+
+blockquote {
+	border-left: 5px solid @grayDark;
+
+	&.pull-right {
+		border-right: 5px solid @grayDark;
+	}
 }
 
 // SCAFFOLDING
 // -----------------------------------------------------
 
-legend, .page-header {
-	border-bottom: 1px solid @hrBorder;
+html {
+	min-height: 100%;
+}
+
+body {
+	min-height: 100%;
+	//#gradient > .vertical (@bodyBackground, #252A30);
+	//background: @bodyBackground;
+	background: @bodyBackground;
+	// url('../img/cubes.png') repeat right top;
+}
+
+.page-header {
+	border-bottom: 1px solid @grayDark
 }
 
 hr {
@@ -42,73 +51,60 @@ hr {
 .navbar {
 
 	.navbar-inner {
-		#gradient > .vertical-three-colors(@grayDark, darken(@bodyBackground,3%), 70%, darken(@bodyBackground,3%));
+		.border-radius(0);
+		.box-shadow(none);
+		border-bottom: 0px solid @grayDark;
 	}
 
 	.brand {
-		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
-		border-right: none;
-	}
-
-	.navbar-text {
-		padding: 0 15px;
-		font-weight: bold;
+		padding: 15px 20px 15px;
+		color: @grayLighter;
+		font-weight: normal;
+		text-shadow: none;
 	}
 
-	.nav > li > a  {
-		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
-		border-right: 1px solid rgba(0, 0, 0, 0.2);
-		border-left: 1px solid rgba(255, 255, 255, 0.1);
-
-		&:hover {
-			#gradient > .directional(@grayDarker, @grayDark, 280deg);
-			border-left: 1px solid transparent;
-			border-right: 1px solid transparent;
-		}
+	.nav > li > a {
+		padding: 15px 15px 14px;
+		border-bottom: 1px solid transparent;
 	}
 
-	.nav > li.active > a,
-	.nav > li.active > a:hover {
-		color: @grayLighter;
-		background-color: @grayDark;
-		#gradient > .directional(lighten(@grayDarker, 2%), lighten(@grayDark, 2%), 0deg);
-		border-right: 1px solid darken(@gray, 15%);
+	.nav > li > a:hover,
+	.nav > .active > a,
+	.nav > .active > a:hover {
+		border-bottom: 1px solid @blue;
 	}
 
-	.navbar-search .search-query {
-		border: 1px solid darken(@gray, 15%);
+	.nav > .active > a,
+	.nav > .active > a:hover,
+	.nav > .active > a:focus {
+		.box-shadow(none);
 	}
 
-	.btn,
-	.btn-group {
-		margin: 4px 0;
+	.navbar-text {
+		margin-bottom: 1px;
+		padding: 15px 15px 14px;
+		line-height: inherit;
 	}
 
 	.divider-vertical {
-		background-color: transparent;
-		border-right: none;
+		margin: 0;
+		border-left: 1px solid @grayDark;
+		border-right-width: 0;
 	}
 
-	.dropdown-menu::after {
-		border-bottom: 6px solid @grayDark;
+	.search-query,
+	.search-query:focus,
+	.search-query.focused {
+		.border-radius(1px);
+		background-color: @grayDark;
+		line-height: normal;
+		color: @grayLight;
+		text-shadow: none;
+		.placeholder(@gray);
 	}
 
 	&-inverse {
 
-		.navbar-inner {
-			#gradient > .vertical-three-colors(darken(@grayDarker, 3%), darken(@grayDarker, 8%), 70%, darken(@grayDarker, 8%));
-		}
-
-		.nav li > a {
-			background-image: none;
-			background-color: transparent;
-		}
-
-		.nav li > a:hover,
-		.nav li.active > a,
-		.nav li.active > a:hover {
-			#gradient > .directional(darken(@grayDarker, 10%), darken(@grayDarker, 5%), 280deg);
-		}
 	}
 }
 
@@ -116,155 +112,207 @@ hr {
 
 	.navbar .nav-collapse {
 
-		.nav li > a,
-		.nav li > a:hover,
-		.nav .active > a,
-		.nav .active > a:hover {
-			.box-shadow(none);
+		.nav li > a {
+			border: none;
 			color: @grayLighter;
-			border: 1px solid transparent;
-			background-color: transparent;
-			background-image: none;
+			font-weight: normal;
+			text-shadow: none;
+
+			&:hover {
+				border: none;
+				background-color: @blue;
+			}
 		}
 
-		.nav li > a:hover,
-		.nav .active > a:hover {
-			background-color: @grayDarker;
+		.nav .active > a {
+			border: none;
+			background-color: @blue;
+		}
+
+		.dropdown-menu a:hover {
+			background-color: @blue;
 		}
 
 		.navbar-form,
 		.navbar-search {
-			border-color: transparent;
-			.box-shadow(none);
+			border-top: none;
+			border-bottom: none;
 		}
 
 		.nav-header {
-			color: @grayLight;
+			color: rgba(128, 128, 128, 0.6);
 		}
 	}
 
 	.navbar-inverse .nav-collapse {
 
-		.nav li > a:hover,
-		.nav .active > a:hover {
-			background-color: @grayDarker !important;
+		.nav li > a:hover {
+			background-color: #111;
+		}
+
+		.nav .active > a {
+			background-color: #111;
+		}
+
+		.nav li.dropdown.open > .dropdown-toggle,
+		.nav li.dropdown.active > .dropdown-toggle,
+		.nav li.dropdown.open.active > .dropdown-toggle {
+			background-color: #111;
 		}
 	}
 }
 
-.nav-tabs {
-	.active > a, .active a:hover {
-		border-bottom: 1px solid darken(@grayDark, 5%);;
-	}
+.dropdown-menu {
+	.border-radius(0);
 }
 
+
 div.subnav {
 
 	margin: 0 1px;
-	//#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
-	border: 1px solid transparent;
-	.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
-
-	.nav > li > a {
-		color: @grayLighter;
-		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
-		border-right: 1px solid darken(@gray, 15%);
-		border-left: 1px solid @gray;
+	background-color: @grayDarker;
+	background-image: none;
+	border: none;
+	border-bottom: 1px solid @grayDark;
 
-		&:hover {
-			color: @grayLighter;
-			background-color: @grayDark;
-			//#gradient > .directional(@grayDarker, @grayDark, 280deg);
-			border-left: 1px solid transparent;
-			border-right: 1px solid transparent;
-		}
+	.nav > li > a,
+	.nav > li:first-child > a,
+	.nav > li:first-child > a:hover {
+		padding: 11px 12px;
+		border: none;
+		background-color: @grayDarker;
+		color: @grayLight;
 	}
 
+	.nav > li > a:hover,
 	.nav > li.active > a,
-	.nav > li.active > a:hover {
-		color: @grayLighter;
-		background-color: @grayDark;
-		#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
-		border-right: 1px solid darken(@gray, 15%);
-	}
-
-	.nav > li:first-child > a,
+	.nav > li.active > a:hover,
 	.nav > li:first-child > a:hover {
-		border-left: 1px solid transparent;
+		padding: 11px 12px;
+		background: transparent;
+		border: none;
+		border-bottom: 1px solid @blue;
+		color: @white;
 	}
 
-	.nav > li.active:last-child > a,
-	.nav > li:last-child > a:hover {
-		border-right: 1px solid darken(@gray, 15%);
+	.nav li.nav-header {
+		text-shadow: none;
 	}
 
-	.open .dropdown-toggle {
-		border-right: 1px solid darken(@gray, 15%);
-		border-left: 1px solid @gray;
-	}
 
-	&.subnav-fixed {
+
+
+	&-fixed {
 		top: @navbarHeight;
 		margin: 0;
-		.box-shadow(none);
-
-		.nav > li.active:first-child > a,
-		.nav > li:first-child > a:hover {
-			border-left: 1px solid darken(@gray, 15%);
-		}
 	}
 }
 
 // NAV
 // -----------------------------------------------------
 
-.nav {
+.nav-tabs {
 
-	.nav-header {
-		text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
-	}
+	border-bottom: 1px solid @grayDark;
 
 	& > li > a {
-		//#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
-		.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
-		border: none;
-		color: @grayLight;
-		font-weight: bold;
-		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+		.border-radius(0);
 	}
 
+	li > a:hover,
 	li.active > a,
 	li.active > a:hover {
-		background-color: transparent;
+		border-color: transparent;
+		background-color: @blue;
+		color: @white;
+	}
+
+	li.disabled > a {
+		color: @textColor;
+	}
+
+	.open .dropdown-toggle {
+		background-color: #060606;
+		border-color: transparent;
+	}
+}
+
+.nav-pills {
+
+	li > a:hover {
+		background-color: @blue;
 		color: @white;
 	}
 
-	& > li.disabled > a,
-	& > li.disabled > a:hover {
-		color: @gray;
+	li.disabled > a {
+		color: @textColor;
+	}
+
+	.open .dropdown-toggle {
+		background-color: #060606;
+	}
+
+	.dropdown-menu li > a:hover {
+		border: none;
+	}
+}
+
+.nav-list {
+
+	li > a {
+		text-shadow: none;
 	}
 
 	li > a:hover {
+		background-color: @blue;
+		color: @white;
+	}
+
+	.nav-header {
+		text-shadow: none;
+	}
+
+	.divider {
 		background-color: transparent;
-		color: @grayLighter;
+		border-bottom: 1px solid @grayDark;
 	}
+}
+
+.nav-stacked {
+
+	li > a {
+		border: 1px solid @grayDark !important;
+	}
+
+	li > a:hover,
+	li.active > a {
+		background-color: @blue;
+		color: @white;
+	}
+}
 
+.tabbable  {
+	.nav-tabs,
+	.nav-tabs li.active > a {
+		border-color: @grayDark;
+	}
 }
 
 .breadcrumb {
-	border: 1px solid transparent;
-	#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
-	.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
 
-	a {
-		color: @grayLighter;
-		font-weight: bold;
-	}
+	background-color: transparent;
+	background-image: none;
+	border-width: 0;
+	.box-shadow(none);
+	font-size: 14px;
 
 	li {
-		color: @grayLight;
-		font-weight: bold;
-		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+		text-shadow: none;
+	}
+
+	li > a {
+		color: @blue;
+		text-shadow: none;
 	}
 }
 
@@ -274,43 +322,17 @@ div.subnav {
 		.box-shadow(none);
 	}
 
-	ul > li > a,
-	ul > li > span {
-		border-left: 1px solid @gray;
-		border-right: 1px solid darken(@gray, 15%);
-		border-top: none;
-		border-bottom: none;
-		#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
-		.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
-		color: @grayLighter;
-		font-weight: bold;
-		text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
-
-		&:hover {
-			#gradient > .directional(@grayDarker, @grayDark, 280deg);
-			border-left: 1px solid transparent;
-		}
-	}
-
+	ul > li > a:hover,
 	ul > .active > a,
-	ul > .active > a:hover,
-	ul > .active > span,
-	ul > .active > span:hover {
-		color: @grayLighter;
-		background-color: @grayDark;
-		#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
-		border-left: 1px solid transparent;
+	ul > .active > span {
+		// color: @white;
 	}
 
 	ul > .disabled > a,
 	ul > .disabled > a:hover,
 	ul > .disabled > span,
 	ul > .disabled > span:hover {
-		border-left: 1px solid @gray;
-		border-right: 1px solid darken(@gray, 15%);
-		border-top: none;
-		border-bottom: none;
-		#gradient > .vertical-three-colors(@grayLight, @gray, 70%, @gray);
+		background-color: rgba(0, 0, 0, 0.2);
 	}
 }
 
@@ -318,67 +340,108 @@ div.subnav {
 
 	li > a,
 	li > span {
-
-		border: 1px solid transparent;
-		.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
-		#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
+		background-color: @bodyBackground;
+		border: none;
 
 		&:hover {
-			#gradient > .directional(@grayDarker, @grayDark, 280deg);
-			border: 1px solid transparent;
+			background-color: @blue;
 		}
 	}
 
 	.disabled a,
 	.disabled a:hover {
-		background-color: transparent;
-		#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
+		background-color: @bodyBackground;
 	}
+
 }
 
 // BUTTONS
 // -----------------------------------------------------
 
 .btn {
-    .buttonBackground(@gray, darken(@gray, 10%));
-	.border-radius(3px);
-	border: 1px solid @grayDarker;
+	padding: 5px 12px;
+	background-image: none;
+	.box-shadow(none);
+	border: none;
+	.border-radius(0);
+	text-shadow: none;
+
+	&.disabled {
+		box-shadow: inset 0 2px 4px rgba(0,0,0,.15),~" "0 1px 2px rgba(0,0,0,.05);
+	}
+}
+
+.btn-large {
+	padding: 22px 30px;
+}
+
+.btn-small {
+	padding: 2px 10px;
 }
 
-.btn, .btn:hover {
-	color: @white;
-	font-weight: bold;
-	text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.3);
+.btn-mini {
+	padding: 2px 6px;
+}
+
+.btn-group {
+
+	& > .btn:first-child,
+	& > .btn:last-child,
+	& > .dropdown-toggle {
+		.border-radius(0);
+	}
+
+	& > .btn + .dropdown-toggle {
+		.box-shadow(none);
+	}
 }
 
-.btn-primary {
-	.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
-	color: @grayDark;
-	text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.3);
+
+// FORMS
+// -----------------------------------------------------
+
+input, textarea, select {
+	border-width: 2px;
+	.border-radius(1px);
 }
 
-.btn-warning {
-	.buttonBackground(lighten(@orange, 15%), @orange);
+select, textarea,
+input[type="text"], input[type="password"], input[type="datetime"],
+input[type="datetime-local"], input[type="date"], input[type="month"],
+input[type="time"], input[type="week"], input[type="number"],
+input[type="email"], input[type="url"], input[type="search"],
+input[type="tel"], input[type="color"], .uneditable-input {
+	color: @grayLight;
 }
 
-.btn-danger {
-	.buttonBackground(@red, #bd362f);
+input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly], .uneditable-input {
+	border-color: #444;
 }
 
-.btn-success {
-	.buttonBackground(@green, #51a351);
+input:focus,
+textarea:focus,
+input.focused,
+textarea.focused {
+  border-color: rgba(82,168,236,1);
+  outline: 0;
+  outline: thin dotted \9; /* IE6-9 */
 }
 
-.btn-info {
-	.buttonBackground(@blue, #2f96b4);
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus,
+select:focus {
+  .box-shadow(none); // override for file inputs
+  .tab-focus();
 }
 
-.btn-inverse {
-	.buttonBackground(@gray, @grayDarker);
+legend, label {
+	color: @textColor;
+	border-bottom: 0px solid #222;
 }
 
-.caret {
-	border-top-color: @white;
+.form-actions {
+	border-top: 1px solid #222;
 }
 
 // TABLES
@@ -386,170 +449,129 @@ div.subnav {
 
 .table {
 
+	.border-radius(1px);
+
 	tbody tr.success td {
-		background-color: @successText;
+		background-color: @green;
+		color: @white;
 	}
 
 	tbody tr.error td {
-		background-color: @errorText;
+		background-color: @red;
+		color: @white;
 	}
 
 	tbody tr.info td {
-		background-color: @infoText;
+		background-color: @blue;
+		color: @white;
 	}
-
 }
 
-
-// FORMS
+// ALERTS, LABELS, BADGES
 // -----------------------------------------------------
 
-label, input, button, select, textarea, legend {
-	color: @textColor;
-}
-
-legend, label {
-	text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
-}
-
-.input-prepend .add-on,
-.input-append .add-on {
-	vertical-align: top;
-	background-color: @gray;
-	border-top: 1px solid @grayLight;
-	border-left: 1px solid @grayLight;
-	border-bottom: 1px solid @grayDark;
-	border-right: 1px solid @grayDark;
-	text-shadow: none;
+.alert,
+.alert .alert-heading,
+.alert-success,
+.alert-success .alert-heading,
+.alert-danger,
+.alert-error,
+.alert-danger .alert-heading,
+.alert-error .alert-heading,
+.alert-info,
+.alert-info .alert-heading {
+  color: @grayLighter;
+  text-shadow: none;
+  border: none;
+}
+
+.label {
+	color: @grayLighter;
 }
 
-.input-append .btn,
-.input-prepend .btn {
-	margin-top: -1px;
-	padding: 5px 14px;
+.badge {
+	border-radius: 0;
+	font-weight: 200;
 }
 
-.uneditable-input,
-input[disabled],
-select[disabled],
-textarea[disabled],
-input[readonly],
-select[readonly],
-textarea[readonly] {
-	color: @gray;
-	background: @grayDarker;
-}
+.label, .alert { background-color: darken(@gray, 20%); }
 
-.form-actions {
-	border-top: none;
-}
+.label:hover { background-color: darken(@gray, 30%); }
 
-// DROPDOWNS
-// -----------------------------------------------------
+.label-important,
+.alert-danger,
+.alert-error { background-color: @red; }
 
-.dropdown-menu {
-	.box-shadow(0 5px 5px rgba(0, 0, 0, 0.2));
-}
+.label-important:hover { background-color: darken(@red, 10%); }
 
-.dropdown.open .dropdown-toggle {
-	background-color: @grayDark;
-	color: @grayLighter;
-}
+.label-warning   { background-color: darken(@orange, 10%); }
 
-.dropdown-submenu > a::after {
-	border-left-color: @white;
-}
+.label-warning:hover { background-color: darken(@orange, 20%); }
 
-// ALERTS, LABELS, BADGES
-// -----------------------------------------------------
+.label-success, .alert-success { background-color: darken(@green, 3%); }
 
-.label, .alert {
-  	color: rgba(255, 255, 255, 0.9);
-	text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
-	.box-shadow(1px 1px 1px rgba(0, 0, 0, 0.3));
-}
+.label-success:hover { background-color: darken(@green, 13%); }
 
-.alert {
-  background-color: @orange;
-  border-color: @orange;
+.label-info, .alert-info { background-color: darken(@blueDark, 10%); }
 
-	.alert-heading {
-		color: rgba(255, 255, 255, 0.9);
-		text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.4);
-	}
-}
+.label-info:hover { background-color: darken(@blueDark, 20%); }
 
-.alert-success {
-  background-color: @successText;
-  border-color: @successText;
-}
+// MISC
+// -----------------------------------------------------
 
-.alert-error {
-  background-color: @errorText;
-  border-color: @errorText;
+a:hover {
+	text-decoration: none;
 }
 
-.alert-info {
-  background-color: @infoText;
-  border-color: @infoText;
+.well, .hero-unit {
+	.border-radius(0px);
 }
 
-// MISC
-// -----------------------------------------------------
-
 .well, .hero-unit {
-	.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
+	border-top: solid 1px lighten(@grayDark, 5%);
+	.box-shadow(0 2px 4px rgba(0,0,0,.8));
 }
 
-.thumbnail,
-a.thumbnail:hover {
-  border: 1px solid darken(@grayDarker, 5%);
+.thumbnail {
+	border-color: @grayDark;
 }
 
 .progress {
-	background-color: darken(@grayDarker, 3%);
-	#gradient > .vertical(darken(@grayDarker, 3%), darken(@grayDarker, 3%));
-	.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
+	background-color: #060606;
+	background-image: none;
+	.border-radius(0);
 }
 
-.footer {
-	border-top: 1px solid darken(@grayDarker, 5%);
+.modal {
+ 	.border-radius(1px);
+	border-top: solid 1px lighten(@grayDark, 5%);
+	background-color: @grayDark;
+}
 
-	p {
-		color: @textColor;
-	}
+.modal-header {
+	border-bottom: 1px solid @grayDark;
 }
 
-.modal {
+.modal-footer {
+	background-color: @grayDark;
+	border-top: 1px solid @grayDark;
+	.border-radius(0 0 0px 0px);
+	.box-shadow(none);
+}
 
-	background-color: darken(@grayDark, 5%);
+.popover {
+	.border-radius(0);
 
-	&-header {
+	&-title {
 		border-bottom: none;
+		color: @white;
 	}
 
-	&-body {
-		border-bottom: 1px solid #1C1E22;
-	}
+}
 
-	&-footer {
-		border-top: none;
-		background-color: @grayDarker;
-		.box-shadow(none);
-	}
+.footer {
+	border-top: 1px solid @grayDark;
 }
 
 // MEDIA QUERIES
 // -----------------------------------------------------
-
-@media (max-width: 979px) {
-	.navbar .brand {
-		border-right: none;
-	}
-}
-
-@media (max-width: 768px) {
-	div.subnav .nav > li + li > a {
-		border-top: 1px solid transparent;
-	}
-}

+ 591 - 7
src/vendor/bootstrap/less/bootswatch.light.less

@@ -1,9 +1,593 @@
+// Cosmo 2.3.2
+// Bootswatch
+// -----------------------------------------------------
 
-// KIBANA
-.panelCont {
-    outline: 1px solid darken(@bodyBackground, 10%);
-    border-top: 1px solid lighten(@bodyBackground, 10%);
-    padding: 0px 10px 10px 10px;
-    background: darken(@bodyBackground, 5%);
-    margin: 0px;
+
+// TYPOGRAPHY
+// -----------------------------------------------------
+
+body {
+	font-weight: 300;
+	background: @bodyBackground;
+	//url('../img/light.png') repeat right top;
+}
+
+h1 {
+	font-size: 50px;
+}
+
+h2, h3 {
+	font-size: 26px;
+}
+
+h4 {
+	font-size: 14px;
+}
+
+h5, h6 {
+	font-size: 11px;
+}
+
+blockquote {
+
+	padding: 10px 15px;
+	background-color: @grayLighter;
+	border-left-color: @gray;
+
+	&.pull-right {
+		padding: 10px 15px;
+		border-right-color: @gray;
+	}
+
+	small {
+		color: @gray;
+	}
+}
+
+.muted {
+	color: @gray;
+}
+
+.text-warning        { color: @orange; }
+a.text-warning:hover { color: darken(@orange, 10%); }
+
+.text-error          { color: @red; }
+a.text-error:hover   { color: darken(@red, 10%); }
+
+.text-info           { color: @purple; }
+a.text-info:hover    { color: darken(@purple, 10%); }
+
+.text-success        { color: @green; }
+a.text-success:hover { color: darken(@green, 10%); }
+
+// SCAFFOLDING
+// -----------------------------------------------------
+
+// NAVBAR
+// -----------------------------------------------------
+
+.navbar {
+
+	.navbar-inner {
+		background-image: none;
+		.box-shadow(none);
+		.border-radius(0);
+	}
+
+	.brand {
+
+		&:hover {
+			color: @navbarLinkColorHover;
+		}
+	}
+
+	.nav > .active > a,
+	.nav > .active > a:hover,
+	.nav > .active > a:focus {
+		.box-shadow(none);
+		background-color: @navbarLinkBackgroundHover;
+	}
+
+	.nav li.dropdown.open > .dropdown-toggle,
+	.nav li.dropdown.active > .dropdown-toggle,
+	.nav li.dropdown.open.active > .dropdown-toggle {
+		color: @white;
+
+		&:hover {
+			color: @grayLighter;
+		}
+	}
+
+	.navbar-search .search-query {
+		line-height: normal;
+	}
+
+	&-inverse {
+
+		.brand,
+		.nav > li > a {
+			text-shadow: none;
+		}
+
+		.brand:hover,
+		.nav > .active > a,
+		.nav > .active > a:hover,
+		.nav > .active > a:focus {
+			background-color: @navbarInverseLinkBackgroundHover;
+			.box-shadow(none);
+			color: @white;
+		}
+
+		.navbar-search .search-query {
+			color: @grayDarker;
+		}
+	}
+}
+
+div.subnav {
+
+	margin: 0 1px;
+	background: @grayLight none;
+	.box-shadow(none);
+	border: none;
+	.border-radius(0);
+
+	.nav {
+		background-color: transparent;
+	}
+
+	.nav > li > a {
+		border-color: transparent;
+	}
+
+	.nav > .active > a,
+	.nav > .active > a:hover {
+		border-color: transparent;
+		background-color: @black;
+		color: @white;
+		.box-shadow(none);
+	}
+
+	&-fixed {
+		top: @navbarHeight + 1;
+		margin: 0;
+	}
+}
+
+// NAV
+// -----------------------------------------------------
+
+.nav {
+
+	.open .dropdown-toggle,
+	& > li.dropdown.open.active > a:hover {
+		color: @blue;
+	}
+}
+
+.nav-tabs {
+
+	& > li > a {
+		.border-radius(0);
+	}
+
+	li > a:hover,
+	li.active > a,
+	li.active > a:hover {
+		border-color: transparent;
+		background-color: @blue;
+		color: @white;
+	}
+
+	li.disabled > a {
+		color: @textColor;
+	}
+
+	.open .dropdown-toggle {
+		background-color: #060606;
+		border-color: transparent;
+	}
+}
+
+.tabs-below,
+.tabs-left,
+.tabs-right {
+
+	& > .nav-tabs > li > a{
+		.border-radius(0);
+		border: 0px;
+	}
+}
+
+.nav-pills {
+
+	& > li > a {
+		//background-color: @grayLight;
+		.border-radius(0);
+		color: @black;
+
+		&:hover {
+			background-color: @black;
+			color: @white;
+		}
+	}
+
+	& > .disabled > a,
+	& > .disabled > a:hover {
+		background-color: @grayLighter;
+		color: @grayDark;
+	}
+}
+
+.nav-list {
+
+	& > li > a {
+		color: @grayDarker;
+
+		&:hover {
+			background-color: @blue;
+			color: @white;
+			text-shadow: none;
+		}
+	}
+
+	.nav-header {
+		color: @grayDarker;
+	}
+
+	.divider {
+		background-color: @gray;
+		border-bottom: none;
+	}
+}
+
+.pagination {
+
+	ul {
+
+		.box-shadow(none);
+
+		& > li > a,
+		& > li > span {
+			margin-right: 6px;
+			color: @grayDarker;
+
+			&:hover {
+				background-color: @grayDarker;
+				color: @white;
+			}
+		}
+
+		& > li:last-child > a,
+		& > li:last-child > span {
+			margin-right: 0;
+		}
+
+		& > .active > a,
+		& > .active > span {
+			color: @white;
+		}
+
+		& > .disabled > span,
+		& > .disabled > a,
+		& > .disabled > a:hover {
+			background-color: @grayLighter;
+			color: @grayDark;
+		}
+	}
+}
+
+.pager {
+
+	li > a,
+	li > span {
+		background-color: @grayLight;
+		border: none;
+		.border-radius(0);
+		color: @grayDarker;
+
+		&:hover {
+			background-color: @grayDarker;
+			color: @white;
+		}
+	}
+
+	.disabled > a,
+	.disabled > a:hover,
+	.disabled > span {
+		background-color: @grayLighter;
+		color: @grayDark;
+	}
+
+}
+
+.breadcrumb {
+	background-color: @grayLight;
+
+	li {
+		text-shadow: none;
+	}
+
+	.divider,
+	.active {
+		color: @grayDarker;
+		text-shadow: none;
+	}
+}
+
+// BUTTONS
+// -----------------------------------------------------
+
+.btn {
+	padding: 5px 12px;
+	background-image: none;
+	.box-shadow(none);
+	border: none;
+	.border-radius(0);
+	text-shadow: none;
+
+	&.disabled {
+		box-shadow: inset 0 2px 4px rgba(0,0,0,.15),~" "0 1px 2px rgba(0,0,0,.05);
+	}
+}
+
+.btn-large {
+	padding: 22px 30px;
+}
+
+.btn-small {
+	padding: 2px 10px;
+}
+
+.btn-mini {
+	padding: 2px 6px;
 }
+
+.btn-group {
+
+	& > .btn:first-child,
+	& > .btn:last-child,
+	& > .dropdown-toggle {
+		.border-radius(0);
+	}
+
+	& > .btn + .dropdown-toggle {
+		.box-shadow(none);
+	}
+}
+
+// TABLES
+// -----------------------------------------------------
+
+.table {
+
+	tbody tr.success td {
+		color: @white;
+	}
+
+	tbody tr.error td {
+		color: @white;
+	}
+
+	tbody tr.info td {
+		color: @white;
+	}
+
+	&-bordered {
+		.border-radius(0);
+
+		thead:first-child tr:first-child th:first-child,
+		tbody:first-child tr:first-child td:first-child {
+			.border-radius(0);
+		}
+
+		thead:last-child tr:last-child th:first-child,
+		tbody:last-child tr:last-child td:first-child,
+		tfoot:last-child tr:last-child td:first-child {
+			.border-radius(0);
+		}
+	}
+}
+
+// FORMS
+// -----------------------------------------------------
+
+select, textarea, input[type="text"], input[type="password"], input[type="datetime"],
+input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"],
+input[type="week"], input[type="number"], input[type="email"], input[type="url"],
+input[type="search"], input[type="tel"], input[type="color"] {
+	color: @grayDarker;
+}
+
+.control-group {
+
+	&.warning {
+
+		.control-label,
+		.help-block,
+		.help-inline {
+			color: @orange;
+		}
+
+		input,
+		select,
+		textarea {
+			border-color: @orange;
+			color: @grayDarker;
+		}
+	}
+
+	&.error {
+
+		.control-label,
+		.help-block,
+		.help-inline {
+			color: @red;
+		}
+
+		input,
+		select,
+		textarea {
+			border-color: @red;
+			color: @grayDarker;
+		}
+	}
+
+	&.success {
+
+		.control-label,
+		.help-block,
+		.help-inline {
+			color: @green;
+		}
+
+		input,
+		select,
+		textarea {
+			border-color: @green;
+			color: @grayDarker;
+		}
+	}
+}
+
+legend {
+	border-bottom: none;
+	color: @grayDarker;
+}
+
+.form-actions {
+	border-top: none;
+	background-color: @grayLighter;
+}
+
+// DROPDOWNS
+// -----------------------------------------------------
+
+.dropdown-menu {
+	.border-radius(0);
+}
+
+// ALERTS, LABELS, BADGES
+// -----------------------------------------------------
+
+.alert {
+	.border-radius(0);
+	text-shadow: none;
+
+	&-heading, h1, h2, h3, h4, h5, h6 {
+		color: @white;
+	}
+}
+
+.label {
+	min-width: 80px;
+	min-height: 80px;
+	.border-radius(0);
+	font-weight: 300;
+	text-shadow: none;
+
+	&-success {
+		background-color: @green;
+	}
+
+	&-important {
+		background-color: @red;
+	}
+
+	&-info {
+		background-color: @purple;
+	}
+
+	&-inverse {
+		background-color: @black;
+	}
+}
+
+.badge {
+
+	.border-radius(0);
+	font-weight: 300;
+	text-shadow: none;
+	color: @black;
+
+	&-success {
+		background-color: @green;
+	}
+
+	&-important {
+		background-color: @red;
+	}
+
+	&-info {
+		background-color: @purple;
+	}
+
+	&-inverse {
+		background-color: @black;
+	}
+}
+
+// MISC
+// -----------------------------------------------------
+
+a:hover {
+	text-decoration: none;
+}
+
+.hero-unit {
+	border: none;
+	.border-radius(0);
+	.box-shadow(none);
+}
+
+.well {
+	border: none;
+	.border-radius(0);
+	.box-shadow(none);
+}
+
+[class^="icon-"], [class*=" icon-"] {
+	margin: 0 2px;
+	vertical-align: -2px;
+}
+
+a.thumbnail {
+	background-color: @grayLight;
+
+	&:hover {
+		background-color: @gray;
+		border-color: transparent;
+	}
+}
+
+.progress {
+	background-color: @grayLighter;
+	background-image: none;
+	.border-radius(0);
+}
+
+.modal {
+	.border-radius(0);
+
+	&-header {
+		border-bottom: none;
+	}
+
+	&-footer {
+		border-top: none;
+		background-color: transparent;
+	}
+}
+
+.popover {
+	.border-radius(0);
+
+	&-title {
+		border-bottom: none;
+		color: @white;
+	}
+
+}
+
+// MEDIA QUERIES
+// -----------------------------------------------------

+ 1 - 1
src/vendor/bootstrap/less/modals.less

@@ -53,7 +53,7 @@
 .modal-body {
   position: relative;
   overflow-y: auto;
-  max-height: 700px;
+  //max-height: 700px;
   padding: 15px;
 }
 // Remove bottom margin if need be

+ 101 - 37
src/vendor/bootstrap/less/overrides.less

@@ -1,6 +1,70 @@
+// Containers
+// ---------------------
+.container-fluid {
+  padding-left: 0px;
+  padding-right: 0px;
+}
+
+
+// Backgrounds
+// ---------------------
+
+.bgNav {
+  background: @navbarBackground;
+}
+
+.bgPrimary {
+  background: @btnPrimaryBackground;
+  color: rgba(255,255,255,.90);
+}
+
+.bgInfo {
+  background: @btnInfoBackground;
+  color: rgba(255,255,255,.90);
+
+}
+
+.bgSuccess {
+  background: @btnSuccessBackground;
+  color: rgba(255,255,255,.90);
+
+}
+
+.bgWarning {
+  background: @btnWarningBackground;
+  color: rgba(255,255,255,.90);
+
+}
+
+.bgDanger {
+  background: @btnDangerBackground;
+  color: rgba(255,255,255,.90);
+
+}
+
+.bgInverse {
+  background: @btnInverseBackground;
+  color: rgba(255,255,255,.90);
+
+}
+
+code, pre {
+  background-color: @grayLighter;
+}
+
+// KIBANA
+.panelCont {
+  padding: 0px 10px 10px 10px;
+  background: @kibanaPanelBackground;
+  //box-shadow: 0px 0px 8px rgba(30, 30, 30, 0.75);
+  margin: 0px;
+  border: 1px solid rgba(100, 100, 100, 0.25);
+}
+
 div.editor-row {
   vertical-align: top;
 }
+
 div.editor-row div.section {
   margin-right: 20px;
   vertical-align: top;
@@ -73,63 +137,66 @@ form input.ng-invalid {
 
 .navbar-inner {
   border-width: 0 0 0px;
-  padding-left: 0px;
-  padding-right: 0px;
 }
 
 .kibana-row {
   margin-bottom: 10px;
 }
 
+.row-tab {
+  padding: 0px;
+  cursor: pointer;
+  width: 30px;
+  height: 30px;
+  line-height: 30px;
+  vertical-align: middle;
+}
+
 .row-button {
-  border-left: 1px solid lighten(@bodyBackground, 10%);
-  border-right: 1px solid darken(@bodyBackground, 10%);
-  padding: 2px 7px 0px 7px;
+  width: 30px;
+  text-align: center;
   float: left;
+  cursor: pointer;
 }
 
 .row-text {
+  white-space: nowrap;
   text-transform: uppercase;
   font-weight: bold;
   font-size: 0.9em;
+  margin: 0px 10px;
 }
 
 .row-close {
-  outline: 1px solid darken(@bodyBackground, 10%);
-  border-top: 1px solid lighten(@bodyBackground, 10%);
   padding: 0px;
   margin: 0px;
-  min-height: 24px !important;
-  line-height: 24px;
-  background: darken(@bodyBackground, 3%);
-}
-
-.row-open {
-  text-align: right;
-  left:-18px;
-  position: absolute;
-  font-size: 13pt;
-  font-weight: 200;
+  min-height: 30px !important;
+  line-height: 30px;
+  background: @kibanaPanelBackground;
 }
 
 .top-row-open {
-  background: darken(@bodyBackground, 3%);
+  background: @navbarBackground;
   padding: 5px 25px 5px 25px;
 }
 
 .top-row-close {
-  outline: 1px solid darken(@bodyBackground, 10%);
-  border-top: 1px solid lighten(@bodyBackground, 10%);
-  padding: 0px;
-  margin: 1px 0px 0px 0px;
-  text-align: center;
+  padding: 5px 10px;
+  text-transform: uppercase;
+  margin: 0px;
+  text-align: left;
   min-height: 16px !important;
   line-height: 16px;
-  background: darken(@bodyBackground, 3%);
 }
 
-.row-open i {
-  font-size: 10pt;
+.row-open {
+  left:-34px;
+  position: absolute;
+  z-index: 100;
+}
+
+.row-open:hover {
+  left:-12px;
 }
 
 .odd {
@@ -165,11 +232,13 @@ form input.ng-invalid {
 
 .panel-title {
   border: 0px;
-  margin-left: -11px;
+  text-transform: uppercase;
+  font-weight: bold;
 }
 
 .panel div.panel-extra div.panel-extra-container {
-  margin-right: -11px;
+  margin-right: 0px;
+  margin-top: 7px;
 }
 
 .panel div.panel-extra {
@@ -179,7 +248,7 @@ form input.ng-invalid {
 
 .panel div.panel-extra .extra {
   float:right !important;
-  border-bottom: 1px solid lighten(@bodyBackground, 5%);
+  //border-bottom: 1px solid lighten(@bodyBackground, 5%);
 }
 
 .dragInProgress {
@@ -196,11 +265,6 @@ form input.ng-invalid {
   color: @linkColorHover;
 }
 
-
-.pointer:hover {
-  color: @linkColorHover;
-}
-
 .pointer {
   cursor: pointer;
 }
@@ -279,12 +343,12 @@ div.flot-text {
   margin-left:0px;
   padding:3px 0px 3px 0px;
   width:100%;
-  color: @textColor;
   padding-left:20px;
+  color: @white;
 }
 
 .panel-error {
-  color: @textColor;
+  color: @white;
   padding: 3px 10px 0px 10px;
 }
 

+ 96 - 97
src/vendor/bootstrap/less/variables.dark.less

@@ -1,8 +1,3 @@
-// Slate 2.3.2
-// Variables
-// --------------------------------------------------
-
-
 // Global values
 // --------------------------------------------------
 
@@ -10,35 +5,40 @@
 // Grays
 // -------------------------
 @black:                 #000;
-@grayDarker:            #272B30;
-@grayDark:              #3A3F44;
-@gray:                  #52575C;
-@grayLight:             #7A8288;
-@grayLighter:           #BBBFC2;
+@gray:                  #bbb;
+@grayDark:              #333;
+@grayDarker:            #1f1f1f;
+
+@grayLight:             #ADAFAE;
+@grayLighter:           #eee;
 @white:                 #fff;
 
 
 // Accent colors
 // -------------------------
-@blue:                  #5bc0de;
-@blueDark:              #108CBB;
-@green:                 #62c462;
-@red:                   #ee5f5b;
-@yellow:                #F6D30D;
-@orange:                #f89406;
-@pink:                  #c3325f;
-@purple:                #7a43b6;
+@blue:                  #33B5E5;
+@blueDark:              #0099CC;
+@green:                 #669900;
+@red:                   #CC0000;
+@yellow:                #ECBB13;
+@orange:                #FF8800;
+@pink:                  #FF4444;
+@purple:                #9933CC;
+
+// Kibana Variables
+// -------------------------
+@kibanaPanelBackground: @grayDarker;
 
 
 // Scaffolding
 // -------------------------
-@bodyBackground:        @grayDarker;
-@textColor:             #C8C8C8;
+@bodyBackground:        @grayDark;
+@textColor:             @grayLighter;
 
 
 // Links
 // -------------------------
-@linkColor:             @white;
+@linkColor:             darken(@white,5%);
 @linkColorHover:        @white;
 
 
@@ -46,17 +46,17 @@
 // -------------------------
 @sansFontFamily:        "Helvetica Neue", Helvetica, Arial, sans-serif;
 @serifFontFamily:       Georgia, "Times New Roman", Times, serif;
-@monoFontFamily:        Monaco, Menlo, Consolas, "Courier New", monospace;
+@monoFontFamily:        Menlo, Monaco, Consolas, "Courier New", monospace;
 
 @baseFontSize:          14px;
 @baseFontFamily:        @sansFontFamily;
-@baseLineHeight:        21px;
+@baseLineHeight:        20px;
 @altFontFamily:         @serifFontFamily;
 
 @headingsFontFamily:    inherit; // empty to use BS default, @baseFontFamily
 @headingsFontWeight:    bold;    // instead of browser default, bold
-@headingsColor:         inherit; // empty to use BS default, @textColor
-
+@headingsColor:         @white; // empty to use BS default, @textColor
+@inputText:             @black;
 
 // Component sizing
 // -------------------------
@@ -70,66 +70,68 @@
 @paddingSmall:          2px 10px;  // 26px
 @paddingMini:           0px 6px;   // 22px
 
-@baseBorderRadius:      4px;
-@borderRadiusLarge:     6px;
-@borderRadiusSmall:     3px;
+@baseBorderRadius:      3px;
+@borderRadiusLarge:     4px;
+@borderRadiusSmall:     2px;
 
 
 // Tables
 // -------------------------
 @tableBackground:                   transparent; // overall background-color
-@tableBackgroundAccent:             darken(@grayDark, 5%); // for striping
+@tableBackgroundAccent:             rgba(100, 100, 100, 0.3); // for striping
 @tableBackgroundHover:              @grayDark; // for hover
-@tableBorder:                       lighten(@grayDark, 2%); // table and cell border
+@tableBorder:                       @grayDark; // table and cell border
 
 // Buttons
 // -------------------------
-@btnBackground:                     @gray;
-@btnBackgroundHighlight:            darken(@gray, 10%);
-@btnBorder:                         darken(@gray, 20%);
+@btnBackground:                     @grayLight;
+@btnBackgroundHighlight:            darken(@grayLight, 15%);
+@btnBorder:                         #bbb;
 
-@btnPrimaryBackground:              @grayLight;
-@btnPrimaryBackgroundHighlight:     spin(@btnPrimaryBackground, 15%);
+@btnPrimaryBackground:              lighten(@blue, 5%);
+@btnPrimaryBackgroundHighlight:     darken(@blue, 5%);
 
-@btnInfoBackground:                 @blue;
-@btnInfoBackgroundHighlight:        #2f96b4;
+@btnInfoBackground:                 lighten(@purple, 5%);
+@btnInfoBackgroundHighlight:        darken(@purple, 5%);
 
-@btnSuccessBackground:              @green;
-@btnSuccessBackgroundHighlight:     #51a351;
+@btnSuccessBackground:              lighten(@green, 5%);
+@btnSuccessBackgroundHighlight:     darken(@green, 5%);
+
+@btnWarningBackground:              lighten(@orange, 5%);
+@btnWarningBackgroundHighlight:     darken(@orange, 5%);
+
+@btnDangerBackground:               lighten(@red, 5%);
+@btnDangerBackgroundHighlight:      darken(@red, 5%);
+
+@btnInverseBackground:              lighten(@black, 5%);
+@btnInverseBackgroundHighlight:     darken(@black, 5%);
 
-@btnWarningBackground:              lighten(@orange, 15%);
-@btnWarningBackgroundHighlight:     @orange;
 
-@btnDangerBackground:               @red;
-@btnDangerBackgroundHighlight:      #bd362f;
 
-@btnInverseBackground:              @gray;
-@btnInverseBackgroundHighlight:     @grayDarker;
 
 // Forms
 // -------------------------
-@inputText:                     @white;
-@inputBackground:               @gray;
-@inputBorder:                   @grayLight;
+@inputBackground:               lighten(@grayDark,10%);
+@inputBorder:                   lighten(@grayDark,20%);
 @inputBorderRadius:             @baseBorderRadius;
-@inputDisabledBackground:       @grayLighter;
-@formActionsBackground:         darken(@grayDarker, 3%);
+@inputDisabledBackground:       #555;
+@formActionsBackground:         transparent;
 @inputHeight:                   @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
 
 
 // Dropdowns
 // -------------------------
-@dropdownBackground:            @grayDark;
+@dropdownBackground:            @heroUnitBackground;
 @dropdownBorder:                rgba(0,0,0,.2);
 @dropdownDividerTop:            transparent;
-@dropdownDividerBottom:         darken(@grayDarker, 5%);
+@dropdownDividerBottom:         #222;
 
-@dropdownLinkColor:             @grayLight;
+@dropdownLinkColor:             @textColor;
 @dropdownLinkColorHover:        @white;
 @dropdownLinkColorActive:       @white;
 
-@dropdownLinkBackgroundActive:  @grayDarker;
-@dropdownLinkBackgroundHover:   @grayDarker;
+@dropdownLinkBackgroundActive:  @linkColor;
+@dropdownLinkBackgroundHover:   @blue;
 
 
 
@@ -143,7 +145,7 @@
 // Try to avoid customizing these :)
 @zindexDropdown:          1000;
 @zindexPopover:           1010;
-@zindexTooltip:           1030;
+@zindexTooltip:           1020;
 @zindexFixedNavbar:       1030;
 @zindexModalBackdrop:     1040;
 @zindexModal:             1050;
@@ -162,7 +164,7 @@
 
 // Hr border color
 // -------------------------
-@hrBorder:                darken(@grayDarker, 5%);
+@hrBorder:                @grayDark;
 
 
 // Horizontal forms & lists
@@ -172,92 +174,92 @@
 
 // Wells
 // -------------------------
-@wellBackground:                  darken(@grayDarker, 3%);
+@wellBackground:                  #131517;
 
 
 // Navbar
 // -------------------------
-
 @navbarCollapseWidth:             979px;
 @navbarCollapseDesktopWidth:      @navbarCollapseWidth + 1;
-@navbarHeight:                    40px;
+
+@navbarHeight:                    50px;
+@navbarBackgroundHighlight:       @grayDarker;
 @navbarBackground:                @grayDarker;
-@navbarBackgroundHighlight:       @grayDark;
 @navbarBorder:                    darken(@navbarBackground, 12%);
 
-@navbarText:                      @textColor;
-@navbarLinkColor:                 @textColor;
+@navbarText:                      @grayLight;
+@navbarLinkColor:                 @grayLight;
 @navbarLinkColorHover:            @white;
 @navbarLinkColorActive:           @navbarLinkColorHover;
-@navbarLinkBackgroundHover:       @grayDark;
+@navbarLinkBackgroundHover:       transparent;
 @navbarLinkBackgroundActive:      @navbarBackground;
 
-@navbarBrandColor:                @grayLighter;
+@navbarBrandColor:                @navbarLinkColor;
 
 // Inverted navbar
-@navbarInverseBackground:                darken(@grayDarker, 10%);
-@navbarInverseBackgroundHighlight:       @grayDarker;
-@navbarInverseBorder:                    #252525;
+@navbarInverseBackground:                #252A30;
+@navbarInverseBackgroundHighlight:       #252A30;
+@navbarInverseBorder:                    transparent;
 
 @navbarInverseText:                      @grayLight;
 @navbarInverseLinkColor:                 @grayLight;
 @navbarInverseLinkColorHover:            @white;
 @navbarInverseLinkColorActive:           @navbarInverseLinkColorHover;
-@navbarInverseLinkBackgroundHover:       transparent;
-@navbarInverseLinkBackgroundActive:      @navbarInverseBackground;
+@navbarInverseLinkBackgroundHover:       #242A31;
+@navbarInverseLinkBackgroundActive:      @navbarInverseLinkBackgroundHover;
 
 @navbarInverseSearchBackground:          lighten(@navbarInverseBackground, 25%);
 @navbarInverseSearchBackgroundFocus:     @white;
 @navbarInverseSearchBorder:              @navbarInverseBackground;
-@navbarInverseSearchPlaceholderColor:    #ccc;
+@navbarInverseSearchPlaceholderColor:    @white;
 
 @navbarInverseBrandColor:                @navbarInverseLinkColor;
 
 
 // Pagination
 // -------------------------
-@paginationBackground:                #fff;
-@paginationBorder:                    #ddd;
-@paginationActiveBackground:          #f5f5f5;
+@paginationBackground:                @bodyBackground;
+@paginationBorder:                    transparent;
+@paginationActiveBackground:          @blue;
 
 
 // Hero unit
 // -------------------------
-@heroUnitBackground:              darken(@grayDarker, 3%);
+@heroUnitBackground:              @grayDark;
 @heroUnitHeadingColor:            inherit;
 @heroUnitLeadColor:               inherit;
 
 
 // Form states and alerts
 // -------------------------
-@warningText:             #c09853;
-@warningBackground:       #fcf8e3;
-@warningBorder:           darken(spin(@warningBackground, -10), 3%);
+@warningText:             darken(#c09853, 10%);
+@warningBackground:       @grayLighter;
+@warningBorder:           transparent;
 
 @errorText:               #b94a48;
-@errorBackground:         #f2dede;
+@errorBackground:         @grayLighter;
 @errorBorder:             darken(spin(@errorBackground, -10), 3%);
 
 @successText:             #468847;
-@successBackground:       #dff0d8;
+@successBackground:       @grayLighter;
 @successBorder:           darken(spin(@successBackground, -10), 5%);
 
-@infoText:                #3a87ad;
-@infoBackground:          #d9edf7;
+@infoText:                @blueDark;
+@infoBackground:          @grayLighter;
 @infoBorder:              darken(spin(@infoBackground, -10), 7%);
 
 
 // Tooltips and popovers
 // -------------------------
 @tooltipColor:            #fff;
-@tooltipBackground:       @dropdownBackground;
+@tooltipBackground:       @heroUnitBackground;
 @tooltipArrowWidth:       5px;
 @tooltipArrowColor:       @tooltipBackground;
 
-@popoverBackground:       @dropdownBackground;
+@popoverBackground:       @heroUnitBackground;
 @popoverArrowWidth:       10px;
-@popoverArrowColor:       @dropdownBackground;
-@popoverTitleBackground:  lighten(@popoverBackground, 3%);
+@popoverArrowColor:       @popoverBackground;
+@popoverTitleBackground:  @popoverBackground;
 
 // Special enhancement for popovers
 @popoverArrowOuterWidth:  @popoverArrowWidth + 1;
@@ -273,32 +275,29 @@
 // -------------------------
 @gridColumns:             12;
 @gridColumnWidth:         60px;
-@gridGutterWidth:         10px;
+@gridGutterWidth:         20px;
 @gridRowWidth:            (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
 
 // 1200px min
 @gridColumnWidth1200:     70px;
-@gridGutterWidth1200:     10px;
+@gridGutterWidth1200:     30px;
 @gridRowWidth1200:        (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
 
 // 768px-979px
 @gridColumnWidth768:      42px;
-@gridGutterWidth768:      10px;
+@gridGutterWidth768:      20px;
 @gridRowWidth768:         (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
 
 
 // Fluid grid
 // -------------------------
 @fluidGridColumnWidth:    percentage(@gridColumnWidth/@gridRowWidth);
-@gridGutterWidth:         10px;
-//@fluidGridGutterWidth:    percentage(@gridGutterWidth/@gridRowWidth);
+@fluidGridGutterWidth:    percentage(@gridGutterWidth/@gridRowWidth);
 
 // 1200px min
-@fluidGridColumnWidth1200:    percentage(@gridColumnWidth1200/@gridRowWidth1200);
-@gridGutterWidth:             10px;
-//@fluidGridGutterWidth1200:     percentage(@gridGutterWidth1200/@gridRowWidth1200);
+@fluidGridColumnWidth1200:     percentage(@gridColumnWidth1200/@gridRowWidth1200);
+@fluidGridGutterWidth1200:     percentage(@gridGutterWidth1200/@gridRowWidth1200);
 
 // 768px-979px
-@fluidGridColumnWidth768:   percentage(@gridColumnWidth768/@gridRowWidth768);
-@gridGutterWidth:           10px;
-//@fluidGridGutterWidth768:      percentage(@gridGutterWidth768/@gridRowWidth768);
+@fluidGridColumnWidth768:      percentage(@gridColumnWidth768/@gridRowWidth768);
+@fluidGridGutterWidth768:      percentage(@gridGutterWidth768/@gridRowWidth768);

+ 84 - 81
src/vendor/bootstrap/less/variables.light.less

@@ -1,4 +1,4 @@
-//
+// Cosmo 2.3.2
 // Variables
 // --------------------------------------------------
 
@@ -10,43 +10,46 @@
 // Grays
 // -------------------------
 @black:                 #000;
-@grayDarker:            #222;
-@grayDark:              #333;
-@gray:                  #555;
-@grayLight:             #999;
+@grayDarker:            #080808;
+@grayDark:              #999;
+@gray:                  #bbb;
+@grayLight:             #dfdfdf;
 @grayLighter:           #eee;
 @white:                 #fff;
 
 
 // Accent colors
 // -------------------------
-@blue:                  #049cdb;
-@blueDark:              #0064cd;
-@green:                 #46a546;
-@red:                   #9d261d;
-@yellow:                #ffc40d;
-@orange:                #f89406;
-@pink:                  #c3325f;
-@purple:                #7a43b6;
-
+@blue:                  #007FFF;
+@blueDark:              #1F26B6;
+@green:                 #3FB618;
+@red:                   #FF0039;
+@yellow:                #FFA500;
+@orange:                #FF7518;
+@pink:                  #E671B8;
+@purple:                #9954BB;
+
+// Kibana Variables
+// -------------------------
+@kibanaPanelBackground: @white;
 
 // Scaffolding
 // -------------------------
-@bodyBackground:        #ffffff;
-@textColor:             @grayDark;
+@bodyBackground:        @grayLighter;
+@textColor:             #555;
 
 
 // Links
 // -------------------------
-@linkColor:             #08c;
-@linkColorHover:        lighten(@linkColor, 15%);
+@linkColor:             @blue;
+@linkColorHover:        darken(@linkColor, 10%);
 
 
 // Typography
 // -------------------------
 @sansFontFamily:        "Helvetica Neue", Helvetica, Arial, sans-serif;
 @serifFontFamily:       Georgia, "Times New Roman", Times, serif;
-@monoFontFamily:        Monaco, Menlo, Consolas, "Courier New", monospace;
+@monoFontFamily:        Menlo, Monaco, Consolas, "Courier New", monospace;
 
 @baseFontSize:          14px;
 @baseFontFamily:        @sansFontFamily;
@@ -55,7 +58,7 @@
 
 @headingsFontFamily:    inherit; // empty to use BS default, @baseFontFamily
 @headingsFontWeight:    bold;    // instead of browser default, bold
-@headingsColor:         inherit; // empty to use BS default, @textColor
+@headingsColor:         @grayDarker; // empty to use BS default, @textColor
 
 
 // Component sizing
@@ -66,57 +69,56 @@
 @fontSizeSmall:         @baseFontSize * 0.85; // ~12px
 @fontSizeMini:          @baseFontSize * 0.75; // ~11px
 
-@paddingLarge:          11px 19px; // 44px
+@paddingLarge:          22px 30px; // 66px
 @paddingSmall:          2px 10px;  // 26px
-@paddingMini:           0 6px;   // 22px
+@paddingMini:           2px 6px;   // 24px
 
-@baseBorderRadius:      4px;
-@borderRadiusLarge:     6px;
-@borderRadiusSmall:     3px;
+@baseBorderRadius:      3px;
+@borderRadiusLarge:     4px;
+@borderRadiusSmall:     2px;
 
 
 // Tables
 // -------------------------
 @tableBackground:                   transparent; // overall background-color
 @tableBackgroundAccent:             #f9f9f9; // for striping
-@tableBackgroundHover:              #f5f5f5; // for hover
+@tableBackgroundHover:              #E8F8FD; // for hover
 @tableBorder:                       #ddd; // table and cell border
 
 // Buttons
 // -------------------------
-@btnBackground:                     @white;
-@btnBackgroundHighlight:            darken(@white, 10%);
-@btnBorder:                         #ccc;
+@btnBackground:                     @grayLighter;
+@btnBackgroundHighlight:            darken(@grayLighter, 15%);
+@btnBorder:                         #bbb;
 
-@btnPrimaryBackground:              @linkColor;
-@btnPrimaryBackgroundHighlight:     spin(@btnPrimaryBackground, 20%);
+@btnPrimaryBackground:              lighten(@blue, 5%);
+@btnPrimaryBackgroundHighlight:     darken(@blue, 5%);
 
-@btnInfoBackground:                 #5bc0de;
-@btnInfoBackgroundHighlight:        #2f96b4;
+@btnInfoBackground:                 lighten(@purple, 5%);
+@btnInfoBackgroundHighlight:        darken(@purple, 5%);
 
-@btnSuccessBackground:              #62c462;
-@btnSuccessBackgroundHighlight:     #51a351;
+@btnSuccessBackground:              lighten(@green, 5%);
+@btnSuccessBackgroundHighlight:     darken(@green, 5%);
 
-@btnWarningBackground:              lighten(@orange, 15%);
-@btnWarningBackgroundHighlight:     @orange;
+@btnWarningBackground:              lighten(@orange, 5%);
+@btnWarningBackgroundHighlight:     darken(@orange, 5%);
 
-@btnDangerBackground:               #ee5f5b;
-@btnDangerBackgroundHighlight:      #bd362f;
+@btnDangerBackground:               lighten(@red, 5%);
+@btnDangerBackgroundHighlight:      darken(@red, 5%);
 
-@btnInverseBackground:              #444;
-@btnInverseBackgroundHighlight:     @grayDarker;
+@btnInverseBackground:              lighten(@black, 5%);
+@btnInverseBackgroundHighlight:     darken(@black, 5%);
 
 
 // Forms
 // -------------------------
 @inputBackground:               @white;
-@inputBorder:                   #ccc;
+@inputBorder:                   @gray;
 @inputBorderRadius:             @baseBorderRadius;
 @inputDisabledBackground:       @grayLighter;
 @formActionsBackground:         #f5f5f5;
 @inputHeight:                   @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
-@inputText:                     @grayDarker;
-
+@inputText:                     #020202;
 
 // Dropdowns
 // -------------------------
@@ -129,7 +131,7 @@
 @dropdownLinkColorHover:        @white;
 @dropdownLinkColorActive:       @white;
 
-@dropdownLinkBackgroundActive:  @linkColor;
+@dropdownLinkBackgroundActive:  @blue;
 @dropdownLinkBackgroundHover:   @dropdownLinkBackgroundActive;
 
 
@@ -158,7 +160,7 @@
 
 // Input placeholder text color
 // -------------------------
-@placeholderText:         @grayLight;
+@placeholderText:         @gray;
 
 
 // Hr border color
@@ -173,52 +175,53 @@
 
 // Wells
 // -------------------------
-@wellBackground:                  #f5f5f5;
+@wellBackground:                  @grayLighter;
 
 
 // Navbar
 // -------------------------
 @navbarCollapseWidth:             979px;
 @navbarCollapseDesktopWidth:      @navbarCollapseWidth + 1;
-@navbarHeight:                    40px;
+
+@navbarHeight:                    50px;
+@navbarBackgroundHighlight:       @grayDarker;
 @navbarBackground:                @grayDarker;
-@navbarBackgroundHighlight:       @grayDark;
-@navbarBorder:                    darken(@navbarBackground, 12%);
+@navbarBorder:                    transparent;
 
 @navbarText:                      @white;
 @navbarLinkColor:                 @white;
-@navbarLinkColorHover:            @white;
-@navbarLinkColorActive:           @navbarLinkColorHover;
-@navbarLinkBackgroundHover:       @grayDark;
-@navbarLinkBackgroundActive:      @navbarBackground;
+@navbarLinkColorHover:            @gray;
+@navbarLinkColorActive:           @white;
+@navbarLinkBackgroundHover:       rgba(0, 0, 0, 0.05);
+@navbarLinkBackgroundActive:      transparent;
 
-@navbarBrandColor:                @grayLighter;
+@navbarBrandColor:                @navbarLinkColor;
 
 // Inverted navbar
-@navbarInverseBackground:                #111111;
-@navbarInverseBackgroundHighlight:       #222222;
-@navbarInverseBorder:                    #252525;
+@navbarInverseBackground:                @blue;
+@navbarInverseBackgroundHighlight:       @navbarInverseBackground;
+@navbarInverseBorder:                    transparent;
 
-@navbarInverseText:                      @grayLight;
-@navbarInverseLinkColor:                 @grayLight;
+@navbarInverseText:                      @white;
+@navbarInverseLinkColor:                 @white;
 @navbarInverseLinkColorHover:            @white;
 @navbarInverseLinkColorActive:           @navbarInverseLinkColorHover;
-@navbarInverseLinkBackgroundHover:       transparent;
+@navbarInverseLinkBackgroundHover:       rgba(0, 0, 0, 0.05);
 @navbarInverseLinkBackgroundActive:      @navbarInverseBackground;
 
 @navbarInverseSearchBackground:          lighten(@navbarInverseBackground, 25%);
 @navbarInverseSearchBackgroundFocus:     @white;
 @navbarInverseSearchBorder:              @navbarInverseBackground;
-@navbarInverseSearchPlaceholderColor:    #ccc;
+@navbarInverseSearchPlaceholderColor:    @grayDark;
 
 @navbarInverseBrandColor:                @navbarInverseLinkColor;
 
 
 // Pagination
 // -------------------------
-@paginationBackground:                #fff;
-@paginationBorder:                    #ddd;
-@paginationActiveBackground:          #f5f5f5;
+@paginationBackground:                @grayLight;
+@paginationBorder:                    transparent;
+@paginationActiveBackground:          @blue;
 
 
 // Hero unit
@@ -230,21 +233,21 @@
 
 // Form states and alerts
 // -------------------------
-@warningText:             #c09853;
-@warningBackground:       #fcf8e3;
-@warningBorder:           darken(spin(@warningBackground, -10), 3%);
+@warningText:             lighten(@orange, 10%);
+@warningBackground:       @orange;
+@warningBorder:           transparent;
 
-@errorText:               #b94a48;
-@errorBackground:         #f2dede;
-@errorBorder:             darken(spin(@errorBackground, -10), 3%);
+@errorText:               lighten(@red, 10%);
+@errorBackground:         @red;
+@errorBorder:             transparent;
 
-@successText:             #468847;
-@successBackground:       #dff0d8;
-@successBorder:           darken(spin(@successBackground, -10), 5%);
+@successText:             lighten(@green, 10%);
+@successBackground:       @green;
+@successBorder:           transparent;
 
-@infoText:                #3a87ad;
-@infoBackground:          #d9edf7;
-@infoBorder:              darken(spin(@infoBackground, -10), 7%);
+@infoText:                lighten(@purple,10%);
+@infoBackground:          @purple;
+@infoBorder:              transparent;
 
 
 // Tooltips and popovers
@@ -254,10 +257,10 @@
 @tooltipArrowWidth:       5px;
 @tooltipArrowColor:       @tooltipBackground;
 
-@popoverBackground:       #fff;
-@popoverArrowWidth:       10px;
-@popoverArrowColor:       #fff;
-@popoverTitleBackground:  darken(@popoverBackground, 3%);
+@popoverBackground:       @white;
+@popoverArrowWidth:       15px;
+@popoverArrowColor:       @white;
+@popoverTitleBackground:  @white;
 
 // Special enhancement for popovers
 @popoverArrowOuterWidth:  @popoverArrowWidth + 1;

Некоторые файлы не были показаны из-за большого количества измененных файлов