tennpipes-su 3.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +20 -0
  3. data/README.rdoc +70 -0
  4. data/Rakefile +22 -0
  5. data/lib/tennpipes-su.rb +35 -0
  6. data/lib/tennpipes-su/access_control.rb +191 -0
  7. data/lib/tennpipes-su/bootstrap-less/alerts.less +67 -0
  8. data/lib/tennpipes-su/bootstrap-less/badges.less +55 -0
  9. data/lib/tennpipes-su/bootstrap-less/bootstrap.less +49 -0
  10. data/lib/tennpipes-su/bootstrap-less/breadcrumbs.less +26 -0
  11. data/lib/tennpipes-su/bootstrap-less/button-groups.less +226 -0
  12. data/lib/tennpipes-su/bootstrap-less/buttons.less +155 -0
  13. data/lib/tennpipes-su/bootstrap-less/carousel.less +232 -0
  14. data/lib/tennpipes-su/bootstrap-less/close.less +33 -0
  15. data/lib/tennpipes-su/bootstrap-less/code.less +63 -0
  16. data/lib/tennpipes-su/bootstrap-less/component-animations.less +29 -0
  17. data/lib/tennpipes-su/bootstrap-less/dropdowns.less +213 -0
  18. data/lib/tennpipes-su/bootstrap-less/font-awesome/bordered-pulled.less +16 -0
  19. data/lib/tennpipes-su/bootstrap-less/font-awesome/core.less +12 -0
  20. data/lib/tennpipes-su/bootstrap-less/font-awesome/fixed-width.less +6 -0
  21. data/lib/tennpipes-su/bootstrap-less/font-awesome/font-awesome.less +17 -0
  22. data/lib/tennpipes-su/bootstrap-less/font-awesome/icons.less +412 -0
  23. data/lib/tennpipes-su/bootstrap-less/font-awesome/larger.less +13 -0
  24. data/lib/tennpipes-su/bootstrap-less/font-awesome/list.less +19 -0
  25. data/lib/tennpipes-su/bootstrap-less/font-awesome/mixins.less +20 -0
  26. data/lib/tennpipes-su/bootstrap-less/font-awesome/path.less +14 -0
  27. data/lib/tennpipes-su/bootstrap-less/font-awesome/rotated-flipped.less +9 -0
  28. data/lib/tennpipes-su/bootstrap-less/font-awesome/spinning.less +30 -0
  29. data/lib/tennpipes-su/bootstrap-less/font-awesome/stacked.less +20 -0
  30. data/lib/tennpipes-su/bootstrap-less/font-awesome/variables.less +381 -0
  31. data/lib/tennpipes-su/bootstrap-less/forms.less +419 -0
  32. data/lib/tennpipes-su/bootstrap-less/glyphicons.less +233 -0
  33. data/lib/tennpipes-su/bootstrap-less/grid.less +100 -0
  34. data/lib/tennpipes-su/bootstrap-less/input-groups.less +157 -0
  35. data/lib/tennpipes-su/bootstrap-less/jumbotron.less +44 -0
  36. data/lib/tennpipes-su/bootstrap-less/labels.less +64 -0
  37. data/lib/tennpipes-su/bootstrap-less/list-group.less +110 -0
  38. data/lib/tennpipes-su/bootstrap-less/media.less +56 -0
  39. data/lib/tennpipes-su/bootstrap-less/mixins.less +926 -0
  40. data/lib/tennpipes-su/bootstrap-less/modals.less +138 -0
  41. data/lib/tennpipes-su/bootstrap-less/navbar.less +616 -0
  42. data/lib/tennpipes-su/bootstrap-less/navs.less +242 -0
  43. data/lib/tennpipes-su/bootstrap-less/normalize.less +423 -0
  44. data/lib/tennpipes-su/bootstrap-less/pager.less +55 -0
  45. data/lib/tennpipes-su/bootstrap-less/pagination.less +88 -0
  46. data/lib/tennpipes-su/bootstrap-less/panels.less +230 -0
  47. data/lib/tennpipes-su/bootstrap-less/popovers.less +133 -0
  48. data/lib/tennpipes-su/bootstrap-less/print.less +101 -0
  49. data/lib/tennpipes-su/bootstrap-less/progress-bars.less +80 -0
  50. data/lib/tennpipes-su/bootstrap-less/responsive-utilities.less +93 -0
  51. data/lib/tennpipes-su/bootstrap-less/scaffolding.less +134 -0
  52. data/lib/tennpipes-su/bootstrap-less/tables.less +233 -0
  53. data/lib/tennpipes-su/bootstrap-less/tennpipes-su.less +18 -0
  54. data/lib/tennpipes-su/bootstrap-less/theme.less +247 -0
  55. data/lib/tennpipes-su/bootstrap-less/thumbnails.less +36 -0
  56. data/lib/tennpipes-su/bootstrap-less/tooltip.less +95 -0
  57. data/lib/tennpipes-su/bootstrap-less/type.less +296 -0
  58. data/lib/tennpipes-su/bootstrap-less/utilities.less +56 -0
  59. data/lib/tennpipes-su/bootstrap-less/variables.less +827 -0
  60. data/lib/tennpipes-su/bootstrap-less/wells.less +29 -0
  61. data/lib/tennpipes-su/generators/actions.rb +78 -0
  62. data/lib/tennpipes-su/generators/admin_app.rb +169 -0
  63. data/lib/tennpipes-su/generators/admin_page.rb +68 -0
  64. data/lib/tennpipes-su/generators/orm.rb +172 -0
  65. data/lib/tennpipes-su/generators/templates/account/activerecord.rb.tt +41 -0
  66. data/lib/tennpipes-su/generators/templates/account/couchrest.rb.tt +67 -0
  67. data/lib/tennpipes-su/generators/templates/account/datamapper.rb.tt +56 -0
  68. data/lib/tennpipes-su/generators/templates/account/dynamoid.rb.tt +55 -0
  69. data/lib/tennpipes-su/generators/templates/account/minirecord.rb.tt +44 -0
  70. data/lib/tennpipes-su/generators/templates/account/mongoid.rb.tt +54 -0
  71. data/lib/tennpipes-su/generators/templates/account/mongomapper.rb.tt +47 -0
  72. data/lib/tennpipes-su/generators/templates/account/ohm.rb.tt +70 -0
  73. data/lib/tennpipes-su/generators/templates/account/seeds.rb.tt +29 -0
  74. data/lib/tennpipes-su/generators/templates/account/sequel.rb.tt +53 -0
  75. data/lib/tennpipes-su/generators/templates/app.rb.tt +42 -0
  76. data/lib/tennpipes-su/generators/templates/app/controllers/base.rb.tt +5 -0
  77. data/lib/tennpipes-su/generators/templates/app/controllers/sessions.rb.tt +29 -0
  78. data/lib/tennpipes-su/generators/templates/assets/images/favicon.ico +0 -0
  79. data/lib/tennpipes-su/generators/templates/assets/images/font/FontAwesome.otf +0 -0
  80. data/lib/tennpipes-su/generators/templates/assets/images/font/fontawesome-webfont.eot +0 -0
  81. data/lib/tennpipes-su/generators/templates/assets/images/font/fontawesome-webfont.svg +414 -0
  82. data/lib/tennpipes-su/generators/templates/assets/images/font/fontawesome-webfont.ttf +0 -0
  83. data/lib/tennpipes-su/generators/templates/assets/images/font/fontawesome-webfont.woff +0 -0
  84. data/lib/tennpipes-su/generators/templates/assets/images/logo.png +0 -0
  85. data/lib/tennpipes-su/generators/templates/assets/javascripts/application.js +118 -0
  86. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/affix.js +137 -0
  87. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/alert.js +88 -0
  88. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/bootstrap.min.js +6 -0
  89. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/button.js +107 -0
  90. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/carousel.js +205 -0
  91. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/collapse.js +170 -0
  92. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/dropdown.js +147 -0
  93. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/modal.js +243 -0
  94. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/popover.js +110 -0
  95. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/scrollspy.js +153 -0
  96. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/tab.js +125 -0
  97. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/tooltip.js +399 -0
  98. data/lib/tennpipes-su/generators/templates/assets/javascripts/bootstrap/transition.js +48 -0
  99. data/lib/tennpipes-su/generators/templates/assets/javascripts/jquery-1.11.0.min.js +4 -0
  100. data/lib/tennpipes-su/generators/templates/assets/stylesheets/application.css +353 -0
  101. data/lib/tennpipes-su/generators/templates/assets/stylesheets/bootstrap.css +4 -0
  102. data/lib/tennpipes-su/generators/templates/assets/stylesheets/fonts/FontAwesome.otf +0 -0
  103. data/lib/tennpipes-su/generators/templates/assets/stylesheets/fonts/fontawesome-webfont.eot +0 -0
  104. data/lib/tennpipes-su/generators/templates/assets/stylesheets/fonts/fontawesome-webfont.svg +414 -0
  105. data/lib/tennpipes-su/generators/templates/assets/stylesheets/fonts/fontawesome-webfont.ttf +0 -0
  106. data/lib/tennpipes-su/generators/templates/assets/stylesheets/fonts/fontawesome-webfont.woff +0 -0
  107. data/lib/tennpipes-su/generators/templates/erb/app/base/index.erb.tt +15 -0
  108. data/lib/tennpipes-su/generators/templates/erb/app/errors/403.erb.tt +3 -0
  109. data/lib/tennpipes-su/generators/templates/erb/app/errors/404.erb.tt +3 -0
  110. data/lib/tennpipes-su/generators/templates/erb/app/errors/500.erb.tt +3 -0
  111. data/lib/tennpipes-su/generators/templates/erb/app/layouts/application.erb.tt +64 -0
  112. data/lib/tennpipes-su/generators/templates/erb/app/layouts/error.erb.tt +23 -0
  113. data/lib/tennpipes-su/generators/templates/erb/app/sessions/new.erb.tt +44 -0
  114. data/lib/tennpipes-su/generators/templates/erb/page/_form.erb.tt +18 -0
  115. data/lib/tennpipes-su/generators/templates/erb/page/edit.erb.tt +10 -0
  116. data/lib/tennpipes-su/generators/templates/erb/page/index.erb.tt +81 -0
  117. data/lib/tennpipes-su/generators/templates/erb/page/new.erb.tt +9 -0
  118. data/lib/tennpipes-su/generators/templates/haml/app/base/index.haml.tt +12 -0
  119. data/lib/tennpipes-su/generators/templates/haml/app/errors/403.haml.tt +3 -0
  120. data/lib/tennpipes-su/generators/templates/haml/app/errors/404.haml.tt +3 -0
  121. data/lib/tennpipes-su/generators/templates/haml/app/errors/500.haml.tt +3 -0
  122. data/lib/tennpipes-su/generators/templates/haml/app/layouts/application.haml.tt +49 -0
  123. data/lib/tennpipes-su/generators/templates/haml/app/layouts/error.haml.tt +18 -0
  124. data/lib/tennpipes-su/generators/templates/haml/app/sessions/new.haml.tt +38 -0
  125. data/lib/tennpipes-su/generators/templates/haml/page/_form.haml.tt +16 -0
  126. data/lib/tennpipes-su/generators/templates/haml/page/edit.haml.tt +8 -0
  127. data/lib/tennpipes-su/generators/templates/haml/page/index.haml.tt +58 -0
  128. data/lib/tennpipes-su/generators/templates/haml/page/new.haml.tt +7 -0
  129. data/lib/tennpipes-su/generators/templates/page/controller.rb.tt +92 -0
  130. data/lib/tennpipes-su/generators/templates/slim/app/base/index.slim.tt +12 -0
  131. data/lib/tennpipes-su/generators/templates/slim/app/errors/403.slim.tt +3 -0
  132. data/lib/tennpipes-su/generators/templates/slim/app/errors/404.slim.tt +3 -0
  133. data/lib/tennpipes-su/generators/templates/slim/app/errors/500.slim.tt +3 -0
  134. data/lib/tennpipes-su/generators/templates/slim/app/layouts/application.slim.tt +48 -0
  135. data/lib/tennpipes-su/generators/templates/slim/app/layouts/error.slim.tt +19 -0
  136. data/lib/tennpipes-su/generators/templates/slim/app/sessions/new.slim.tt +37 -0
  137. data/lib/tennpipes-su/generators/templates/slim/page/_form.slim.tt +16 -0
  138. data/lib/tennpipes-su/generators/templates/slim/page/edit.slim.tt +8 -0
  139. data/lib/tennpipes-su/generators/templates/slim/page/index.slim.tt +56 -0
  140. data/lib/tennpipes-su/generators/templates/slim/page/new.slim.tt +7 -0
  141. data/lib/tennpipes-su/helpers/authentication_helpers.rb +108 -0
  142. data/lib/tennpipes-su/helpers/view_helpers.rb +87 -0
  143. data/lib/tennpipes-su/locale/admin/cs.yml +56 -0
  144. data/lib/tennpipes-su/locale/admin/da.yml +56 -0
  145. data/lib/tennpipes-su/locale/admin/de.yml +56 -0
  146. data/lib/tennpipes-su/locale/admin/en.yml +56 -0
  147. data/lib/tennpipes-su/locale/admin/es.yml +56 -0
  148. data/lib/tennpipes-su/locale/admin/fr.yml +56 -0
  149. data/lib/tennpipes-su/locale/admin/hu.yml +56 -0
  150. data/lib/tennpipes-su/locale/admin/it.yml +56 -0
  151. data/lib/tennpipes-su/locale/admin/ja.yml +57 -0
  152. data/lib/tennpipes-su/locale/admin/lv.yml +56 -0
  153. data/lib/tennpipes-su/locale/admin/nl.yml +56 -0
  154. data/lib/tennpipes-su/locale/admin/no.yml +56 -0
  155. data/lib/tennpipes-su/locale/admin/pl.yml +56 -0
  156. data/lib/tennpipes-su/locale/admin/pt_br.yml +56 -0
  157. data/lib/tennpipes-su/locale/admin/ro.yml +56 -0
  158. data/lib/tennpipes-su/locale/admin/ru.yml +57 -0
  159. data/lib/tennpipes-su/locale/admin/sv.yml +56 -0
  160. data/lib/tennpipes-su/locale/admin/tr.yml +56 -0
  161. data/lib/tennpipes-su/locale/admin/uk.yml +56 -0
  162. data/lib/tennpipes-su/locale/admin/zh_cn.yml +56 -0
  163. data/lib/tennpipes-su/locale/admin/zh_tw.yml +56 -0
  164. data/lib/tennpipes-su/locale/orm/cs.yml +12 -0
  165. data/lib/tennpipes-su/locale/orm/da.yml +12 -0
  166. data/lib/tennpipes-su/locale/orm/de.yml +12 -0
  167. data/lib/tennpipes-su/locale/orm/en.yml +12 -0
  168. data/lib/tennpipes-su/locale/orm/es.yml +12 -0
  169. data/lib/tennpipes-su/locale/orm/fr.yml +12 -0
  170. data/lib/tennpipes-su/locale/orm/hu.yml +12 -0
  171. data/lib/tennpipes-su/locale/orm/it.yml +12 -0
  172. data/lib/tennpipes-su/locale/orm/ja.yml +12 -0
  173. data/lib/tennpipes-su/locale/orm/lv.yml +12 -0
  174. data/lib/tennpipes-su/locale/orm/nl.yml +12 -0
  175. data/lib/tennpipes-su/locale/orm/no.yml +12 -0
  176. data/lib/tennpipes-su/locale/orm/pl.yml +38 -0
  177. data/lib/tennpipes-su/locale/orm/pt_br.yml +12 -0
  178. data/lib/tennpipes-su/locale/orm/ro.yml +12 -0
  179. data/lib/tennpipes-su/locale/orm/ru.yml +12 -0
  180. data/lib/tennpipes-su/locale/orm/sv.yml +12 -0
  181. data/lib/tennpipes-su/locale/orm/tr.yml +12 -0
  182. data/lib/tennpipes-su/locale/orm/uk.yml +12 -0
  183. data/lib/tennpipes-su/locale/orm/zh_cn.yml +12 -0
  184. data/lib/tennpipes-su/locale/orm/zh_tw.yml +12 -0
  185. data/test/fixtures/sequel.rb +72 -0
  186. data/test/generators/test_account_model_generator.rb +108 -0
  187. data/test/generators/test_admin_app_generator.rb +218 -0
  188. data/test/generators/test_admin_page_generator.rb +140 -0
  189. data/test/helper.rb +47 -0
  190. data/test/test_admin_application.rb +271 -0
  191. data/test/test_locale.rb +25 -0
  192. metadata +298 -0
