bootstrap-sass 2.2.2.0 → 2.3.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bootstrap-sass might be problematic. Click here for more details.
- data/README.md +44 -22
- data/lib/bootstrap-sass.rb +3 -1
- data/vendor/assets/javascripts/bootstrap-affix.js +1 -1
- data/vendor/assets/javascripts/bootstrap-alert.js +1 -1
- data/vendor/assets/javascripts/bootstrap-button.js +1 -1
- data/vendor/assets/javascripts/bootstrap-carousel.js +31 -9
- data/vendor/assets/javascripts/bootstrap-collapse.js +4 -4
- data/vendor/assets/javascripts/bootstrap-dropdown.js +14 -10
- data/vendor/assets/javascripts/bootstrap-modal.js +13 -11
- data/vendor/assets/javascripts/bootstrap-popover.js +5 -5
- data/vendor/assets/javascripts/bootstrap-scrollspy.js +2 -2
- data/vendor/assets/javascripts/bootstrap-tab.js +1 -1
- data/vendor/assets/javascripts/bootstrap-tooltip.js +95 -29
- data/vendor/assets/javascripts/bootstrap-transition.js +1 -1
- data/vendor/assets/javascripts/bootstrap-typeahead.js +16 -4
- data/vendor/assets/stylesheets/bootstrap/_button-groups.scss +4 -2
- data/vendor/assets/stylesheets/bootstrap/_buttons.scss +8 -10
- data/vendor/assets/stylesheets/bootstrap/_carousel.scss +33 -6
- data/vendor/assets/stylesheets/bootstrap/_close.scss +2 -1
- data/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +16 -12
- data/vendor/assets/stylesheets/bootstrap/_forms.scss +5 -2
- data/vendor/assets/stylesheets/bootstrap/_labels-badges.scss +4 -2
- data/vendor/assets/stylesheets/bootstrap/_media.scss +2 -2
- data/vendor/assets/stylesheets/bootstrap/_mixins.scss +6 -0
- data/vendor/assets/stylesheets/bootstrap/_modals.scss +3 -3
- data/vendor/assets/stylesheets/bootstrap/_navbar.scss +18 -11
- data/vendor/assets/stylesheets/bootstrap/_navs.scss +39 -21
- data/vendor/assets/stylesheets/bootstrap/_pager.scss +3 -1
- data/vendor/assets/stylesheets/bootstrap/_pagination.scss +3 -1
- data/vendor/assets/stylesheets/bootstrap/_popovers.scss +5 -1
- data/vendor/assets/stylesheets/bootstrap/_responsive-navbar.scss +6 -2
- data/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss +29 -13
- data/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +2 -1
- data/vendor/assets/stylesheets/bootstrap/_sprites.scss +7 -3
- data/vendor/assets/stylesheets/bootstrap/_tables.scss +24 -17
- data/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +3 -2
- data/vendor/assets/stylesheets/bootstrap/_tooltip.scss +6 -6
- data/vendor/assets/stylesheets/bootstrap/_type.scss +20 -8
- data/vendor/assets/stylesheets/bootstrap/_variables.scss +2 -2
- data/vendor/assets/stylesheets/bootstrap/bootstrap.scss +1 -1
- data/vendor/assets/stylesheets/bootstrap/responsive.scss +1 -10
- metadata +9 -24
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ========================================================
|
2
|
-
* bootstrap-tab.js v2.
|
2
|
+
* bootstrap-tab.js v2.3.0
|
3
3
|
* http://twitter.github.com/bootstrap/javascript.html#tabs
|
4
4
|
* ========================================================
|
5
5
|
* Copyright 2012 Twitter, Inc.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ===========================================================
|
2
|
-
* bootstrap-tooltip.js v2.
|
2
|
+
* bootstrap-tooltip.js v2.3.0
|
3
3
|
* http://twitter.github.com/bootstrap/javascript.html#tooltips
|
4
4
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
5
5
|
* ===========================================================
|
@@ -38,19 +38,27 @@
|
|
38
38
|
, init: function (type, element, options) {
|
39
39
|
var eventIn
|
40
40
|
, eventOut
|
41
|
+
, triggers
|
42
|
+
, trigger
|
43
|
+
, i
|
41
44
|
|
42
45
|
this.type = type
|
43
46
|
this.$element = $(element)
|
44
47
|
this.options = this.getOptions(options)
|
45
48
|
this.enabled = true
|
46
49
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
50
|
+
triggers = this.options.trigger.split(' ')
|
51
|
+
|
52
|
+
for (i = triggers.length; i--;) {
|
53
|
+
trigger = triggers[i]
|
54
|
+
if (trigger == 'click') {
|
55
|
+
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
|
56
|
+
} else if (trigger != 'manual') {
|
57
|
+
eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
|
58
|
+
eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
|
59
|
+
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
|
60
|
+
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
|
61
|
+
}
|
54
62
|
}
|
55
63
|
|
56
64
|
this.options.selector ?
|
@@ -59,7 +67,7 @@
|
|
59
67
|
}
|
60
68
|
|
61
69
|
, getOptions: function (options) {
|
62
|
-
options = $.extend({}, $.fn[this.type].defaults,
|
70
|
+
options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
|
63
71
|
|
64
72
|
if (options.delay && typeof options.delay == 'number') {
|
65
73
|
options.delay = {
|
@@ -97,14 +105,16 @@
|
|
97
105
|
|
98
106
|
, show: function () {
|
99
107
|
var $tip
|
100
|
-
, inside
|
101
108
|
, pos
|
102
109
|
, actualWidth
|
103
110
|
, actualHeight
|
104
111
|
, placement
|
105
112
|
, tp
|
113
|
+
, e = $.Event('show')
|
106
114
|
|
107
115
|
if (this.hasContent() && this.enabled) {
|
116
|
+
this.$element.trigger(e)
|
117
|
+
if (e.isDefaultPrevented()) return
|
108
118
|
$tip = this.tip()
|
109
119
|
this.setContent()
|
110
120
|
|
@@ -116,19 +126,18 @@
|
|
116
126
|
this.options.placement.call(this, $tip[0], this.$element[0]) :
|
117
127
|
this.options.placement
|
118
128
|
|
119
|
-
inside = /in/.test(placement)
|
120
|
-
|
121
129
|
$tip
|
122
130
|
.detach()
|
123
131
|
.css({ top: 0, left: 0, display: 'block' })
|
124
|
-
.insertAfter(this.$element)
|
125
132
|
|
126
|
-
|
133
|
+
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
134
|
+
|
135
|
+
pos = this.getPosition()
|
127
136
|
|
128
137
|
actualWidth = $tip[0].offsetWidth
|
129
138
|
actualHeight = $tip[0].offsetHeight
|
130
139
|
|
131
|
-
switch (
|
140
|
+
switch (placement) {
|
132
141
|
case 'bottom':
|
133
142
|
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
|
134
143
|
break
|
@@ -143,11 +152,56 @@
|
|
143
152
|
break
|
144
153
|
}
|
145
154
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
155
|
+
this.applyPlacement(tp, placement)
|
156
|
+
this.$element.trigger('shown')
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
, applyPlacement: function(offset, placement){
|
161
|
+
var $tip = this.tip()
|
162
|
+
, width = $tip[0].offsetWidth
|
163
|
+
, height = $tip[0].offsetHeight
|
164
|
+
, actualWidth
|
165
|
+
, actualHeight
|
166
|
+
, delta
|
167
|
+
, replace
|
168
|
+
|
169
|
+
$tip
|
170
|
+
.offset(offset)
|
171
|
+
.addClass(placement)
|
172
|
+
.addClass('in')
|
173
|
+
|
174
|
+
actualWidth = $tip[0].offsetWidth
|
175
|
+
actualHeight = $tip[0].offsetHeight
|
176
|
+
|
177
|
+
if (placement == 'top' && actualHeight != height) {
|
178
|
+
offset.top = offset.top + height - actualHeight
|
179
|
+
replace = true
|
150
180
|
}
|
181
|
+
|
182
|
+
if (placement == 'bottom' || placement == 'top') {
|
183
|
+
delta = 0
|
184
|
+
|
185
|
+
if (offset.left < 0){
|
186
|
+
delta = offset.left * -2
|
187
|
+
offset.left = 0
|
188
|
+
$tip.offset(offset)
|
189
|
+
actualWidth = $tip[0].offsetWidth
|
190
|
+
actualHeight = $tip[0].offsetHeight
|
191
|
+
}
|
192
|
+
|
193
|
+
this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
|
194
|
+
} else {
|
195
|
+
this.replaceArrow(actualHeight - height, actualHeight, 'top')
|
196
|
+
}
|
197
|
+
|
198
|
+
if (replace) $tip.offset(offset)
|
199
|
+
}
|
200
|
+
|
201
|
+
, replaceArrow: function(delta, dimension, position){
|
202
|
+
this
|
203
|
+
.arrow()
|
204
|
+
.css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
|
151
205
|
}
|
152
206
|
|
153
207
|
, setContent: function () {
|
@@ -161,6 +215,10 @@
|
|
161
215
|
, hide: function () {
|
162
216
|
var that = this
|
163
217
|
, $tip = this.tip()
|
218
|
+
, e = $.Event('hide')
|
219
|
+
|
220
|
+
this.$element.trigger(e)
|
221
|
+
if (e.isDefaultPrevented()) return
|
164
222
|
|
165
223
|
$tip.removeClass('in')
|
166
224
|
|
@@ -179,13 +237,15 @@
|
|
179
237
|
removeWithAnimation() :
|
180
238
|
$tip.detach()
|
181
239
|
|
240
|
+
this.$element.trigger('hidden')
|
241
|
+
|
182
242
|
return this
|
183
243
|
}
|
184
244
|
|
185
245
|
, fixTitle: function () {
|
186
246
|
var $e = this.$element
|
187
247
|
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
|
188
|
-
$e.attr('data-original-title', $e.attr('title') || '').
|
248
|
+
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
189
249
|
}
|
190
250
|
}
|
191
251
|
|
@@ -193,11 +253,12 @@
|
|
193
253
|
return this.getTitle()
|
194
254
|
}
|
195
255
|
|
196
|
-
, getPosition: function (
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
256
|
+
, getPosition: function () {
|
257
|
+
var el = this.$element[0]
|
258
|
+
return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
|
259
|
+
width: el.offsetWidth
|
260
|
+
, height: el.offsetHeight
|
261
|
+
}, this.$element.offset())
|
201
262
|
}
|
202
263
|
|
203
264
|
, getTitle: function () {
|
@@ -215,6 +276,10 @@
|
|
215
276
|
return this.$tip = this.$tip || $(this.options.template)
|
216
277
|
}
|
217
278
|
|
279
|
+
, arrow: function(){
|
280
|
+
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
|
281
|
+
}
|
282
|
+
|
218
283
|
, validate: function () {
|
219
284
|
if (!this.$element[0].parentNode) {
|
220
285
|
this.hide()
|
@@ -236,8 +301,8 @@
|
|
236
301
|
}
|
237
302
|
|
238
303
|
, toggle: function (e) {
|
239
|
-
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
240
|
-
self
|
304
|
+
var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
|
305
|
+
self.tip().hasClass('in') ? self.hide() : self.show()
|
241
306
|
}
|
242
307
|
|
243
308
|
, destroy: function () {
|
@@ -269,10 +334,11 @@
|
|
269
334
|
, placement: 'top'
|
270
335
|
, selector: false
|
271
336
|
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
272
|
-
, trigger: 'hover'
|
337
|
+
, trigger: 'hover focus'
|
273
338
|
, title: ''
|
274
339
|
, delay: 0
|
275
340
|
, html: false
|
341
|
+
, container: false
|
276
342
|
}
|
277
343
|
|
278
344
|
|
@@ -284,4 +350,4 @@
|
|
284
350
|
return this
|
285
351
|
}
|
286
352
|
|
287
|
-
}(window.jQuery);
|
353
|
+
}(window.jQuery);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ===================================================
|
2
|
-
* bootstrap-transition.js v2.
|
2
|
+
* bootstrap-transition.js v2.3.0
|
3
3
|
* http://twitter.github.com/bootstrap/javascript.html#transitions
|
4
4
|
* ===================================================
|
5
5
|
* Copyright 2012 Twitter, Inc.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* =============================================================
|
2
|
-
* bootstrap-typeahead.js v2.
|
2
|
+
* bootstrap-typeahead.js v2.3.0
|
3
3
|
* http://twitter.github.com/bootstrap/javascript.html#typeahead
|
4
4
|
* =============================================================
|
5
5
|
* Copyright 2012 Twitter, Inc.
|
@@ -172,6 +172,7 @@
|
|
172
172
|
|
173
173
|
, listen: function () {
|
174
174
|
this.$element
|
175
|
+
.on('focus', $.proxy(this.focus, this))
|
175
176
|
.on('blur', $.proxy(this.blur, this))
|
176
177
|
.on('keypress', $.proxy(this.keypress, this))
|
177
178
|
.on('keyup', $.proxy(this.keyup, this))
|
@@ -183,6 +184,7 @@
|
|
183
184
|
this.$menu
|
184
185
|
.on('click', $.proxy(this.click, this))
|
185
186
|
.on('mouseenter', 'li', $.proxy(this.mouseenter, this))
|
187
|
+
.on('mouseleave', 'li', $.proxy(this.mouseleave, this))
|
186
188
|
}
|
187
189
|
|
188
190
|
, eventSupported: function(eventName) {
|
@@ -256,22 +258,33 @@
|
|
256
258
|
e.preventDefault()
|
257
259
|
}
|
258
260
|
|
261
|
+
, focus: function (e) {
|
262
|
+
this.focused = true
|
263
|
+
}
|
264
|
+
|
259
265
|
, blur: function (e) {
|
260
|
-
|
261
|
-
|
266
|
+
this.focused = false
|
267
|
+
if (!this.mousedover && this.shown) this.hide()
|
262
268
|
}
|
263
269
|
|
264
270
|
, click: function (e) {
|
265
271
|
e.stopPropagation()
|
266
272
|
e.preventDefault()
|
267
273
|
this.select()
|
274
|
+
this.$element.focus()
|
268
275
|
}
|
269
276
|
|
270
277
|
, mouseenter: function (e) {
|
278
|
+
this.mousedover = true
|
271
279
|
this.$menu.find('.active').removeClass('active')
|
272
280
|
$(e.currentTarget).addClass('active')
|
273
281
|
}
|
274
282
|
|
283
|
+
, mouseleave: function (e) {
|
284
|
+
this.mousedover = false
|
285
|
+
if (!this.focused && this.shown) this.hide()
|
286
|
+
}
|
287
|
+
|
275
288
|
}
|
276
289
|
|
277
290
|
|
@@ -316,7 +329,6 @@
|
|
316
329
|
$(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
|
317
330
|
var $this = $(this)
|
318
331
|
if ($this.data('typeahead')) return
|
319
|
-
e.preventDefault()
|
320
332
|
$this.typeahead($this.data())
|
321
333
|
})
|
322
334
|
|
@@ -164,8 +164,6 @@
|
|
164
164
|
margin-left: 0;
|
165
165
|
}
|
166
166
|
// Carets in other button sizes
|
167
|
-
.btn-mini .caret,
|
168
|
-
.btn-small .caret,
|
169
167
|
.btn-large .caret {
|
170
168
|
margin-top: 6px;
|
171
169
|
}
|
@@ -174,6 +172,10 @@
|
|
174
172
|
border-right-width: 5px;
|
175
173
|
border-top-width: 5px;
|
176
174
|
}
|
175
|
+
.btn-mini .caret,
|
176
|
+
.btn-small .caret {
|
177
|
+
margin-top: 8px;
|
178
|
+
}
|
177
179
|
// Upside down carets for .dropup
|
178
180
|
.dropup .btn-large .caret {
|
179
181
|
border-bottom-width: 5px;
|
@@ -25,13 +25,14 @@
|
|
25
25
|
@include ie7-restore-left-whitespace(); // Give IE7 some love
|
26
26
|
@include box-shadow(inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05));
|
27
27
|
|
28
|
-
// Hover state
|
29
|
-
&:hover
|
28
|
+
// Hover/focus state
|
29
|
+
&:hover,
|
30
|
+
&:focus {
|
30
31
|
color: $grayDark;
|
31
32
|
text-decoration: none;
|
32
33
|
background-position: 0 -15px;
|
33
34
|
|
34
|
-
// transition is only when going to hover, otherwise the background
|
35
|
+
// transition is only when going to hover/focus, otherwise the background
|
35
36
|
// behind the gradient (there for IE<=9 fallback) gets mismatched
|
36
37
|
@include transition(background-position .1s linear);
|
37
38
|
}
|
@@ -141,11 +142,6 @@ input[type="button"] {
|
|
141
142
|
|
142
143
|
// Set the backgrounds
|
143
144
|
// -------------------------
|
144
|
-
.btn {
|
145
|
-
// reset here as of 2.0.3 due to Recess property order
|
146
|
-
border-color: #c5c5c5;
|
147
|
-
border-color: rgba(0,0,0,.15) rgba(0,0,0,.15) rgba(0,0,0,.25);
|
148
|
-
}
|
149
145
|
.btn-primary {
|
150
146
|
@include buttonBackground($btnPrimaryBackground, $btnPrimaryBackgroundHighlight);
|
151
147
|
}
|
@@ -219,12 +215,14 @@ input[type="submit"].btn {
|
|
219
215
|
color: $linkColor;
|
220
216
|
@include border-radius(0);
|
221
217
|
}
|
222
|
-
.btn-link:hover
|
218
|
+
.btn-link:hover,
|
219
|
+
.btn-link:focus {
|
223
220
|
color: $linkColorHover;
|
224
221
|
text-decoration: underline;
|
225
222
|
background-color: transparent;
|
226
223
|
}
|
227
|
-
.btn-link[disabled]:hover
|
224
|
+
.btn-link[disabled]:hover,
|
225
|
+
.btn-link[disabled]:focus {
|
228
226
|
color: $grayDark;
|
229
227
|
text-decoration: none;
|
230
228
|
}
|
@@ -21,12 +21,13 @@
|
|
21
21
|
display: none;
|
22
22
|
position: relative;
|
23
23
|
@include transition(.6s ease-in-out left);
|
24
|
-
}
|
25
24
|
|
26
25
|
// Account for jankitude on images
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
> img,
|
27
|
+
> a > img {
|
28
|
+
display: block;
|
29
|
+
line-height: 1;
|
30
|
+
}
|
30
31
|
}
|
31
32
|
|
32
33
|
> .active,
|
@@ -97,14 +98,40 @@
|
|
97
98
|
right: 15px;
|
98
99
|
}
|
99
100
|
|
100
|
-
// Hover state
|
101
|
-
&:hover
|
101
|
+
// Hover/focus state
|
102
|
+
&:hover,
|
103
|
+
&:focus {
|
102
104
|
color: $white;
|
103
105
|
text-decoration: none;
|
104
106
|
@include opacity(90);
|
105
107
|
}
|
106
108
|
}
|
107
109
|
|
110
|
+
// Carousel indicator pips
|
111
|
+
// -----------------------------
|
112
|
+
.carousel-indicators {
|
113
|
+
position: absolute;
|
114
|
+
top: 15px;
|
115
|
+
right: 15px;
|
116
|
+
z-index: 5;
|
117
|
+
margin: 0;
|
118
|
+
list-style: none;
|
119
|
+
|
120
|
+
li {
|
121
|
+
display: block;
|
122
|
+
float: left;
|
123
|
+
width: 10px;
|
124
|
+
height: 10px;
|
125
|
+
margin-left: 5px;
|
126
|
+
text-indent: -999px;
|
127
|
+
background-color: #ccc;
|
128
|
+
background-color: rgba(255,255,255,.25);
|
129
|
+
border-radius: 5px;
|
130
|
+
}
|
131
|
+
.active {
|
132
|
+
background-color: #fff;
|
133
|
+
}
|
134
|
+
}
|
108
135
|
|
109
136
|
// Caption for text below images
|
110
137
|
// -----------------------------
|