twbs_sass_rails 0.2.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -8
  3. data/CONTRIBUTING.md +4 -4
  4. data/Gemfile.lock +52 -65
  5. data/LICENSE +2 -2
  6. data/README.md +48 -18
  7. data/Rakefile +67 -32
  8. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  9. data/app/assets/fonts/fontawesome-webfont.svg +23 -8
  10. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  11. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  12. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  13. data/app/assets/fonts/glyphicons-halflings-regular.svg +200 -199
  14. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  15. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  16. data/gemfiles/Gemfile.rails-3.2.x +2 -3
  17. data/gemfiles/Gemfile.rails-4.0.x +2 -3
  18. data/lib/generators/twbs_sass_rails/install/install_generator.rb +2 -2
  19. data/lib/generators/twbs_sass_rails/install/templates/{twbs-variables.css.less → twbs-variables.css.scss} +4 -3
  20. data/lib/generators/twbs_sass_rails/install/templates/{twbs.css.less → twbs.css.scss} +12 -7
  21. data/lib/twbs_sass_rails/version.rb +1 -1
  22. data/test/dummy/app/assets/stylesheets/{default-twbs.css.less → default-twbs.css.scss} +0 -0
  23. data/test/dummy/app/assets/stylesheets/test.css.scss +9 -0
  24. data/test/dummy/app/assets/stylesheets/twbs-variables.css.scss +7 -0
  25. data/test/dummy/app/assets/stylesheets/{twbs.css.less → twbs.css.scss} +12 -7
  26. data/test/dummy/config/application.rb +4 -1
  27. data/test/dummy/config/environments/development.rb +1 -1
  28. data/test/generators/install_generator_test.rb +4 -4
  29. data/test/integration/assets_precompile_integration_test.rb +11 -5
  30. data/test/integration/twbs_sass_rails_integration_test.rb +8 -7
  31. data/test/test_helper.rb +2 -4
  32. data/twbs_sass_rails.gemspec +6 -9
  33. data/vendor/assets/javascripts/respond.js +223 -212
  34. data/vendor/assets/javascripts/twbs/bootstrap/affix.js +36 -25
  35. data/vendor/assets/javascripts/twbs/bootstrap/alert.js +7 -17
  36. data/vendor/assets/javascripts/twbs/bootstrap/button.js +26 -28
  37. data/vendor/assets/javascripts/twbs/bootstrap/carousel.js +22 -34
  38. data/vendor/assets/javascripts/twbs/bootstrap/collapse.js +9 -18
  39. data/vendor/assets/javascripts/twbs/bootstrap/dropdown.js +25 -32
  40. data/vendor/assets/javascripts/twbs/bootstrap/modal.js +27 -30
  41. data/vendor/assets/javascripts/twbs/bootstrap/popover.js +16 -23
  42. data/vendor/assets/javascripts/twbs/bootstrap/scrollspy.js +19 -24
  43. data/vendor/assets/javascripts/twbs/bootstrap/tab.js +10 -20
  44. data/vendor/assets/javascripts/twbs/bootstrap/tooltip.js +54 -41
  45. data/vendor/assets/javascripts/twbs/bootstrap/transition.js +13 -21
  46. data/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss +16 -0
  47. data/vendor/assets/stylesheets/fontawesome/_core.scss +12 -0
  48. data/vendor/assets/stylesheets/fontawesome/_extras.scss +44 -0
  49. data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +6 -0
  50. data/vendor/assets/stylesheets/fontawesome/_icons.scss +412 -0
  51. data/vendor/assets/stylesheets/fontawesome/_larger.scss +13 -0
  52. data/vendor/assets/stylesheets/fontawesome/_list.scss +19 -0
  53. data/vendor/assets/stylesheets/fontawesome/_mixins.scss +20 -0
  54. data/vendor/assets/stylesheets/fontawesome/_path.scss +14 -0
  55. data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +9 -0
  56. data/vendor/assets/stylesheets/fontawesome/_spinning.scss +30 -0
  57. data/vendor/assets/stylesheets/fontawesome/_stacked.scss +20 -0
  58. data/vendor/assets/stylesheets/fontawesome/_variables.scss +381 -0
  59. data/vendor/assets/stylesheets/fontawesome/font-awesome.scss +17 -0
  60. data/vendor/assets/stylesheets/twbs/bootstrap/{alerts.less → _alerts.scss} +10 -10
  61. data/vendor/assets/stylesheets/twbs/bootstrap/{badges.less → _badges.scss} +19 -15
  62. data/vendor/assets/stylesheets/twbs/bootstrap/_breadcrumbs.scss +26 -0
  63. data/vendor/assets/stylesheets/twbs/bootstrap/{button-groups.less → _button-groups.scss} +38 -60
  64. data/vendor/assets/stylesheets/twbs/bootstrap/{buttons.less → _buttons.scss} +28 -34
  65. data/vendor/assets/stylesheets/twbs/bootstrap/{carousel.less → _carousel.scss} +38 -19
  66. data/vendor/assets/stylesheets/twbs/bootstrap/_close.scss +35 -0
  67. data/vendor/assets/stylesheets/twbs/bootstrap/_code.scss +63 -0
  68. data/vendor/assets/stylesheets/twbs/bootstrap/{component-animations.less → _component-animations.scss} +2 -2
  69. data/vendor/assets/stylesheets/twbs/bootstrap/{dropdowns.less → _dropdowns.scss} +53 -33
  70. data/vendor/assets/stylesheets/twbs/bootstrap/{forms.less → _forms.scss} +133 -79
  71. data/vendor/assets/stylesheets/twbs/bootstrap/{glyphicons.less → _glyphicons.scss} +16 -19
  72. data/vendor/assets/stylesheets/twbs/bootstrap/_grid.scss +100 -0
  73. data/vendor/assets/stylesheets/twbs/bootstrap/{input-groups.less → _input-groups.scss} +58 -29
  74. data/vendor/assets/stylesheets/twbs/bootstrap/_jumbotron.scss +44 -0
  75. data/vendor/assets/stylesheets/twbs/bootstrap/{labels.less → _labels.scss} +14 -8
  76. data/vendor/assets/stylesheets/twbs/bootstrap/_list-group.scss +110 -0
  77. data/vendor/assets/stylesheets/twbs/bootstrap/{media.less → _media.scss} +0 -0
  78. data/vendor/assets/stylesheets/twbs/bootstrap/_mixins.scss +931 -0
  79. data/vendor/assets/stylesheets/twbs/bootstrap/{modals.less → _modals.scss} +37 -40
  80. data/vendor/assets/stylesheets/twbs/bootstrap/_navbar.scss +620 -0
  81. data/vendor/assets/stylesheets/twbs/bootstrap/{navs.less → _navs.scss} +41 -52
  82. data/vendor/assets/stylesheets/twbs/bootstrap/{normalize.less → _normalize.scss} +148 -121
  83. data/vendor/assets/stylesheets/twbs/bootstrap/{pager.less → _pager.scss} +8 -8
  84. data/vendor/assets/stylesheets/twbs/bootstrap/_pagination.scss +88 -0
  85. data/vendor/assets/stylesheets/twbs/bootstrap/_panels.scss +230 -0
  86. data/vendor/assets/stylesheets/twbs/bootstrap/{popovers.less → _popovers.scss} +36 -36
  87. data/vendor/assets/stylesheets/twbs/bootstrap/{print.less → _print.scss} +6 -5
  88. data/vendor/assets/stylesheets/twbs/bootstrap/_progress-bars.scss +80 -0
  89. data/vendor/assets/stylesheets/twbs/bootstrap/_responsive-utilities.scss +80 -0
  90. data/vendor/assets/stylesheets/twbs/bootstrap/{scaffolding.less → _scaffolding.scss} +39 -24
  91. data/vendor/assets/stylesheets/twbs/bootstrap/{tables.less → _tables.scss} +42 -48
  92. data/vendor/assets/stylesheets/twbs/bootstrap/_theme.scss +247 -0
  93. data/vendor/assets/stylesheets/twbs/bootstrap/_thumbnails.scss +38 -0
  94. data/vendor/assets/stylesheets/twbs/bootstrap/_tooltip.scss +95 -0
  95. data/vendor/assets/stylesheets/twbs/bootstrap/_type.scss +296 -0
  96. data/vendor/assets/stylesheets/twbs/bootstrap/{utilities.less → _utilities.scss} +14 -3
  97. data/vendor/assets/stylesheets/twbs/bootstrap/_variables.scss +831 -0
  98. data/vendor/assets/stylesheets/twbs/bootstrap/{wells.less → _wells.scss} +6 -6
  99. data/vendor/assets/stylesheets/twbs/bootstrap/bootstrap.scss +48 -0
  100. data/vendor/assets/stylesheets/twbs/{bootstrap.less → bootstrap.scss} +0 -0
  101. metadata +94 -134
  102. data/test/dummy/app/assets/stylesheets/test.css.less +0 -5
  103. data/test/dummy/app/assets/stylesheets/twbs-variables.css.less +0 -6
  104. data/test/dummy/config/database.yml +0 -25
  105. data/test/dummy/db/.keep +0 -0
  106. data/vendor/assets/stylesheets/fontawesome/bootstrap.less +0 -84
  107. data/vendor/assets/stylesheets/fontawesome/core.less +0 -129
  108. data/vendor/assets/stylesheets/fontawesome/extras.less +0 -93
  109. data/vendor/assets/stylesheets/fontawesome/font-awesome.less +0 -33
  110. data/vendor/assets/stylesheets/fontawesome/icons.less +0 -381
  111. data/vendor/assets/stylesheets/fontawesome/mixins.less +0 -48
  112. data/vendor/assets/stylesheets/fontawesome/path.less +0 -14
  113. data/vendor/assets/stylesheets/fontawesome/variables.less +0 -735
  114. data/vendor/assets/stylesheets/twbs/bootstrap/bootstrap.less +0 -58
  115. data/vendor/assets/stylesheets/twbs/bootstrap/breadcrumbs.less +0 -23
  116. data/vendor/assets/stylesheets/twbs/bootstrap/close.less +0 -33
  117. data/vendor/assets/stylesheets/twbs/bootstrap/code.less +0 -56
  118. data/vendor/assets/stylesheets/twbs/bootstrap/grid.less +0 -346
  119. data/vendor/assets/stylesheets/twbs/bootstrap/jumbotron.less +0 -40
  120. data/vendor/assets/stylesheets/twbs/bootstrap/list-group.less +0 -88
  121. data/vendor/assets/stylesheets/twbs/bootstrap/mixins.less +0 -744
  122. data/vendor/assets/stylesheets/twbs/bootstrap/navbar.less +0 -621
  123. data/vendor/assets/stylesheets/twbs/bootstrap/pagination.less +0 -85
  124. data/vendor/assets/stylesheets/twbs/bootstrap/panels.less +0 -143
  125. data/vendor/assets/stylesheets/twbs/bootstrap/progress-bars.less +0 -96
  126. data/vendor/assets/stylesheets/twbs/bootstrap/responsive-utilities.less +0 -220
  127. data/vendor/assets/stylesheets/twbs/bootstrap/theme.less +0 -244
  128. data/vendor/assets/stylesheets/twbs/bootstrap/thumbnails.less +0 -32
  129. data/vendor/assets/stylesheets/twbs/bootstrap/tooltip.less +0 -95
  130. data/vendor/assets/stylesheets/twbs/bootstrap/type.less +0 -271
  131. data/vendor/assets/stylesheets/twbs/bootstrap/variables.less +0 -635
