bootstrap 4.0.0.beta3 → 4.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 might be problematic. Click here for more details.

Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +1 -1
  4. data/assets/javascripts/bootstrap-sprockets.js +6 -6
  5. data/assets/javascripts/bootstrap.js +112 -110
  6. data/assets/javascripts/bootstrap.min.js +3 -3
  7. data/assets/javascripts/bootstrap/alert.js +6 -6
  8. data/assets/javascripts/bootstrap/button.js +5 -5
  9. data/assets/javascripts/bootstrap/carousel.js +9 -10
  10. data/assets/javascripts/bootstrap/collapse.js +18 -16
  11. data/assets/javascripts/bootstrap/dropdown.js +17 -16
  12. data/assets/javascripts/bootstrap/modal.js +11 -11
  13. data/assets/javascripts/bootstrap/popover.js +8 -8
  14. data/assets/javascripts/bootstrap/scrollspy.js +9 -9
  15. data/assets/javascripts/bootstrap/tab.js +7 -7
  16. data/assets/javascripts/bootstrap/tooltip.js +13 -13
  17. data/assets/javascripts/bootstrap/util.js +6 -6
  18. data/assets/stylesheets/_bootstrap-grid.scss +4 -7
  19. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  20. data/assets/stylesheets/_bootstrap.scss +3 -3
  21. data/assets/stylesheets/bootstrap/_alert.scss +1 -1
  22. data/assets/stylesheets/bootstrap/_buttons.scss +5 -9
  23. data/assets/stylesheets/bootstrap/_close.scss +1 -1
  24. data/assets/stylesheets/bootstrap/_custom-forms.scss +16 -1
  25. data/assets/stylesheets/bootstrap/_input-group.scss +15 -12
  26. data/assets/stylesheets/bootstrap/_navbar.scss +3 -3
  27. data/assets/stylesheets/bootstrap/_pagination.scss +7 -2
  28. data/assets/stylesheets/bootstrap/_popover.scss +2 -2
  29. data/assets/stylesheets/bootstrap/_print.scss +17 -3
  30. data/assets/stylesheets/bootstrap/_reboot.scss +0 -23
  31. data/assets/stylesheets/bootstrap/_tooltip.scss +2 -2
  32. data/assets/stylesheets/bootstrap/_variables.scss +41 -19
  33. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +9 -7
  34. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +17 -9
  35. data/assets/stylesheets/bootstrap/mixins/_forms.scss +6 -2
  36. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +5 -7
  37. data/assets/stylesheets/bootstrap/mixins/_hover.scss +24 -46
  38. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +10 -13
  39. data/assets/stylesheets/bootstrap/utilities/_borders.scss +6 -1
  40. data/assets/stylesheets/bootstrap/utilities/_display.scss +10 -28
  41. data/bootstrap.gemspec +1 -1
  42. data/lib/bootstrap/version.rb +2 -2
  43. metadata +7 -7
@@ -8,7 +8,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
8
8
 
9
9
  /**
10
10
  * --------------------------------------------------------------------------
11
- * Bootstrap (v4.0.0-beta.3): popover.js
11
+ * Bootstrap (v4.0.0): popover.js
12
12
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
13
13
  * --------------------------------------------------------------------------
14
14
  */
