contour 2.1.0.beta10 → 2.1.0.beta11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6776e6885155bb634ed79e9972eca4bb04484be1
4
- data.tar.gz: 563b6159d39f13d55ccaf7e2b3dfb670843d8e85
3
+ metadata.gz: fe26c130959148bee334c419ae2c102cd5d7d05f
4
+ data.tar.gz: 56d679b7d0904a705768cba344f782b38e11f9f4
5
5
  SHA512:
6
- metadata.gz: 5cd3a183b064d1f26a2a38e31f2c0096c09cb5b33c9d7223744f107b951145839d0836a46619456ad4a72eb1d978d800af20c31b2e361b733d2cb46e29ad2ab8
7
- data.tar.gz: 0f46a81f6f5ae183b10686d624f073096c264effe52248fcb0b987520a791e25be737c5fd06a22315aad1788ddba600d5275cc79b7f1d00f27b15ef5bf3ef9e6
6
+ metadata.gz: 756666b84b4e52f3a75643c34acde4f864fe2d852c885962011620fea0f550bfd64dcb1a69318f9a78fa807098079f41d88c3fec6ff249c2435883172d48905e
7
+ data.tar.gz: 5bd902c64cdf2207f31adf31e9e5ee36ee6b7dbe2d360dde5963a65df157e898554a40e6cf8f1954ba231821784fa9dbca9cbdeea7a6175ebabb895f2f7cb15e
data/CHANGELOG.md CHANGED
@@ -1,12 +1,13 @@
1
1
  ## 2.1.0
2
2
 
3
- - Updated Bootstrap to 3.0.0-rc1
3
+ - Updated Bootstrap to 3.0.0-rc2
4
4
  - Added Twitter-Typeahead to replace BS Typeahead functionality
5
5
  - Removed contour-mini pagination theme as the only options in BS3 are pagination-large, pagination, and pagination-small
6
- - Added `btn-cancel` and `btn-cancel-inverse` to complement other BS3 button styles
7
6
  - Menu dropdowns can now have headers
8
7
  - `links: [ ..., { header: 'Dropdown header' }, ... ]`
9
8
  - Removed bootstrap-scroll-modal since it collided with BS3's implementation
9
+ - **Gem Changes**
10
+ - Updated to Devise 3.0.2
10
11
 
11
12
  ## 2.0.0 (July 25, 2013)
12
13
 
@@ -219,7 +219,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
219
219
  var $parent = this.$element.closest('[data-toggle="buttons"]')
220
220
 
221
221
  if ($parent.length) {
222
- var $input = this.$element.find('input').prop('checked', !this.$element.hasClass('active'))
222
+ var $input = this.$element.find('input')
223
+ .prop('checked', !this.$element.hasClass('active'))
224
+ .trigger('change')
223
225
  if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')
224
226
  }
225
227
 