@@ -1,24 +1,14 @@
1
1
  /* ========================================================================
2
- * Bootstrap: scrollspy.js v3.0.0
3
- * http://twbs.github.com/bootstrap/javascript.html#scrollspy
2
+ * Bootstrap: scrollspy.js v3.1.0
3
+ * http://getbootstrap.com/javascript/#scrollspy
4
4
  * ========================================================================
5
- * Copyright 2012 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
5
+ * Copyright 2011-2014 Twitter, Inc.
6
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
18
7
  * ======================================================================== */
19
8
 
20
9
 
21
- +function ($) { "use strict";
10
+ +function ($) {
11
+ 'use strict';
22
12
 
23
13
  // SCROLLSPY CLASS DEFINITION
24
14
  // ==========================
@@ -58,10 +48,11 @@
58
48
  .map(function () {
59
49
  var $el = $(this)
60
50
  var href = $el.data('target') || $el.attr('href')
61
- var $href = /^#\w/.test(href) && $(href)
51
+ var $href = /^#./.test(href) && $(href)
62
52
 
63
53
  return ($href
64
54
  && $href.length
55
+ && $href.is(':visible')
65
56
  && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
66
57
  })
67
58
  .sort(function (a, b) { return a[0] - b[0] })
@@ -84,6 +75,10 @@
84
75
  return activeTarget != (i = targets.last()[0]) && this.activate(i)
85
76
  }
86
77
 
78
+ if (activeTarget && scrollTop <= offsets[0]) {
79
+ return activeTarget != (i = targets[0]) && this.activate(i)
80
+ }
81
+
87
82
  for (i = offsets.length; i--;) {
88
83
  activeTarget != targets[i]
89
84
  && scrollTop >= offsets[i]
@@ -96,24 +91,24 @@
96
91
  this.activeTarget = target
97
92
 
98
93
  $(this.selector)
99
- .parents('.active')
94
+ .parentsUntil(this.options.target, '.active')
100
95
  .removeClass('active')
101
96
 
102
- var selector = this.selector
103
- + '[data-target="' + target + '"],'
104
- + this.selector + '[href="' + target + '"]'
97
+ var selector = this.selector +
98
+ '[data-target="' + target + '"],' +
99
+ this.selector + '[href="' + target + '"]'
105
100
 
106
101
  var active = $(selector)
107
102
  .parents('li')
108
103
  .addClass('active')
109
104
 
110
- if (active.parent('.dropdown-menu').length) {
105
+ if (active.parent('.dropdown-menu').length) {
111
106
  active = active
112
107
  .closest('li.dropdown')
113
108
  .addClass('active')
114
109
  }
115
110
 
116
- active.trigger('activate')
111
+ active.trigger('activate.bs.scrollspy')
117
112
  }
118
113
 
119
114
 
@@ -155,4 +150,4 @@
155
150
  })
156
151
  })
