bastion 0.1.14 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/bastion/bastion.module.js +7 -5
  3. data/app/assets/javascripts/bastion/components/bst-alert.directive.js +8 -37
  4. data/app/assets/javascripts/bastion/components/bst-alerts.directive.js +67 -0
  5. data/app/assets/javascripts/bastion/components/bst-container-scroll.directive.js +2 -7
  6. data/app/assets/javascripts/bastion/components/bst-table.directive.js +2 -2
  7. data/app/assets/javascripts/bastion/components/views/bst-alert.html +17 -5
  8. data/app/assets/javascripts/bastion/components/views/bst-alerts.html +6 -0
  9. data/app/assets/javascripts/bastion/components/views/bst-dropdown.html +1 -1
  10. data/app/assets/javascripts/bastion/components/views/bst-edit-add-item.html +1 -1
  11. data/app/assets/javascripts/bastion/components/views/bst-edit-add-remove-cancel.html +1 -1
  12. data/app/assets/javascripts/bastion/components/views/bst-edit-multiselect.html +1 -1
  13. data/app/assets/javascripts/bastion/components/views/bst-edit-save-cancel.html +1 -1
  14. data/app/assets/javascripts/bastion/components/views/bst-edit.html +2 -2
  15. data/app/assets/javascripts/bastion/components/views/bst-menu.html +1 -1
  16. data/app/assets/javascripts/bastion/components/views/bst-modal.html +1 -1
  17. data/app/assets/javascripts/bastion/components/views/bst-save-control.html +1 -1
  18. data/app/assets/javascripts/bastion/components/views/current-tasks.html +1 -1
  19. data/app/assets/javascripts/bastion/features/bst-feature-flag.directive.js +1 -1
  20. data/app/assets/javascripts/bastion/layouts/details-nutupane.html +4 -4
  21. data/app/assets/javascripts/bastion/layouts/nutupane.html +12 -8
  22. data/app/assets/stylesheets/bastion/bastion.less +6 -5
  23. data/app/assets/stylesheets/bastion/nutupane.less +14 -10
  24. data/app/assets/stylesheets/bastion/overrides.less +6 -2
  25. data/app/assets/stylesheets/bastion/variables.less +1 -0
  26. data/app/views/bastion/layouts/application.html.erb +5 -3
  27. data/bower.json +25 -20
  28. data/grunt/bower.js +2 -6
  29. data/lib/bastion/version.rb +1 -1
  30. data/test/components/bst-alert.directive.test.js +8 -40
  31. data/test/components/bst-alerts.directive.test.js +84 -0
  32. data/test/components/bst-container-scroll.directive.test.js +1 -14
  33. data/test/components/bst-edit.directive.test.js +1 -1
  34. data/vendor/assets/fonts/bastion/bootstrap/glyphicons-halflings-regular.eot +0 -0
  35. data/vendor/assets/fonts/bastion/bootstrap/glyphicons-halflings-regular.svg +47 -47
  36. data/vendor/assets/fonts/bastion/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  37. data/vendor/assets/fonts/bastion/bootstrap/glyphicons-halflings-regular.woff +0 -0
  38. data/vendor/assets/fonts/bastion/font-awesome/FontAwesome.otf +0 -0
  39. data/vendor/assets/fonts/bastion/font-awesome/fontawesome-webfont.eot +0 -0
  40. data/vendor/assets/fonts/bastion/font-awesome/fontawesome-webfont.svg +471 -366
  41. data/vendor/assets/fonts/bastion/font-awesome/fontawesome-webfont.ttf +0 -0
  42. data/vendor/assets/fonts/bastion/font-awesome/fontawesome-webfont.woff +0 -0
  43. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Bold-webfont.eot +0 -0
  44. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Bold-webfont.svg +1830 -0
  45. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Bold-webfont.ttf +0 -0
  46. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Bold-webfont.woff +0 -0
  47. data/vendor/assets/fonts/bastion/patternfly/OpenSans-BoldItalic-webfont.eot +0 -0
  48. data/vendor/assets/fonts/bastion/patternfly/OpenSans-BoldItalic-webfont.svg +1830 -0
  49. data/vendor/assets/fonts/bastion/patternfly/OpenSans-BoldItalic-webfont.ttf +0 -0
  50. data/vendor/assets/fonts/bastion/patternfly/OpenSans-BoldItalic-webfont.woff +0 -0
  51. data/vendor/assets/fonts/bastion/patternfly/OpenSans-ExtraBold-webfont.eot +0 -0
  52. data/vendor/assets/fonts/bastion/patternfly/OpenSans-ExtraBold-webfont.svg +1830 -0
  53. data/vendor/assets/fonts/bastion/patternfly/OpenSans-ExtraBold-webfont.ttf +0 -0
  54. data/vendor/assets/fonts/bastion/patternfly/OpenSans-ExtraBold-webfont.woff +0 -0
  55. data/vendor/assets/fonts/bastion/patternfly/OpenSans-ExtraBoldItalic-webfont.eot +0 -0
  56. data/vendor/assets/fonts/bastion/patternfly/OpenSans-ExtraBoldItalic-webfont.svg +1830 -0
  57. data/vendor/assets/fonts/bastion/patternfly/OpenSans-ExtraBoldItalic-webfont.ttf +0 -0
  58. data/vendor/assets/fonts/bastion/patternfly/OpenSans-ExtraBoldItalic-webfont.woff +0 -0
  59. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Italic-webfont.eot +0 -0
  60. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Italic-webfont.svg +1830 -0
  61. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Italic-webfont.ttf +0 -0
  62. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Italic-webfont.woff +0 -0
  63. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Light-webfont.eot +0 -0
  64. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Light-webfont.svg +1831 -0
  65. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Light-webfont.ttf +0 -0
  66. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Light-webfont.woff +0 -0
  67. data/vendor/assets/fonts/bastion/patternfly/OpenSans-LightItalic-webfont.eot +0 -0
  68. data/vendor/assets/fonts/bastion/patternfly/OpenSans-LightItalic-webfont.svg +1835 -0
  69. data/vendor/assets/fonts/bastion/patternfly/OpenSans-LightItalic-webfont.ttf +0 -0
  70. data/vendor/assets/fonts/bastion/patternfly/OpenSans-LightItalic-webfont.woff +0 -0
  71. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Regular-webfont.eot +0 -0
  72. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Regular-webfont.svg +1831 -0
  73. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Regular-webfont.ttf +0 -0
  74. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Regular-webfont.woff +0 -0
  75. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Semibold-webfont.eot +0 -0
  76. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Semibold-webfont.svg +1830 -0
  77. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Semibold-webfont.ttf +0 -0
  78. data/vendor/assets/fonts/bastion/patternfly/OpenSans-Semibold-webfont.woff +0 -0
  79. data/vendor/assets/fonts/bastion/patternfly/OpenSans-SemiboldItalic-webfont.eot +0 -0
  80. data/vendor/assets/fonts/bastion/patternfly/OpenSans-SemiboldItalic-webfont.svg +1830 -0
  81. data/vendor/assets/fonts/bastion/patternfly/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  82. data/vendor/assets/fonts/bastion/patternfly/OpenSans-SemiboldItalic-webfont.woff +0 -0
  83. data/vendor/assets/fonts/bastion/patternfly/PatternFlyIcons-webfont.eot +0 -0
  84. data/vendor/assets/fonts/bastion/patternfly/PatternFlyIcons-webfont.svg +37 -0
  85. data/vendor/assets/fonts/bastion/patternfly/PatternFlyIcons-webfont.ttf +0 -0
  86. data/vendor/assets/fonts/bastion/patternfly/PatternFlyIcons-webfont.woff +0 -0
  87. data/vendor/assets/javascripts/bastion/ngUpload/ng-upload.js +20 -19
  88. data/vendor/assets/stylesheets/bastion/bootstrap/badges.less +4 -0
  89. data/vendor/assets/stylesheets/bastion/bootstrap/breadcrumbs.less +4 -1
  90. data/vendor/assets/stylesheets/bastion/bootstrap/button-groups.less +13 -14
  91. data/vendor/assets/stylesheets/bastion/bootstrap/buttons.less +14 -10
  92. data/vendor/assets/stylesheets/bastion/bootstrap/carousel.less +3 -3
  93. data/vendor/assets/stylesheets/bastion/bootstrap/code.less +10 -0
  94. data/vendor/assets/stylesheets/bastion/bootstrap/dropdowns.less +28 -2
  95. data/vendor/assets/stylesheets/bastion/bootstrap/forms.less +104 -41
  96. data/vendor/assets/stylesheets/bastion/bootstrap/glyphicons.less +1 -5
  97. data/vendor/assets/stylesheets/bastion/bootstrap/grid.less +30 -25
  98. data/vendor/assets/stylesheets/bastion/bootstrap/input-groups.less +44 -18
  99. data/vendor/assets/stylesheets/bastion/bootstrap/jumbotron.less +3 -5
  100. data/vendor/assets/stylesheets/bastion/bootstrap/list-group.less +25 -3
  101. data/vendor/assets/stylesheets/bastion/bootstrap/mixins.less +147 -63
  102. data/vendor/assets/stylesheets/bastion/bootstrap/modals.less +18 -8
  103. data/vendor/assets/stylesheets/bastion/bootstrap/navbar.less +24 -20
  104. data/vendor/assets/stylesheets/bastion/bootstrap/navs.less +2 -2
  105. data/vendor/assets/stylesheets/bastion/bootstrap/normalize.less +139 -122
  106. data/vendor/assets/stylesheets/bastion/bootstrap/pager.less +5 -5
  107. data/vendor/assets/stylesheets/bastion/bootstrap/pagination.less +6 -3
  108. data/vendor/assets/stylesheets/bastion/bootstrap/panels.less +106 -47
  109. data/vendor/assets/stylesheets/bastion/bootstrap/popovers.less +11 -11
  110. data/vendor/assets/stylesheets/bastion/bootstrap/print.less +0 -4
  111. data/vendor/assets/stylesheets/bastion/bootstrap/responsive-utilities.less +15 -132
  112. data/vendor/assets/stylesheets/bastion/bootstrap/scaffolding.less +17 -2
  113. data/vendor/assets/stylesheets/bastion/bootstrap/tables.less +3 -1
  114. data/vendor/assets/stylesheets/bastion/bootstrap/theme.less +1 -1
  115. data/vendor/assets/stylesheets/bastion/bootstrap/thumbnails.less +1 -1
  116. data/vendor/assets/stylesheets/bastion/bootstrap/tooltip.less +1 -1
  117. data/vendor/assets/stylesheets/bastion/bootstrap/type.less +79 -67
  118. data/vendor/assets/stylesheets/bastion/bootstrap/variables.less +364 -177
  119. data/vendor/assets/stylesheets/bastion/bootstrap/wells.less +1 -1
  120. data/vendor/assets/stylesheets/bastion/font-awesome/less/bordered-pulled.less +16 -0
  121. data/vendor/assets/stylesheets/bastion/font-awesome/less/core.less +8 -126
  122. data/vendor/assets/stylesheets/bastion/font-awesome/less/extras.less +2 -93
  123. data/vendor/assets/stylesheets/bastion/font-awesome/less/fixed-width.less +6 -0
  124. data/vendor/assets/stylesheets/bastion/font-awesome/less/font-awesome.less +9 -25
  125. data/vendor/assets/stylesheets/bastion/font-awesome/less/icons.less +549 -378
  126. data/vendor/assets/stylesheets/bastion/font-awesome/less/larger.less +13 -0
  127. data/vendor/assets/stylesheets/bastion/font-awesome/less/list.less +19 -0
  128. data/vendor/assets/stylesheets/bastion/font-awesome/less/mixins.less +16 -39
  129. data/vendor/assets/stylesheets/bastion/font-awesome/less/path.less +6 -6
  130. data/vendor/assets/stylesheets/bastion/font-awesome/less/rotated-flipped.less +20 -0
  131. data/vendor/assets/stylesheets/bastion/font-awesome/less/spinning.less +29 -0
  132. data/vendor/assets/stylesheets/bastion/font-awesome/less/stacked.less +20 -0
  133. data/vendor/assets/stylesheets/bastion/font-awesome/less/variables.less +557 -731
  134. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_bordered-pulled.scss +16 -0
  135. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_core.scss +8 -126
  136. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_extras.scss +9 -58
  137. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_fixed-width.scss +6 -0
  138. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_icons.scss +550 -379
  139. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_larger.scss +13 -0
  140. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_list.scss +19 -0
  141. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_mixins.scss +16 -39
  142. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_path.scss +6 -6
  143. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_rotated-flipped.scss +20 -0
  144. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_spinning.scss +29 -0
  145. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_stacked.scss +20 -0
  146. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_variables.scss +557 -730
  147. data/vendor/assets/stylesheets/bastion/font-awesome/scss/font-awesome.scss +9 -25
  148. data/vendor/assets/stylesheets/bastion/patternfly/alerts.less +29 -0
  149. data/vendor/assets/stylesheets/bastion/patternfly/badges.less +11 -0
  150. data/vendor/assets/stylesheets/bastion/patternfly/bootstrap-combobox.less +27 -0
  151. data/vendor/assets/stylesheets/bastion/patternfly/bootstrap-select.less +67 -0
  152. data/vendor/assets/stylesheets/bastion/patternfly/bootstrap-treeview.less +37 -0
  153. data/vendor/assets/stylesheets/bastion/patternfly/breadcrumbs.less +20 -0
  154. data/vendor/assets/stylesheets/bastion/{rcue → patternfly}/buttons.less +4 -0
  155. data/vendor/assets/stylesheets/bastion/patternfly/close.less +13 -0
  156. data/vendor/assets/stylesheets/bastion/patternfly/datatables.less +221 -0
  157. data/vendor/assets/stylesheets/bastion/patternfly/dropdowns.less +145 -0
  158. data/vendor/assets/stylesheets/bastion/{rcue → patternfly}/fonts.less +4 -2
  159. data/vendor/assets/stylesheets/bastion/{rcue → patternfly}/forms.less +7 -4
  160. data/vendor/assets/stylesheets/bastion/patternfly/icons.less +130 -0
  161. data/vendor/assets/stylesheets/bastion/patternfly/infotip.less +149 -0
  162. data/vendor/assets/stylesheets/bastion/patternfly/labels.less +12 -0
  163. data/vendor/assets/stylesheets/bastion/patternfly/list-group.less +18 -0
  164. data/vendor/assets/stylesheets/bastion/patternfly/login.less +121 -0
  165. data/vendor/assets/stylesheets/bastion/patternfly/mixins.less +81 -0
  166. data/vendor/assets/stylesheets/bastion/patternfly/modals.less +38 -0
  167. data/vendor/assets/stylesheets/bastion/patternfly/navbar.less +501 -0
  168. data/vendor/assets/stylesheets/bastion/patternfly/pager.less +72 -0
  169. data/vendor/assets/stylesheets/bastion/patternfly/pagination.less +64 -0
  170. data/vendor/assets/stylesheets/bastion/patternfly/panels.less +57 -0
  171. data/vendor/assets/stylesheets/bastion/patternfly/patternfly.less +42 -0
  172. data/vendor/assets/stylesheets/bastion/patternfly/popovers.less +32 -0
  173. data/vendor/assets/stylesheets/bastion/patternfly/progress-bars.less +87 -0
  174. data/vendor/assets/stylesheets/bastion/patternfly/search.less +65 -0
  175. data/vendor/assets/stylesheets/bastion/patternfly/sidebar.less +174 -0
  176. data/vendor/assets/stylesheets/bastion/patternfly/spinner.less +62 -0
  177. data/vendor/assets/stylesheets/bastion/patternfly/tables.less +74 -0
  178. data/vendor/assets/stylesheets/bastion/patternfly/tabs.less +118 -0
  179. data/vendor/assets/stylesheets/bastion/patternfly/tooltip.less +16 -0
  180. data/vendor/assets/stylesheets/bastion/patternfly/type.less +24 -0
  181. data/vendor/assets/stylesheets/bastion/patternfly/variables.less +219 -0
  182. metadata +98 -57
  183. data/vendor/assets/fonts/bastion/rcue/OpenSans-Bold-webfont.eot +0 -0
  184. data/vendor/assets/fonts/bastion/rcue/OpenSans-Bold-webfont.svg +0 -146
  185. data/vendor/assets/fonts/bastion/rcue/OpenSans-Bold-webfont.ttf +0 -0
  186. data/vendor/assets/fonts/bastion/rcue/OpenSans-Bold-webfont.woff +0 -0
  187. data/vendor/assets/fonts/bastion/rcue/OpenSans-BoldItalic-webfont.eot +0 -0
  188. data/vendor/assets/fonts/bastion/rcue/OpenSans-BoldItalic-webfont.svg +0 -146
  189. data/vendor/assets/fonts/bastion/rcue/OpenSans-BoldItalic-webfont.ttf +0 -0
  190. data/vendor/assets/fonts/bastion/rcue/OpenSans-BoldItalic-webfont.woff +0 -0
  191. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBold-webfont.eot +0 -0
  192. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBold-webfont.svg +0 -146
  193. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBold-webfont.ttf +0 -0
  194. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBold-webfont.woff +0 -0
  195. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBoldItalic-webfont.eot +0 -0
  196. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBoldItalic-webfont.svg +0 -146
  197. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBoldItalic-webfont.ttf +0 -0
  198. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBoldItalic-webfont.woff +0 -0
  199. data/vendor/assets/fonts/bastion/rcue/OpenSans-Italic-webfont.eot +0 -0
  200. data/vendor/assets/fonts/bastion/rcue/OpenSans-Italic-webfont.svg +0 -146
  201. data/vendor/assets/fonts/bastion/rcue/OpenSans-Italic-webfont.ttf +0 -0
  202. data/vendor/assets/fonts/bastion/rcue/OpenSans-Italic-webfont.woff +0 -0
  203. data/vendor/assets/fonts/bastion/rcue/OpenSans-Light-webfont.eot +0 -0
  204. data/vendor/assets/fonts/bastion/rcue/OpenSans-Light-webfont.svg +0 -146
  205. data/vendor/assets/fonts/bastion/rcue/OpenSans-Light-webfont.ttf +0 -0
  206. data/vendor/assets/fonts/bastion/rcue/OpenSans-Light-webfont.woff +0 -0
  207. data/vendor/assets/fonts/bastion/rcue/OpenSans-LightItalic-webfont.eot +0 -0
  208. data/vendor/assets/fonts/bastion/rcue/OpenSans-LightItalic-webfont.svg +0 -146
  209. data/vendor/assets/fonts/bastion/rcue/OpenSans-LightItalic-webfont.ttf +0 -0
  210. data/vendor/assets/fonts/bastion/rcue/OpenSans-LightItalic-webfont.woff +0 -0
  211. data/vendor/assets/fonts/bastion/rcue/OpenSans-Regular-webfont.eot +0 -0
  212. data/vendor/assets/fonts/bastion/rcue/OpenSans-Regular-webfont.svg +0 -146
  213. data/vendor/assets/fonts/bastion/rcue/OpenSans-Regular-webfont.ttf +0 -0
  214. data/vendor/assets/fonts/bastion/rcue/OpenSans-Regular-webfont.woff +0 -0
  215. data/vendor/assets/fonts/bastion/rcue/OpenSans-Semibold-webfont.eot +0 -0
  216. data/vendor/assets/fonts/bastion/rcue/OpenSans-Semibold-webfont.svg +0 -146
  217. data/vendor/assets/fonts/bastion/rcue/OpenSans-Semibold-webfont.ttf +0 -0
  218. data/vendor/assets/fonts/bastion/rcue/OpenSans-Semibold-webfont.woff +0 -0
  219. data/vendor/assets/fonts/bastion/rcue/OpenSans-SemiboldItalic-webfont.eot +0 -0
  220. data/vendor/assets/fonts/bastion/rcue/OpenSans-SemiboldItalic-webfont.svg +0 -146
  221. data/vendor/assets/fonts/bastion/rcue/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  222. data/vendor/assets/fonts/bastion/rcue/OpenSans-SemiboldItalic-webfont.woff +0 -0
  223. data/vendor/assets/fonts/bastion/rcue/Overpass-Bold-webfont.eot +0 -0
  224. data/vendor/assets/fonts/bastion/rcue/Overpass-Bold-webfont.svg +0 -454
  225. data/vendor/assets/fonts/bastion/rcue/Overpass-Bold-webfont.ttf +0 -0
  226. data/vendor/assets/fonts/bastion/rcue/Overpass-Bold-webfont.woff +0 -0
  227. data/vendor/assets/fonts/bastion/rcue/Overpass-Regular-webfont.eot +0 -0
  228. data/vendor/assets/fonts/bastion/rcue/Overpass-Regular-webfont.svg +0 -454
  229. data/vendor/assets/fonts/bastion/rcue/Overpass-Regular-webfont.ttf +0 -0
  230. data/vendor/assets/fonts/bastion/rcue/Overpass-Regular-webfont.woff +0 -0
  231. data/vendor/assets/stylesheets/bastion/rcue/mixins.less +0 -50
  232. data/vendor/assets/stylesheets/bastion/rcue/navbar.less +0 -481
  233. data/vendor/assets/stylesheets/bastion/rcue/rcue.less +0 -15
  234. data/vendor/assets/stylesheets/bastion/rcue/variables.less +0 -47
