twitter-bootstrap-rails 2.1.7 → 2.2.8

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of twitter-bootstrap-rails might be problematic. Click here for more details.

Files changed (117) hide show
  1. data/README.md +428 -21
  2. data/Rakefile +15 -3
  3. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  4. data/app/assets/fonts/fontawesome-webfont.svg +399 -0
  5. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  6. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  7. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-affix.js +12 -1
  8. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +12 -1
  9. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-button.js +12 -1
  10. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +42 -11
  11. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +18 -7
  12. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +32 -11
  13. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +25 -12
  14. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +17 -6
  15. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +13 -2
  16. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +12 -1
  17. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +115 -30
  18. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +1 -1
  19. data/{vendor → app}/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +38 -13
  20. data/app/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +890 -0
  21. data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +787 -0
  22. data/{vendor → app}/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +2 -2
  23. data/app/helpers/badge_label_helper.rb +16 -0
  24. data/app/helpers/bootstrap_flash_helper.rb +22 -16
  25. data/app/helpers/glyph_helper.rb +7 -2
  26. data/app/helpers/modal_helper.rb +29 -16
  27. data/app/helpers/navbar_helper.rb +194 -0
  28. data/app/helpers/twitter_breadcrumbs_helper.rb +7 -2
  29. data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +2 -2
  30. data/lib/generators/bootstrap/install/install_generator.rb +19 -6
  31. data/lib/generators/bootstrap/install/templates/bootstrap.coffee +2 -3
  32. data/lib/generators/bootstrap/install/templates/bootstrap.js +2 -3
  33. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +8 -10
  34. data/lib/generators/bootstrap/install/templates/en.bootstrap.yml +18 -0
  35. data/lib/generators/bootstrap/layout/templates/layout.html.erb +10 -12
  36. data/lib/generators/bootstrap/layout/templates/layout.html.haml +8 -11
  37. data/lib/generators/bootstrap/layout/templates/layout.html.slim +10 -11
  38. data/lib/generators/bootstrap/themed/templates/edit.html.erb +1 -2
  39. data/lib/generators/bootstrap/themed/templates/edit.html.haml +1 -1
  40. data/lib/generators/bootstrap/themed/templates/edit.html.slim +1 -1
  41. data/lib/generators/bootstrap/themed/templates/index.html.erb +1 -1
  42. data/lib/generators/bootstrap/themed/templates/index.html.haml +1 -1
  43. data/lib/generators/bootstrap/themed/templates/index.html.slim +1 -1
  44. data/lib/generators/bootstrap/themed/templates/new.html.erb +1 -2
  45. data/lib/generators/bootstrap/themed/templates/new.html.haml +1 -1
  46. data/lib/generators/bootstrap/themed/templates/new.html.slim +1 -1
  47. data/lib/generators/bootstrap/themed/templates/show.html.erb +1 -1
  48. data/lib/generators/bootstrap/themed/templates/show.html.haml +1 -1
  49. data/lib/generators/bootstrap/themed/templates/show.html.slim +1 -1
  50. data/lib/generators/bootstrap/themed/themed_generator.rb +2 -2
  51. data/lib/twitter/bootstrap/rails/engine.rb +3 -0
  52. data/lib/twitter/bootstrap/rails/twitter-bootstrap-breadcrumbs.rb +14 -2
  53. data/lib/twitter/bootstrap/rails/version.rb +2 -2
  54. data/lib/twitter-bootstrap-rails.rb +4 -4
  55. data/spec/lib/twitter_bootstrap_rails/badge_label_helper_spec.rb +22 -0
  56. data/spec/lib/twitter_bootstrap_rails/modal_helper_spec.rb +62 -0
  57. data/spec/lib/twitter_bootstrap_rails/navbar_helper_spec.rb +362 -0
  58. data/spec/lib/twitter_bootstrap_rails/uri_state_spec.rb +47 -0
  59. data/spec/spec_helper.rb +11 -0
  60. data/test/lib/breadcrumbs_test.rb +75 -0
  61. data/test/test_helper.rb +11 -0
  62. data/vendor/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +316 -294
  63. data/vendor/static-source/fontawesome.less +8 -6
  64. data/vendor/static-source/sprites.less +3 -2
  65. data/vendor/toolkit/fontawesome/bootstrap.less +84 -0
  66. data/vendor/toolkit/fontawesome/core.less +129 -0
  67. data/vendor/toolkit/fontawesome/extras.less +93 -0
  68. data/vendor/toolkit/fontawesome/font-awesome-ie7.less +1953 -0
  69. data/vendor/toolkit/fontawesome/font-awesome.less +33 -0
  70. data/vendor/toolkit/fontawesome/icons.less +381 -0
  71. data/vendor/toolkit/fontawesome/mixins.less +48 -0
  72. data/vendor/toolkit/fontawesome/path.less +14 -0
  73. data/vendor/toolkit/fontawesome/variables.less +735 -0
  74. data/vendor/toolkit/twitter/bootstrap/alerts.less +14 -0
  75. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +4 -4
  76. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +6 -6
  77. data/vendor/toolkit/twitter/bootstrap/button-groups.less +31 -44
  78. data/vendor/toolkit/twitter/bootstrap/buttons.less +13 -17
  79. data/vendor/toolkit/twitter/bootstrap/carousel.less +48 -21
  80. data/vendor/toolkit/twitter/bootstrap/close.less +2 -1
  81. data/vendor/toolkit/twitter/bootstrap/code.less +3 -0
  82. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +32 -21
  83. data/vendor/toolkit/twitter/bootstrap/forms.less +17 -10
  84. data/vendor/toolkit/twitter/bootstrap/labels-badges.less +12 -2
  85. data/vendor/toolkit/twitter/bootstrap/media.less +2 -2
  86. data/vendor/toolkit/twitter/bootstrap/mixins.less +25 -9
  87. data/vendor/toolkit/twitter/bootstrap/modals.less +4 -3
  88. data/vendor/toolkit/twitter/bootstrap/navbar.less +35 -13
  89. data/vendor/toolkit/twitter/bootstrap/navs.less +45 -21
  90. data/vendor/toolkit/twitter/bootstrap/pager.less +3 -1
  91. data/vendor/toolkit/twitter/bootstrap/pagination.less +3 -1
  92. data/vendor/toolkit/twitter/bootstrap/popovers.less +55 -39
  93. data/vendor/toolkit/twitter/bootstrap/reset.less +82 -4
  94. data/vendor/toolkit/twitter/bootstrap/responsive-767px-max.less +2 -2
  95. data/vendor/toolkit/twitter/bootstrap/responsive-navbar.less +6 -2
  96. data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +16 -0
  97. data/vendor/toolkit/twitter/bootstrap/responsive.less +1 -1
  98. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +2 -1
  99. data/vendor/toolkit/twitter/bootstrap/sprites.less +9 -5
  100. data/vendor/toolkit/twitter/bootstrap/tables.less +54 -46
  101. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +3 -2
  102. data/vendor/toolkit/twitter/bootstrap/tooltip.less +6 -6
  103. data/vendor/toolkit/twitter/bootstrap/type.less +44 -24
  104. data/vendor/toolkit/twitter/bootstrap/variables.less +3 -3
  105. metadata +130 -44
  106. data/lib/generators/bootstrap/partial/templates/_navbar.html.erb +0 -13
  107. data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
  108. data/vendor/assets/fonts/fontawesome-webfont.svg +0 -255
  109. data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
  110. data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
  111. data/vendor/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +0 -218
  112. data/vendor/toolkit/font-awesome-ie7.less +0 -245
  113. data/vendor/toolkit/fontawesome.less +0 -327
  114. /data/{vendor → app}/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  115. /data/{vendor → app}/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  116. /data/{vendor → app}/assets/javascripts/twitter/bootstrap.js +0 -0
  117. /data/{vendor → app}/assets/javascripts/twitter/bootstrap_ujs.js +0 -0
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================
2
- * bootstrap-affix.js v2.2.1
2
+ * bootstrap-affix.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#affix
4
4
  * ==========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -68,6 +68,8 @@