157
152
 
158
- }(window.jQuery);
153
+ }(jQuery);
@@ -1,24 +1,14 @@
1
1
  /* ========================================================================
2
- * Bootstrap: tab.js v3.0.0
3
- * http://twbs.github.com/bootstrap/javascript.html#tabs
2
+ * Bootstrap: tab.js v3.1.0
3
+ * http://getbootstrap.com/javascript/#tabs
4
4
  * ========================================================================
5
- * Copyright 2012 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
5
+ * Copyright 2011-2014 Twitter, Inc.
6
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
18
7
  * ======================================================================== */
19
8
 
20
9
 
21
- +function ($) { "use strict";
10
+ +function ($) {
11
+ 'use strict';
22
12
 
23
13
  // TAB CLASS DEFINITION
24
14
  // ====================
@@ -30,7 +20,7 @@
30
20
  Tab.prototype.show = function () {
31
21
  var $this = this.element
32
22
  var $ul = $this.closest('ul:not(.dropdown-menu)')
33
- var selector = $this.attr('data-target')
23
+ var selector = $this.data('target')
34
24
 
35
25
  if (!selector) {
36
26
  selector = $this.attr('href')
@@ -53,8 +43,8 @@
53
43
  this.activate($this.parent('li'), $ul)
54
44
  this.activate($target, $target.parent(), function () {
55
45
  $this.trigger({
56
- type: 'shown.bs.tab'
57
- , relatedTarget: previous
46
+ type: 'shown.bs.tab',
47
+ relatedTarget: previous
58
48
  })
59
49
  })
60
50
  }
@@ -132,4 +122,4 @@
132
122
  $(this).tab('show')
133
123
  })
134
124
 
135
- }(window.jQuery);
125
+ }(jQuery);
@@ -1,25 +1,15 @@
1
1
  /* ========================================================================
2
- * Bootstrap: tooltip.js v3.0.0
3
- * http://twbs.github.com/bootstrap/javascript.html#tooltip
2
+ * Bootstrap: tooltip.js v3.1.0
3
+ * http://getbootstrap.com/javascript/#tooltip
4
4
  * Inspired by the original jQuery.tipsy by Jason Frame
5
5
  * ========================================================================
6
- * Copyright 2012 Twitter, Inc.
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
6
+ * Copyright 2011-2014 Twitter, Inc.
7
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
19
8
  * ======================================================================== */