@@ -235,7 +237,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
235
237
  $.fn.button = function (option) {
236
238
  return this.each(function () {
237
239
  var $this = $(this)
238
- var data = $this.data('button')
240
+ var data = $this.data('bs.button')
239
241
  var options = typeof option == 'object' && option
240
242
 
241
243
  if (!data) $this.data('bs.button', (data = new Button(this, options)))
@@ -312,6 +314,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
312
314
  Carousel.DEFAULTS = {
313
315
  interval: 5000
314
316
  , pause: 'hover'
317
+ , wrap: true
315
318
  }
316
319
 
317
320
  Carousel.prototype.cycle = function (e) {
@@ -376,12 +379,15 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
376
379
  var fallback = type == 'next' ? 'first' : 'last'
377
380
  var that = this
378
381
 
382
+ if (!$next.length) {
383
+ if (!this.options.wrap) return
384
+ $next = this.$element.find('.item')[fallback]()
385
+ }
386
+
379
387
  this.sliding = true
380
388
 
381
389
  isCycling && this.pause()
382
390
 
383
- $next = $next.length ? $next : this.$element.find('.item')[fallback]()
384
-
385
391
  var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
386
392
 
387
393
  if ($next.hasClass('active')) return
@@ -533,7 +539,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
533
539
  this.$element.trigger(startEvent)
534
540
  if (startEvent.isDefaultPrevented()) return
535
541
 
536
- var actives = this.$parent && this.$parent.find('> .accordion-group > .in')
542
+ var actives = this.$parent && this.$parent.find('> .panel > .in')
537
543
 
538
544
  if (actives && actives.length) {
539
545
  var hasData = actives.data('bs.collapse')
@@ -654,7 +660,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
654
660
  var $parent = parent && $(parent)
655
661
 
656
662
  if (!data || !data.transitioning) {
657
- if ($parent) $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed')
663
+ if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
658
664
  $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
659
665
  }
660
666
 
@@ -849,7 +855,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
849
855
  this.$backdrop =
850
856
  this.isShown = null
851
857
 
852
- if (this.options.remote) this.$element.find('.modal-body').load(this.options.remote)
858
+ if (this.options.remote) this.$element.load(this.options.remote)
853
859
  }
854
860
 
855
861
  Modal.DEFAULTS = {
@@ -858,13 +864,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
858
864
  , show: true
859
865
  }
860
866
 
861
- Modal.prototype.toggle = function () {
862
- return this[!this.isShown ? 'show' : 'hide']()
867
+ Modal.prototype.toggle = function (_relatedTarget) {
868
+ return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
863
869
  }
864
870
 
865
- Modal.prototype.show = function () {
871
+ Modal.prototype.show = function (_relatedTarget) {
866
872
  var that = this
867
- var e = $.Event('show.bs.modal')
873
+ var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
868
874
 
869
875
  this.$element.trigger(e)
870
876
 
@@ -893,13 +899,15 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
893
899
 
894
900
  that.enforceFocus()
895
901
 
902
+ var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
903
+
896
904
  transition ?
897
905
  that.$element
898
906
  .one($.support.transition.end, function () {
899
- that.$element.focus().trigger('shown.bs.modal')
907
+ that.$element.focus().trigger(e)
900
908
  })
901
909
  .emulateTransitionEnd(300) :
902
- that.$element.focus().trigger('shown.bs.modal')
910
+ that.$element.focus().trigger(e)
903
911
  })
904
912
  }
905
913
 
@@ -921,6 +929,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
921
929
  this.$element
922
930
  .removeClass('in')
923
931
  .attr('aria-hidden', true)
932
+ .off('click.dismiss.modal')
924
933
 
925
934
  $.support.transition && this.$element.hasClass('fade') ?
926
935
  this.$element
@@ -973,7 +982,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
973
982
  this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
974
983
  .appendTo(document.body)
975
984
 
976
- this.$element.on('click', $.proxy(function (e) {
985
+ this.$element.on('click.dismiss.modal', $.proxy(function (e) {
977
986
  if (e.target !== e.currentTarget) return
978
987
  this.options.backdrop == 'static'
979
988
  ? this.$element[0].focus.call(this.$element[0])
@@ -1012,15 +1021,15 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1012
1021
 
1013
1022
  var old = $.fn.modal
1014
1023
 
1015
- $.fn.modal = function (option) {
1024
+ $.fn.modal = function (option, _relatedTarget) {
1016
1025
  return this.each(function () {
1017
1026
  var $this = $(this)
1018
1027
  var data = $this.data('bs.modal')
1019
1028
  var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
1020
1029
 
1021
1030
  if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
1022
- if (typeof option == 'string') data[option]()
1023
- else if (options.show) data.show()
1031
+ if (typeof option == 'string') data[option](_relatedTarget)
1032
+ else if (options.show) data.show(_relatedTarget)
1024
1033
  })
1025
1034
  }
1026
1035
 
@@ -1043,28 +1052,26 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1043
1052
  var $this = $(this)
1044
1053
  var href = $this.attr('href')
1045
1054
  var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1046
- var option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
1055
+ var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
1047
1056
 
1048
1057
  e.preventDefault()
1049
1058
 
1050
1059
  $target
1051
- .modal(option)
1060
+ .modal(option, this)
1052
1061
  .one('hide', function () {
1053
1062
  $this.is(':visible') && $this.focus()
1054
1063
  })
1055
1064
  })
1056
1065
 
1057
- $(function () {
1058
- var $body = $(document.body)
1059
- .on('shown.bs.modal', '.modal', function () { $body.addClass('modal-open') })
1060
- .on('hidden.bs.modal', '.modal', function () { $body.removeClass('modal-open') })
1061
- })
1066
+ $(document)
1067
+ .on('shown.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
1068
+ .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
1062
1069
 
1063
1070
  }(window.jQuery);
1064
1071
 
1065
1072
  /* ========================================================================
1066
1073
  * Bootstrap: tooltip.js v3.0.0
1067
- * http://twbs.github.com/bootstrap/javascript.html#affix
1074
+ * http://twbs.github.com/bootstrap/javascript.html#tooltip
1068
1075
  * Inspired by the original jQuery.tipsy by Jason Frame
1069
1076
  * ========================================================================
1070
1077
  * Copyright 2012 Twitter, Inc.
@@ -1128,7 +1135,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1128
1135
  var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
1129
1136
  var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
1130
1137
 
1131
- this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1138
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1132
1139
  this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1133
1140
  }
1134
1141
  }
@@ -1155,16 +1162,20 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1155
1162
  return options
1156
1163
  }
1157
1164
 
1158
- Tooltip.prototype.enter = function (obj) {
1159
- var defaults = this.getDefaults()
1165
+ Tooltip.prototype.getDelegateOptions = function () {
1160
1166
  var options = {}
1167
+ var defaults = this.getDefaults()
1161
1168
 
1162
1169
  this._options && $.each(this._options, function (key, value) {
1163
1170
  if (defaults[key] != value) options[key] = value
1164
1171
  })
1165
1172
 
1173
+ return options
1174
+ }
1175
+
1176
+ Tooltip.prototype.enter = function (obj) {
1166
1177
  var self = obj instanceof this.constructor ?
1167
- obj : $(obj.currentTarget)[this.type](options).data('bs.' + this.type)
1178
+ obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1168
1179
 
1169
1180
  clearTimeout(self.timeout)
1170
1181
 
@@ -1178,7 +1189,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1178
1189
 
1179
1190
  Tooltip.prototype.leave = function (obj) {
1180
1191
  var self = obj instanceof this.constructor ?
1181
- obj : $(obj.currentTarget)[this.type](this._options).data('bs.' + this.type)
1192
+ obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1182
1193
 
1183
1194
  clearTimeout(self.timeout)
1184
1195
 
@@ -1243,12 +1254,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1243
1254
  .addClass(placement)
1244
1255
  }
1245
1256
 
1246
- var tp = placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1247
- placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1248
- placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1249
- /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1257
+ var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1250
1258
 
1251
- this.applyPlacement(tp, placement)
1259
+ this.applyPlacement(calculatedOffset, placement)
1252
1260
  this.$element.trigger('shown.bs.' + this.type)
1253
1261
  }
1254
1262
  }
@@ -1260,25 +1268,33 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1260
1268
  var height = $tip[0].offsetHeight
1261
1269
 
1262
1270
  // manually read margins because getBoundingClientRect includes difference
1263
- offset.top = offset.top + parseInt($tip.css('margin-top'), 10)
1264
- offset.left = offset.left + parseInt($tip.css('margin-left'), 10)
1271
+ var marginTop = parseInt($tip.css('margin-top'), 10)
1272
+ var marginLeft = parseInt($tip.css('margin-left'), 10)
1273
+
1274
+ // we must check for NaN for ie 8/9
1275
+ if (isNaN(marginTop)) marginTop = 0
1276
+ if (isNaN(marginLeft)) marginLeft = 0
1277
+
1278
+ offset.top = offset.top + marginTop
1279
+ offset.left = offset.left + marginLeft
1265
1280
 
1266
1281
  $tip
1267
1282
  .offset(offset)
1268
1283
  .addClass('in')
1269
1284
 
1285
+ // check to see if placing tip in new offset caused the tip to resize itself
1270
1286
  var actualWidth = $tip[0].offsetWidth
1271
1287
  var actualHeight = $tip[0].offsetHeight
1272
1288
 
1273
1289
  if (placement == 'top' && actualHeight != height) {
1274
1290
  replace = true
1275
- offset.top = offset.top + height - actualHeight
1291
+ offset.top = offset.top + height - actualHeight
1276
1292
  }
1277
1293
 
1278
- if (placement == 'bottom' || placement == 'top') {
1294
+ if (/bottom|top/.test(placement)) {
1279
1295
  var delta = 0
1280
1296
 
1281
- if (offset.left < 0){
1297
+ if (offset.left < 0) {
1282
1298
  delta = offset.left * -2
1283
1299
  offset.left = 0
1284
1300
 
@@ -1313,6 +1329,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1313
1329
  var $tip = this.tip()
1314
1330
  var e = $.Event('hide.bs.' + this.type)
1315
1331
 
1332
+ function complete() { $tip.detach() }
1333
+
1316
1334
  this.$element.trigger(e)
1317
1335
 
1318
1336
  if (e.isDefaultPrevented()) return
@@ -1321,9 +1339,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1321
1339
 
1322
1340
  $.support.transition && this.$tip.hasClass('fade') ?
1323
1341
  $tip
1324
- .one($.support.transition.end, $tip.detach)
1342
+ .one($.support.transition.end, complete)
1325
1343
  .emulateTransitionEnd(150) :
1326
- $tip.detach()
1344
+ complete()
1327
1345
 
1328
1346
  this.$element.trigger('hidden.bs.' + this.type)
1329
1347
 
@@ -1349,6 +1367,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1349
1367
  }, this.$element.offset())
1350
1368
  }
1351
1369
 
1370
+ Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
1371
+ return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1372
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1373
+ placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1374
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1375
+ }
1376
+
1352
1377
  Tooltip.prototype.getTitle = function () {
1353
1378
  var title
1354
1379
  var $e = this.$element
@@ -1364,8 +1389,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1364
1389
  return this.$tip = this.$tip || $(this.options.template)
1365
1390
  }
1366
1391
 
1367
- Tooltip.prototype.arrow =function(){
1368
- return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
1392
+ Tooltip.prototype.arrow = function () {
1393
+ return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
1369
1394
  }
1370
1395
 
1371
1396
  Tooltip.prototype.validate = function () {
@@ -1389,7 +1414,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1389
1414
  }
1390
1415
 
1391
1416
  Tooltip.prototype.toggle = function (e) {
1392
- var self = e ? $(e.currentTarget)[this.type](this._options).data('bs.' + this.type) : this
1417
+ var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
1393
1418
  self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1394
1419
  }
1395
1420
 
@@ -1487,7 +1512,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1487
1512
 
1488
1513
  $tip.removeClass('fade top bottom left right in')
1489
1514
 
1490
- $tip.find('.popover-title:empty').hide()
1515
+ // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1516
+ // this manually by checking the contents.
1517
+ if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1491
1518
  }
1492
1519
 
1493
1520
  Popover.prototype.hasContent = function () {
@@ -1504,15 +1531,15 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1504
1531
  o.content)
1505
1532
  }
1506
1533
 
1534
+ Popover.prototype.arrow = function () {
1535
+ return this.$arrow = this.$arrow || this.tip().find('.arrow')
1536
+ }
1537
+
1507
1538
  Popover.prototype.tip = function () {
1508
1539
  if (!this.$tip) this.$tip = $(this.options.template)
1509
1540
  return this.$tip
1510
1541
  }
1511
1542
 
1512
- Popover.prototype.destroy = function () {
1513
- this.hide().$element.off('.' + this.type).removeData(this.type)
1514
- }
1515
-
1516
1543
 
1517
1544
  // POPOVER PLUGIN DEFINITION
1518
1545
  // =========================
@@ -6,7 +6,7 @@
6
6
  //
7
7
  //= require external/jquery-ui-1.10.0.custom.min.js
8
8
  //
9
- //= require bootstrap/v3.0.0-rc1/bootstrap
9
+ //= require bootstrap/v3.0.0-rc2/bootstrap
10
10
  //
11
11
  //= require twitter-bootstrap/bootstrap
12
12
  //
@@ -1,7 +1,7 @@
1
1
  /* bootstrap-base-overrides.css */
2
2
  /* These overrides come after bootstrap.css */
3
3
 
4
- body { padding-top: 50px; padding-bottom: 90px; }
4
+ body { padding-top: 70px; padding-bottom: 90px; }
5
5
 
6
6
  /* Skinnier titles */
7
7
 
@@ -52,7 +52,11 @@ dt, dd {
52
52
 
53
53
  /* Make sure datepicker shows up ontop of bootstrap modals */
54
54
  .datepicker {
55
- z-index: 10000 !important;;
55
+ z-index: 10000 !important;
56
+ }
57
+
58
+ .datepicker-dropdown {
59
+ padding: 4px;
56
60
  }
57
61
 
58
62
  /* Make sure some text is always veiwable in the form control */
@@ -99,40 +103,6 @@ dt, dd {
99
103
  border-color: #c9302c;
100
104
  }
101
105
 
102
- .btn-cancel {
103
- color: #777;
104
- background-color: #ededed;;
105
- }
106
-
107
- .btn-cancel:hover,
108
- .btn-cancel:focus,
109
- .btn-cancel:active,
110
- .btn-cancel.active,
111
- .btn-cancel.disabled,
112
- .btn-cancel[disabled] {
113
- color: #fff;
114
- background-color: #777;
115
- border-color: #777;
116
- }
117
-
118
-
119
- .btn-cancel-inverse {
120
- border: 1px solid #ededed;
121
- color: #777;
122
- background-color: white;
123
- }
124
-
125
- .btn-cancel-inverse:hover,
126
- .btn-cancel-inverse:focus,
127
- .btn-cancel-inverse:active,
128
- .btn-cancel-inverse.active,
129
- .btn-cancel-inverse.disabled,
130
- .btn-cancel-inverse[disabled] {
131
- color: #fff;
132
- background-color: #777;
133
- border-color: #777;
134
- }
135
-
136
106
  .form-inline select,
137
107
  .form-inline input[type="text"],
138
108
  .form-inline input[type="password"] {
@@ -142,9 +112,3 @@ dt, dd {
142
112
  .radio, .checkbox {
143
113
  min-height: 35px;
144
114
  }
145
-
146
- /* Make default active gray instead of black next to black to give more contrast between selected options */
147
- .btn.btn-default:active, .btn.active.btn-default {
148
- background-color: #ededed;
149
- color: #333333;
150
- }