neo4j-meta_model 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +37 -0
  5. data/app/assets/javascripts/admin/models.js.coffee +25 -0
  6. data/app/assets/javascripts/meta_model.js.coffee +217 -0
  7. data/app/assets/javascripts/router.js.coffee +5 -0
  8. data/app/assets/javascripts/store.js.coffee +12 -0
  9. data/app/assets/javascripts/templates/application.emblem +3 -0
  10. data/app/assets/javascripts/templates/components/model-list-item.emblem +6 -0
  11. data/app/assets/javascripts/templates/components/model-list.emblem +4 -0
  12. data/app/assets/javascripts/templates/has_associations/index.emblem +25 -0
  13. data/app/assets/javascripts/templates/has_associations/new.emblem +50 -0
  14. data/app/assets/javascripts/templates/index.emblem +6 -0
  15. data/app/assets/javascripts/templates/models/edit.emblem +40 -0
  16. data/app/assets/javascripts/templates/models/hierarchy.emblem +8 -0
  17. data/app/assets/stylesheets/meta_model.css.scss +113 -0
  18. data/app/controllers/meta_model/application_controller.rb +12 -0
  19. data/app/controllers/meta_model/meta/has_associations_controller.rb +44 -0
  20. data/app/controllers/meta_model/meta/models_controller.rb +80 -0
  21. data/app/controllers/meta_model/meta/properties_controller.rb +36 -0
  22. data/app/controllers/meta_model/meta_controller.rb +7 -0
  23. data/app/controllers/meta_model/models_controller.rb +69 -0
  24. data/app/helpers/meta_model/application_helper.rb +10 -0
  25. data/app/helpers/meta_model/model_helper.rb +10 -0
  26. data/app/models/concerns/meta_model/model_base.rb +43 -0
  27. data/app/models/meta_model/has_association.rb +46 -0
  28. data/app/models/meta_model/meta_model_base.rb +7 -0
  29. data/app/models/meta_model/model.rb +51 -0
  30. data/app/models/meta_model/property.rb +11 -0
  31. data/app/serializers/meta_model/has_association_serializer.rb +13 -0
  32. data/app/serializers/meta_model/model_serializer.rb +11 -0
  33. data/app/serializers/meta_model/property_serializer.rb +6 -0
  34. data/app/views/layouts/meta_model.html.slim +28 -0
  35. data/app/views/meta_model/meta/associations/index.html.slim +12 -0
  36. data/app/views/meta_model/meta/index.html.slim +2 -0
  37. data/app/views/meta_model/meta/models/edit.html.slim +39 -0
  38. data/app/views/meta_model/models/_form.html.slim +72 -0
  39. data/app/views/meta_model/models/_has_many_association.html.slim +4 -0
  40. data/app/views/meta_model/models/_record_details.html.slim +13 -0
  41. data/app/views/meta_model/models/edit.html.slim +6 -0
  42. data/app/views/meta_model/models/index.html.slim +14 -0
  43. data/app/views/meta_model/models/meta_index.html.slim +6 -0
  44. data/app/views/meta_model/models/new.html.slim +7 -0
  45. data/app/views/meta_model/models/show.html.slim +18 -0
  46. data/config/initializers/active_model_serializer.rb +6 -0
  47. data/config/routes.rb +19 -0
  48. data/lib/ext/hash.rb +7 -0
  49. data/lib/meta_model/engine.rb +23 -0
  50. data/lib/meta_model/version.rb +3 -0
  51. data/lib/meta_model.rb +4 -0
  52. data/lib/meta_models.rb +70 -0
  53. data/lib/tasks/meta_model_tasks.rake +4 -0
  54. data/test/dummy/README.rdoc +28 -0
  55. data/test/dummy/Rakefile +6 -0
  56. data/test/dummy/app/assets/javascripts/application.js +14 -0
  57. data/test/dummy/app/assets/stylesheets/meta_model.css.scss +55 -0
  58. data/test/dummy/app/controllers/meta_model/application_controller.rb +8 -0
  59. data/test/dummy/app/helpers/application_helper.rb +2 -0
  60. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  61. data/test/dummy/bin/bundle +3 -0
  62. data/test/dummy/bin/rails +4 -0
  63. data/test/dummy/bin/rake +4 -0
  64. data/test/dummy/bin/setup +29 -0
  65. data/test/dummy/config/application.rb +29 -0
  66. data/test/dummy/config/boot.rb +5 -0
  67. data/test/dummy/config/database.yml +25 -0
  68. data/test/dummy/config/environment.rb +5 -0
  69. data/test/dummy/config/environments/development.rb +41 -0
  70. data/test/dummy/config/environments/production.rb +79 -0
  71. data/test/dummy/config/environments/test.rb +42 -0
  72. data/test/dummy/config/initializers/assets.rb +11 -0
  73. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  74. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  75. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  76. data/test/dummy/config/initializers/inflections.rb +16 -0
  77. data/test/dummy/config/initializers/mime_types.rb +4 -0
  78. data/test/dummy/config/initializers/session_store.rb +3 -0
  79. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  80. data/test/dummy/config/locales/en.yml +23 -0
  81. data/test/dummy/config/routes.rb +21 -0
  82. data/test/dummy/config/secrets.yml +22 -0
  83. data/test/dummy/config.ru +4 -0
  84. data/test/dummy/public/404.html +67 -0
  85. data/test/dummy/public/422.html +67 -0
  86. data/test/dummy/public/500.html +66 -0
  87. data/test/dummy/public/favicon.ico +0 -0
  88. data/test/integration/navigation_test.rb +10 -0
  89. data/test/meta_model_test.rb +7 -0
  90. data/test/test_helper.rb +19 -0
  91. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  92. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
  93. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  94. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  95. data/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  96. data/vendor/assets/javascripts/backbone.js +1608 -0
  97. data/vendor/assets/javascripts/bootstrap/affix.js +162 -0
  98. data/vendor/assets/javascripts/bootstrap/alert.js +94 -0
  99. data/vendor/assets/javascripts/bootstrap/button.js +116 -0
  100. data/vendor/assets/javascripts/bootstrap/carousel.js +240 -0
  101. data/vendor/assets/javascripts/bootstrap/collapse.js +211 -0
  102. data/vendor/assets/javascripts/bootstrap/dropdown.js +161 -0
  103. data/vendor/assets/javascripts/bootstrap/modal.js +324 -0
  104. data/vendor/assets/javascripts/bootstrap/popover.js +119 -0
  105. data/vendor/assets/javascripts/bootstrap/scrollspy.js +175 -0
  106. data/vendor/assets/javascripts/bootstrap/tab.js +153 -0
  107. data/vendor/assets/javascripts/bootstrap/tooltip.js +478 -0
  108. data/vendor/assets/javascripts/bootstrap/transition.js +59 -0
  109. data/vendor/assets/javascripts/bootstrap-sprockets.js +12 -0
  110. data/vendor/assets/javascripts/bootstrap.js +2304 -0
  111. data/vendor/assets/javascripts/lodash.js +6785 -0
  112. data/vendor/assets/javascripts/rivets-backbone.js +97 -0
  113. data/vendor/assets/javascripts/rivets.js +1273 -0
  114. data/vendor/assets/javascripts/sightglass.js +203 -0
  115. data/vendor/assets/stylesheets/_bootstrap-compass.scss +7 -0
  116. data/vendor/assets/stylesheets/_bootstrap-mincer.scss +17 -0
  117. data/vendor/assets/stylesheets/_bootstrap-sprockets.scss +7 -0
  118. data/vendor/assets/stylesheets/_bootstrap.scss +50 -0
  119. data/vendor/assets/stylesheets/bootstrap/_alerts.scss +68 -0
  120. data/vendor/assets/stylesheets/bootstrap/_badges.scss +63 -0
  121. data/vendor/assets/stylesheets/bootstrap/_breadcrumbs.scss +26 -0
  122. data/vendor/assets/stylesheets/bootstrap/_button-groups.scss +243 -0
  123. data/vendor/assets/stylesheets/bootstrap/_buttons.scss +160 -0
  124. data/vendor/assets/stylesheets/bootstrap/_carousel.scss +267 -0
  125. data/vendor/assets/stylesheets/bootstrap/_close.scss +35 -0
  126. data/vendor/assets/stylesheets/bootstrap/_code.scss +69 -0
  127. data/vendor/assets/stylesheets/bootstrap/_component-animations.scss +38 -0
  128. data/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +213 -0
  129. data/vendor/assets/stylesheets/bootstrap/_forms.scss +548 -0
  130. data/vendor/assets/stylesheets/bootstrap/_glyphicons.scss +236 -0
  131. data/vendor/assets/stylesheets/bootstrap/_grid.scss +84 -0
  132. data/vendor/assets/stylesheets/bootstrap/_input-groups.scss +166 -0
  133. data/vendor/assets/stylesheets/bootstrap/_jumbotron.scss +49 -0
  134. data/vendor/assets/stylesheets/bootstrap/_labels.scss +66 -0
  135. data/vendor/assets/stylesheets/bootstrap/_list-group.scss +124 -0
  136. data/vendor/assets/stylesheets/bootstrap/_media.scss +47 -0
  137. data/vendor/assets/stylesheets/bootstrap/_mixins.scss +39 -0
  138. data/vendor/assets/stylesheets/bootstrap/_modals.scss +148 -0
  139. data/vendor/assets/stylesheets/bootstrap/_navbar.scss +662 -0
  140. data/vendor/assets/stylesheets/bootstrap/_navs.scss +244 -0
  141. data/vendor/assets/stylesheets/bootstrap/_normalize.scss +427 -0
  142. data/vendor/assets/stylesheets/bootstrap/_pager.scss +54 -0
  143. data/vendor/assets/stylesheets/bootstrap/_pagination.scss +88 -0
  144. data/vendor/assets/stylesheets/bootstrap/_panels.scss +261 -0
  145. data/vendor/assets/stylesheets/bootstrap/_popovers.scss +135 -0
  146. data/vendor/assets/stylesheets/bootstrap/_print.scss +107 -0
  147. data/vendor/assets/stylesheets/bootstrap/_progress-bars.scss +87 -0
  148. data/vendor/assets/stylesheets/bootstrap/_responsive-embed.scss +35 -0
  149. data/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss +174 -0
  150. data/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +150 -0
  151. data/vendor/assets/stylesheets/bootstrap/_tables.scss +234 -0
  152. data/vendor/assets/stylesheets/bootstrap/_theme.scss +272 -0
  153. data/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +38 -0
  154. data/vendor/assets/stylesheets/bootstrap/_tooltip.scss +103 -0
  155. data/vendor/assets/stylesheets/bootstrap/_type.scss +298 -0
  156. data/vendor/assets/stylesheets/bootstrap/_utilities.scss +56 -0
  157. data/vendor/assets/stylesheets/bootstrap/_variables.scss +864 -0
  158. data/vendor/assets/stylesheets/bootstrap/_wells.scss +29 -0
  159. data/vendor/assets/stylesheets/bootstrap/mixins/_alerts.scss +14 -0
  160. data/vendor/assets/stylesheets/bootstrap/mixins/_background-variant.scss +11 -0
  161. data/vendor/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
  162. data/vendor/assets/stylesheets/bootstrap/mixins/_buttons.scss +52 -0
  163. data/vendor/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  164. data/vendor/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
  165. data/vendor/assets/stylesheets/bootstrap/mixins/_forms.scss +88 -0
  166. data/vendor/assets/stylesheets/bootstrap/mixins/_gradients.scss +58 -0
  167. data/vendor/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
  168. data/vendor/assets/stylesheets/bootstrap/mixins/_grid.scss +122 -0
  169. data/vendor/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
  170. data/vendor/assets/stylesheets/bootstrap/mixins/_image.scss +33 -0
  171. data/vendor/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
  172. data/vendor/assets/stylesheets/bootstrap/mixins/_list-group.scss +31 -0
  173. data/vendor/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  174. data/vendor/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  175. data/vendor/assets/stylesheets/bootstrap/mixins/_opacity.scss +8 -0
  176. data/vendor/assets/stylesheets/bootstrap/mixins/_pagination.scss +23 -0
  177. data/vendor/assets/stylesheets/bootstrap/mixins/_panels.scss +24 -0
  178. data/vendor/assets/stylesheets/bootstrap/mixins/_progress-bar.scss +10 -0
  179. data/vendor/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  180. data/vendor/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  181. data/vendor/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +21 -0
  182. data/vendor/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
  183. data/vendor/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  184. data/vendor/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
  185. data/vendor/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +11 -0
  186. data/vendor/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
  187. data/vendor/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  188. metadata +365 -0