20
9
 
21
10
 
22
- +function ($) { "use strict";
11
+ +function ($) {
12
+ 'use strict';
23
13
 
24
14
  // TOOLTIP PUBLIC CLASS DEFINITION
25
15
  // ===============================
@@ -36,15 +26,15 @@
36
26
  }
37
27
 
38
28
  Tooltip.DEFAULTS = {
39
- animation: true
40
- , placement: 'top'
41
- , selector: false
42
- , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
43
- , trigger: 'hover focus'
44
- , title: ''
45
- , delay: 0
46
- , html: false
47
- , container: false
29
+ animation: true,
30
+ placement: 'top',
31
+ selector: false,
32
+ template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
33
+ trigger: 'hover focus',
34
+ title: '',
35
+ delay: 0,
36
+ html: false,
37
+ container: false
48
38
  }
49
39
 
50
40
  Tooltip.prototype.init = function (type, element, options) {
@@ -61,8 +51,8 @@
61
51
  if (trigger == 'click') {
62
52
  this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
63
53
  } else if (trigger != 'manual') {
64
- var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
65
- var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
54
+ var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
55
+ var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
66
56
 
67
57
  this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
68
58
  this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
@@ -83,8 +73,8 @@
83
73
 
84
74
  if (options.delay && typeof options.delay == 'number') {
85
75
  options.delay = {
86
- show: options.delay
87
- , hide: options.delay
76
+ show: options.delay,
77
+ hide: options.delay
88
78
  }
89
79
  }
90
80
 
@@ -133,12 +123,13 @@
133
123
  }
134
124
 
135
125
  Tooltip.prototype.show = function () {
136
- var e = $.Event('show.bs.'+ this.type)
126
+ var e = $.Event('show.bs.' + this.type)
137
127
 
138
128
  if (this.hasContent() && this.enabled) {
139
129
  this.$element.trigger(e)
140
130
 
141
131
  if (e.isDefaultPrevented()) return
132
+ var that = this;
142
133
 
143
134
  var $tip = this.tip()
144
135
 
@@ -188,11 +179,21 @@
188
179
  var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
189
180
 
190
181
  this.applyPlacement(calculatedOffset, placement)
191
- this.$element.trigger('shown.bs.' + this.type)
182
+ this.hoverState = null
183
+
184
+ var complete = function() {
185
+ that.$element.trigger('shown.bs.' + that.type)
186
+ }
187
+
188
+ $.support.transition && this.$tip.hasClass('fade') ?
189
+ $tip
190
+ .one($.support.transition.end, complete)
191
+ .emulateTransitionEnd(150) :
192
+ complete()
192
193
  }
193
194
  }
194
195
 
195
- Tooltip.prototype.applyPlacement = function(offset, placement) {
196
+ Tooltip.prototype.applyPlacement = function (offset, placement) {
196
197
  var replace
197
198
  var $tip = this.tip()
198
199
  var width = $tip[0].offsetWidth
@@ -209,9 +210,18 @@
209
210
  offset.top = offset.top + marginTop
210
211
  offset.left = offset.left + marginLeft
211
212
 
212
- $tip
213
- .offset(offset)
214
- .addClass('in')
213
+ // $.fn.offset doesn't round pixel values
214
+ // so we use setOffset directly with our own function B-0
215
+ $.offset.setOffset($tip[0], $.extend({
216
+ using: function (props) {
217
+ $tip.css({
218
+ top: Math.round(props.top),
219
+ left: Math.round(props.left)
220
+ })
221
+ }
222
+ }, offset), 0)
223
+
224
+ $tip.addClass('in')
215
225
 
216
226
  // check to see if placing tip in new offset caused the tip to resize itself
217
227
  var actualWidth = $tip[0].offsetWidth
@@ -243,8 +253,8 @@
243
253
  if (replace) $tip.offset(offset)
244
254
  }
245
255
 
246
- Tooltip.prototype.replaceArrow = function(delta, dimension, position) {
247
- this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
256
+ Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
257
+ this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + '%') : '')
248
258
  }
249
259
 
250
260
  Tooltip.prototype.setContent = function () {
@@ -262,6 +272,7 @@
262
272
 
263
273
  function complete() {
264
274
  if (that.hoverState != 'in') $tip.detach()
275
+ that.$element.trigger('hidden.bs.' + that.type)
265
276
  }
266
277
 
267
278
  this.$element.trigger(e)
@@ -276,7 +287,7 @@
276
287
  .emulateTransitionEnd(150) :
277
288
  complete()
278
289
 
279
- this.$element.trigger('hidden.bs.' + this.type)
290
+ this.hoverState = null
280
291
 
281
292
  return this
282
293
  }
@@ -295,8 +306,8 @@
295
306
  Tooltip.prototype.getPosition = function () {
296
307
  var el = this.$element[0]
297
308
  return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
298
- width: el.offsetWidth
299
- , height: el.offsetHeight
309
+ width: el.offsetWidth,
310
+ height: el.offsetHeight
300
311
  }, this.$element.offset())