@@ -0,0 +1,100 @@
1
+ //
2
+ // Grid system
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Container widths
7
+ //
8
+ // Set the container width, and override it for fixed navbars in media queries.
9
+
10
+ .container {
11
+ .container-fixed();
12
+
13
+ @media (min-width: @screen-sm-min) {
14
+ width: @container-sm;
15
+ }
16
+ @media (min-width: @screen-md-min) {
17
+ width: @container-md;
18
+ }
19
+ @media (min-width: @screen-lg-min) {
20
+ width: @container-lg;
21
+ }
22
+ }
23
+
24
+
25
+ // Fluid container
26
+ //
27
+ // Utilizes the mixin meant for fixed width containers, but without any defined
28
+ // width for fluid, full width layouts.
29
+
30
+ .container-fluid {
31
+ .container-fixed();
32
+ }
33
+
34
+
35
+ // Row
36
+ //
37
+ // Rows contain and clear the floats of your columns.
38
+
39
+ .row {
40
+ .make-row();
41
+ }
42
+
43
+
44
+ // Columns
45
+ //
46
+ // Common styles for small and large grid columns
47
+
48
+ .make-grid-columns();
49
+
50
+
51
+ // Extra small grid
52
+ //
53
+ // Columns, offsets, pushes, and pulls for extra small devices like
54
+ // smartphones.
55
+
56
+ .make-grid-columns-float(xs);
57
+ .make-grid(@grid-columns, xs, width);
58
+ .make-grid(@grid-columns, xs, pull);
59
+ .make-grid(@grid-columns, xs, push);
60
+ .make-grid(@grid-columns, xs, offset);
61
+
62
+
63
+ // Small grid
64
+ //
65
+ // Columns, offsets, pushes, and pulls for the small device range, from phones
66
+ // to tablets.
67
+
68
+ @media (min-width: @screen-sm-min) {
69
+ .make-grid-columns-float(sm);
70
+ .make-grid(@grid-columns, sm, width);
71
+ .make-grid(@grid-columns, sm, pull);
72
+ .make-grid(@grid-columns, sm, push);
73
+ .make-grid(@grid-columns, sm, offset);
74
+ }
75
+
76
+
77
+ // Medium grid
78
+ //
79
+ // Columns, offsets, pushes, and pulls for the desktop device range.
80
+
81
+ @media (min-width: @screen-md-min) {
82
+ .make-grid-columns-float(md);
83
+ .make-grid(@grid-columns, md, width);
84
+ .make-grid(@grid-columns, md, pull);
85
+ .make-grid(@grid-columns, md, push);
86
+ .make-grid(@grid-columns, md, offset);
87
+ }
88
+
89
+
90
+ // Large grid
91
+ //
92
+ // Columns, offsets, pushes, and pulls for the large desktop device range.
93
+
94
+ @media (min-width: @screen-lg-min) {
95
+ .make-grid-columns-float(lg);
96
+ .make-grid(@grid-columns, lg, width);
97
+ .make-grid(@grid-columns, lg, pull);
98
+ .make-grid(@grid-columns, lg, push);
99
+ .make-grid(@grid-columns, lg, offset);
100
+ }
@@ -0,0 +1,157 @@
1
+ //
2
+ // Input groups
3
+ // --------------------------------------------------
4
+
5
+ // Base styles
6
+ // -------------------------
7
+ .input-group {
8
+ position: relative; // For dropdowns
9
+ display: table;
10
+ border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
11
+
12
+ // Undo padding and float of grid classes
13
+ &[class*="col-"] {
14
+ float: none;
15
+ padding-left: 0;
16
+ padding-right: 0;
17
+ }
18
+
19
+ .form-control {
20
+ // IE9 fubars the placeholder attribute in text inputs and the arrows on
21
+ // select elements in input groups. To fix it, we float the input. Details:
22
+ // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
23
+ float: left;
24
+
25
+ width: 100%;
26
+ margin-bottom: 0;
27
+ }
28
+ }
29
+
30
+ // Sizing options
31
+ //
32
+ // Remix the default form control sizing classes into new ones for easier
33
+ // manipulation.
34
+
35
+ .input-group-lg > .form-control,
36
+ .input-group-lg > .input-group-addon,
37
+ .input-group-lg > .input-group-btn > .btn { .input-lg(); }
38
+ .input-group-sm > .form-control,
39
+ .input-group-sm > .input-group-addon,
40
+ .input-group-sm > .input-group-btn > .btn { .input-sm(); }
41
+
42
+
43
+ // Display as table-cell
44
+ // -------------------------
45
+ .input-group-addon,
46
+ .input-group-btn,
47
+ .input-group .form-control {
48
+ display: table-cell;
49
+
50
+ &:not(:first-child):not(:last-child) {
51
+ border-radius: 0;
52
+ }
53
+ }
54
+ // Addon and addon wrapper for buttons
55
+ .input-group-addon,
56
+ .input-group-btn {
57
+ width: 1%;
58
+ white-space: nowrap;
59
+ vertical-align: middle; // Match the inputs
60
+ }
61
+
62
+ // Text input groups
63
+ // -------------------------
64
+ .input-group-addon {
65
+ padding: @padding-base-vertical @padding-base-horizontal;
66
+ font-size: @font-size-base;
67
+ font-weight: normal;
68
+ line-height: 1;
69
+ color: @input-color;
70
+ text-align: center;
71
+ background-color: @input-group-addon-bg;
72
+ border: 1px solid @input-group-addon-border-color;
73
+ border-radius: @border-radius-base;
74
+
75
+ // Sizing
76
+ &.input-sm {
77
+ padding: @padding-small-vertical @padding-small-horizontal;
78
+ font-size: @font-size-small;
79
+ border-radius: @border-radius-small;
80
+ }
81
+ &.input-lg {
82
+ padding: @padding-large-vertical @padding-large-horizontal;
83
+ font-size: @font-size-large;
84
+ border-radius: @border-radius-large;
85
+ }
86
+
87
+ // Nuke default margins from checkboxes and radios to vertically center within.
88
+ input[type="radio"],
89
+ input[type="checkbox"] {
90
+ margin-top: 0;
91
+ }
92
+ }
93
+
94
+ // Reset rounded corners
95
+ .input-group .form-control:first-child,
96
+ .input-group-addon:first-child,
97
+ .input-group-btn:first-child > .btn,
98
+ .input-group-btn:first-child > .btn-group > .btn,
99
+ .input-group-btn:first-child > .dropdown-toggle,
100
+ .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
101
+ .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
102
+ .border-right-radius(0);
103
+ }
104
+ .input-group-addon:first-child {
105
+ border-right: 0;
106
+ }
107
+ .input-group .form-control:last-child,
108
+ .input-group-addon:last-child,
109
+ .input-group-btn:last-child > .btn,
110
+ .input-group-btn:last-child > .btn-group > .btn,
111
+ .input-group-btn:last-child > .dropdown-toggle,
112
+ .input-group-btn:first-child > .btn:not(:first-child),
113
+ .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
114
+ .border-left-radius(0);
115
+ }
116
+ .input-group-addon:last-child {
117
+ border-left: 0;
118
+ }
119
+
120
+ // Button input groups
121
+ // -------------------------
122
+ .input-group-btn {
123
+ position: relative;
124
+ // Jankily prevent input button groups from wrapping with `white-space` and
125
+ // `font-size` in combination with `inline-block` on buttons.
126
+ font-size: 0;
127
+ white-space: nowrap;
128
+
129
+ // Negative margin for spacing, position for bringing hovered/focused/actived
130
+ // element above the siblings.
131
+ > .btn {
132
+ position: relative;
133
+ + .btn {
134
+ margin-left: -1px;
135
+ }
136
+ // Bring the "active" button to the front
137
+ &:hover,
138
+ &:focus,
139
+ &:active {
140
+ z-index: 2;
141
+ }
142
+ }
143
+
144
+ // Negative margin to only have a 1px border between the two
145
+ &:first-child {
146
+ > .btn,
147
+ > .btn-group {
148
+ margin-right: -1px;
149
+ }
150
+ }
151
+ &:last-child {
152
+ > .btn,
153
+ > .btn-group {
154
+ margin-left: -1px;
155
+ }
156
+ }
157
+ }
@@ -0,0 +1,44 @@
1
+ //
2
+ // Jumbotron
3
+ // --------------------------------------------------
4
+
5
+
6
+ .jumbotron {
7
+ padding: @jumbotron-padding;
8
+ margin-bottom: @jumbotron-padding;
9
+ color: @jumbotron-color;
10
+ background-color: @jumbotron-bg;
11
+
12
+ h1,
13
+ .h1 {
14
+ color: @jumbotron-heading-color;
15
+ }
16
+ p {
17
+ margin-bottom: (@jumbotron-padding / 2);
18
+ font-size: @jumbotron-font-size;
19
+ font-weight: 200;
20
+ }
21
+
22
+ .container & {
23
+ border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
24
+ }
25
+
26
+ .container {
27
+ max-width: 100%;
28
+ }
29
+
30
+ @media screen and (min-width: @screen-sm-min) {
31
+ padding-top: (@jumbotron-padding * 1.6);
32
+ padding-bottom: (@jumbotron-padding * 1.6);
33
+
34
+ .container & {
35
+ padding-left: (@jumbotron-padding * 2);
36
+ padding-right: (@jumbotron-padding * 2);
37
+ }
38
+
39
+ h1,
40
+ .h1 {
41
+ font-size: (@font-size-base * 4.5);
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,64 @@
1
+ //
2
+ // Labels
3
+ // --------------------------------------------------
4
+
5
+ .label {
6
+ display: inline;
7
+ padding: .2em .6em .3em;
8
+ font-size: 75%;
9
+ font-weight: bold;
10
+ line-height: 1;
11
+ color: @label-color;
12
+ text-align: center;
13
+ white-space: nowrap;
14
+ vertical-align: baseline;
15
+ border-radius: .25em;
16
+
17
+ // Add hover effects, but only for links
18
+ &[href] {
19
+ &:hover,
20
+ &:focus {
21
+ color: @label-link-hover-color;
22
+ text-decoration: none;
23
+ cursor: pointer;
24
+ }
25
+ }
26
+
27
+ // Empty labels collapse automatically (not available in IE8)
28
+ &:empty {
29
+ display: none;
30
+ }
31
+
32
+ // Quick fix for labels in buttons
33
+ .btn & {
34
+ position: relative;
35
+ top: -1px;
36
+ }
37
+ }
38
+
39
+ // Colors
40
+ // Contextual variations (linked labels get darker on :hover)
41
+
42
+ .label-default {
43
+ .label-variant(@label-default-bg);
44
+ }
45
+
46
+ .label-primary {
47
+ .label-variant(@label-primary-bg);
48
+ }
49
+
50
+ .label-success {
51
+ .label-variant(@label-success-bg);
52
+ }
53
+
54
+ .label-info {
55
+ .label-variant(@label-info-bg);
56
+ }
57
+
58
+ .label-warning {
59
+ .label-variant(@label-warning-bg);
60
+ }
61
+
62
+ .label-danger {
63
+ .label-variant(@label-danger-bg);
64
+ }
@@ -0,0 +1,110 @@
1
+ //
2
+ // List groups
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Base class
7
+ //
8
+ // Easily usable on <ul>, <ol>, or <div>.
9
+
10
+ .list-group {
11
+ // No need to set list-style: none; since .list-group-item is block level
12
+ margin-bottom: 20px;
13
+ padding-left: 0; // reset padding because ul and ol
14
+ }
15
+
16
+
17
+ // Individual list items
18
+ //
19
+ // Use on `li`s or `div`s within the `.list-group` parent.
20
+
21
+ .list-group-item {
22
+ position: relative;
23
+ display: block;
24
+ padding: 10px 15px;
25
+ // Place the border on the list items and negative margin up for better styling
26
+ margin-bottom: -1px;
27
+ background-color: @list-group-bg;
28
+ border: 1px solid @list-group-border;
29
+
30
+ // Round the first and last items
31
+ &:first-child {
32
+ .border-top-radius(@list-group-border-radius);
33
+ }
34
+ &:last-child {
35
+ margin-bottom: 0;
36
+ .border-bottom-radius(@list-group-border-radius);
37
+ }
38
+
39
+ // Align badges within list items
40
+ > .badge {
41
+ float: right;
42
+ }
43
+ > .badge + .badge {
44
+ margin-right: 5px;
45
+ }
46
+ }
47
+
48
+
49
+ // Linked list items
50
+ //
51
+ // Use anchor elements instead of `li`s or `div`s to create linked list items.
52
+ // Includes an extra `.active` modifier class for showing selected items.
53
+
54
+ a.list-group-item {
55
+ color: @list-group-link-color;
56
+
57
+ .list-group-item-heading {
58
+ color: @list-group-link-heading-color;
59
+ }
60
+
61
+ // Hover state
62
+ &:hover,
63
+ &:focus {
64
+ text-decoration: none;
65
+ background-color: @list-group-hover-bg;
66
+ }
67
+
68
+ // Active class on item itself, not parent
69
+ &.active,
70
+ &.active:hover,
71
+ &.active:focus {
72
+ z-index: 2; // Place active items above their siblings for proper border styling
73
+ color: @list-group-active-color;
74
+ background-color: @list-group-active-bg;
75
+ border-color: @list-group-active-border;
76
+
77
+ // Force color to inherit for custom content
78
+ .list-group-item-heading {
79
+ color: inherit;
80
+ }
81
+ .list-group-item-text {
82
+ color: @list-group-active-text-color;
83
+ }
84
+ }
85
+ }
86
+
87
+
88
+ // Contextual variants
89
+ //
90
+ // Add modifier classes to change text and background color on individual items.
91
+ // Organizationally, this must come after the `:hover` states.
92
+
93
+ .list-group-item-variant(success; @state-success-bg; @state-success-text);
94
+ .list-group-item-variant(info; @state-info-bg; @state-info-text);
95
+ .list-group-item-variant(warning; @state-warning-bg; @state-warning-text);
96
+ .list-group-item-variant(danger; @state-danger-bg; @state-danger-text);
97
+
98
+
99
+ // Custom content options
100
+ //
101
+ // Extra classes for creating well-formatted content within `.list-group-item`s.
102
+
103
+ .list-group-item-heading {
104
+ margin-top: 0;
105
+ margin-bottom: 5px;
106
+ }
107
+ .list-group-item-text {
108
+ margin-bottom: 0;
109
+ line-height: 1.3;
110
+ }