@@ -0,0 +1,272 @@
1
+
2
+ //
3
+ // Load core variables and mixins
4
+ // --------------------------------------------------
5
+
6
+ @import "variables";
7
+ @import "mixins";
8
+
9
+
10
+ //
11
+ // Buttons
12
+ // --------------------------------------------------
13
+
14
+ // Common styles
15
+ .btn-default,
16
+ .btn-primary,
17
+ .btn-success,
18
+ .btn-info,
19
+ .btn-warning,
20
+ .btn-danger {
21
+ text-shadow: 0 -1px 0 rgba(0,0,0,.2);
22
+ $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
23
+ @include box-shadow($shadow);
24
+
25
+ // Reset the shadow
26
+ &:active,
27
+ &.active {
28
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
29
+ }
30
+
31
+ .badge {
32
+ text-shadow: none;
33
+ }
34
+ }
35
+
36
+ // Mixin for generating new styles
37
+ @mixin btn-styles($btn-color: #555) {
38
+ @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%));
39
+ @include reset-filter; // Disable gradients for IE9 because filter bleeds through rounded corners
40
+ background-repeat: repeat-x;
41
+ border-color: darken($btn-color, 14%);
42
+
43
+ &:hover,
44
+ &:focus {
45
+ background-color: darken($btn-color, 12%);
46
+ background-position: 0 -15px;
47
+ }
48
+
49
+ &:active,
50
+ &.active {
51
+ background-color: darken($btn-color, 12%);
52
+ border-color: darken($btn-color, 14%);
53
+ }
54
+
55
+ &:disabled,
56
+ &[disabled] {
57
+ background-color: darken($btn-color, 12%);
58
+ background-image: none;
59
+ }
60
+ }
61
+
62
+ // Common styles
63
+ .btn {
64
+ // Remove the gradient for the pressed/active state
65
+ &:active,
66
+ &.active {
67
+ background-image: none;
68
+ }
69
+ }
70
+
71
+ // Apply the mixin to the buttons
72
+ .btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
73
+ .btn-primary { @include btn-styles($btn-primary-bg); }
74
+ .btn-success { @include btn-styles($btn-success-bg); }
75
+ .btn-info { @include btn-styles($btn-info-bg); }
76
+ .btn-warning { @include btn-styles($btn-warning-bg); }
77
+ .btn-danger { @include btn-styles($btn-danger-bg); }
78
+
79
+
80
+ //
81
+ // Images
82
+ // --------------------------------------------------
83
+
84
+ .thumbnail,
85
+ .img-thumbnail {
86
+ @include box-shadow(0 1px 2px rgba(0,0,0,.075));
87
+ }
88
+
89
+
90
+ //
91
+ // Dropdowns
92
+ // --------------------------------------------------
93
+
94
+ .dropdown-menu > li > a:hover,
95
+ .dropdown-menu > li > a:focus {
96
+ @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
97
+ background-color: darken($dropdown-link-hover-bg, 5%);
98
+ }
99
+ .dropdown-menu > .active > a,
100
+ .dropdown-menu > .active > a:hover,
101
+ .dropdown-menu > .active > a:focus {
102
+ @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
103
+ background-color: darken($dropdown-link-active-bg, 5%);
104
+ }
105
+
106
+
107
+ //
108
+ // Navbar
109
+ // --------------------------------------------------
110
+
111
+ // Default navbar
112
+ .navbar-default {
113
+ @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
114
+ @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
115
+ border-radius: $navbar-border-radius;
116
+ $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
117
+ @include box-shadow($shadow);
118
+
119
+ .navbar-nav > .open > a,
120
+ .navbar-nav > .active > a {
121
+ @include gradient-vertical($start-color: darken($navbar-default-link-active-bg, 5%), $end-color: darken($navbar-default-link-active-bg, 2%));
122
+ @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
123
+ }
124
+ }
125
+ .navbar-brand,
126
+ .navbar-nav > li > a {
127
+ text-shadow: 0 1px 0 rgba(255,255,255,.25);
128
+ }
129
+
130
+ // Inverted navbar
131
+ .navbar-inverse {
132
+ @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
133
+ @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
134
+
135
+ .navbar-nav > .open > a,
136
+ .navbar-nav > .active > a {
137
+ @include gradient-vertical($start-color: $navbar-inverse-link-active-bg, $end-color: lighten($navbar-inverse-link-active-bg, 2.5%));
138
+ @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
139
+ }
140
+
141
+ .navbar-brand,
142
+ .navbar-nav > li > a {
143
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
144
+ }
145
+ }
146
+
147
+ // Undo rounded corners in static and fixed navbars
148
+ .navbar-static-top,
149
+ .navbar-fixed-top,
150
+ .navbar-fixed-bottom {
151
+ border-radius: 0;
152
+ }
153
+
154
+ // Fix active state of dropdown items in collapsed mode
155
+ @media (max-width: $grid-float-breakpoint-max) {
156
+ .navbar .navbar-nav .open .dropdown-menu > .active > a {
157
+ &,
158
+ &:hover,
159
+ &:focus {
160
+ color: #fff;
161
+ @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
162
+ }
163
+ }
164
+ }
165
+
166
+
167
+ //
168
+ // Alerts
169
+ // --------------------------------------------------
170
+
171
+ // Common styles
172
+ .alert {
173
+ text-shadow: 0 1px 0 rgba(255,255,255,.2);
174
+ $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
175
+ @include box-shadow($shadow);
176
+ }
177
+
178
+ // Mixin for generating new styles
179
+ @mixin alert-styles($color) {
180
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
181
+ border-color: darken($color, 15%);
182
+ }
183
+
184
+ // Apply the mixin to the alerts
185
+ .alert-success { @include alert-styles($alert-success-bg); }
186
+ .alert-info { @include alert-styles($alert-info-bg); }
187
+ .alert-warning { @include alert-styles($alert-warning-bg); }
188
+ .alert-danger { @include alert-styles($alert-danger-bg); }
189
+
190
+
191
+ //
192
+ // Progress bars
193
+ // --------------------------------------------------
194
+
195
+ // Give the progress background some depth
196
+ .progress {
197
+ @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
198
+ }
199
+
200
+ // Mixin for generating new styles
201
+ @mixin progress-bar-styles($color) {
202
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
203
+ }
204
+
205
+ // Apply the mixin to the progress bars
206
+ .progress-bar { @include progress-bar-styles($progress-bar-bg); }
207
+ .progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); }
208
+ .progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); }
209
+ .progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); }
210
+ .progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); }
211
+
212
+ // Reset the striped class because our mixins don't do multiple gradients and
213
+ // the above custom styles override the new `.progress-bar-striped` in v3.2.0.
214
+ .progress-bar-striped {
215
+ @include gradient-striped;
216
+ }
217
+
218
+
219
+ //
220
+ // List groups
221
+ // --------------------------------------------------
222
+
223
+ .list-group {
224
+ border-radius: $border-radius-base;
225
+ @include box-shadow(0 1px 2px rgba(0,0,0,.075));
226
+ }
227
+ .list-group-item.active,
228
+ .list-group-item.active:hover,
229
+ .list-group-item.active:focus {
230
+ text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
231
+ @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
232
+ border-color: darken($list-group-active-border, 7.5%);
233
+
234
+ .badge {
235
+ text-shadow: none;
236
+ }
237
+ }
238
+
239
+
240
+ //
241
+ // Panels
242
+ // --------------------------------------------------
243
+
244
+ // Common styles
245
+ .panel {
246
+ @include box-shadow(0 1px 2px rgba(0,0,0,.05));
247
+ }
248
+
249
+ // Mixin for generating new styles
250
+ @mixin panel-heading-styles($color) {
251
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
252
+ }
253
+
254
+ // Apply the mixin to the panel headings only
255
+ .panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); }
256
+ .panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); }
257
+ .panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); }
258
+ .panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); }
259
+ .panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); }
260
+ .panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); }
261
+
262
+
263
+ //
264
+ // Wells
265
+ // --------------------------------------------------
266
+
267
+ .well {
268
+ @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
269
+ border-color: darken($well-bg, 10%);
270
+ $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
271
+ @include box-shadow($shadow);
272
+ }
@@ -0,0 +1,38 @@
1
+ //
2
+ // Thumbnails
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Mixin and adjust the regular image class
7
+ .thumbnail {
8
+ display: block;
9
+ padding: $thumbnail-padding;
10
+ margin-bottom: $line-height-computed;
11
+ line-height: $line-height-base;
12
+ background-color: $thumbnail-bg;
13
+ border: 1px solid $thumbnail-border;
14
+ border-radius: $thumbnail-border-radius;
15
+ @include transition(border .2s ease-in-out);
16
+
17
+ > img,
18
+ a > img {
19
+ @include img-responsive;
20
+ margin-left: auto;
21
+ margin-right: auto;
22
+ }
23
+
24
+ // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active
25
+
26
+ // Image captions
27
+ .caption {
28
+ padding: $thumbnail-caption-padding;
29
+ color: $thumbnail-caption-color;
30
+ }
31
+ }
32
+
33
+ // Add a hover state for linked versions only
34
+ a.thumbnail:hover,
35
+ a.thumbnail:focus,
36
+ a.thumbnail.active {
37
+ border-color: $link-color;
38
+ }
@@ -0,0 +1,103 @@
1
+ //
2
+ // Tooltips
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Base class
7
+ .tooltip {
8
+ position: absolute;
9
+ z-index: $zindex-tooltip;
10
+ display: block;
11
+ visibility: visible;
12
+ // Reset font and text propertes given new insertion method
13
+ font-family: $font-family-base;
14
+ font-size: $font-size-small;
15
+ font-weight: normal;
16
+ line-height: 1.4;
17
+ @include opacity(0);
18
+
19
+ &.in { @include opacity($tooltip-opacity); }
20
+ &.top { margin-top: -3px; padding: $tooltip-arrow-width 0; }
21
+ &.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; }
22
+ &.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; }
23
+ &.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; }
24
+ }
25
+
26
+ // Wrapper for the tooltip content
27
+ .tooltip-inner {
28
+ max-width: $tooltip-max-width;
29
+ padding: 3px 8px;
30
+ color: $tooltip-color;
31
+ text-align: center;
32
+ text-decoration: none;
33
+ background-color: $tooltip-bg;
34
+ border-radius: $border-radius-base;
35
+ }
36
+
37
+ // Arrows
38
+ .tooltip-arrow {
39
+ position: absolute;
40
+ width: 0;
41
+ height: 0;
42
+ border-color: transparent;
43
+ border-style: solid;
44
+ }
45
+ // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
46
+ .tooltip {
47
+ &.top .tooltip-arrow {
48
+ bottom: 0;
49
+ left: 50%;
50
+ margin-left: -$tooltip-arrow-width;
51
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
52
+ border-top-color: $tooltip-arrow-color;
53
+ }
54
+ &.top-left .tooltip-arrow {
55
+ bottom: 0;
56
+ right: $tooltip-arrow-width;
57
+ margin-bottom: -$tooltip-arrow-width;
58
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
59
+ border-top-color: $tooltip-arrow-color;
60
+ }
61
+ &.top-right .tooltip-arrow {
62
+ bottom: 0;
63
+ left: $tooltip-arrow-width;
64
+ margin-bottom: -$tooltip-arrow-width;
65
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
66
+ border-top-color: $tooltip-arrow-color;
67
+ }
68
+ &.right .tooltip-arrow {
69
+ top: 50%;
70
+ left: 0;
71
+ margin-top: -$tooltip-arrow-width;
72
+ border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
73
+ border-right-color: $tooltip-arrow-color;
74
+ }
75
+ &.left .tooltip-arrow {
76
+ top: 50%;
77
+ right: 0;
78
+ margin-top: -$tooltip-arrow-width;
79
+ border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
80
+ border-left-color: $tooltip-arrow-color;
81
+ }
82
+ &.bottom .tooltip-arrow {
83
+ top: 0;
84
+ left: 50%;
85
+ margin-left: -$tooltip-arrow-width;
86
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
87
+ border-bottom-color: $tooltip-arrow-color;
88
+ }
89
+ &.bottom-left .tooltip-arrow {
90
+ top: 0;
91
+ right: $tooltip-arrow-width;
92
+ margin-top: -$tooltip-arrow-width;
93
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
94
+ border-bottom-color: $tooltip-arrow-color;
95
+ }
96
+ &.bottom-right .tooltip-arrow {
97
+ top: 0;
98
+ left: $tooltip-arrow-width;
99
+ margin-top: -$tooltip-arrow-width;
100
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
101
+ border-bottom-color: $tooltip-arrow-color;
102
+ }
103
+ }
@@ -0,0 +1,298 @@
1
+ //
2
+ // Typography
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Headings
7
+ // -------------------------
8
+
9
+ h1, h2, h3, h4, h5, h6,
10
+ .h1, .h2, .h3, .h4, .h5, .h6 {
11
+ font-family: $headings-font-family;
12
+ font-weight: $headings-font-weight;
13
+ line-height: $headings-line-height;
14
+ color: $headings-color;
15
+
16
+ small,
17
+ .small {
18
+ font-weight: normal;
19
+ line-height: 1;
20
+ color: $headings-small-color;
21
+ }
22
+ }
23
+
24
+ h1, .h1,
25
+ h2, .h2,
26
+ h3, .h3 {
27
+ margin-top: $line-height-computed;
28
+ margin-bottom: ($line-height-computed / 2);
29
+
30
+ small,
31
+ .small {
32
+ font-size: 65%;
33
+ }
34
+ }
35
+ h4, .h4,
36
+ h5, .h5,
37
+ h6, .h6 {
38
+ margin-top: ($line-height-computed / 2);
39
+ margin-bottom: ($line-height-computed / 2);
40
+
41
+ small,
42
+ .small {
43
+ font-size: 75%;
44
+ }
45
+ }
46
+
47
+ h1, .h1 { font-size: $font-size-h1; }
48
+ h2, .h2 { font-size: $font-size-h2; }
49
+ h3, .h3 { font-size: $font-size-h3; }
50
+ h4, .h4 { font-size: $font-size-h4; }
51
+ h5, .h5 { font-size: $font-size-h5; }
52
+ h6, .h6 { font-size: $font-size-h6; }
53
+
54
+
55
+ // Body text
56
+ // -------------------------
57
+
58
+ p {
59
+ margin: 0 0 ($line-height-computed / 2);
60
+ }
61
+
62
+ .lead {
63
+ margin-bottom: $line-height-computed;
64
+ font-size: floor(($font-size-base * 1.15));
65
+ font-weight: 300;
66
+ line-height: 1.4;
67
+
68
+ @media (min-width: $screen-sm-min) {
69
+ font-size: ($font-size-base * 1.5);
70
+ }
71
+ }
72
+
73
+
74
+ // Emphasis & misc
75
+ // -------------------------
76
+
77
+ // Ex: (12px small font / 14px base font) * 100% = about 85%
78
+ small,
79
+ .small {
80
+ font-size: floor((100% * $font-size-small / $font-size-base));
81
+ }
82
+
83
+ mark,
84
+ .mark {
85
+ background-color: $state-warning-bg;
86
+ padding: .2em;
87
+ }
88
+
89
+ // Alignment
90
+ .text-left { text-align: left; }
91
+ .text-right { text-align: right; }
92
+ .text-center { text-align: center; }
93
+ .text-justify { text-align: justify; }
94
+ .text-nowrap { white-space: nowrap; }
95
+
96
+ // Transformation
97
+ .text-lowercase { text-transform: lowercase; }
98
+ .text-uppercase { text-transform: uppercase; }
99
+ .text-capitalize { text-transform: capitalize; }
100
+
101
+ // Contextual colors
102
+ .text-muted {
103
+ color: $text-muted;
104
+ }
105
+
106
+ @include text-emphasis-variant('.text-primary', $brand-primary);
107
+
108
+ @include text-emphasis-variant('.text-success', $state-success-text);
109
+
110
+ @include text-emphasis-variant('.text-info', $state-info-text);
111
+
112
+ @include text-emphasis-variant('.text-warning', $state-warning-text);
113
+
114
+ @include text-emphasis-variant('.text-danger', $state-danger-text);
115
+
116
+ // Contextual backgrounds
117
+ // For now we'll leave these alongside the text classes until v4 when we can
118
+ // safely shift things around (per SemVer rules).
119
+ .bg-primary {
120
+ // Given the contrast here, this is the only class to have its color inverted
121
+ // automatically.
122
+ color: #fff;
123
+ }
124
+ @include bg-variant('.bg-primary', $brand-primary);
125
+
126
+ @include bg-variant('.bg-success', $state-success-bg);
127
+
128
+ @include bg-variant('.bg-info', $state-info-bg);
129
+
130
+ @include bg-variant('.bg-warning', $state-warning-bg);
131
+
132
+ @include bg-variant('.bg-danger', $state-danger-bg);
133
+
134
+
135
+ // Page header
136
+ // -------------------------
137
+
138
+ .page-header {
139
+ padding-bottom: (($line-height-computed / 2) - 1);
140
+ margin: ($line-height-computed * 2) 0 $line-height-computed;
141
+ border-bottom: 1px solid $page-header-border-color;
142
+ }
143
+
144
+
145
+ // Lists
146
+ // -------------------------
147
+
148
+ // Unordered and Ordered lists
149
+ ul,
150
+ ol {
151
+ margin-top: 0;
152
+ margin-bottom: ($line-height-computed / 2);
153
+ ul,
154
+ ol {
155
+ margin-bottom: 0;
156
+ }
157
+ }
158
+
159
+ // List options
160
+
161
+ // [converter] extracted from `.list-unstyled` for libsass compatibility
162
+ @mixin list-unstyled {
163
+ padding-left: 0;
164
+ list-style: none;
165
+ }
166
+ // [converter] extracted as `@mixin list-unstyled` for libsass compatibility
167
+ .list-unstyled {
168
+ @include list-unstyled;
169
+ }
170
+
171
+
172
+ // Inline turns list items into inline-block
173
+ .list-inline {
174
+ @include list-unstyled;
175
+ margin-left: -5px;
176
+
177
+ > li {
178
+ display: inline-block;
179
+ padding-left: 5px;
180
+ padding-right: 5px;
181
+ }
182
+ }
183
+
184
+ // Description Lists
185
+ dl {
186
+ margin-top: 0; // Remove browser default
187
+ margin-bottom: $line-height-computed;
188
+ }
189
+ dt,
190
+ dd {
191
+ line-height: $line-height-base;
192
+ }
193
+ dt {
194
+ font-weight: bold;
195
+ }
196
+ dd {
197
+ margin-left: 0; // Undo browser default
198
+ }
199
+
200
+ // Horizontal description lists
201
+ //
202
+ // Defaults to being stacked without any of the below styles applied, until the
203
+ // grid breakpoint is reached (default of ~768px).
204
+
205
+ .dl-horizontal {
206
+ dd {
207
+ @include clearfix; // Clear the floated `dt` if an empty `dd` is present
208
+ }
209
+
210
+ @media (min-width: $grid-float-breakpoint) {
211
+ dt {
212
+ float: left;
213
+ width: ($dl-horizontal-offset - 20);
214
+ clear: left;
215
+ text-align: right;
216
+ @include text-overflow;
217
+ }
218
+ dd {
219
+ margin-left: $dl-horizontal-offset;
220
+ }
221
+ }
222
+ }
223
+
224
+
225
+ // Misc
226
+ // -------------------------
227
+
228
+ // Abbreviations and acronyms
229
+ abbr[title],
230
+ // Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
231
+ abbr[data-original-title] {
232
+ cursor: help;
233
+ border-bottom: 1px dotted $abbr-border-color;
234
+ }
235
+ .initialism {
236
+ font-size: 90%;
237
+ text-transform: uppercase;
238
+ }
239
+
240
+ // Blockquotes
241
+ blockquote {
242
+ padding: ($line-height-computed / 2) $line-height-computed;
243
+ margin: 0 0 $line-height-computed;
244
+ font-size: $blockquote-font-size;
245
+ border-left: 5px solid $blockquote-border-color;
246
+
247
+ p,
248
+ ul,
249
+ ol {
250
+ &:last-child {
251
+ margin-bottom: 0;
252
+ }
253
+ }
254
+
255
+ // Note: Deprecated small and .small as of v3.1.0
256
+ // Context: https://github.com/twbs/bootstrap/issues/11660
257
+ footer,
258
+ small,
259
+ .small {
260
+ display: block;
261
+ font-size: 80%; // back to default font-size
262
+ line-height: $line-height-base;
263
+ color: $blockquote-small-color;
264
+
265
+ &:before {
266
+ content: '\2014 \00A0'; // em dash, nbsp
267
+ }
268
+ }
269
+ }
270
+
271
+ // Opposite alignment of blockquote
272
+ //
273
+ // Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
274
+ .blockquote-reverse,
275
+ blockquote.pull-right {
276
+ padding-right: 15px;
277
+ padding-left: 0;
278
+ border-right: 5px solid $blockquote-border-color;
279
+ border-left: 0;
280
+ text-align: right;
281
+
282
+ // Account for citation
283
+ footer,
284
+ small,
285
+ .small {
286
+ &:before { content: ''; }
287
+ &:after {
288
+ content: '\00A0 \2014'; // nbsp, em dash
289
+ }
290
+ }
291
+ }
292
+
293
+ // Addresses
294
+ address {
295
+ margin-bottom: $line-height-computed;
296
+ font-style: normal;
297
+ line-height: $line-height-base;
298
+ }