301
312
  }
302
313
 
@@ -352,6 +363,7 @@
352
363
  }
353
364
 
354
365
  Tooltip.prototype.destroy = function () {
366
+ clearTimeout(this.timeout)
355
367
  this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
356
368
  }
357
369
 
@@ -367,6 +379,7 @@
367
379
  var data = $this.data('bs.tooltip')
368
380
  var options = typeof option == 'object' && option
369
381
 
382
+ if (!data && option == 'destroy') return
370
383
  if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
371
384
  if (typeof option == 'string') data[option]()
372
385
  })
@@ -383,4 +396,4 @@
383
396
  return this
384
397
  }
385
398
 
386
- }(window.jQuery);
399
+ }(jQuery);
@@ -1,24 +1,14 @@
1
1
  /* ========================================================================
2
- * Bootstrap: transition.js v3.0.0
3
- * http://twbs.github.com/bootstrap/javascript.html#transitions
2
+ * Bootstrap: transition.js v3.1.0
3
+ * http://getbootstrap.com/javascript/#transitions
4
4
  * ========================================================================
5
- * Copyright 2013 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
5
+ * Copyright 2011-2014 Twitter, Inc.
6
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
18
7
  * ======================================================================== */
19
8
 
20
9
 
21
- +function ($) { "use strict";
10
+ +function ($) {
11
+ 'use strict';
22
12
 
23
13
  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
24
14
  // ============================================================
@@ -27,10 +17,10 @@
27
17
  var el = document.createElement('bootstrap')
28
18
 
29
19
  var transEndEventNames = {
30
- 'WebkitTransition' : 'webkitTransitionEnd'
31
- , 'MozTransition' : 'transitionend'
32
- , 'OTransition' : 'oTransitionEnd otransitionend'
33
- , 'transition' : 'transitionend'
20
+ 'WebkitTransition' : 'webkitTransitionEnd',
21
+ 'MozTransition' : 'transitionend',
22
+ 'OTransition' : 'oTransitionEnd otransitionend',
23
+ 'transition' : 'transitionend'
34
24
  }
35
25
 
36
26
  for (var name in transEndEventNames) {
@@ -38,6 +28,8 @@
38
28
  return { end: transEndEventNames[name] }
39
29
  }
40
30
  }
31
+
32
+ return false // explicit for ie8 ( ._.)
41
33
  }