68
68
  /* AFFIX PLUGIN DEFINITION
69
69
  * ======================= */
70
70
 
71
+ var old = $.fn.affix
72
+
71
73
  $.fn.affix = function (option) {
72
74
  return this.each(function () {
73
75
  var $this = $(this)
@@ -85,6 +87,15 @@
85
87
  }
86
88
 
87
89
 
90
+ /* AFFIX NO CONFLICT
91
+ * ================= */
92
+
93
+ $.fn.affix.noConflict = function () {
94
+ $.fn.affix = old
95
+ return this
96
+ }
97
+
98
+
88
99
  /* AFFIX DATA-API
89
100
  * ============== */
90
101
 
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================
2
- * bootstrap-alert.js v2.2.1
2
+ * bootstrap-alert.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#alerts
4
4
  * ==========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -68,6 +68,8 @@
68
68
  /* ALERT PLUGIN DEFINITION
69
69
  * ======================= */
70
70
 
71
+ var old = $.fn.alert
72
+
71
73
  $.fn.alert = function (option) {
72
74
  return this.each(function () {
73
75
  var $this = $(this)
@@ -80,6 +82,15 @@
80
82
  $.fn.alert.Constructor = Alert
81
83
 
82
84
 
85
+ /* ALERT NO CONFLICT
86
+ * ================= */
87
+
88
+ $.fn.alert.noConflict = function () {
89
+ $.fn.alert = old
90
+ return this
91
+ }
92
+
93
+
83
94
  /* ALERT DATA-API
84
95
  * ============== */
85
96
 
@@ -1,5 +1,5 @@
1
1
  /* ============================================================
2
- * bootstrap-button.js v2.2.1
2
+ * bootstrap-button.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#buttons
4
4
  * ============================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -64,6 +64,8 @@
64
64
  /* BUTTON PLUGIN DEFINITION
65
65
  * ======================== */
66
66
 
67
+ var old = $.fn.button
68
+
67
69
  $.fn.button = function (option) {
68
70
  return this.each(function () {
69
71
  var $this = $(this)
@@ -82,6 +84,15 @@
82
84
  $.fn.button.Constructor = Button
83
85
 
84
86
 
87
+ /* BUTTON NO CONFLICT
88
+ * ================== */
89
+
90
+ $.fn.button.noConflict = function () {
91
+ $.fn.button = old
92
+ return this
93
+ }
94
+
95
+
85
96
  /* BUTTON DATA-API
86
97
  * =============== */
87
98
 
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================
2
- * bootstrap-carousel.js v2.2.1
2
+ * bootstrap-carousel.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#carousel
4
4
  * ==========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -28,8 +28,8 @@
28
28
 
29
29
  var Carousel = function (element, options) {
30
30
  this.$element = $(element)
31
+ this.$indicators = this.$element.find('.carousel-indicators')
31
32
  this.options = options
32
- this.options.slide && this.slide(this.options.slide)
33
33
  this.options.pause == 'hover' && this.$element
34
34
  .on('mouseenter', $.proxy(this.pause, this))
35
35
  .on('mouseleave', $.proxy(this.cycle, this))
@@ -39,19 +39,24 @@
39
39
 
40
40
  cycle: function (e) {
41
41
  if (!e) this.paused = false
42
+ if (this.interval) clearInterval(this.interval);
42
43
  this.options.interval
43
44
  && !this.paused
44
45
  && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
45
46
  return this
46
47
  }
47
48
 
49
+ , getActiveIndex: function () {
50
+ this.$active = this.$element.find('.item.active')
51
+ this.$items = this.$active.parent().children()
52
+ return this.$items.index(this.$active)
53
+ }
54
+
48
55
  , to: function (pos) {
49
- var $active = this.$element.find('.item.active')
50
- , children = $active.parent().children()
51
- , activePos = children.index($active)
56
+ var activeIndex = this.getActiveIndex()
52
57
  , that = this
53
58
 
54
- if (pos > (children.length - 1) || pos < 0) return
59
+ if (pos > (this.$items.length - 1) || pos < 0) return
55
60
 
56
61
  if (this.sliding) {
57
62
  return this.$element.one('slid', function () {
@@ -59,18 +64,18 @@
59
64
  })
60
65
  }
61
66
 
62
- if (activePos == pos) {
67
+ if (activeIndex == pos) {
63
68
  return this.pause().cycle()
64
69
  }
65
70
 
66
- return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
71
+ return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
67
72
  }
68
73
 
69
74
  , pause: function (e) {
70
75
  if (!e) this.paused = true
71
76
  if (this.$element.find('.next, .prev').length && $.support.transition.end) {
72
77
  this.$element.trigger($.support.transition.end)
73
- this.cycle()
78
+ this.cycle(true)
74
79
  }
75
80
  clearInterval(this.interval)
76
81
  this.interval = null
@@ -104,10 +109,19 @@
104
109
 
105
110
  e = $.Event('slide', {
106
111
  relatedTarget: $next[0]
112
+ , direction: direction
107
113
  })
108
114
 
109
115
  if ($next.hasClass('active')) return
110
116
 
117
+ if (this.$indicators.length) {
118
+ this.$indicators.find('.active').removeClass('active')
119
+ this.$element.one('slid', function () {
120
+ var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
121
+ $nextIndicator && $nextIndicator.addClass('active')
122
+ })
123
+ }
124
+
111
125
  if ($.support.transition && this.$element.hasClass('slide')) {
112
126
  this.$element.trigger(e)
113
127
  if (e.isDefaultPrevented()) return
@@ -141,6 +155,8 @@
141
155
  /* CAROUSEL PLUGIN DEFINITION
142
156
  * ========================== */
143
157
 
158
+ var old = $.fn.carousel
159
+
144
160
  $.fn.carousel = function (option) {
145
161
  return this.each(function () {
146
162
  var $this = $(this)
@@ -150,7 +166,7 @@
150
166
  if (!data) $this.data('carousel', (data = new Carousel(this, options)))
151
167
  if (typeof option == 'number') data.to(option)
152
168
  else if (action) data[action]()
153
- else if (options.interval) data.cycle()
169
+ else if (options.interval) data.pause().cycle()
154
170
  })
155
171
  }
156
172
 
@@ -162,14 +178,29 @@
162
178
  $.fn.carousel.Constructor = Carousel
163
179
 
164
180
 
181
+ /* CAROUSEL NO CONFLICT
182
+ * ==================== */
183
+
184
+ $.fn.carousel.noConflict = function () {
185
+ $.fn.carousel = old
186
+ return this
187
+ }
188
+
165
189
  /* CAROUSEL DATA-API
166
190
  * ================= */
167
191
 
168
- $(document).on('click.carousel.data-api', '[data-slide]', function (e) {
192
+ $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
169
193
  var $this = $(this), href
170
194
  , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
171
195
  , options = $.extend({}, $target.data(), $this.data())
196
+ , slideIndex
197
+
172
198
  $target.carousel(options)
199
+
200
+ if (slideIndex = $this.attr('data-slide-to')) {
201
+ $target.data('carousel').pause().to(slideIndex).cycle()
202
+ }
203
+
173
204
  e.preventDefault()
174
205
  })
175
206
 
@@ -1,5 +1,5 @@
1
1
  /* =============================================================
2
- * bootstrap-collapse.js v2.2.1
2
+ * bootstrap-collapse.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#collapse
4
4
  * =============================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -52,7 +52,7 @@
52
52
  , actives
53
53
  , hasData
54
54
 
55
- if (this.transitioning) return
55
+ if (this.transitioning || this.$element.hasClass('in')) return
56
56
 
57
57
  dimension = this.dimension()
58
58
  scroll = $.camelCase(['scroll', dimension].join('-'))
@@ -72,7 +72,7 @@
72
72
 
73
73
  , hide: function () {
74
74
  var dimension
75
- if (this.transitioning) return
75
+ if (this.transitioning || !this.$element.hasClass('in')) return
76
76
  dimension = this.dimension()
77
77
  this.reset(this.$element[dimension]())
78
78
  this.transition('removeClass', $.Event('hide'), 'hidden')
@@ -120,14 +120,16 @@
120
120
  }
121
121
 
122
122
 
123
- /* COLLAPSIBLE PLUGIN DEFINITION
124
- * ============================== */
123
+ /* COLLAPSE PLUGIN DEFINITION
124
+ * ========================== */
125
+
126
+ var old = $.fn.collapse
125
127
 
126
128
  $.fn.collapse = function (option) {
127
129
  return this.each(function () {
128
130
  var $this = $(this)
129
131
  , data = $this.data('collapse')
130
- , options = typeof option == 'object' && option
132
+ , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
131
133
  if (!data) $this.data('collapse', (data = new Collapse(this, options)))
132
134
  if (typeof option == 'string') data[option]()
133
135
  })
@@ -140,9 +142,18 @@
140
142
  $.fn.collapse.Constructor = Collapse
141
143
 
142
144
 
143
- /* COLLAPSIBLE DATA-API
145
+ /* COLLAPSE NO CONFLICT
144
146
  * ==================== */
145
147
 
148
+ $.fn.collapse.noConflict = function () {
149
+ $.fn.collapse = old
150
+ return this
151
+ }
152
+
153
+
154
+ /* COLLAPSE DATA-API
155
+ * ================= */
156
+
146
157
  $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
147
158
  var $this = $(this), href
148
159
  , target = $this.attr('data-target')
@@ -1,5 +1,5 @@
1
1
  /* ============================================================
2
- * bootstrap-dropdown.js v2.2.1
2
+ * bootstrap-dropdown.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#dropdowns
4
4
  * ============================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -52,10 +52,15 @@
52
52
  clearMenus()
53
53
 
54
54
  if (!isActive) {
55
+ if ('ontouchstart' in document.documentElement) {
56
+ // if mobile we we use a backdrop because click events don't delegate
57
+ $('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
58
+ }
55
59
  $parent.toggleClass('open')
56
- $this.focus()
57
60
  }
58
61
 
62
+ $this.focus()
63
+
59
64
  return false
60
65
  }
61
66
 
@@ -80,9 +85,12 @@
80
85
 
81
86
  isActive = $parent.hasClass('open')
82
87
 
83
- if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
88
+ if (!isActive || (isActive && e.keyCode == 27)) {
89
+ if (e.which == 27) $parent.find(toggle).focus()
90
+ return $this.click()
91
+ }
84
92
 
85
- $items = $('[role=menu] li:not(.divider) a', $parent)
93
+ $items = $('[role=menu] li:not(.divider):visible a', $parent)
86
94
 
87
95
  if (!$items.length) return
88
96
 
@@ -100,6 +108,7 @@
100
108
  }
101
109
 
102
110
  function clearMenus() {
111
+ $('.dropdown-backdrop').remove()
103
112
  $(toggle).each(function () {
104
113
  getParent($(this)).removeClass('open')
105
114
  })
@@ -114,8 +123,9 @@
114
123
  selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
115
124
  }
116
125
 
117
- $parent = $(selector)
118
- $parent.length || ($parent = $this.parent())
126
+ $parent = selector && $(selector)
127
+
128
+ if (!$parent || !$parent.length) $parent = $this.parent()
119
129
 
120
130
  return $parent
121
131
  }
@@ -124,6 +134,8 @@
124
134
  /* DROPDOWN PLUGIN DEFINITION
125
135
  * ========================== */
126
136
 
137
+ var old = $.fn.dropdown
138
+
127
139
  $.fn.dropdown = function (option) {
128
140
  return this.each(function () {
129
141
  var $this = $(this)
@@ -136,13 +148,22 @@
136
148
  $.fn.dropdown.Constructor = Dropdown
137
149
 
138
150
 
151
+ /* DROPDOWN NO CONFLICT
152
+ * ==================== */
153
+
154
+ $.fn.dropdown.noConflict = function () {
155
+ $.fn.dropdown = old
156
+ return this
157
+ }
158
+
159
+
139
160
  /* APPLY TO STANDARD DROPDOWN ELEMENTS
140
161
  * =================================== */
141
162
 
142
163
  $(document)
143
- .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
144
- .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
145
- .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
146
- .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
164
+ .on('click.dropdown.data-api', clearMenus)
165
+ .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
166
+ .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
167
+ .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
147
168
 
148
- }(window.jQuery);
169
+ }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* =========================================================
2
- * bootstrap-modal.js v2.2.1
2
+ * bootstrap-modal.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#modals
4
4
  * =========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -60,8 +60,7 @@
60
60
  that.$element.appendTo(document.body) //don't move modals dom position
61
61
  }
62
62
 
63
- that.$element
64
- .show()
63
+ that.$element.show()
65
64
 
66
65
  if (transition) {
67
66
  that.$element[0].offsetWidth // force reflow
@@ -139,16 +138,17 @@
139
138
  })
140
139
  }
141
140
 
142
- , hideModal: function (that) {
143
- this.$element
144
- .hide()
145
- .trigger('hidden')
146
-
147
- this.backdrop()
141
+ , hideModal: function () {
142
+ var that = this
143
+ this.$element.hide()
144
+ this.backdrop(function () {
145
+ that.removeBackdrop()
146
+ that.$element.trigger('hidden')
147
+ })
148
148
  }
149
149
 
150
150
  , removeBackdrop: function () {
151
- this.$backdrop.remove()
151
+ this.$backdrop && this.$backdrop.remove()
152
152
  this.$backdrop = null
153
153
  }
154
154
 
@@ -172,6 +172,8 @@
172
172
 
173
173
  this.$backdrop.addClass('in')
174
174
 
175
+ if (!callback) return
176
+
175
177
  doAnimate ?
176
178
  this.$backdrop.one($.support.transition.end, callback) :
177
179
  callback()
@@ -180,8 +182,8 @@
180
182
  this.$backdrop.removeClass('in')
181
183
 
182
184
  $.support.transition && this.$element.hasClass('fade')?
183
- this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) :
184
- this.removeBackdrop()
185
+ this.$backdrop.one($.support.transition.end, callback) :
186
+ callback()
185
187
 
186
188
  } else if (callback) {
187
189
  callback()
@@ -193,6 +195,8 @@
193
195
  /* MODAL PLUGIN DEFINITION
194
196
  * ======================= */
195
197
 
198
+ var old = $.fn.modal
199
+
196
200
  $.fn.modal = function (option) {
197
201
  return this.each(function () {
198
202
  var $this = $(this)
@@ -213,6 +217,15 @@
213
217
  $.fn.modal.Constructor = Modal
214
218
 
215
219
 
220
+ /* MODAL NO CONFLICT
221
+ * ================= */
222
+
223
+ $.fn.modal.noConflict = function () {
224
+ $.fn.modal = old
225
+ return this
226
+ }
227
+
228
+
216
229
  /* MODAL DATA-API
217
230
  * ============== */
218
231
 
@@ -1,5 +1,5 @@
1
1
  /* ===========================================================
2
- * bootstrap-popover.js v2.2.1
2
+ * bootstrap-popover.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#popovers
4
4
  * ===========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -44,7 +44,7 @@
44
44
  , content = this.getContent()
45
45
 
46
46
  $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
47
- $tip.find('.popover-content > *')[this.options.html ? 'html' : 'text'](content)
47
+ $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
48
48
 
49
49
  $tip.removeClass('fade top bottom left right in')
50
50
  }
@@ -58,8 +58,8 @@
58
58
  , $e = this.$element
59
59
  , o = this.options
60
60
 
61
- content = $e.attr('data-content')
62
- || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
61
+ content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
62
+ || $e.attr('data-content')
63
63
 
64
64
  return content
65
65
  }
@@ -81,6 +81,8 @@
81
81
  /* POPOVER PLUGIN DEFINITION
82
82
  * ======================= */
83
83
 
84
+ var old = $.fn.popover
85
+
84
86
  $.fn.popover = function (option) {
85
87
  return this.each(function () {
86
88
  var $this = $(this)
@@ -97,7 +99,16 @@
97
99
  placement: 'right'
98
100
  , trigger: 'click'
99
101
  , content: ''
100
- , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
102
+ , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
101
103
  })
102
104
 
103
- }(window.jQuery);
105
+
106
+ /* POPOVER NO CONFLICT
107
+ * =================== */
108
+
109
+ $.fn.popover.noConflict = function () {
110
+ $.fn.popover = old
111
+ return this
112
+ }
113
+
114
+ }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* =============================================================
2
- * bootstrap-scrollspy.js v2.2.1
2
+ * bootstrap-scrollspy.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#scrollspy
4
4
  * =============================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -59,7 +59,7 @@
59
59
  , $href = /^#\w/.test(href) && $(href)
60
60
  return ( $href
61
61
  && $href.length
62
- && [[ $href.position().top, href ]] ) || null
62
+ && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
63
63
  })
64
64
  .sort(function (a, b) { return a[0] - b[0] })
65
65
  .each(function () {
@@ -121,6 +121,8 @@
121
121
  /* SCROLLSPY PLUGIN DEFINITION
122
122
  * =========================== */
123
123
 
124
+ var old = $.fn.scrollspy
125
+
124
126
  $.fn.scrollspy = function (option) {
125
127
  return this.each(function () {
126
128
  var $this = $(this)
@@ -138,6 +140,15 @@
138
140
  }
139
141
 
140
142
 
143
+ /* SCROLLSPY NO CONFLICT
144
+ * ===================== */
145
+
146
+ $.fn.scrollspy.noConflict = function () {
147
+ $.fn.scrollspy = old
148
+ return this
149
+ }
150
+
151
+
141
152
  /* SCROLLSPY DATA-API
142
153
  * ================== */
143
154
 
@@ -1,5 +1,5 @@
1
1
  /* ========================================================
2
- * bootstrap-tab.js v2.2.1
2
+ * bootstrap-tab.js v2.3.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#tabs
4
4
  * ========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -110,6 +110,8 @@
110
110
  /* TAB PLUGIN DEFINITION
111
111
  * ===================== */
112
112
 
113
+ var old = $.fn.tab
114
+
113
115
  $.fn.tab = function ( option ) {
114
116
  return this.each(function () {
115
117
  var $this = $(this)
@@ -122,6 +124,15 @@
122
124
  $.fn.tab.Constructor = Tab
123
125
 
124
126
 
127
+ /* TAB NO CONFLICT
128
+ * =============== */
129
+
130
+ $.fn.tab.noConflict = function () {
131
+ $.fn.tab = old
132
+ return this
133
+ }
134
+
135
+
125
136
  /* TAB DATA-API
126
137
  * ============ */
127
138