rails_admin 0.6.5 → 0.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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +99 -74
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +48 -55
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +70 -65
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +163 -147
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +117 -114
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +89 -107
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +208 -175
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +77 -78
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +137 -129
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +85 -101
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +364 -268
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +51 -52
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +1782 -335
- data/app/assets/javascripts/rails_admin/ra.filter-box.js +1 -1
- data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +3 -3
- data/app/assets/javascripts/rails_admin/ra.filtering-select.js +1 -1
- data/app/assets/javascripts/rails_admin/ra.remote-form.js +6 -2
- data/app/assets/stylesheets/rails_admin/base/theming.scss +34 -14
- data/app/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +47 -58
- data/app/assets/stylesheets/rails_admin/bootstrap/_badges.scss +57 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +12 -10
- data/app/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +163 -152
- data/app/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +98 -169
- data/app/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +151 -66
- data/app/assets/stylesheets/rails_admin/bootstrap/_close.scss +11 -8
- data/app/assets/stylesheets/rails_admin/bootstrap/_code.scss +36 -29
- data/app/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +16 -3
- data/app/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +115 -148
- data/app/assets/stylesheets/rails_admin/bootstrap/_forms.scss +396 -547
- data/app/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +237 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_grid.scss +74 -11
- data/app/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +166 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +48 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_labels.scss +66 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +131 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_media.scss +8 -7
- data/app/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +36 -693
- data/app/assets/stylesheets/rails_admin/bootstrap/_modals.scss +108 -53
- data/app/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +545 -383
- data/app/assets/stylesheets/rails_admin/bootstrap/_navs.scss +191 -358
- data/app/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +425 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_pager.scss +45 -33
- data/app/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +70 -105
- data/app/assets/stylesheets/rails_admin/bootstrap/_panels.scss +243 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +61 -61
- data/app/assets/stylesheets/rails_admin/bootstrap/_print.scss +101 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +56 -73
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +34 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +150 -50
- data/app/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +120 -23
- data/app/assets/stylesheets/rails_admin/bootstrap/_tables.scss +168 -170
- data/app/assets/stylesheets/rails_admin/bootstrap/_theme.scss +258 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +27 -42
- data/app/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +49 -24
- data/app/assets/stylesheets/rails_admin/bootstrap/_type.scss +200 -143
- data/app/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +33 -21
- data/app/assets/stylesheets/rails_admin/bootstrap/_variables.scss +764 -215
- data/app/assets/stylesheets/rails_admin/bootstrap/_wells.scss +7 -7
- data/app/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +47 -60
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +14 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +11 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +18 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +50 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +7 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +22 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +84 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +58 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +81 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +122 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +21 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +34 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +12 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +31 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +10 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +9 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +8 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +23 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +24 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +10 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +8 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +6 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +21 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +10 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +9 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +28 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +11 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_text-overflow.scss +8 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +219 -0
- data/app/assets/stylesheets/rails_admin/ra.calendar-additions.scss +17 -0
- data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +9 -5
- data/app/helpers/rails_admin/application_helper.rb +20 -19
- data/app/helpers/rails_admin/form_builder.rb +14 -11
- data/app/views/kaminari/twitter-bootstrap/_paginator.html.haml +8 -9
- data/app/views/layouts/rails_admin/_navigation.html.haml +5 -5
- data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +1 -1
- data/app/views/layouts/rails_admin/application.html.haml +9 -8
- data/app/views/layouts/rails_admin/pjax.html.haml +4 -3
- data/app/views/rails_admin/main/_form_datetime.html.haml +2 -1
- data/app/views/rails_admin/main/_form_field.html.haml +1 -1
- data/app/views/rails_admin/main/_form_text.html.haml +1 -1
- data/app/views/rails_admin/main/_submit_buttons.html.haml +1 -0
- data/app/views/rails_admin/main/dashboard.html.haml +1 -1
- data/app/views/rails_admin/main/export.html.haml +19 -16
- data/app/views/rails_admin/main/index.html.haml +11 -7
- data/app/views/rails_admin/main/show.html.haml +1 -1
- data/lib/rails_admin/adapters/active_record.rb +2 -2
- data/lib/rails_admin/adapters/mongoid/property.rb +1 -1
- data/lib/rails_admin/config/actions/bulk_delete.rb +0 -1
- data/lib/rails_admin/config/actions/edit.rb +0 -2
- data/lib/rails_admin/config/actions/export.rb +0 -2
- data/lib/rails_admin/config/actions/index.rb +0 -3
- data/lib/rails_admin/config/actions/new.rb +0 -2
- data/lib/rails_admin/config/configurable.rb +1 -1
- data/lib/rails_admin/config/fields/base.rb +9 -0
- data/lib/rails_admin/config/fields/factories/enum.rb +2 -3
- data/lib/rails_admin/config/fields/types/polymorphic_association.rb +4 -0
- data/lib/rails_admin/config/model.rb +2 -1
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +2 -2
- data/lib/rails_admin/support/csv_converter.rb +22 -42
- data/lib/rails_admin/version.rb +1 -1
- metadata +59 -18
- data/app/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +0 -34
- data/app/assets/stylesheets/rails_admin/bootstrap/_hero-unit.scss +0 -25
- data/app/assets/stylesheets/rails_admin/bootstrap/_labels-badges.scss +0 -83
- data/app/assets/stylesheets/rails_admin/bootstrap/_layouts.scss +0 -16
- data/app/assets/stylesheets/rails_admin/bootstrap/_reset.scss +0 -216
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-1200px-min.scss +0 -28
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-767px-max.scss +0 -193
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-768px-979px.scss +0 -19
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-navbar.scss +0 -189
- data/app/assets/stylesheets/rails_admin/bootstrap/_sprites.scss +0 -197
- data/app/assets/stylesheets/rails_admin/bootstrap/responsive.scss +0 -48
|
@@ -3,167 +3,68 @@
|
|
|
3
3
|
// --------------------------------------------------
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
// Make all forms have space below them
|
|
10
|
-
form {
|
|
11
|
-
margin: 0 0 $baseLineHeight;
|
|
12
|
-
}
|
|
6
|
+
// Normalize non-controls
|
|
7
|
+
//
|
|
8
|
+
// Restyle and baseline non-control form elements.
|
|
13
9
|
|
|
14
10
|
fieldset {
|
|
15
11
|
padding: 0;
|
|
16
12
|
margin: 0;
|
|
17
13
|
border: 0;
|
|
14
|
+
// Chrome and Firefox set a `min-width: min-content;` on fieldsets,
|
|
15
|
+
// so we reset that to ensure it behaves more like a standard block element.
|
|
16
|
+
// See https://github.com/twbs/bootstrap/issues/12359.
|
|
17
|
+
min-width: 0;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
// Groups of fields with labels on top (legends)
|
|
21
20
|
legend {
|
|
22
21
|
display: block;
|
|
23
22
|
width: 100%;
|
|
24
23
|
padding: 0;
|
|
25
|
-
margin-bottom: $
|
|
26
|
-
font-size: $
|
|
27
|
-
line-height:
|
|
28
|
-
color: $
|
|
24
|
+
margin-bottom: $line-height-computed;
|
|
25
|
+
font-size: ($font-size-base * 1.5);
|
|
26
|
+
line-height: inherit;
|
|
27
|
+
color: $legend-color;
|
|
29
28
|
border: 0;
|
|
30
|
-
border-bottom: 1px solid
|
|
31
|
-
|
|
32
|
-
// Small
|
|
33
|
-
small {
|
|
34
|
-
font-size: $baseLineHeight * .75;
|
|
35
|
-
color: $grayLight;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// Set font for forms
|
|
40
|
-
label,
|
|
41
|
-
input,
|
|
42
|
-
button,
|
|
43
|
-
select,
|
|
44
|
-
textarea {
|
|
45
|
-
@include font-shorthand($baseFontSize, normal, $baseLineHeight); // Set size, weight, line-height here
|
|
46
|
-
}
|
|
47
|
-
input,
|
|
48
|
-
button,
|
|
49
|
-
select,
|
|
50
|
-
textarea {
|
|
51
|
-
font-family: $baseFontFamily; // And only set font-family here for those that need it (note the missing label element)
|
|
29
|
+
border-bottom: 1px solid $legend-border-color;
|
|
52
30
|
}
|
|
53
31
|
|
|
54
|
-
// Identify controls by their labels
|
|
55
32
|
label {
|
|
56
|
-
display: block;
|
|
33
|
+
display: inline-block;
|
|
34
|
+
max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
|
|
57
35
|
margin-bottom: 5px;
|
|
36
|
+
font-weight: bold;
|
|
58
37
|
}
|
|
59
38
|
|
|
60
|
-
// Form controls
|
|
61
|
-
// -------------------------
|
|
62
39
|
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
input[type="datetime"],
|
|
69
|
-
input[type="datetime-local"],
|
|
70
|
-
input[type="date"],
|
|
71
|
-
input[type="month"],
|
|
72
|
-
input[type="time"],
|
|
73
|
-
input[type="week"],
|
|
74
|
-
input[type="number"],
|
|
75
|
-
input[type="email"],
|
|
76
|
-
input[type="url"],
|
|
77
|
-
input[type="search"],
|
|
78
|
-
input[type="tel"],
|
|
79
|
-
input[type="color"],
|
|
80
|
-
.uneditable-input {
|
|
81
|
-
display: inline-block;
|
|
82
|
-
height: $baseLineHeight;
|
|
83
|
-
padding: 4px 6px;
|
|
84
|
-
margin-bottom: $baseLineHeight / 2;;
|
|
85
|
-
font-size: $baseFontSize;
|
|
86
|
-
line-height: $baseLineHeight;
|
|
87
|
-
color: $gray;
|
|
88
|
-
@include border-radius($inputBorderRadius);
|
|
89
|
-
vertical-align: middle;
|
|
90
|
-
}
|
|
40
|
+
// Normalize form controls
|
|
41
|
+
//
|
|
42
|
+
// While most of our form styles require extra classes, some basic normalization
|
|
43
|
+
// is required to ensure optimum display with or without those classes to better
|
|
44
|
+
// address browser inconsistencies.
|
|
91
45
|
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
textarea,
|
|
96
|
-
.uneditable-input {
|
|
97
|
-
width: 206px; // plus 12px padding and 2px border
|
|
98
|
-
}
|
|
99
|
-
// Reset height since textareas have rows
|
|
100
|
-
textarea {
|
|
101
|
-
height: auto;
|
|
102
|
-
}
|
|
103
|
-
// Everything else
|
|
104
|
-
textarea,
|
|
105
|
-
input[type="text"],
|
|
106
|
-
input[type="password"],
|
|
107
|
-
input[type="datetime"],
|
|
108
|
-
input[type="datetime-local"],
|
|
109
|
-
input[type="date"],
|
|
110
|
-
input[type="month"],
|
|
111
|
-
input[type="time"],
|
|
112
|
-
input[type="week"],
|
|
113
|
-
input[type="number"],
|
|
114
|
-
input[type="email"],
|
|
115
|
-
input[type="url"],
|
|
116
|
-
input[type="search"],
|
|
117
|
-
input[type="tel"],
|
|
118
|
-
input[type="color"],
|
|
119
|
-
.uneditable-input {
|
|
120
|
-
background-color: $inputBackground;
|
|
121
|
-
border: 1px solid $inputBorder;
|
|
122
|
-
@include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
|
|
123
|
-
@include transition(border linear .2s, box-shadow linear .2s);
|
|
124
|
-
|
|
125
|
-
// Focus state
|
|
126
|
-
&:focus {
|
|
127
|
-
border-color: rgba(82,168,236,.8);
|
|
128
|
-
outline: 0;
|
|
129
|
-
outline: thin dotted \9; /* IE6-9 */
|
|
130
|
-
@include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6));
|
|
131
|
-
}
|
|
46
|
+
// Override content-box in Normalize (* isn't specific enough)
|
|
47
|
+
input[type="search"] {
|
|
48
|
+
@include box-sizing(border-box);
|
|
132
49
|
}
|
|
133
50
|
|
|
134
51
|
// Position radios and checkboxes better
|
|
135
52
|
input[type="radio"],
|
|
136
53
|
input[type="checkbox"] {
|
|
137
54
|
margin: 4px 0 0;
|
|
138
|
-
|
|
139
|
-
margin-top: 1px \9; /* IE8-9 */
|
|
55
|
+
margin-top: 1px \9; // IE8-9
|
|
140
56
|
line-height: normal;
|
|
141
57
|
}
|
|
142
58
|
|
|
143
|
-
//
|
|
144
|
-
input[type="file"],
|
|
145
|
-
input[type="image"],
|
|
146
|
-
input[type="submit"],
|
|
147
|
-
input[type="reset"],
|
|
148
|
-
input[type="button"],
|
|
149
|
-
input[type="radio"],
|
|
150
|
-
input[type="checkbox"] {
|
|
151
|
-
width: auto; // Override of generic input selector
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// Set the height of select and file controls to match text inputs
|
|
155
|
-
select,
|
|
59
|
+
// Set the height of file controls to match text inputs
|
|
156
60
|
input[type="file"] {
|
|
157
|
-
|
|
158
|
-
*margin-top: 4px; /* For IE7, add top margin to align select with labels */
|
|
159
|
-
line-height: $inputHeight;
|
|
61
|
+
display: block;
|
|
160
62
|
}
|
|
161
63
|
|
|
162
|
-
// Make
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
background-color: $inputBackground; // Chrome on Linux and Mobile Safari need background-color
|
|
64
|
+
// Make range inputs behave like textual form controls
|
|
65
|
+
input[type="range"] {
|
|
66
|
+
display: block;
|
|
67
|
+
width: 100%;
|
|
167
68
|
}
|
|
168
69
|
|
|
169
70
|
// Make multiple select elements height not fixed
|
|
@@ -172,518 +73,466 @@ select[size] {
|
|
|
172
73
|
height: auto;
|
|
173
74
|
}
|
|
174
75
|
|
|
175
|
-
// Focus for
|
|
176
|
-
select:focus,
|
|
76
|
+
// Focus for file, radio, and checkbox
|
|
177
77
|
input[type="file"]:focus,
|
|
178
78
|
input[type="radio"]:focus,
|
|
179
79
|
input[type="checkbox"]:focus {
|
|
180
80
|
@include tab-focus();
|
|
181
81
|
}
|
|
182
82
|
|
|
83
|
+
// Adjust output element
|
|
84
|
+
output {
|
|
85
|
+
display: block;
|
|
86
|
+
padding-top: ($padding-base-vertical + 1);
|
|
87
|
+
font-size: $font-size-base;
|
|
88
|
+
line-height: $line-height-base;
|
|
89
|
+
color: $input-color;
|
|
90
|
+
}
|
|
91
|
+
|
|
183
92
|
|
|
184
|
-
//
|
|
185
|
-
//
|
|
93
|
+
// Common form controls
|
|
94
|
+
//
|
|
95
|
+
// Shared size and type resets for form controls. Apply `.form-control` to any
|
|
96
|
+
// of the following form controls:
|
|
97
|
+
//
|
|
98
|
+
// select
|
|
99
|
+
// textarea
|
|
100
|
+
// input[type="text"]
|
|
101
|
+
// input[type="password"]
|
|
102
|
+
// input[type="datetime"]
|
|
103
|
+
// input[type="datetime-local"]
|
|
104
|
+
// input[type="date"]
|
|
105
|
+
// input[type="month"]
|
|
106
|
+
// input[type="time"]
|
|
107
|
+
// input[type="week"]
|
|
108
|
+
// input[type="number"]
|
|
109
|
+
// input[type="email"]
|
|
110
|
+
// input[type="url"]
|
|
111
|
+
// input[type="search"]
|
|
112
|
+
// input[type="tel"]
|
|
113
|
+
// input[type="color"]
|
|
114
|
+
|
|
115
|
+
.form-control {
|
|
116
|
+
display: block;
|
|
117
|
+
width: 100%;
|
|
118
|
+
height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
|
|
119
|
+
padding: $padding-base-vertical $padding-base-horizontal;
|
|
120
|
+
font-size: $font-size-base;
|
|
121
|
+
line-height: $line-height-base;
|
|
122
|
+
color: $input-color;
|
|
123
|
+
background-color: $input-bg;
|
|
124
|
+
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
|
|
125
|
+
border: 1px solid $input-border;
|
|
126
|
+
border-radius: $input-border-radius;
|
|
127
|
+
@include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
|
|
128
|
+
@include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
|
|
186
129
|
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
130
|
+
// Customize the `:focus` state to imitate native WebKit styles.
|
|
131
|
+
@include form-control-focus();
|
|
132
|
+
|
|
133
|
+
// Placeholder
|
|
134
|
+
@include placeholder();
|
|
135
|
+
|
|
136
|
+
// Disabled and read-only inputs
|
|
137
|
+
//
|
|
138
|
+
// HTML5 says that controls under a fieldset > legend:first-child won't be
|
|
139
|
+
// disabled if the fieldset is disabled. Due to implementation difficulty, we
|
|
140
|
+
// don't honor that edge case; we style them as disabled anyway.
|
|
141
|
+
&[disabled],
|
|
142
|
+
&[readonly],
|
|
143
|
+
fieldset[disabled] & {
|
|
144
|
+
cursor: not-allowed;
|
|
145
|
+
background-color: $input-bg-disabled;
|
|
146
|
+
opacity: 1; // iOS fix for unreadable disabled content
|
|
147
|
+
}
|
|
196
148
|
|
|
197
|
-
//
|
|
198
|
-
.uneditable-input {
|
|
199
|
-
overflow: hidden; // prevent text from wrapping, but still cut it off like an input does
|
|
200
|
-
white-space: nowrap;
|
|
149
|
+
// [converter] extracted textarea& to textarea.form-control
|
|
201
150
|
}
|
|
202
151
|
|
|
203
|
-
//
|
|
204
|
-
.
|
|
205
|
-
width: auto;
|
|
152
|
+
// Reset height for `textarea`s
|
|
153
|
+
textarea.form-control {
|
|
206
154
|
height: auto;
|
|
207
155
|
}
|
|
208
156
|
|
|
209
157
|
|
|
210
|
-
//
|
|
211
|
-
//
|
|
158
|
+
// Search inputs in iOS
|
|
159
|
+
//
|
|
160
|
+
// This overrides the extra rounded corners on search inputs in iOS so that our
|
|
161
|
+
// `.form-control` class can properly style them. Note that this cannot simply
|
|
162
|
+
// be added to `.form-control` as it's not specific enough. For details, see
|
|
163
|
+
// https://github.com/twbs/bootstrap/issues/11586.
|
|
212
164
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
textarea {
|
|
216
|
-
@include placeholder();
|
|
165
|
+
input[type="search"] {
|
|
166
|
+
-webkit-appearance: none;
|
|
217
167
|
}
|
|
218
168
|
|
|
219
169
|
|
|
220
|
-
//
|
|
221
|
-
//
|
|
170
|
+
// Special styles for iOS temporal inputs
|
|
171
|
+
//
|
|
172
|
+
// In Mobile Safari, setting `display: block` on temporal inputs causes the
|
|
173
|
+
// text within the input to become vertically misaligned.
|
|
174
|
+
// As a workaround, we set a pixel line-height that matches the
|
|
175
|
+
// given height of the input. Since this fucks up everything else, we have to
|
|
176
|
+
// appropriately reset it for Internet Explorer and the size variations.
|
|
177
|
+
|
|
178
|
+
input[type="date"],
|
|
179
|
+
input[type="time"],
|
|
180
|
+
input[type="datetime-local"],
|
|
181
|
+
input[type="month"] {
|
|
182
|
+
line-height: $input-height-base;
|
|
183
|
+
// IE8+ misaligns the text within date inputs, so we reset
|
|
184
|
+
line-height: $line-height-base #{\0};
|
|
185
|
+
|
|
186
|
+
&.input-sm {
|
|
187
|
+
line-height: $input-height-small;
|
|
188
|
+
}
|
|
189
|
+
&.input-lg {
|
|
190
|
+
line-height: $input-height-large;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
// Form groups
|
|
196
|
+
//
|
|
197
|
+
// Designed to help with the organization and spacing of vertical forms. For
|
|
198
|
+
// horizontal forms, use the predefined grid classes.
|
|
199
|
+
|
|
200
|
+
.form-group {
|
|
201
|
+
margin-bottom: 15px;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
// Checkboxes and radios
|
|
206
|
+
//
|
|
207
|
+
// Indent the labels to position radios/checkboxes as hanging controls.
|
|
222
208
|
|
|
223
|
-
// Indent the labels to position radios/checkboxes as hanging
|
|
224
209
|
.radio,
|
|
225
210
|
.checkbox {
|
|
226
|
-
|
|
227
|
-
|
|
211
|
+
position: relative;
|
|
212
|
+
display: block;
|
|
213
|
+
min-height: $line-height-computed; // clear the floating input if there is no label text
|
|
214
|
+
margin-top: 10px;
|
|
215
|
+
margin-bottom: 10px;
|
|
216
|
+
|
|
217
|
+
label {
|
|
218
|
+
padding-left: 20px;
|
|
219
|
+
margin-bottom: 0;
|
|
220
|
+
font-weight: normal;
|
|
221
|
+
cursor: pointer;
|
|
222
|
+
}
|
|
228
223
|
}
|
|
229
224
|
.radio input[type="radio"],
|
|
230
|
-
.
|
|
231
|
-
|
|
225
|
+
.radio-inline input[type="radio"],
|
|
226
|
+
.checkbox input[type="checkbox"],
|
|
227
|
+
.checkbox-inline input[type="checkbox"] {
|
|
228
|
+
position: absolute;
|
|
232
229
|
margin-left: -20px;
|
|
230
|
+
margin-top: 4px \9;
|
|
233
231
|
}
|
|
234
232
|
|
|
235
|
-
|
|
236
|
-
.
|
|
237
|
-
|
|
238
|
-
padding-top: 5px; // has to be padding because margin collaspes
|
|
233
|
+
.radio + .radio,
|
|
234
|
+
.checkbox + .checkbox {
|
|
235
|
+
margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
|
|
239
236
|
}
|
|
240
237
|
|
|
241
238
|
// Radios and checkboxes on same line
|
|
242
|
-
|
|
243
|
-
.
|
|
244
|
-
.checkbox.inline {
|
|
239
|
+
.radio-inline,
|
|
240
|
+
.checkbox-inline {
|
|
245
241
|
display: inline-block;
|
|
246
|
-
padding-
|
|
242
|
+
padding-left: 20px;
|
|
247
243
|
margin-bottom: 0;
|
|
248
244
|
vertical-align: middle;
|
|
245
|
+
font-weight: normal;
|
|
246
|
+
cursor: pointer;
|
|
249
247
|
}
|
|
250
|
-
.radio
|
|
251
|
-
.checkbox
|
|
248
|
+
.radio-inline + .radio-inline,
|
|
249
|
+
.checkbox-inline + .checkbox-inline {
|
|
250
|
+
margin-top: 0;
|
|
252
251
|
margin-left: 10px; // space out consecutive inline controls
|
|
253
252
|
}
|
|
254
253
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
.input-xxlarge { width: 530px; }
|
|
267
|
-
|
|
268
|
-
// Grid style input sizes
|
|
269
|
-
input[class*="span"],
|
|
270
|
-
select[class*="span"],
|
|
271
|
-
textarea[class*="span"],
|
|
272
|
-
.uneditable-input[class*="span"],
|
|
273
|
-
// Redeclare since the fluid row class is more specific
|
|
274
|
-
.row-fluid input[class*="span"],
|
|
275
|
-
.row-fluid select[class*="span"],
|
|
276
|
-
.row-fluid textarea[class*="span"],
|
|
277
|
-
.row-fluid .uneditable-input[class*="span"] {
|
|
278
|
-
float: none;
|
|
279
|
-
margin-left: 0;
|
|
280
|
-
}
|
|
281
|
-
// Ensure input-prepend/append never wraps
|
|
282
|
-
.input-append input[class*="span"],
|
|
283
|
-
.input-append .uneditable-input[class*="span"],
|
|
284
|
-
.input-prepend input[class*="span"],
|
|
285
|
-
.input-prepend .uneditable-input[class*="span"],
|
|
286
|
-
.row-fluid input[class*="span"],
|
|
287
|
-
.row-fluid select[class*="span"],
|
|
288
|
-
.row-fluid textarea[class*="span"],
|
|
289
|
-
.row-fluid .uneditable-input[class*="span"],
|
|
290
|
-
.row-fluid .input-prepend [class*="span"],
|
|
291
|
-
.row-fluid .input-append [class*="span"] {
|
|
292
|
-
display: inline-block;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
// GRID SIZING FOR INPUTS
|
|
298
|
-
// ----------------------
|
|
299
|
-
|
|
300
|
-
// Grid sizes
|
|
301
|
-
@include grid-input($gridColumnWidth, $gridGutterWidth);
|
|
302
|
-
|
|
303
|
-
// Control row for multiple inputs per line
|
|
304
|
-
.controls-row {
|
|
305
|
-
@include clearfix(); // Clear the float from controls
|
|
254
|
+
// Apply same disabled cursor tweak as for inputs
|
|
255
|
+
// Some special care is needed because <label>s don't inherit their parent's `cursor`.
|
|
256
|
+
//
|
|
257
|
+
// Note: Neither radios nor checkboxes can be readonly.
|
|
258
|
+
input[type="radio"],
|
|
259
|
+
input[type="checkbox"] {
|
|
260
|
+
&[disabled],
|
|
261
|
+
&.disabled,
|
|
262
|
+
fieldset[disabled] & {
|
|
263
|
+
cursor: not-allowed;
|
|
264
|
+
}
|
|
306
265
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
.
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
266
|
+
// These classes are used directly on <label>s
|
|
267
|
+
.radio-inline,
|
|
268
|
+
.checkbox-inline {
|
|
269
|
+
&.disabled,
|
|
270
|
+
fieldset[disabled] & {
|
|
271
|
+
cursor: not-allowed;
|
|
272
|
+
}
|
|
313
273
|
}
|
|
314
|
-
//
|
|
315
|
-
.
|
|
316
|
-
.
|
|
317
|
-
|
|
274
|
+
// These classes are used on elements with <label> descendants
|
|
275
|
+
.radio,
|
|
276
|
+
.checkbox {
|
|
277
|
+
&.disabled,
|
|
278
|
+
fieldset[disabled] & {
|
|
279
|
+
label {
|
|
280
|
+
cursor: not-allowed;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
318
283
|
}
|
|
319
284
|
|
|
320
285
|
|
|
286
|
+
// Static form control text
|
|
287
|
+
//
|
|
288
|
+
// Apply class to a `p` element to make any string of text align with labels in
|
|
289
|
+
// a horizontal form layout.
|
|
290
|
+
|
|
291
|
+
.form-control-static {
|
|
292
|
+
// Size it appropriately next to real form controls
|
|
293
|
+
padding-top: ($padding-base-vertical + 1);
|
|
294
|
+
padding-bottom: ($padding-base-vertical + 1);
|
|
295
|
+
// Remove default margin from `p`
|
|
296
|
+
margin-bottom: 0;
|
|
321
297
|
|
|
298
|
+
&.input-lg,
|
|
299
|
+
&.input-sm {
|
|
300
|
+
padding-left: 0;
|
|
301
|
+
padding-right: 0;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
322
304
|
|
|
323
|
-
// DISABLED STATE
|
|
324
|
-
// --------------
|
|
325
305
|
|
|
326
|
-
//
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
textarea[readonly] {
|
|
333
|
-
cursor: not-allowed;
|
|
334
|
-
background-color: $inputDisabledBackground;
|
|
335
|
-
}
|
|
336
|
-
// Explicitly reset the colors here
|
|
337
|
-
input[type="radio"][disabled],
|
|
338
|
-
input[type="checkbox"][disabled],
|
|
339
|
-
input[type="radio"][readonly],
|
|
340
|
-
input[type="checkbox"][readonly] {
|
|
341
|
-
background-color: transparent;
|
|
342
|
-
}
|
|
306
|
+
// Form control sizing
|
|
307
|
+
//
|
|
308
|
+
// Build on `.form-control` with modifier classes to decrease or increase the
|
|
309
|
+
// height and font-size of form controls.
|
|
310
|
+
|
|
311
|
+
@include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
|
|
343
312
|
|
|
313
|
+
@include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
|
|
344
314
|
|
|
345
315
|
|
|
316
|
+
// Form control feedback states
|
|
317
|
+
//
|
|
318
|
+
// Apply contextual and semantic states to individual form controls.
|
|
346
319
|
|
|
347
|
-
|
|
348
|
-
//
|
|
320
|
+
.has-feedback {
|
|
321
|
+
// Enable absolute positioning
|
|
322
|
+
position: relative;
|
|
349
323
|
|
|
350
|
-
//
|
|
351
|
-
.control
|
|
352
|
-
|
|
324
|
+
// Ensure icons don't overlap text
|
|
325
|
+
.form-control {
|
|
326
|
+
padding-right: ($input-height-base * 1.25);
|
|
327
|
+
}
|
|
353
328
|
}
|
|
354
|
-
//
|
|
355
|
-
.control-
|
|
356
|
-
|
|
329
|
+
// Feedback icon (requires .glyphicon classes)
|
|
330
|
+
.form-control-feedback {
|
|
331
|
+
position: absolute;
|
|
332
|
+
top: ($line-height-computed + 5); // Height of the `label` and its margin
|
|
333
|
+
right: 0;
|
|
334
|
+
z-index: 2; // Ensure icon is above input groups
|
|
335
|
+
display: block;
|
|
336
|
+
width: $input-height-base;
|
|
337
|
+
height: $input-height-base;
|
|
338
|
+
line-height: $input-height-base;
|
|
339
|
+
text-align: center;
|
|
357
340
|
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
341
|
+
.input-lg + .form-control-feedback {
|
|
342
|
+
width: $input-height-large;
|
|
343
|
+
height: $input-height-large;
|
|
344
|
+
line-height: $input-height-large;
|
|
361
345
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
346
|
+
.input-sm + .form-control-feedback {
|
|
347
|
+
width: $input-height-small;
|
|
348
|
+
height: $input-height-small;
|
|
349
|
+
line-height: $input-height-small;
|
|
365
350
|
}
|
|
366
351
|
|
|
367
|
-
//
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
textarea:focus:invalid,
|
|
371
|
-
select:focus:invalid {
|
|
372
|
-
color: #b94a48;
|
|
373
|
-
border-color: #ee5f5b;
|
|
374
|
-
&:focus {
|
|
375
|
-
border-color: darken(#ee5f5b, 10%);
|
|
376
|
-
@include box-shadow(0 0 6px lighten(#ee5f5b, 20%));
|
|
377
|
-
}
|
|
352
|
+
// Feedback states
|
|
353
|
+
.has-success {
|
|
354
|
+
@include form-control-validation($state-success-text, $state-success-text, $state-success-bg);
|
|
378
355
|
}
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
.form-actions {
|
|
386
|
-
padding: ($baseLineHeight - 1) 20px $baseLineHeight;
|
|
387
|
-
margin-top: $baseLineHeight;
|
|
388
|
-
margin-bottom: $baseLineHeight;
|
|
389
|
-
background-color: $formActionsBackground;
|
|
390
|
-
border-top: 1px solid #e5e5e5;
|
|
391
|
-
@include clearfix(); // Adding clearfix to allow for .pull-right button containers
|
|
356
|
+
.has-warning {
|
|
357
|
+
@include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
|
|
358
|
+
}
|
|
359
|
+
.has-error {
|
|
360
|
+
@include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
|
|
392
361
|
}
|
|
393
362
|
|
|
394
363
|
|
|
364
|
+
// Reposition feedback icon if label is hidden with "screenreader only" state
|
|
365
|
+
.has-feedback label.sr-only ~ .form-control-feedback {
|
|
366
|
+
top: 0;
|
|
367
|
+
}
|
|
395
368
|
|
|
396
|
-
// HELP TEXT
|
|
397
|
-
// ---------
|
|
398
369
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
370
|
+
// Help text
|
|
371
|
+
//
|
|
372
|
+
// Apply to any element you wish to create light text for placement immediately
|
|
373
|
+
// below a form control. Use for general help, formatting, or instructional text.
|
|
403
374
|
|
|
404
375
|
.help-block {
|
|
405
376
|
display: block; // account for any element using help-block
|
|
406
|
-
margin-
|
|
377
|
+
margin-top: 5px;
|
|
378
|
+
margin-bottom: 10px;
|
|
379
|
+
color: lighten($text-color, 25%); // lighten the text some for contrast
|
|
407
380
|
}
|
|
408
381
|
|
|
409
|
-
.help-inline {
|
|
410
|
-
display: inline-block;
|
|
411
|
-
@include ie7-inline-block();
|
|
412
|
-
vertical-align: middle;
|
|
413
|
-
padding-left: 5px;
|
|
414
|
-
}
|
|
415
382
|
|
|
416
383
|
|
|
384
|
+
// Inline forms
|
|
385
|
+
//
|
|
386
|
+
// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
|
|
387
|
+
// forms begin stacked on extra small (mobile) devices and then go inline when
|
|
388
|
+
// viewports reach <768px.
|
|
389
|
+
//
|
|
390
|
+
// Requires wrapping inputs and labels with `.form-group` for proper display of
|
|
391
|
+
// default HTML form controls and our custom form controls (e.g., input groups).
|
|
392
|
+
//
|
|
393
|
+
// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
|
|
417
394
|
|
|
418
|
-
|
|
419
|
-
// ------------
|
|
395
|
+
.form-inline {
|
|
420
396
|
|
|
421
|
-
//
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
// Reset the white space collapse hack
|
|
431
|
-
input,
|
|
432
|
-
select,
|
|
433
|
-
.uneditable-input,
|
|
434
|
-
.dropdown-menu,
|
|
435
|
-
.popover {
|
|
436
|
-
font-size: $baseFontSize;
|
|
437
|
-
}
|
|
397
|
+
// Kick in the inline
|
|
398
|
+
@media (min-width: $screen-sm-min) {
|
|
399
|
+
// Inline-block all the things for "inline"
|
|
400
|
+
.form-group {
|
|
401
|
+
display: inline-block;
|
|
402
|
+
margin-bottom: 0;
|
|
403
|
+
vertical-align: middle;
|
|
404
|
+
}
|
|
438
405
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
*margin-left: 0;
|
|
445
|
-
vertical-align: top;
|
|
446
|
-
@include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
|
|
447
|
-
// Make input on top when focused so blue border and shadow always show
|
|
448
|
-
&:focus {
|
|
449
|
-
z-index: 2;
|
|
406
|
+
// In navbar-form, allow folks to *not* use `.form-group`
|
|
407
|
+
.form-control {
|
|
408
|
+
display: inline-block;
|
|
409
|
+
width: auto; // Prevent labels from stacking above inputs in `.form-group`
|
|
410
|
+
vertical-align: middle;
|
|
450
411
|
}
|
|
451
|
-
}
|
|
452
|
-
.add-on {
|
|
453
|
-
display: inline-block;
|
|
454
|
-
width: auto;
|
|
455
|
-
height: $baseLineHeight;
|
|
456
|
-
min-width: 16px;
|
|
457
|
-
padding: 4px 5px;
|
|
458
|
-
font-size: $baseFontSize;
|
|
459
|
-
font-weight: normal;
|
|
460
|
-
line-height: $baseLineHeight;
|
|
461
|
-
text-align: center;
|
|
462
|
-
text-shadow: 0 1px 0 $white;
|
|
463
|
-
background-color: $grayLighter;
|
|
464
|
-
border: 1px solid #ccc;
|
|
465
|
-
}
|
|
466
|
-
.add-on,
|
|
467
|
-
.btn,
|
|
468
|
-
.btn-group > .dropdown-toggle {
|
|
469
|
-
vertical-align: top;
|
|
470
|
-
@include border-radius(0);
|
|
471
|
-
}
|
|
472
|
-
.active {
|
|
473
|
-
background-color: lighten($green, 30);
|
|
474
|
-
border-color: $green;
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
412
|
|
|
478
|
-
.input-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
margin-right: -1px;
|
|
482
|
-
}
|
|
483
|
-
.add-on:first-child,
|
|
484
|
-
.btn:first-child {
|
|
485
|
-
// FYI, `.btn:first-child` accounts for a button group that's prepended
|
|
486
|
-
@include border-radius($inputBorderRadius 0 0 $inputBorderRadius);
|
|
487
|
-
}
|
|
488
|
-
}
|
|
413
|
+
.input-group {
|
|
414
|
+
display: inline-table;
|
|
415
|
+
vertical-align: middle;
|
|
489
416
|
|
|
490
|
-
.input-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
+ .btn-group .btn:last-child {
|
|
496
|
-
@include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
|
|
417
|
+
.input-group-addon,
|
|
418
|
+
.input-group-btn,
|
|
419
|
+
.form-control {
|
|
420
|
+
width: auto;
|
|
421
|
+
}
|
|
497
422
|
}
|
|
498
|
-
}
|
|
499
|
-
.add-on,
|
|
500
|
-
.btn,
|
|
501
|
-
.btn-group {
|
|
502
|
-
margin-left: -1px;
|
|
503
|
-
}
|
|
504
|
-
.add-on:last-child,
|
|
505
|
-
.btn:last-child,
|
|
506
|
-
.btn-group:last-child > .dropdown-toggle {
|
|
507
|
-
@include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
423
|
|
|
511
|
-
//
|
|
512
|
-
.input-
|
|
513
|
-
|
|
514
|
-
select,
|
|
515
|
-
.uneditable-input {
|
|
516
|
-
@include border-radius(0);
|
|
517
|
-
+ .btn-group .btn {
|
|
518
|
-
@include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
|
|
424
|
+
// Input groups need that 100% width though
|
|
425
|
+
.input-group > .form-control {
|
|
426
|
+
width: 100%;
|
|
519
427
|
}
|
|
520
|
-
}
|
|
521
|
-
.add-on:first-child,
|
|
522
|
-
.btn:first-child {
|
|
523
|
-
margin-right: -1px;
|
|
524
|
-
@include border-radius($inputBorderRadius 0 0 $inputBorderRadius);
|
|
525
|
-
}
|
|
526
|
-
.add-on:last-child,
|
|
527
|
-
.btn:last-child {
|
|
528
|
-
margin-left: -1px;
|
|
529
|
-
@include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
|
|
530
|
-
}
|
|
531
|
-
.btn-group:first-child {
|
|
532
|
-
margin-left: 0;
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
428
|
|
|
539
|
-
|
|
540
|
-
|
|
429
|
+
.control-label {
|
|
430
|
+
margin-bottom: 0;
|
|
431
|
+
vertical-align: middle;
|
|
432
|
+
}
|
|
541
433
|
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
434
|
+
// Remove default margin on radios/checkboxes that were used for stacking, and
|
|
435
|
+
// then undo the floating of radios and checkboxes to match (which also avoids
|
|
436
|
+
// a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).
|
|
437
|
+
.radio,
|
|
438
|
+
.checkbox {
|
|
439
|
+
display: inline-block;
|
|
440
|
+
margin-top: 0;
|
|
441
|
+
margin-bottom: 0;
|
|
442
|
+
vertical-align: middle;
|
|
443
|
+
|
|
444
|
+
label {
|
|
445
|
+
padding-left: 0;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
.radio input[type="radio"],
|
|
449
|
+
.checkbox input[type="checkbox"] {
|
|
450
|
+
position: relative;
|
|
451
|
+
margin-left: 0;
|
|
452
|
+
}
|
|
550
453
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
}
|
|
559
|
-
.form-search .input-append .btn {
|
|
560
|
-
@include border-radius(0 14px 14px 0);
|
|
561
|
-
}
|
|
562
|
-
.form-search .input-prepend .search-query {
|
|
563
|
-
@include border-radius(0 14px 14px 0);
|
|
564
|
-
}
|
|
565
|
-
.form-search .input-prepend .btn {
|
|
566
|
-
@include border-radius(14px 0 0 14px);
|
|
454
|
+
// Validation states
|
|
455
|
+
//
|
|
456
|
+
// Reposition the icon because it's now within a grid column and columns have
|
|
457
|
+
// `position: relative;` on them. Also accounts for the grid gutter padding.
|
|
458
|
+
.has-feedback .form-control-feedback {
|
|
459
|
+
top: 0;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
567
462
|
}
|
|
568
463
|
|
|
569
464
|
|
|
465
|
+
// Horizontal forms
|
|
466
|
+
//
|
|
467
|
+
// Horizontal forms are built on grid classes and allow you to create forms with
|
|
468
|
+
// labels on the left and inputs on the right.
|
|
570
469
|
|
|
571
|
-
|
|
572
|
-
// HORIZONTAL & VERTICAL FORMS
|
|
573
|
-
// ---------------------------
|
|
574
|
-
|
|
575
|
-
// Common properties
|
|
576
|
-
// -----------------
|
|
577
|
-
|
|
578
|
-
.form-search,
|
|
579
|
-
.form-inline,
|
|
580
470
|
.form-horizontal {
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
.
|
|
585
|
-
.
|
|
586
|
-
.
|
|
587
|
-
.
|
|
588
|
-
|
|
589
|
-
|
|
471
|
+
|
|
472
|
+
// Consistent vertical alignment of radios and checkboxes
|
|
473
|
+
//
|
|
474
|
+
// Labels also get some reset styles, but that is scoped to a media query below.
|
|
475
|
+
.radio,
|
|
476
|
+
.checkbox,
|
|
477
|
+
.radio-inline,
|
|
478
|
+
.checkbox-inline {
|
|
479
|
+
margin-top: 0;
|
|
590
480
|
margin-bottom: 0;
|
|
591
|
-
|
|
481
|
+
padding-top: ($padding-base-vertical + 1); // Default padding plus a border
|
|
592
482
|
}
|
|
593
|
-
//
|
|
594
|
-
|
|
595
|
-
|
|
483
|
+
// Account for padding we're adding to ensure the alignment and of help text
|
|
484
|
+
// and other content below items
|
|
485
|
+
.radio,
|
|
486
|
+
.checkbox {
|
|
487
|
+
min-height: ($line-height-computed + ($padding-base-vertical + 1));
|
|
596
488
|
}
|
|
597
|
-
}
|
|
598
|
-
.form-search label,
|
|
599
|
-
.form-inline label,
|
|
600
|
-
.form-search .btn-group,
|
|
601
|
-
.form-inline .btn-group {
|
|
602
|
-
display: inline-block;
|
|
603
|
-
}
|
|
604
|
-
// Remove margin for input-prepend/-append
|
|
605
|
-
.form-search .input-append,
|
|
606
|
-
.form-inline .input-append,
|
|
607
|
-
.form-search .input-prepend,
|
|
608
|
-
.form-inline .input-prepend {
|
|
609
|
-
margin-bottom: 0;
|
|
610
|
-
}
|
|
611
|
-
// Inline checkbox/radio labels (remove padding on left)
|
|
612
|
-
.form-search .radio,
|
|
613
|
-
.form-search .checkbox,
|
|
614
|
-
.form-inline .radio,
|
|
615
|
-
.form-inline .checkbox {
|
|
616
|
-
padding-left: 0;
|
|
617
|
-
margin-bottom: 0;
|
|
618
|
-
vertical-align: middle;
|
|
619
|
-
}
|
|
620
|
-
// Remove float and margin, set to inline-block
|
|
621
|
-
.form-search .radio input[type="radio"],
|
|
622
|
-
.form-search .checkbox input[type="checkbox"],
|
|
623
|
-
.form-inline .radio input[type="radio"],
|
|
624
|
-
.form-inline .checkbox input[type="checkbox"] {
|
|
625
|
-
float: left;
|
|
626
|
-
margin-right: 3px;
|
|
627
|
-
margin-left: 0;
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
// Margin to space out fieldsets
|
|
632
|
-
.control-group {
|
|
633
|
-
margin-bottom: $baseLineHeight / 2;
|
|
634
|
-
}
|
|
635
|
-
|
|
636
|
-
// Legend collapses margin, so next element is responsible for spacing
|
|
637
|
-
legend + .control-group {
|
|
638
|
-
margin-top: $baseLineHeight;
|
|
639
|
-
-webkit-margin-top-collapse: separate;
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
// Horizontal-specific styles
|
|
643
|
-
// --------------------------
|
|
644
489
|
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
margin-bottom: $baseLineHeight;
|
|
649
|
-
@include clearfix();
|
|
490
|
+
// Make form groups behave like rows
|
|
491
|
+
.form-group {
|
|
492
|
+
@include make-row();
|
|
650
493
|
}
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
.controls {
|
|
660
|
-
// Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
|
|
661
|
-
// don't inherit the margin of the parent, in this case .controls
|
|
662
|
-
*display: inline-block;
|
|
663
|
-
*padding-left: 20px;
|
|
664
|
-
margin-left: $horizontalComponentOffset;
|
|
665
|
-
*margin-left: 0;
|
|
666
|
-
&:first-child {
|
|
667
|
-
*padding-left: $horizontalComponentOffset;
|
|
494
|
+
|
|
495
|
+
// Reset spacing and right align labels, but scope to media queries so that
|
|
496
|
+
// labels on narrow viewports stack the same as a default form example.
|
|
497
|
+
@media (min-width: $screen-sm-min) {
|
|
498
|
+
.control-label {
|
|
499
|
+
text-align: right;
|
|
500
|
+
margin-bottom: 0;
|
|
501
|
+
padding-top: ($padding-base-vertical + 1); // Default padding plus a border
|
|
668
502
|
}
|
|
669
503
|
}
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
504
|
+
|
|
505
|
+
// Validation states
|
|
506
|
+
//
|
|
507
|
+
// Reposition the icon because it's now within a grid column and columns have
|
|
508
|
+
// `position: relative;` on them. Also accounts for the grid gutter padding.
|
|
509
|
+
.has-feedback .form-control-feedback {
|
|
510
|
+
top: 0;
|
|
511
|
+
right: ($grid-gutter-width / 2);
|
|
673
512
|
}
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
.
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
513
|
+
|
|
514
|
+
// Form group sizes
|
|
515
|
+
//
|
|
516
|
+
// Quick utility class for applying `.input-lg` and `.input-sm` styles to the
|
|
517
|
+
// inputs and labels within a `.form-group`.
|
|
518
|
+
.form-group-lg {
|
|
519
|
+
@media (min-width: $screen-sm-min) {
|
|
520
|
+
.control-label {
|
|
521
|
+
padding-top: (($padding-large-vertical * $line-height-large) + 1);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
.form-control {
|
|
525
|
+
@extend .input-lg;
|
|
683
526
|
}
|
|
684
527
|
}
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
528
|
+
.form-group-sm {
|
|
529
|
+
@media (min-width: $screen-sm-min) {
|
|
530
|
+
.control-label {
|
|
531
|
+
padding-top: ($padding-small-vertical + 1);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
.form-control {
|
|
535
|
+
@extend .input-sm;
|
|
536
|
+
}
|
|
688
537
|
}
|
|
689
538
|
}
|