42
34
 
43
35
  // http://blog.alexmaccaw.com/css-transitions
@@ -53,4 +45,4 @@
53
45
  $.support.transition = transitionEnd()
54
46
  })
55
47
 
56
- }(window.jQuery);
48
+ }(jQuery);
@@ -0,0 +1,16 @@
1
+ // Bordered & Pulled
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-border {
5
+ padding: .2em .25em .15em;
6
+ border: solid .08em $fa-border-color;
7
+ border-radius: .1em;
8
+ }
9
+
10
+ .pull-right { float: right; }
11
+ .pull-left { float: left; }
12
+
13
+ .#{$fa-css-prefix} {
14
+ &.pull-left { margin-right: .3em; }
15
+ &.pull-right { margin-left: .3em; }
16
+ }
@@ -0,0 +1,12 @@
1
+ // Base Class Definition
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix} {
5
+ display: inline-block;
6
+ font-family: FontAwesome;
7
+ font-style: normal;
8
+ font-weight: normal;
9
+ line-height: 1;
10
+ -webkit-font-smoothing: antialiased;
11
+ -moz-osx-font-smoothing: grayscale;
12
+ }
@@ -0,0 +1,44 @@
1
+ /* EXTRAS
2
+ * -------------------------- */
3
+
4
+ /* Stacked and layered icon */
5
+
6
+ /* Animated rotating icon */
7
+ .#{$fa-css-prefix}-spin {
8
+ -webkit-animation: spin 2s infinite linear;
9
+ -moz-animation: spin 2s infinite linear;
10
+ -o-animation: spin 2s infinite linear;
11
+ animation: spin 2s infinite linear;
12
+ }
13
+
14
+ @-moz-keyframes spin {
15
+ 0% { -moz-transform: rotate(0deg); }
16
+ 100% { -moz-transform: rotate(359deg); }
17
+ }
18
+ @-webkit-keyframes spin {
19
+ 0% { -webkit-transform: rotate(0deg); }
20
+ 100% { -webkit-transform: rotate(359deg); }
21
+ }
22
+ @-o-keyframes spin {
23
+ 0% { -o-transform: rotate(0deg); }
24
+ 100% { -o-transform: rotate(359deg); }
25
+ }
26
+ @-ms-keyframes spin {
27
+ 0% { -ms-transform: rotate(0deg); }
28
+ 100% { -ms-transform: rotate(359deg); }
29
+ }
30
+ @keyframes spin {
31
+ 0% { transform: rotate(0deg); }
32
+ 100% { transform: rotate(359deg); }
33
+ }
34
+
35
+
36
+ // Icon rotations & flipping
37
+ // -------------------------
38
+
39
+ .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
40
+ .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
41
+ .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
42
+
43
+ .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
44
+ .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
@@ -0,0 +1,6 @@
1
+ // Fixed Width Icons
2
+ // -------------------------
3
+ .#{$fa-css-prefix}-fw {
4
+ width: (18em / 14);
5
+ text-align: center;
6
+ }