flexa_lib 0.1.3 → 0.1.5
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.
- data/lib/flexa_lib/version.rb +1 -1
- data/vendor/assets/images/glyphicons-halflings-white.png +0 -0
- data/vendor/assets/images/glyphicons-halflings.png +0 -0
- data/vendor/assets/javascripts/bootstrap-alert.js +94 -0
- data/vendor/assets/javascripts/bootstrap-button.js +98 -0
- data/vendor/assets/javascripts/bootstrap-carousel.js +157 -0
- data/vendor/assets/javascripts/bootstrap-collapse.js +136 -0
- data/vendor/assets/javascripts/bootstrap-dropdown.js +92 -0
- data/vendor/assets/javascripts/bootstrap-modal.js +210 -0
- data/vendor/assets/javascripts/bootstrap-popover.js +95 -0
- data/vendor/assets/javascripts/bootstrap-scrollspy.js +125 -0
- data/vendor/assets/javascripts/bootstrap-tab.js +130 -0
- data/vendor/assets/javascripts/bootstrap-tooltip.js +270 -0
- data/vendor/assets/javascripts/bootstrap-transition.js +51 -0
- data/vendor/assets/javascripts/bootstrap-typeahead.js +271 -0
- data/vendor/assets/javascripts/bootstrap.js +12 -0
- data/vendor/assets/javascripts/flexa-themejs.js +94 -0
- data/vendor/assets/javascripts/jquery.cookie.js +96 -0
- data/vendor/assets/javascripts/jquery.pjax.js +460 -0
- data/vendor/assets/javascripts/populate.js +272 -0
- data/vendor/assets/stylesheets/_bootstrap-responsive.scss +318 -0
- data/vendor/assets/stylesheets/_bootstrap.scss +63 -0
- data/vendor/assets/stylesheets/bootstrap/_accordion.scss +28 -0
- data/vendor/assets/stylesheets/bootstrap/_alerts.scss +62 -0
- data/vendor/assets/stylesheets/bootstrap/_breadcrumbs.scss +22 -0
- data/vendor/assets/stylesheets/bootstrap/_button-groups.scss +136 -0
- data/vendor/assets/stylesheets/bootstrap/_buttons.scss +163 -0
- data/vendor/assets/stylesheets/bootstrap/_carousel.scss +116 -0
- data/vendor/assets/stylesheets/bootstrap/_close.scss +18 -0
- data/vendor/assets/stylesheets/bootstrap/_code.scss +56 -0
- data/vendor/assets/stylesheets/bootstrap/_component-animations.scss +18 -0
- data/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +126 -0
- data/vendor/assets/stylesheets/bootstrap/_forms.scss +463 -0
- data/vendor/assets/stylesheets/bootstrap/_grid.scss +8 -0
- data/vendor/assets/stylesheets/bootstrap/_hero-unit.scss +20 -0
- data/vendor/assets/stylesheets/bootstrap/_labels.scss +32 -0
- data/vendor/assets/stylesheets/bootstrap/_layouts.scss +17 -0
- data/vendor/assets/stylesheets/bootstrap/_mixins.scss +530 -0
- data/vendor/assets/stylesheets/bootstrap/_modals.scss +83 -0
- data/vendor/assets/stylesheets/bootstrap/_navbar.scss +288 -0
- data/vendor/assets/stylesheets/bootstrap/_navs.scss +329 -0
- data/vendor/assets/stylesheets/bootstrap/_pager.scss +30 -0
- data/vendor/assets/stylesheets/bootstrap/_pagination.scss +53 -0
- data/vendor/assets/stylesheets/bootstrap/_popovers.scss +49 -0
- data/vendor/assets/stylesheets/bootstrap/_progress-bars.scss +95 -0
- data/vendor/assets/stylesheets/bootstrap/_reset.scss +105 -0
- data/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +29 -0
- data/vendor/assets/stylesheets/bootstrap/_sprites.scss +157 -0
- data/vendor/assets/stylesheets/bootstrap/_tables.scss +126 -0
- data/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +35 -0
- data/vendor/assets/stylesheets/bootstrap/_tooltip.scss +35 -0
- data/vendor/assets/stylesheets/bootstrap/_type.scss +209 -0
- data/vendor/assets/stylesheets/bootstrap/_utilities.scss +23 -0
- data/vendor/assets/stylesheets/bootstrap/_variables.scss +103 -0
- data/vendor/assets/stylesheets/bootstrap/_wells.scss +17 -0
- data/vendor/assets/stylesheets/docs.css.scss +790 -0
- data/vendor/assets/stylesheets/flexa-theme.css.scss +32 -0
- data/vendor/assets/stylesheets/override.css.scss +77 -0
- metadata +60 -3
@@ -0,0 +1,272 @@
|
|
1
|
+
|
2
|
+
jQuery.fn.populate = function(obj, options) {
|
3
|
+
|
4
|
+
|
5
|
+
// ------------------------------------------------------------------------------------------
|
6
|
+
// JSON conversion function
|
7
|
+
|
8
|
+
// convert
|
9
|
+
function parseJSON(obj, path)
|
10
|
+
{
|
11
|
+
// prepare
|
12
|
+
path = path || '';
|
13
|
+
|
14
|
+
// iteration (objects / arrays)
|
15
|
+
if(obj == undefined)
|
16
|
+
{
|
17
|
+
// do nothing
|
18
|
+
}
|
19
|
+
else if(obj.constructor == Object)
|
20
|
+
{
|
21
|
+
for(var prop in obj)
|
22
|
+
{
|
23
|
+
var name = path + (path == '' ? prop : '[' +prop+ ']');
|
24
|
+
parseJSON(obj[prop], name);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
else if(obj.constructor == Array)
|
29
|
+
{
|
30
|
+
for(var i = 0; i < obj.length; i++)
|
31
|
+
{
|
32
|
+
var index = options.useIndices ? i : '';
|
33
|
+
index = options.railsNaming ? '[' +index+']' : index;
|
34
|
+
var name = path + index;
|
35
|
+
parseJSON(obj[i], name);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
// assignment (values)
|
40
|
+
else
|
41
|
+
{
|
42
|
+
// if the element name hasn't yet been defined, create it as a single value
|
43
|
+
if(arr[path] == undefined)
|
44
|
+
{
|
45
|
+
arr[path] = obj;
|
46
|
+
}
|
47
|
+
|
48
|
+
// if the element name HAS been defined, but it's a single value, convert to an array and add the new value
|
49
|
+
else if(arr[path].constructor != Array)
|
50
|
+
{
|
51
|
+
arr[path] = [arr[path], obj];
|
52
|
+
}
|
53
|
+
|
54
|
+
// if the element name HAS been defined, and is already an array, push the single value on the end of the stack
|
55
|
+
else
|
56
|
+
{
|
57
|
+
arr[path].push(obj);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
};
|
62
|
+
|
63
|
+
|
64
|
+
// ------------------------------------------------------------------------------------------
|
65
|
+
// population functions
|
66
|
+
|
67
|
+
function debug(str)
|
68
|
+
{
|
69
|
+
if(window.console && console.log)
|
70
|
+
{
|
71
|
+
console.log(str);
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
function getElementName(name)
|
76
|
+
{
|
77
|
+
if (!options.railsNaming)
|
78
|
+
{
|
79
|
+
name = name.replace(/\[\]$/,'');
|
80
|
+
}
|
81
|
+
return name;
|
82
|
+
}
|
83
|
+
|
84
|
+
function populateElement(parentElement, name, value)
|
85
|
+
{
|
86
|
+
var selector = options.identifier == 'id' ? '#' + name : '[' +options.identifier+ '="' +name+ '"]';
|
87
|
+
var element = jQuery(selector, parentElement);
|
88
|
+
value = value.toString();
|
89
|
+
value = value == 'null' ? '' : value;
|
90
|
+
element.html(value);
|
91
|
+
}
|
92
|
+
|
93
|
+
function populateFormElement(form, name, value)
|
94
|
+
{
|
95
|
+
|
96
|
+
// check that the named element exists in the form
|
97
|
+
var name = getElementName(name); // handle non-rails naming
|
98
|
+
var element = form[name];
|
99
|
+
|
100
|
+
// if the form element doesn't exist, check if there is a tag with that id
|
101
|
+
if(element == undefined)
|
102
|
+
{
|
103
|
+
// look for the element
|
104
|
+
element = jQuery('#' + name, form);
|
105
|
+
if(element)
|
106
|
+
{
|
107
|
+
element.html(value);
|
108
|
+
return true;
|
109
|
+
}
|
110
|
+
|
111
|
+
// nope, so exit
|
112
|
+
if(options.debug)
|
113
|
+
{
|
114
|
+
debug('No such element as ' + name);
|
115
|
+
}
|
116
|
+
return false;
|
117
|
+
}
|
118
|
+
|
119
|
+
// debug options
|
120
|
+
if(options.debug)
|
121
|
+
{
|
122
|
+
_populate.elements.push(element);
|
123
|
+
}
|
124
|
+
|
125
|
+
// now, place any single elements in an array.
|
126
|
+
// this is so that the next bit of code (a loop) can treat them the
|
127
|
+
// same as any array-elements passed, ie radiobutton or checkox arrays,
|
128
|
+
// and the code will just work
|
129
|
+
|
130
|
+
elements = element.type == undefined && element.length ? element : [element];
|
131
|
+
|
132
|
+
|
133
|
+
// populate the element correctly
|
134
|
+
|
135
|
+
for(var e = 0; e < elements.length; e++)
|
136
|
+
{
|
137
|
+
|
138
|
+
// grab the element
|
139
|
+
var element = elements[e];
|
140
|
+
|
141
|
+
// skip undefined elements or function objects (IE only)
|
142
|
+
if(!element || typeof element == 'undefined' || typeof element == 'function')
|
143
|
+
{
|
144
|
+
continue;
|
145
|
+
}
|
146
|
+
|
147
|
+
// anything else, process
|
148
|
+
switch(element.type || element.tagName)
|
149
|
+
{
|
150
|
+
|
151
|
+
case 'radio':
|
152
|
+
// use the single value to check the radio button
|
153
|
+
element.checked = (element.value != '' && value.toString() == element.value);
|
154
|
+
|
155
|
+
case 'checkbox':
|
156
|
+
// depends on the value.
|
157
|
+
// if it's an array, perform a sub loop
|
158
|
+
// if it's a value, just do the check
|
159
|
+
|
160
|
+
var values = value.constructor == Array ? value : [value];
|
161
|
+
for(var j = 0; j < values.length; j++)
|
162
|
+
{
|
163
|
+
element.checked |= element.value == values[j];
|
164
|
+
}
|
165
|
+
|
166
|
+
//element.checked = (element.value != '' && value.toString().toLowerCase() == element.value.toLowerCase());
|
167
|
+
break;
|
168
|
+
|
169
|
+
case 'select-multiple':
|
170
|
+
var values = value.constructor == Array ? value : [value];
|
171
|
+
for(var i = 0; i < element.options.length; i++)
|
172
|
+
{
|
173
|
+
for(var j = 0; j < values.length; j++)
|
174
|
+
{
|
175
|
+
element.options[i].selected |= element.options[i].value == values[j];
|
176
|
+
}
|
177
|
+
}
|
178
|
+
break;
|
179
|
+
|
180
|
+
case 'select':
|
181
|
+
case 'select-one':
|
182
|
+
element.value = value.toString() || value;
|
183
|
+
break;
|
184
|
+
|
185
|
+
case 'text':
|
186
|
+
case 'button':
|
187
|
+
case 'textarea':
|
188
|
+
case 'submit':
|
189
|
+
default:
|
190
|
+
value = value == null ? '' : value;
|
191
|
+
element.value = value;
|
192
|
+
|
193
|
+
}
|
194
|
+
|
195
|
+
}
|
196
|
+
|
197
|
+
}
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
// ------------------------------------------------------------------------------------------
|
202
|
+
// options & setup
|
203
|
+
|
204
|
+
// exit if no data object supplied
|
205
|
+
if (obj === undefined)
|
206
|
+
{
|
207
|
+
return this;
|
208
|
+
};
|
209
|
+
|
210
|
+
// options
|
211
|
+
var options = jQuery.extend
|
212
|
+
(
|
213
|
+
{
|
214
|
+
railsNaming: true,
|
215
|
+
railsIndices: false,
|
216
|
+
resetForm: true,
|
217
|
+
identifier: 'id',
|
218
|
+
debug: false
|
219
|
+
},
|
220
|
+
options
|
221
|
+
);
|
222
|
+
|
223
|
+
if(options.railsIndices)
|
224
|
+
{
|
225
|
+
options.railsNaming = true;
|
226
|
+
}
|
227
|
+
|
228
|
+
// ------------------------------------------------------------------------------------------
|
229
|
+
// convert hierarchical JSON to flat array
|
230
|
+
|
231
|
+
var arr = [];
|
232
|
+
parseJSON(obj);
|
233
|
+
|
234
|
+
if(options.debug)
|
235
|
+
{
|
236
|
+
_populate =
|
237
|
+
{
|
238
|
+
arr: arr,
|
239
|
+
obj: obj,
|
240
|
+
elements: []
|
241
|
+
}
|
242
|
+
}
|
243
|
+
|
244
|
+
// ------------------------------------------------------------------------------------------
|
245
|
+
// main process function
|
246
|
+
|
247
|
+
this.each
|
248
|
+
(
|
249
|
+
function()
|
250
|
+
{
|
251
|
+
|
252
|
+
// variables
|
253
|
+
var tagName = this.tagName.toLowerCase();
|
254
|
+
var method = tagName == 'form' ? populateFormElement : populateElement;
|
255
|
+
|
256
|
+
// reset form?
|
257
|
+
if(tagName == 'form' && options.resetForm)
|
258
|
+
{
|
259
|
+
this.reset();
|
260
|
+
}
|
261
|
+
|
262
|
+
// update elements
|
263
|
+
for(var i in arr)
|
264
|
+
{
|
265
|
+
method(this, i, arr[i]);
|
266
|
+
}
|
267
|
+
}
|
268
|
+
|
269
|
+
);
|
270
|
+
|
271
|
+
return this;
|
272
|
+
};
|
@@ -0,0 +1,318 @@
|
|
1
|
+
/*!
|
2
|
+
* Bootstrap Responsive v2.0.1
|
3
|
+
*
|
4
|
+
* Copyright 2012 Twitter, Inc
|
5
|
+
* Licensed under the Apache License v2.0
|
6
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
*
|
8
|
+
* Designed and built with all the love in the world @twitter by @mdo and @fat.
|
9
|
+
* Converted to SASS by Thomas McDonald
|
10
|
+
*/
|
11
|
+
|
12
|
+
// Responsive.css.scss
|
13
|
+
// For phone and tablet devices
|
14
|
+
// -------------------------------------------------------------
|
15
|
+
|
16
|
+
|
17
|
+
// REPEAT VARIABLES & MIXINS
|
18
|
+
// -------------------------
|
19
|
+
// Required since we compile the responsive stuff separately
|
20
|
+
|
21
|
+
@import "bootstrap/variables"; // Modify this for custom colors, font-sizes, etc
|
22
|
+
@import "bootstrap/mixins";
|
23
|
+
|
24
|
+
|
25
|
+
// RESPONSIVE CLASSES
|
26
|
+
// ------------------
|
27
|
+
|
28
|
+
// Hide from screenreaders and browsers
|
29
|
+
// Credit: HTML5 Boilerplate
|
30
|
+
.hidden {
|
31
|
+
display: none;
|
32
|
+
visibility: hidden;
|
33
|
+
}
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
// UP TO LANDSCAPE PHONE
|
38
|
+
// ---------------------
|
39
|
+
|
40
|
+
@media (max-width: 480px) {
|
41
|
+
|
42
|
+
// Smooth out the collapsing/expanding nav
|
43
|
+
.nav-collapse {
|
44
|
+
-webkit-transform: translate3d(0, 0, 0); // activate the GPU
|
45
|
+
}
|
46
|
+
|
47
|
+
// Block level the page header small tag for readability
|
48
|
+
.page-header h1 small {
|
49
|
+
display: block;
|
50
|
+
line-height: $baseLineHeight;
|
51
|
+
}
|
52
|
+
|
53
|
+
// Make span* classes full width
|
54
|
+
input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input {
|
55
|
+
display: block;
|
56
|
+
width: 100%;
|
57
|
+
min-height: 28px; /* Make inputs at least the height of their button counterpart */
|
58
|
+
/* Makes inputs behave like true block-level elements */
|
59
|
+
-webkit-box-sizing: border-box; /* Older Webkit */
|
60
|
+
-moz-box-sizing: border-box; /* Older FF */
|
61
|
+
-ms-box-sizing: border-box; /* IE8 */
|
62
|
+
box-sizing: border-box; /* CSS3 spec*/
|
63
|
+
}
|
64
|
+
// But don't let it screw up prepend/append inputs
|
65
|
+
.input-prepend input[class*="span"], .input-append input[class*="span"] {
|
66
|
+
width: auto;
|
67
|
+
}
|
68
|
+
|
69
|
+
// Update checkboxes for iOS
|
70
|
+
input[type="checkbox"], input[type="radio"] {
|
71
|
+
border: 1px solid #ccc;
|
72
|
+
}
|
73
|
+
|
74
|
+
// Remove the horizontal form styles
|
75
|
+
.form-horizontal .control-group > label {
|
76
|
+
float: none;
|
77
|
+
width: auto;
|
78
|
+
padding-top: 0;
|
79
|
+
text-align: left;
|
80
|
+
}
|
81
|
+
// Move over all input controls and content
|
82
|
+
.form-horizontal .controls {
|
83
|
+
margin-left: 0;
|
84
|
+
}
|
85
|
+
// Move the options list down to align with labels
|
86
|
+
.form-horizontal .control-list {
|
87
|
+
padding-top: 0; // has to be padding because margin collaspes
|
88
|
+
}
|
89
|
+
// Move over buttons in .form-actions to align with .controls
|
90
|
+
.form-horizontal .form-actions {
|
91
|
+
padding-left: 10px;
|
92
|
+
padding-right: 10px;
|
93
|
+
}
|
94
|
+
|
95
|
+
// Modals
|
96
|
+
.modal {
|
97
|
+
position: absolute;
|
98
|
+
top: 10px;
|
99
|
+
left: 10px;
|
100
|
+
right: 10px;
|
101
|
+
width: auto;
|
102
|
+
margin: 0;
|
103
|
+
&.fade.in { top: auto; }
|
104
|
+
}
|
105
|
+
.modal-header .close {
|
106
|
+
padding: 10px;
|
107
|
+
margin: -10px;
|
108
|
+
}
|
109
|
+
|
110
|
+
// Carousel
|
111
|
+
.carousel-caption {
|
112
|
+
position: static;
|
113
|
+
}
|
114
|
+
|
115
|
+
}
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
// LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
|
120
|
+
// --------------------------------------------------
|
121
|
+
|
122
|
+
@media (max-width: 767px) {
|
123
|
+
// GRID & CONTAINERS
|
124
|
+
// -----------------
|
125
|
+
// Remove width from containers
|
126
|
+
.container {
|
127
|
+
width: auto;
|
128
|
+
padding: 0 20px;
|
129
|
+
}
|
130
|
+
// Fluid rows
|
131
|
+
.row-fluid {
|
132
|
+
width: 100%;
|
133
|
+
}
|
134
|
+
// Undo negative margin on rows
|
135
|
+
.row {
|
136
|
+
margin-left: 0;
|
137
|
+
}
|
138
|
+
// Make all columns even
|
139
|
+
.row > [class*="span"], .row-fluid > [class*="span"] {
|
140
|
+
float: none;
|
141
|
+
display: block;
|
142
|
+
width: auto;
|
143
|
+
margin: 0;
|
144
|
+
}
|
145
|
+
}
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
// PORTRAIT TABLET TO DEFAULT DESKTOP
|
150
|
+
// ----------------------------------
|
151
|
+
|
152
|
+
@media (min-width: 768px) and (max-width: 979px) {
|
153
|
+
|
154
|
+
// Fixed grid
|
155
|
+
@include gridSystemGenerate(12, 42px, 20px);
|
156
|
+
|
157
|
+
// Fluid grid
|
158
|
+
@include fluidGridSystemGenerate(12, 5.801104972%, 2.762430939%);
|
159
|
+
|
160
|
+
// Input grid
|
161
|
+
@include inputGridSystemGenerate(12, 42px, 20px);
|
162
|
+
|
163
|
+
}
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
// TABLETS AND BELOW
|
168
|
+
// -----------------
|
169
|
+
@media (max-width: 979px) {
|
170
|
+
|
171
|
+
// UNFIX THE TOPBAR
|
172
|
+
// ----------------
|
173
|
+
// Remove any padding from the body
|
174
|
+
body {
|
175
|
+
padding-top: 0;
|
176
|
+
}
|
177
|
+
// Unfix the navbar
|
178
|
+
.navbar-fixed-top {
|
179
|
+
position: static;
|
180
|
+
margin-bottom: $baseLineHeight;
|
181
|
+
}
|
182
|
+
.navbar-fixed-top .navbar-inner {
|
183
|
+
padding: 5px;
|
184
|
+
}
|
185
|
+
.navbar .container {
|
186
|
+
width: auto;
|
187
|
+
padding: 0;
|
188
|
+
}
|
189
|
+
// Account for brand name
|
190
|
+
.navbar .brand {
|
191
|
+
padding-left: 10px;
|
192
|
+
padding-right: 10px;
|
193
|
+
margin: 0 0 0 -5px;
|
194
|
+
}
|
195
|
+
// Nav collapse clears brand
|
196
|
+
.navbar .nav-collapse {
|
197
|
+
clear: left;
|
198
|
+
}
|
199
|
+
// Block-level the nav
|
200
|
+
.navbar .nav {
|
201
|
+
float: none;
|
202
|
+
margin: 0 0 ($baseLineHeight / 2);
|
203
|
+
}
|
204
|
+
.navbar .nav > li {
|
205
|
+
float: none;
|
206
|
+
}
|
207
|
+
.navbar .nav > li > a {
|
208
|
+
margin-bottom: 2px;
|
209
|
+
}
|
210
|
+
.navbar .nav > .divider-vertical {
|
211
|
+
display: none;
|
212
|
+
}
|
213
|
+
.navbar .nav .nav-header {
|
214
|
+
color: $navbarText;
|
215
|
+
text-shadow: none;
|
216
|
+
}
|
217
|
+
// Nav and dropdown links in navbar
|
218
|
+
.navbar .nav > li > a, .navbar .dropdown-menu a {
|
219
|
+
padding: 6px 15px;
|
220
|
+
font-weight: bold;
|
221
|
+
color: $navbarLinkColor;
|
222
|
+
@include border-radius(3px);
|
223
|
+
}
|
224
|
+
.navbar .dropdown-menu li + li a {
|
225
|
+
margin-bottom: 2px;
|
226
|
+
}
|
227
|
+
.navbar .nav > li > a:hover, .navbar .dropdown-menu a:hover {
|
228
|
+
background-color: $navbarBackground;
|
229
|
+
}
|
230
|
+
// Dropdowns in the navbar
|
231
|
+
.navbar .dropdown-menu {
|
232
|
+
position: static;
|
233
|
+
top: auto;
|
234
|
+
left: auto;
|
235
|
+
float: none;
|
236
|
+
display: block;
|
237
|
+
max-width: none;
|
238
|
+
margin: 0 15px;
|
239
|
+
padding: 0;
|
240
|
+
background-color: transparent;
|
241
|
+
border: none;
|
242
|
+
@include border-radius(0);
|
243
|
+
@include box-shadow(none);
|
244
|
+
}
|
245
|
+
.navbar .dropdown-menu:before, .navbar .dropdown-menu:after {
|
246
|
+
display: none;
|
247
|
+
}
|
248
|
+
.navbar .dropdown-menu .divider {
|
249
|
+
display: none;
|
250
|
+
}
|
251
|
+
// Forms in navbar
|
252
|
+
.navbar-form, .navbar-search {
|
253
|
+
float: none;
|
254
|
+
padding: ($baseLineHeight / 2) 15px;
|
255
|
+
margin: ($baseLineHeight / 2) 0;
|
256
|
+
border-top: 1px solid $navbarBackground;
|
257
|
+
border-bottom: 1px solid $navbarBackground;
|
258
|
+
$shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
|
259
|
+
@include box-shadow($shadow);
|
260
|
+
}
|
261
|
+
// Pull right (secondary) nav content
|
262
|
+
.navbar .nav.pull-right {
|
263
|
+
float: none;
|
264
|
+
margin-left: 0;
|
265
|
+
}
|
266
|
+
// Static navbar
|
267
|
+
.navbar-static .navbar-inner {
|
268
|
+
padding-left: 10px;
|
269
|
+
padding-right: 10px;
|
270
|
+
}
|
271
|
+
// Navbar button
|
272
|
+
.btn-navbar {
|
273
|
+
display: block;
|
274
|
+
}
|
275
|
+
|
276
|
+
// Hide everything in the navbar save .brand and toggle button */
|
277
|
+
.nav-collapse {
|
278
|
+
overflow: hidden;
|
279
|
+
height: 0;
|
280
|
+
}
|
281
|
+
}
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
// DEFAULT DESKTOP
|
286
|
+
// ---------------
|
287
|
+
|
288
|
+
@media (min-width: 980px) {
|
289
|
+
.nav-collapse.collapse {
|
290
|
+
height: auto !important;
|
291
|
+
}
|
292
|
+
}
|
293
|
+
|
294
|
+
|
295
|
+
|
296
|
+
// LARGE DESKTOP & UP
|
297
|
+
// ------------------
|
298
|
+
|
299
|
+
@media (min-width: 1200px) {
|
300
|
+
|
301
|
+
// Fixed grid
|
302
|
+
@include gridSystemGenerate(12, 70px, 30px);
|
303
|
+
|
304
|
+
// Fluid grid
|
305
|
+
@include fluidGridSystemGenerate(12, 5.982905983%, 2.564102564%);
|
306
|
+
|
307
|
+
// Input grid
|
308
|
+
@include inputGridSystemGenerate(12, 70px, 30px);
|
309
|
+
|
310
|
+
// Thumbnails
|
311
|
+
.thumbnails {
|
312
|
+
margin-left: -30px;
|
313
|
+
}
|
314
|
+
.thumbnails > li {
|
315
|
+
margin-left: 30px;
|
316
|
+
}
|
317
|
+
|
318
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
/*!
|
2
|
+
* Bootstrap 2.0.1
|
3
|
+
*
|
4
|
+
* Copyright 2012 Twitter, Inc
|
5
|
+
* Licensed under the Apache License v2.0
|
6
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
*
|
8
|
+
* Designed and built with all the love in the world @twitter by @mdo and @fat.
|
9
|
+
* Converted to SASS by Thomas McDonald
|
10
|
+
*/
|
11
|
+
|
12
|
+
// Core variables and mixins
|
13
|
+
@import "bootstrap/variables"; // Modify this for custom colors, font-sizes, etc
|
14
|
+
@import "bootstrap/mixins";
|
15
|
+
|
16
|
+
// CSS Reset
|
17
|
+
@import "bootstrap/reset";
|
18
|
+
|
19
|
+
// Grid system and page structure
|
20
|
+
@import "bootstrap/scaffolding";
|
21
|
+
@import "bootstrap/grid";
|
22
|
+
@import "bootstrap/layouts";
|
23
|
+
|
24
|
+
// Base CSS
|
25
|
+
@import "bootstrap/type";
|
26
|
+
@import "bootstrap/code";
|
27
|
+
@import "bootstrap/forms";
|
28
|
+
@import "bootstrap/tables";
|
29
|
+
|
30
|
+
// Components: common
|
31
|
+
@import "bootstrap/sprites";
|
32
|
+
@import "bootstrap/dropdowns";
|
33
|
+
@import "bootstrap/wells";
|
34
|
+
@import "bootstrap/component-animations";
|
35
|
+
@import "bootstrap/close";
|
36
|
+
|
37
|
+
// Components: Buttons & Alerts
|
38
|
+
@import "bootstrap/buttons";
|
39
|
+
@import "bootstrap/button-groups";
|
40
|
+
@import "bootstrap/alerts"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less
|
41
|
+
|
42
|
+
// Components: Nav
|
43
|
+
@import "bootstrap/navs";
|
44
|
+
@import "bootstrap/navbar";
|
45
|
+
@import "bootstrap/breadcrumbs";
|
46
|
+
@import "bootstrap/pagination";
|
47
|
+
@import "bootstrap/pager";
|
48
|
+
|
49
|
+
// Components: Popovers
|
50
|
+
@import "bootstrap/modals";
|
51
|
+
@import "bootstrap/tooltip";
|
52
|
+
@import "bootstrap/popovers";
|
53
|
+
|
54
|
+
// Components: Misc
|
55
|
+
@import "bootstrap/thumbnails";
|
56
|
+
@import "bootstrap/labels";
|
57
|
+
@import "bootstrap/progress-bars";
|
58
|
+
@import "bootstrap/accordion";
|
59
|
+
@import "bootstrap/carousel";
|
60
|
+
@import "bootstrap/hero-unit";
|
61
|
+
|
62
|
+
// Utility classes
|
63
|
+
@import "bootstrap/utilities"; // Has to be last to override when necessary
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// ACCORDION
|
2
|
+
// ---------
|
3
|
+
|
4
|
+
|
5
|
+
// Parent container
|
6
|
+
.accordion {
|
7
|
+
margin-bottom: $baseLineHeight;
|
8
|
+
}
|
9
|
+
|
10
|
+
// Group == heading + body
|
11
|
+
.accordion-group {
|
12
|
+
margin-bottom: 2px;
|
13
|
+
border: 1px solid #e5e5e5;
|
14
|
+
@include border-radius(4px);
|
15
|
+
}
|
16
|
+
.accordion-heading {
|
17
|
+
border-bottom: 0;
|
18
|
+
}
|
19
|
+
.accordion-heading .accordion-toggle {
|
20
|
+
display: block;
|
21
|
+
padding: 8px 15px;
|
22
|
+
}
|
23
|
+
|
24
|
+
// Inner needs the styles because you can't animate properly with any styles on the element
|
25
|
+
.accordion-inner {
|
26
|
+
padding: 9px 15px;
|
27
|
+
border-top: 1px solid #e5e5e5;
|
28
|
+
}
|