@@ -54,8 +54,7 @@
54
54
 
55
55
  // Placeholder text
56
56
  .placeholder(@color: @input-color-placeholder) {
57
- &:-moz-placeholder { color: @color; } // Firefox 4-18
58
- &::-moz-placeholder { color: @color; // Firefox 19+
57
+ &::-moz-placeholder { color: @color; // Firefox
59
58
  opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
60
59
  &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
61
60
  &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
@@ -115,6 +114,10 @@
115
114
  }
116
115
 
117
116
  // Drop shadows
117
+ //
118
+ // Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
119
+ // supported browsers that have box shadow capabilities now support the
120
+ // standard `box-shadow` property.
118
121
  .box-shadow(@shadow) {
119
122
  -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
120
123
  box-shadow: @shadow;
@@ -147,17 +150,17 @@
147
150
  // Transformations
148
151
  .rotate(@degrees) {
149
152
  -webkit-transform: rotate(@degrees);
150
- -ms-transform: rotate(@degrees); // IE9+
153
+ -ms-transform: rotate(@degrees); // IE9 only
151
154
  transform: rotate(@degrees);
152
155
  }
153
- .scale(@ratio) {
154
- -webkit-transform: scale(@ratio);
155
- -ms-transform: scale(@ratio); // IE9+
156
- transform: scale(@ratio);
156
+ .scale(@ratio; @ratio-y...) {
157
+ -webkit-transform: scale(@ratio, @ratio-y);
158
+ -ms-transform: scale(@ratio, @ratio-y); // IE9 only
159
+ transform: scale(@ratio, @ratio-y);
157
160
  }
158
161
  .translate(@x; @y) {
159
162
  -webkit-transform: translate(@x, @y);
160
- -ms-transform: translate(@x, @y); // IE9+
163
+ -ms-transform: translate(@x, @y); // IE9 only
161
164
  transform: translate(@x, @y);
162
165
  }
163
166
  .skew(@x; @y) {
@@ -172,12 +175,12 @@
172
175
 
173
176
  .rotateX(@degrees) {
174
177
  -webkit-transform: rotateX(@degrees);
175
- -ms-transform: rotateX(@degrees); // IE9+
178
+ -ms-transform: rotateX(@degrees); // IE9 only
176
179
  transform: rotateX(@degrees);
177
180
  }
178
181
  .rotateY(@degrees) {
179
182
  -webkit-transform: rotateY(@degrees);
180
- -ms-transform: rotateY(@degrees); // IE9+
183
+ -ms-transform: rotateY(@degrees); // IE9 only
181
184
  transform: rotateY(@degrees);
182
185
  }
183
186
  .perspective(@perspective) {
@@ -193,6 +196,7 @@
193
196
  .transform-origin(@origin) {
194
197
  -webkit-transform-origin: @origin;
195
198
  -moz-transform-origin: @origin;
199
+ -ms-transform-origin: @origin; // IE9 only
196
200
  transform-origin: @origin;
197
201
  }
198
202
 
@@ -201,6 +205,30 @@
201
205
  -webkit-animation: @animation;
202
206
  animation: @animation;
203
207
  }
208
+ .animation-name(@name) {
209
+ -webkit-animation-name: @name;
210
+ animation-name: @name;
211
+ }
212
+ .animation-duration(@duration) {
213
+ -webkit-animation-duration: @duration;
214
+ animation-duration: @duration;
215
+ }
216
+ .animation-timing-function(@timing-function) {
217
+ -webkit-animation-timing-function: @timing-function;
218
+ animation-timing-function: @timing-function;
219
+ }
220
+ .animation-delay(@delay) {
221
+ -webkit-animation-delay: @delay;
222
+ animation-delay: @delay;
223
+ }
224
+ .animation-iteration-count(@iteration-count) {
225
+ -webkit-animation-iteration-count: @iteration-count;
226
+ animation-iteration-count: @iteration-count;
227
+ }
228
+ .animation-direction(@direction) {
229
+ -webkit-animation-direction: @direction;
230
+ animation-direction: @direction;
231
+ }
204
232
 
205
233
  // Backface visibility
206
234
  // Prevent browsers from flickering when using CSS 3D transforms.
@@ -224,7 +252,6 @@
224
252
  -webkit-user-select: @select;
225
253
  -moz-user-select: @select;
226
254
  -ms-user-select: @select; // IE10+
227
- -o-user-select: @select;
228
255
  user-select: @select;
229
256
  }
230
257
 
@@ -353,7 +380,7 @@
353
380
  //
354
381
  // Keep images from scaling beyond the width of their parents.
355
382
 
356
- .img-responsive(@display: block;) {
383
+ .img-responsive(@display: block) {
357
384
  display: @display;
358
385
  max-width: 100%; // Part 1: Set a maximum relative to the parent
359
386
  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
@@ -414,29 +441,57 @@
414
441
  .table-row-variant(@state; @background) {
415
442
  // Exact selectors below required to override `.table-striped` and prevent
416
443
  // inheritance to nested tables.
417
- .table {
418
- > thead,
419
- > tbody,
420
- > tfoot {
421
- > tr > .@{state},
422
- > .@{state} > td,
423
- > .@{state} > th {
424
- background-color: @background;
425
- }
444
+ .table > thead > tr,
445
+ .table > tbody > tr,
446
+ .table > tfoot > tr {
447
+ > td.@{state},
448
+ > th.@{state},
449
+ &.@{state} > td,
450
+ &.@{state} > th {
451
+ background-color: @background;
426
452
  }
427
453
  }
428
454
 
429
455
  // Hover states for `.table-hover`
430
456
  // Note: this is not available for cells or rows within `thead` or `tfoot`.
431
- .table-hover > tbody {
432
- > tr > .@{state}:hover,
433
- > .@{state}:hover > td,
434
- > .@{state}:hover > th {
457
+ .table-hover > tbody > tr {
458
+ > td.@{state}:hover,
459
+ > th.@{state}:hover,
460
+ &.@{state}:hover > td,
461
+ &.@{state}:hover > th {
435
462
  background-color: darken(@background, 5%);
436
463
  }
437
464
  }
438
465
  }
439
466
 
467
+ // List Groups
468
+ // -------------------------
469
+ .list-group-item-variant(@state; @background; @color) {
470
+ .list-group-item-@{state} {
471
+ color: @color;
472
+ background-color: @background;
473
+
474
+ a& {
475
+ color: @color;
476
+
477
+ .list-group-item-heading { color: inherit; }
478
+
479
+ &:hover,
480
+ &:focus {
481
+ color: @color;
482
+ background-color: darken(@background, 5%);
483
+ }
484
+ &.active,
485
+ &.active:hover,
486
+ &.active:focus {
487
+ color: #fff;
488
+ background-color: @color;
489
+ border-color: @color;
490
+ }
491
+ }
492
+ }
493
+ }
494
+
440
495
  // Button variants
441
496
  // -------------------------
442
497
  // Easily pump out default styles, as well as :hover, :focus, :active,
@@ -475,7 +530,7 @@
475
530
 
476
531
  .badge {
477
532
  color: @background;
478
- background-color: #fff;
533
+ background-color: @color;
479
534
  }
480
535
  }
481
536
 
@@ -524,6 +579,24 @@
524
579
  }
525
580
  }
526
581
 
582
+ // Contextual backgrounds
583
+ // -------------------------
584
+ .bg-variant(@color) {
585
+ background-color: @color;
586
+ a&:hover {
587
+ background-color: darken(@color, 10%);
588
+ }
589
+ }
590
+
591
+ // Typography
592
+ // -------------------------
593
+ .text-emphasis-variant(@color) {
594
+ color: @color;
595
+ a&:hover {
596
+ color: darken(@color, 10%);
597
+ }
598
+ }
599
+
527
600
  // Navbar vertical align
528
601
  // -------------------------
529
602
  // Vertically center elements in the navbar.
@@ -554,10 +627,7 @@
554
627
  }
555
628
 
556
629
  .responsive-invisibility() {
557
- &,
558
- tr&,
559
- th&,
560
- td& { display: none !important; }
630
+ display: none !important;
561
631
  }
562
632
 
563
633
 
@@ -570,14 +640,14 @@
570
640
  margin-left: auto;
571
641
  padding-left: (@grid-gutter-width / 2);
572
642
  padding-right: (@grid-gutter-width / 2);
573
- .clearfix();
643
+ &:extend(.clearfix all);
574
644
  }
575
645
 
576
646
  // Creates a wrapper for a series of columns
577
647
  .make-row(@gutter: @grid-gutter-width) {
578
648
  margin-left: (@gutter / -2);
579
649
  margin-right: (@gutter / -2);
580
- .clearfix();
650
+ &:extend(.clearfix all);
581
651
  }
582
652
 
583
653
  // Generate the extra small columns
@@ -585,30 +655,39 @@
585
655
  position: relative;
586
656
  float: left;
587
657
  width: percentage((@columns / @grid-columns));
588
- // Prevent columns from collapsing when empty
589
658
  min-height: 1px;
590
- // Inner gutter via padding
591
659
  padding-left: (@gutter / 2);
592
660
  padding-right: (@gutter / 2);
593
661
  }
662
+ .make-xs-column-offset(@columns) {
663
+ @media (min-width: @screen-xs-min) {
664
+ margin-left: percentage((@columns / @grid-columns));
665
+ }
666
+ }
667
+ .make-xs-column-push(@columns) {
668
+ @media (min-width: @screen-xs-min) {
669
+ left: percentage((@columns / @grid-columns));
670
+ }
671
+ }
672
+ .make-xs-column-pull(@columns) {
673
+ @media (min-width: @screen-xs-min) {
674
+ right: percentage((@columns / @grid-columns));
675
+ }
676
+ }
677
+
594
678
 
595
679
  // Generate the small columns
596
680
  .make-sm-column(@columns; @gutter: @grid-gutter-width) {
597
681
  position: relative;
598
- // Prevent columns from collapsing when empty
599
682
  min-height: 1px;
600
- // Inner gutter via padding
601
683
  padding-left: (@gutter / 2);
602
684
  padding-right: (@gutter / 2);
603
685
 
604
- // Calculate width based on number of columns available
605
686
  @media (min-width: @screen-sm-min) {
606
687
  float: left;
607
688
  width: percentage((@columns / @grid-columns));
608
689
  }
609
690
  }
610
-
611
- // Generate the small column offsets
612
691
  .make-sm-column-offset(@columns) {
613
692
  @media (min-width: @screen-sm-min) {
614
693
  margin-left: percentage((@columns / @grid-columns));
@@ -625,30 +704,26 @@
625
704
  }
626
705
  }
627
706
 
707
+
628
708
  // Generate the medium columns
629
709
  .make-md-column(@columns; @gutter: @grid-gutter-width) {
630
710
  position: relative;
631
- // Prevent columns from collapsing when empty
632
711
  min-height: 1px;
633
- // Inner gutter via padding
634
712
  padding-left: (@gutter / 2);
635
713
  padding-right: (@gutter / 2);
636
714
 
637
- // Calculate width based on number of columns available
638
715
  @media (min-width: @screen-md-min) {
639
716
  float: left;
640
717
  width: percentage((@columns / @grid-columns));
641
718
  }
642
719
  }
643
-
644
- // Generate the medium column offsets
645
720
  .make-md-column-offset(@columns) {
646
721
  @media (min-width: @screen-md-min) {
647
722
  margin-left: percentage((@columns / @grid-columns));
648
723
  }
649
724
  }
650
725
  .make-md-column-push(@columns) {
651
- @media (min-width: @screen-md) {
726
+ @media (min-width: @screen-md-min) {
652
727
  left: percentage((@columns / @grid-columns));
653
728
  }
654
729
  }
@@ -658,23 +733,19 @@
658
733
  }
659
734
  }
660
735
 
736
+
661
737
  // Generate the large columns
662
738
  .make-lg-column(@columns; @gutter: @grid-gutter-width) {
663
739
  position: relative;
664
- // Prevent columns from collapsing when empty
665
740
  min-height: 1px;
666
- // Inner gutter via padding
667
741
  padding-left: (@gutter / 2);
668
742
  padding-right: (@gutter / 2);
669
743
 
670
- // Calculate width based on number of columns available
671
744
  @media (min-width: @screen-lg-min) {
672
745
  float: left;
673
746
  width: percentage((@columns / @grid-columns));
674
747
  }
675
748
  }
676
-
677
- // Generate the large column offsets
678
749
  .make-lg-column-offset(@columns) {
679
750
  @media (min-width: @screen-lg-min) {
680
751
  margin-left: percentage((@columns / @grid-columns));
@@ -701,11 +772,11 @@
701
772
  // Common styles for all sizes of grid columns, widths 1-12
702
773
  .col(@index) when (@index = 1) { // initial
703
774
  @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
704
- .col(@index + 1, @item);
775
+ .col((@index + 1), @item);
705
776
  }
706
777
  .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
707
778
  @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
708
- .col(@index + 1, ~"@{list}, @{item}");
779
+ .col((@index + 1), ~"@{list}, @{item}");
709
780
  }
710
781
  .col(@index, @list) when (@index > @grid-columns) { // terminal
711
782
  @{list} {
@@ -720,14 +791,14 @@
720
791
  .col(1); // kickstart it
721
792
  }
722
793
 
723
- .make-grid-columns-float(@class) {
794
+ .float-grid-columns(@class) {
724
795
  .col(@index) when (@index = 1) { // initial
725
796
  @item: ~".col-@{class}-@{index}";
726
- .col(@index + 1, @item);
797
+ .col((@index + 1), @item);
727
798
  }
728
799
  .col(@index, @list) when (@index =< @grid-columns) { // general
729
800
  @item: ~".col-@{class}-@{index}";
730
- .col(@index + 1, ~"@{list}, @{item}");
801
+ .col((@index + 1), ~"@{list}, @{item}");
731
802
  }
732
803
  .col(@index, @list) when (@index > @grid-columns) { // terminal
733
804
  @{list} {
@@ -737,34 +808,42 @@
737
808
  .col(1); // kickstart it
738
809
  }
739
810
 
740
- .calc-grid(@index, @class, @type) when (@type = width) and (@index > 0) {
811
+ .calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
741
812
  .col-@{class}-@{index} {
742
813
  width: percentage((@index / @grid-columns));
743
814
  }
744
815
  }
745
- .calc-grid(@index, @class, @type) when (@type = push) {
816
+ .calc-grid-column(@index, @class, @type) when (@type = push) {
746
817
  .col-@{class}-push-@{index} {
747
818
  left: percentage((@index / @grid-columns));
748
819
  }
749
820
  }
750
- .calc-grid(@index, @class, @type) when (@type = pull) {
821
+ .calc-grid-column(@index, @class, @type) when (@type = pull) {
751
822
  .col-@{class}-pull-@{index} {
752
823
  right: percentage((@index / @grid-columns));
753
824
  }
754
825
  }
755
- .calc-grid(@index, @class, @type) when (@type = offset) {
826
+ .calc-grid-column(@index, @class, @type) when (@type = offset) {
756
827
  .col-@{class}-offset-@{index} {
757
828
  margin-left: percentage((@index / @grid-columns));
758
829
  }
759
830
  }
760
831
 
761
832
  // Basic looping in LESS
762
- .make-grid(@index, @class, @type) when (@index >= 0) {
763
- .calc-grid(@index, @class, @type);
833
+ .loop-grid-columns(@index, @class, @type) when (@index >= 0) {
834
+ .calc-grid-column(@index, @class, @type);
764
835
  // next iteration
765
- .make-grid(@index - 1, @class, @type);
836
+ .loop-grid-columns((@index - 1), @class, @type);
766
837
  }
767
838
 
839
+ // Create grid for specific class
840
+ .make-grid(@class) {
841
+ .float-grid-columns(@class);
842
+ .loop-grid-columns(@grid-columns, @class, width);
843
+ .loop-grid-columns(@grid-columns, @class, pull);
844
+ .loop-grid-columns(@grid-columns, @class, push);
845
+ .loop-grid-columns(@grid-columns, @class, offset);
846
+ }
768
847
 
769
848
  // Form validation states
770
849
  //
@@ -797,6 +876,10 @@
797
876
  border-color: @border-color;
798
877
  background-color: @background-color;
799
878
  }
879
+ // Optional feedback icon
880
+ .form-control-feedback {
881
+ color: @text-color;
882
+ }
800
883
  }
801
884
 
802
885
  // Form control focus state
@@ -839,7 +922,8 @@
839
922
  line-height: @input-height;
840
923
  }
841
924
 
842
- textarea& {
925
+ textarea&,
926
+ select[multiple]& {
843
927
  height: auto;
844
928
  }
845
929
  }
@@ -22,7 +22,12 @@
22
22
  right: 0;
23
23
  bottom: 0;
24
24
  left: 0;
25
- z-index: @zindex-modal-background;
25
+ z-index: @zindex-modal;
26
+ -webkit-overflow-scrolling: touch;
27
+
28
+ // Prevent Chrome on Windows from adding a focus outline. For details, see
29
+ // https://github.com/twbs/bootstrap/pull/10951.
30
+ outline: 0;
26
31
 
27
32
  // When fading in the modal, animate it to slide down
28
33
  &.fade .modal-dialog {
@@ -37,7 +42,6 @@
37
42
  position: relative;
38
43
  width: auto;
39
44
  margin: 10px;
40
- z-index: (@zindex-modal-background + 10);
41
45
  }
42
46
 
43
47
  // Actual modal
@@ -60,11 +64,11 @@
60
64
  right: 0;
61
65
  bottom: 0;
62
66
  left: 0;
63
- z-index: (@zindex-modal-background - 10);
67
+ z-index: @zindex-modal-background;
64
68
  background-color: @modal-backdrop-bg;
65
69
  // Fade for backdrop
66
70
  &.fade { .opacity(0); }
67
- &.in { .opacity(.5); }
71
+ &.in { .opacity(@modal-backdrop-opacity); }
68
72
  }
69
73
 
70
74
  // Modal header
@@ -98,7 +102,7 @@
98
102
  padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;
99
103
  text-align: right; // right align buttons
100
104
  border-top: 1px solid @modal-footer-border-color;
101
- .clearfix(); // clear it in case folks use .pull-* classes on buttons
105
+ &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
102
106
 
103
107
  // Properly space out buttons
104
108
  .btn + .btn {
@@ -116,14 +120,20 @@
116
120
  }
117
121
 
118
122
  // Scale up the modal
119
- @media screen and (min-width: @screen-sm-min) {
120
-
123
+ @media (min-width: @screen-sm-min) {
124
+ // Automatically set modal's width for larger viewports
121
125
  .modal-dialog {
122
- width: 600px;
126
+ width: @modal-md;
123
127
  margin: 30px auto;
124
128
  }
125
129
  .modal-content {
126
130
  .box-shadow(0 5px 15px rgba(0,0,0,.5));
127
131
  }
128
132
 
133
+ // Modal sizes
134
+ .modal-sm { width: @modal-sm; }
135
+ }
136
+
137
+ @media (min-width: @screen-md-min) {
138
+ .modal-lg { width: @modal-lg; }
129
139
  }
@@ -15,7 +15,7 @@
15
15
  border: 1px solid transparent;
16
16
 
17
17
  // Prevent floats from breaking the navbar
18
- .clearfix();
18
+ &:extend(.clearfix all);
19
19
 
20
20
  @media (min-width: @grid-float-breakpoint) {
21
21
  border-radius: @navbar-border-radius;
@@ -29,7 +29,7 @@
29
29
  // styling of responsive aspects.
30
30
 
31
31
  .navbar-header {
32
- .clearfix();
32
+ &:extend(.clearfix all);
33
33
 
34
34
  @media (min-width: @grid-float-breakpoint) {
35
35
  float: left;
@@ -48,13 +48,13 @@
48
48
  // content for the user's viewport.
49
49
 
50
50
  .navbar-collapse {
51
- max-height: 340px;
51
+ max-height: @navbar-collapse-max-height;
52
52
  overflow-x: visible;
53
53
  padding-right: @navbar-padding-horizontal;
54
54
  padding-left: @navbar-padding-horizontal;
55
55
  border-top: 1px solid transparent;
56
56
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
57
- .clearfix();
57
+ &:extend(.clearfix all);
58
58
  -webkit-overflow-scrolling: touch;
59
59
 
60
60
  &.in {
@@ -93,14 +93,17 @@
93
93
  //
94
94
  // When a container is present, change the behavior of the header and collapse.
95
95
 
96
- .container > .navbar-header,
97
- .container > .navbar-collapse {
98
- margin-right: -@navbar-padding-horizontal;
99
- margin-left: -@navbar-padding-horizontal;
96
+ .container,
97
+ .container-fluid {
98
+ > .navbar-header,
99
+ > .navbar-collapse {
100
+ margin-right: -@navbar-padding-horizontal;
101
+ margin-left: -@navbar-padding-horizontal;
100
102
 
101
- @media (min-width: @grid-float-breakpoint) {
102
- margin-right: 0;
103
- margin-left: 0;
103
+ @media (min-width: @grid-float-breakpoint) {
104
+ margin-right: 0;
105
+ margin-left: 0;
106
+ }
104
107
  }
105
108
  }
106
109
 
@@ -152,6 +155,7 @@
152
155
  padding: @navbar-padding-vertical @navbar-padding-horizontal;
153
156
  font-size: @font-size-large;
154
157
  line-height: @line-height-computed;
158
+ height: @navbar-height;
155
159
 
156
160
  &:hover,
157
161
  &:focus {
@@ -159,7 +163,8 @@
159
163
  }
160
164
 
161
165
  @media (min-width: @grid-float-breakpoint) {
162
- .navbar > .container & {
166
+ .navbar > .container &,
167
+ .navbar > .container-fluid & {
163
168
  margin-left: -@navbar-padding-horizontal;
164
169
  }
165
170
  }
@@ -182,6 +187,12 @@
182
187
  border: 1px solid transparent;
183
188
  border-radius: @border-radius-base;
184
189
 
190
+ // We remove the `outline` here, but later compensate by attaching `:hover`
191
+ // styles to `:focus`.
192
+ &:focus {
193
+ outline: none;
194
+ }
195
+
185
196
  // Bars
186
197
  .icon-bar {
187
198
  display: block;
@@ -201,7 +212,7 @@
201
212
 
202
213
  // Navbar nav links
203
214
  //
204
- // Builds on top of the `.nav` components with it's own modifier class to make
215
+ // Builds on top of the `.nav` components with its own modifier class to make
205
216
  // the nav the full height of the horizontal nav (above 768px).
206
217
 
207
218
  .navbar-nav {
@@ -325,13 +336,6 @@
325
336
  .border-bottom-radius(0);
326
337
  }
327
338
 
328
- // Right aligned menus need alt position
329
- .navbar-nav.pull-right > li > .dropdown-menu,
330
- .navbar-nav > li > .dropdown-menu.pull-right {
331
- left: auto;
332
- right: 0;
333
- }
334
-
335
339
 
336
340
  // Buttons in navbars
337
341
  //
@@ -10,7 +10,7 @@
10
10
  margin-bottom: 0;
11
11
  padding-left: 0; // Override default ul/ol
12
12
  list-style: none;
13
- .clearfix();
13
+ &:extend(.clearfix all);
14
14
 
15
15
  > li {
16
16
  position: relative;
@@ -91,7 +91,7 @@
91
91
  }
92
92
  }
93
93
 
94
- // Active state, and it's :hover to override normal :hover
94
+ // Active state, and its :hover to override normal :hover
95
95
  &.active > a {
96
96
  &,
97
97
  &:hover,