@@ -19,7 +19,7 @@ var Popover = function ($) {
19
19
  * ------------------------------------------------------------------------
20
20
  */
21
21
  var NAME = 'popover';
22
- var VERSION = '4.0.0-beta.3';
22
+ var VERSION = '4.0.0';
23
23
  var DATA_KEY = 'bs.popover';
24
24
  var EVENT_KEY = "." + DATA_KEY;
25
25
  var JQUERY_NO_CONFLICT = $.fn[NAME];
@@ -75,7 +75,7 @@ var Popover = function ($) {
75
75
 
76
76
  var _proto = Popover.prototype;
77
77
 
78
- // overrides
78
+ // Overrides
79
79
  _proto.isWithContent = function isWithContent() {
80
80
  return this.getTitle() || this._getContent();
81
81
  };
@@ -90,7 +90,7 @@ var Popover = function ($) {
90
90
  };
91
91
 
92
92
  _proto.setContent = function setContent() {
93
- var $tip = $(this.getTipElement()); // we use append for html objects to maintain js events
93
+ var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
94
94
 
95
95
  this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
96
96
 
@@ -102,7 +102,7 @@ var Popover = function ($) {
102
102
 
103
103
  this.setElementContent($tip.find(Selector.CONTENT), content);
104
104
  $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
105
- }; // private
105
+ }; // Private
106
106
 
107
107
 
108
108
  _proto._getContent = function _getContent() {
@@ -116,7 +116,7 @@ var Popover = function ($) {
116
116
  if (tabClass !== null && tabClass.length > 0) {
117
117
  $tip.removeClass(tabClass.join(''));
118
118
  }
119
- }; // static
119
+ }; // Static
120
120
 
121
121
 
122
122
  Popover._jQueryInterface = function _jQueryInterface(config) {
@@ -136,7 +136,7 @@ var Popover = function ($) {
136
136
 
137
137
  if (typeof config === 'string') {
138
138
  if (typeof data[config] === 'undefined') {
139
- throw new Error("No method named \"" + config + "\"");
139
+ throw new TypeError("No method named \"" + config + "\"");
140
140
  }
141
141
 
142
142
  data[config]();
@@ -146,7 +146,7 @@ var Popover = function ($) {
146
146
 
147
147
  _createClass(Popover, null, [{
148
148
  key: "VERSION",
149
- // getters
149
+ // Getters
150
150
  get: function get() {
151
151
  return VERSION;
152
152
  }
@@ -6,7 +6,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
6
6
 
7
7
  /**
8
8
  * --------------------------------------------------------------------------
9
- * Bootstrap (v4.0.0-beta.3): scrollspy.js
9
+ * Bootstrap (v4.0.0): scrollspy.js
10
10
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
11
11
  * --------------------------------------------------------------------------
12
12
  */
@@ -17,7 +17,7 @@ var ScrollSpy = function ($) {
17
17
  * ------------------------------------------------------------------------
18
18
  */
19
19
  var NAME = 'scrollspy';
20
- var VERSION = '4.0.0-beta.3';
20
+ var VERSION = '4.0.0';
21
21
  var DATA_KEY = 'bs.scrollspy';
22
22
  var EVENT_KEY = "." + DATA_KEY;
23
23
  var DATA_API_KEY = '.data-api';
@@ -84,16 +84,16 @@ var ScrollSpy = function ($) {
84
84
  this.refresh();
85
85
 
86
86
  this._process();
87
- } // getters
87
+ } // Getters
88
88
 
89
89
 
90
90
  var _proto = ScrollSpy.prototype;
91
91
 
92
- // public
92
+ // Public
93
93
  _proto.refresh = function refresh() {
94
94
  var _this2 = this;
95
95
 
96
- var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
96
+ var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
97
97
  var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
98
98
  var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
99
99
  this._offsets = [];
@@ -112,7 +112,7 @@ var ScrollSpy = function ($) {
112
112
  var targetBCR = target.getBoundingClientRect();
113
113
 
114
114
  if (targetBCR.width || targetBCR.height) {
115
- // todo (fat): remove sketch reliance on jQuery position/offset
115
+ // TODO (fat): remove sketch reliance on jQuery position/offset
116
116
  return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
117
117
  }
118
118
  }
@@ -140,7 +140,7 @@ var ScrollSpy = function ($) {
140
140
  this._targets = null;
141
141
  this._activeTarget = null;
142
142
  this._scrollHeight = null;
143
- }; // private
143
+ }; // Private
144
144
 
145
145
 
146
146
  _proto._getConfig = function _getConfig(config) {
@@ -244,7 +244,7 @@ var ScrollSpy = function ($) {
244
244
 
245
245
  _proto._clear = function _clear() {
246
246
  $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
247
- }; // static
247
+ }; // Static
248
248
 
249
249
 
250
250
  ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
@@ -260,7 +260,7 @@ var ScrollSpy = function ($) {
260
260
 
261
261
  if (typeof config === 'string') {
262
262
  if (typeof data[config] === 'undefined') {
263
- throw new Error("No method named \"" + config + "\"");
263
+ throw new TypeError("No method named \"" + config + "\"");
264
264
  }
265
265
 
266
266
  data[config]();
@@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
4
4
 
5
5
  /**
6
6
  * --------------------------------------------------------------------------
7
- * Bootstrap (v4.0.0-beta.3): tab.js
7
+ * Bootstrap (v4.0.0): tab.js
8
8
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
9
9
  * --------------------------------------------------------------------------
10
10
  */
@@ -15,7 +15,7 @@ var Tab = function ($) {
15
15
  * ------------------------------------------------------------------------
16
16
  */
17
17
  var NAME = 'tab';
18
- var VERSION = '4.0.0-beta.3';
18
+ var VERSION = '4.0.0';
19
19
  var DATA_KEY = 'bs.tab';
20
20
  var EVENT_KEY = "." + DATA_KEY;
21
21
  var DATA_API_KEY = '.data-api';
@@ -56,12 +56,12 @@ var Tab = function ($) {
56
56
  function () {
57
57
  function Tab(element) {
58
58
  this._element = element;
59
- } // getters
59
+ } // Getters
60
60
 
61
61
 
62
62
  var _proto = Tab.prototype;
63
63
 
64
- // public
64
+ // Public
65
65
  _proto.show = function show() {
66
66
  var _this = this;
67
67
 
@@ -124,7 +124,7 @@ var Tab = function ($) {
124
124
  _proto.dispose = function dispose() {
125
125
  $.removeData(this._element, DATA_KEY);
126
126
  this._element = null;
127
- }; // private
127
+ }; // Private
128
128
 
129
129
 
130
130
  _proto._activate = function _activate(element, container, callback) {
@@ -188,7 +188,7 @@ var Tab = function ($) {
188
188
  if (callback) {
189
189
  callback();
190
190
  }
191
- }; // static
191
+ }; // Static
192
192
 
193
193
 
194
194
  Tab._jQueryInterface = function _jQueryInterface(config) {
@@ -203,7 +203,7 @@ var Tab = function ($) {
203
203
 
204
204
  if (typeof config === 'string') {
205
205
  if (typeof data[config] === 'undefined') {
206
- throw new Error("No method named \"" + config + "\"");
206
+ throw new TypeError("No method named \"" + config + "\"");
207
207
  }
208
208
 
209
209
  data[config]();
@@ -6,7 +6,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
6
6
 
7
7
  /**
8
8
  * --------------------------------------------------------------------------
9
- * Bootstrap (v4.0.0-beta.3): tooltip.js
9
+ * Bootstrap (v4.0.0): tooltip.js
10
10
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
11
11
  * --------------------------------------------------------------------------
12
12
  */
@@ -17,7 +17,7 @@ var Tooltip = function ($) {
17
17
  * ------------------------------------------------------------------------
18
18
  */
19
19
  var NAME = 'tooltip';
20
- var VERSION = '4.0.0-beta.3';
20
+ var VERSION = '4.0.0';
21
21
  var DATA_KEY = 'bs.tooltip';
22
22
  var EVENT_KEY = "." + DATA_KEY;
23
23
  var JQUERY_NO_CONFLICT = $.fn[NAME];
@@ -106,7 +106,7 @@ var Tooltip = function ($) {
106
106
  * Popper - https://popper.js.org
107
107
  */
108
108
  if (typeof Popper === 'undefined') {
109
- throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
109
+ throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
110
110
  } // private
111
111
 
112
112
 
@@ -114,19 +114,19 @@ var Tooltip = function ($) {
114
114
  this._timeout = 0;
115
115
  this._hoverState = '';
116
116
  this._activeTrigger = {};
117
- this._popper = null; // protected
117
+ this._popper = null; // Protected
118
118
 
119
119
  this.element = element;
120
120
  this.config = this._getConfig(config);
121
121
  this.tip = null;
122
122
 
123
123
  this._setListeners();
124
- } // getters
124
+ } // Getters
125
125
 
126
126
 
127
127
  var _proto = Tooltip.prototype;
128
128
 
129
- // public
129
+ // Public
130
130
  _proto.enable = function enable() {
131
131
  this._isEnabled = true;
132
132
  };
@@ -261,7 +261,7 @@ var Tooltip = function ($) {
261
261
  _this._handlePopperPlacementChange(data);
262
262
  }
263
263
  });
264
- $(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
264
+ $(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
265
265
  // empty mouseover listeners to the body's immediate children;
266
266
  // only needed because of broken event delegation on iOS
267
267
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
@@ -324,7 +324,7 @@ var Tooltip = function ($) {
324
324
  return;
325
325
  }
326
326
 
327
- $(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra
327
+ $(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
328
328
  // empty mouseover listeners we added for iOS support
329
329
 
330
330
  if ('ontouchstart' in document.documentElement) {
@@ -348,7 +348,7 @@ var Tooltip = function ($) {
348
348
  if (this._popper !== null) {
349
349
  this._popper.scheduleUpdate();
350
350
  }
351
- }; // protected
351
+ }; // Protected
352
352
 
353
353
 
354
354
  _proto.isWithContent = function isWithContent() {
@@ -374,7 +374,7 @@ var Tooltip = function ($) {
374
374
  var html = this.config.html;
375
375
 
376
376
  if (typeof content === 'object' && (content.nodeType || content.jquery)) {
377
- // content is a DOM node or a jQuery
377
+ // Content is a DOM node or a jQuery
378
378
  if (html) {
379
379
  if (!$(content).parent().is($element)) {
380
380
  $element.empty().append(content);
@@ -395,7 +395,7 @@ var Tooltip = function ($) {
395
395
  }
396
396
 
397
397
  return title;
398
- }; // private
398
+ }; // Private
399
399
 
400
400
 
401
401
  _proto._getAttachment = function _getAttachment(placement) {
@@ -584,7 +584,7 @@ var Tooltip = function ($) {
584
584
  this.hide();
585
585
  this.show();
586
586
  this.config.animation = initConfigAnimation;
587
- }; // static
587
+ }; // Static
588
588
 
589
589
 
590
590
  Tooltip._jQueryInterface = function _jQueryInterface(config) {
@@ -604,7 +604,7 @@ var Tooltip = function ($) {
604
604
 
605
605
  if (typeof config === 'string') {
606
606
  if (typeof data[config] === 'undefined') {
607
- throw new Error("No method named \"" + config + "\"");
607
+ throw new TypeError("No method named \"" + config + "\"");
608
608
  }
609
609
 
610
610
  data[config]();
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v4.0.0-beta.3): util.js
3
+ * Bootstrap (v4.0.0): util.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -11,7 +11,7 @@ var Util = function ($) {
11
11
  * ------------------------------------------------------------------------
12
12
  */
13
13
  var transition = false;
14
- var MAX_UID = 1000000; // shoutout AngusCroll (https://goo.gl/pxwQGp)
14
+ var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
15
15
 
16
16
  function toType(obj) {
17
17
  return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
@@ -32,7 +32,7 @@ var Util = function ($) {
32
32
  }
33
33
 
34
34
  function transitionEndTest() {
35
- if (window.QUnit) {
35
+ if (typeof window !== 'undefined' && window.QUnit) {
36
36
  return false;
37
37
  }
38
38
 
@@ -66,7 +66,7 @@ var Util = function ($) {
66
66
  }
67
67
 
68
68
  function escapeId(selector) {
69
- // we escape IDs in case of special selectors (selector = '#myId:something')
69
+ // We escape IDs in case of special selectors (selector = '#myId:something')
70
70
  // $.escapeSelector does not exist in jQuery < 3
71
71
  selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
72
72
  return selector;
@@ -93,7 +93,7 @@ var Util = function ($) {
93
93
 
94
94
  if (!selector || selector === '#') {
95
95
  selector = element.getAttribute('href') || '';
96
- } // if it's an ID
96
+ } // If it's an ID
97
97
 
98
98
 
99
99
  if (selector.charAt(0) === '#') {
@@ -103,7 +103,7 @@ var Util = function ($) {
103
103
  try {
104
104
  var $selector = $(document).find(selector);
105
105
  return $selector.length > 0 ? selector : null;
106
- } catch (error) {
106
+ } catch (err) {
107
107
  return null;
108
108
  }
109
109
  },
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Bootstrap Grid v4.0.0-beta.3 (https://getbootstrap.com)
3
- * Copyright 2011-2017 The Bootstrap Authors
4
- * Copyright 2011-2017 Twitter, Inc.
2
+ * Bootstrap Grid v4.0.0 (https://getbootstrap.com)
3
+ * Copyright 2011-2018 The Bootstrap Authors
4
+ * Copyright 2011-2018 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
6
  */
7
7
 
@@ -23,13 +23,10 @@ html {
23
23
  @import "bootstrap/functions";
24
24
  @import "bootstrap/variables";
25
25
 
26
- //
27
- // Grid mixins
28
- //
29
-
30
26
  @import "bootstrap/mixins/breakpoints";
31
27
  @import "bootstrap/mixins/grid-framework";
32
28
  @import "bootstrap/mixins/grid";
33
29
 
34
30
  @import "bootstrap/grid";
31
+ @import "bootstrap/utilities/display";
35
32
  @import "bootstrap/utilities/flex";
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Bootstrap Reboot v4.0.0-beta.3 (https://getbootstrap.com)
3
- * Copyright 2011-2017 The Bootstrap Authors
4
- * Copyright 2011-2017 Twitter, Inc.
2
+ * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)
3
+ * Copyright 2011-2018 The Bootstrap Authors
4
+ * Copyright 2011-2018 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
6
  * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Bootstrap v4.0.0-beta.3 (https://getbootstrap.com)
3
- * Copyright 2011-2017 The Bootstrap Authors
4
- * Copyright 2011-2017 Twitter, Inc.
2
+ * Bootstrap v4.0.0 (https://getbootstrap.com)
3
+ * Copyright 2011-2018 The Bootstrap Authors
4
+ * Copyright 2011-2018 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
6
  */
7
7
 
@@ -46,6 +46,6 @@
46
46
 
47
47
  @each $color, $value in $theme-colors {
48
48
  .alert-#{$color} {
49
- @include alert-variant(theme-color-level($color, -10), theme-color-level($color, -9), theme-color-level($color, 6));
49
+ @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));
50
50
  }
51
51
  }
@@ -34,12 +34,12 @@
34
34
  }
35
35
 
36
36
  // Opinionated: add "hand" cursor to non-disabled .btn elements
37
- &:not([disabled]):not(.disabled) {
37
+ &:not(:disabled):not(.disabled) {
38
38
  cursor: pointer;
39
39
  }
40
40
 
41
- &:not([disabled]):not(.disabled):active,
42
- &:not([disabled]):not(.disabled).active {
41
+ &:not(:disabled):not(.disabled):active,
42
+ &:not(:disabled):not(.disabled).active {
43
43
  background-image: none;
44
44
  @include box-shadow($btn-active-box-shadow);
45
45
 
@@ -51,7 +51,7 @@
51
51
 
52
52
  // Future-proof disabling of clicks on `<a>` elements
53
53
  a.btn.disabled,
54
- fieldset[disabled] a.btn {
54
+ fieldset:disabled a.btn {
55
55
  pointer-events: none;
56
56
  }
57
57
 
@@ -68,11 +68,7 @@ fieldset[disabled] a.btn {
68
68
 
69
69
  @each $color, $value in $theme-colors {
70
70
  .btn-outline-#{$color} {
71
- @if $color == "light" {
72
- @include button-outline-variant($value, $gray-900);
73
- } @else {
74
- @include button-outline-variant($value, $white);
75
- }
71
+ @include button-outline-variant($value);
76
72
  }
77
73
  }
78
74