bootstrap 4.1.1 → 4.1.2

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 (32) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap-sprockets.js +5 -5
  4. data/assets/javascripts/bootstrap.js +123 -106
  5. data/assets/javascripts/bootstrap.min.js +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +3 -3
  7. data/assets/javascripts/bootstrap/button.js +7 -7
  8. data/assets/javascripts/bootstrap/carousel.js +15 -12
  9. data/assets/javascripts/bootstrap/collapse.js +25 -17
  10. data/assets/javascripts/bootstrap/dropdown.js +15 -9
  11. data/assets/javascripts/bootstrap/modal.js +22 -29
  12. data/assets/javascripts/bootstrap/popover.js +2 -2
  13. data/assets/javascripts/bootstrap/scrollspy.js +13 -9
  14. data/assets/javascripts/bootstrap/tab.js +5 -4
  15. data/assets/javascripts/bootstrap/tooltip.js +12 -9
  16. data/assets/javascripts/bootstrap/util.js +2 -3
  17. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  18. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  19. data/assets/stylesheets/_bootstrap.scss +1 -1
  20. data/assets/stylesheets/bootstrap/_carousel.scss +1 -1
  21. data/assets/stylesheets/bootstrap/_close.scss +8 -7
  22. data/assets/stylesheets/bootstrap/_custom-forms.scss +19 -1
  23. data/assets/stylesheets/bootstrap/_functions.scss +1 -1
  24. data/assets/stylesheets/bootstrap/_input-group.scss +7 -5
  25. data/assets/stylesheets/bootstrap/_navbar.scss +2 -2
  26. data/assets/stylesheets/bootstrap/_reboot.scss +1 -0
  27. data/assets/stylesheets/bootstrap/_variables.scss +78 -56
  28. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +1 -1
  29. data/assets/stylesheets/bootstrap/mixins/_hover.scss +1 -1
  30. data/lib/bootstrap/version.rb +2 -2
  31. data/test/test_helper.rb +7 -6
  32. metadata +3 -3
@@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
10
10
 
11
11
  /**
12
12
  * --------------------------------------------------------------------------
13
- * Bootstrap (v4.1.1): popover.js
13
+ * Bootstrap (v4.1.2): popover.js
14
14
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
15
15
  * --------------------------------------------------------------------------
16
16
  */
@@ -21,7 +21,7 @@ var Popover = function ($) {
21
21
  * ------------------------------------------------------------------------
22
22
  */
23
23
  var NAME = 'popover';
24
- var VERSION = '4.1.1';
24
+ var VERSION = '4.1.2';
25
25
  var DATA_KEY = 'bs.popover';
26
26
  var EVENT_KEY = "." + DATA_KEY;
27
27
  var JQUERY_NO_CONFLICT = $.fn[NAME];
@@ -8,7 +8,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
8
8
 
9
9
  /**
10
10
  * --------------------------------------------------------------------------
11
- * Bootstrap (v4.1.1): scrollspy.js
11
+ * Bootstrap (v4.1.2): scrollspy.js
12
12
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
13
13
  * --------------------------------------------------------------------------
14
14
  */
@@ -19,7 +19,7 @@ var ScrollSpy = function ($) {
19
19
  * ------------------------------------------------------------------------
20
20
  */
21
21
  var NAME = 'scrollspy';
22
- var VERSION = '4.1.1';
22
+ var VERSION = '4.1.2';
23
23
  var DATA_KEY = 'bs.scrollspy';
24
24
  var EVENT_KEY = "." + DATA_KEY;
25
25
  var DATA_API_KEY = '.data-api';
@@ -101,13 +101,13 @@ var ScrollSpy = function ($) {
101
101
  this._offsets = [];
102
102
  this._targets = [];
103
103
  this._scrollHeight = this._getScrollHeight();
104
- var targets = $.makeArray($(this._selector));
104
+ var targets = [].slice.call(document.querySelectorAll(this._selector));
105
105
  targets.map(function (element) {
106
106
  var target;
107
107
  var targetSelector = Util.getSelectorFromElement(element);
108
108
 
109
109
  if (targetSelector) {
110
- target = $(targetSelector)[0];
110
+ target = document.querySelector(targetSelector);
111
111
  }
112
112
 
113
113
  if (target) {
@@ -204,7 +204,9 @@ var ScrollSpy = function ($) {
204
204
  return;
205
205
  }
206
206
 
207
- for (var i = this._offsets.length; i--;) {
207
+ var offsetLength = this._offsets.length;
208
+
209
+ for (var i = offsetLength; i--;) {
208
210
  var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
209
211
 
210
212
  if (isActiveTarget) {
@@ -224,7 +226,7 @@ var ScrollSpy = function ($) {
224
226
  queries = queries.map(function (selector) {
225
227
  return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
226
228
  });
227
- var $link = $(queries.join(','));
229
+ var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
228
230
 
229
231
  if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
230
232
  $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
@@ -245,7 +247,8 @@ var ScrollSpy = function ($) {
245
247
  };
246
248
 
247
249
  _proto._clear = function _clear() {
248
- $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
250
+ var nodes = [].slice.call(document.querySelectorAll(this._selector));
251
+ $(nodes).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
249
252
  }; // Static
250
253
 
251
254
 
@@ -292,9 +295,10 @@ var ScrollSpy = function ($) {
292
295
 
293
296
 
294
297
  $(window).on(Event.LOAD_DATA_API, function () {
295
- var scrollSpys = $.makeArray($(Selector.DATA_SPY));
298
+ var scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY));
299
+ var scrollSpysLength = scrollSpys.length;
296
300
 
297
- for (var i = scrollSpys.length; i--;) {
301
+ for (var i = scrollSpysLength; i--;) {
298
302
  var $spy = $(scrollSpys[i]);
299
303
 
300
304
  ScrollSpy._jQueryInterface.call($spy, $spy.data());
@@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
4
4
 
5
5
  /**
6
6
  * --------------------------------------------------------------------------
7
- * Bootstrap (v4.1.1): tab.js
7
+ * Bootstrap (v4.1.2): 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.1.1';
18
+ var VERSION = '4.1.2';
19
19
  var DATA_KEY = 'bs.tab';
20
20
  var EVENT_KEY = "." + DATA_KEY;
21
21
  var DATA_API_KEY = '.data-api';
@@ -97,7 +97,7 @@ var Tab = function ($) {
97
97
  }
98
98
 
99
99
  if (selector) {
100
- target = $(selector)[0];
100
+ target = document.querySelector(selector);
101
101
  }
102
102
 
103
103
  this._activate(this._element, listElement);
@@ -179,7 +179,8 @@ var Tab = function ($) {
179
179
  var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
180
180
 
181
181
  if (dropdownElement) {
182
- $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
182
+ var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
183
+ $(dropdownToggleList).addClass(ClassName.ACTIVE);
183
184
  }
184
185
 
185
186
  element.setAttribute('aria-expanded', true);
@@ -8,7 +8,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
8
8
 
9
9
  /**
10
10
  * --------------------------------------------------------------------------
11
- * Bootstrap (v4.1.1): tooltip.js
11
+ * Bootstrap (v4.1.2): tooltip.js
12
12
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
13
13
  * --------------------------------------------------------------------------
14
14
  */
@@ -19,7 +19,7 @@ var Tooltip = function ($) {
19
19
  * ------------------------------------------------------------------------
20
20
  */
21
21
  var NAME = 'tooltip';
22
- var VERSION = '4.1.1';
22
+ var VERSION = '4.1.2';
23
23
  var DATA_KEY = 'bs.tooltip';
24
24
  var EVENT_KEY = "." + DATA_KEY;
25
25
  var JQUERY_NO_CONFLICT = $.fn[NAME];
@@ -229,7 +229,7 @@ var Tooltip = function ($) {
229
229
  var attachment = this._getAttachment(placement);
230
230
 
231
231
  this.addAttachmentClass(attachment);
232
- var container = this.config.container === false ? document.body : $(this.config.container);
232
+ var container = this.config.container === false ? document.body : $(document).find(this.config.container);
233
233
  $(tip).data(this.constructor.DATA_KEY, this);
234
234
 
235
235
  if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
@@ -368,9 +368,9 @@ var Tooltip = function ($) {
368
368
  };
369
369
 
370
370
  _proto.setContent = function setContent() {
371
- var $tip = $(this.getTipElement());
372
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
373
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
371
+ var tip = this.getTipElement();
372
+ this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle());
373
+ $(tip).removeClass(ClassName.FADE + " " + ClassName.SHOW);
374
374
  };
375
375
 
376
376
  _proto.setElementContent = function setElementContent($element, content) {
@@ -563,15 +563,18 @@ var Tooltip = function ($) {
563
563
  var $tip = $(this.getTipElement());
564
564
  var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
565
565
 
566
- if (tabClass !== null && tabClass.length > 0) {
566
+ if (tabClass !== null && tabClass.length) {
567
567
  $tip.removeClass(tabClass.join(''));
568
568
  }
569
569
  };
570
570
 
571
- _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
571
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
572
+ var popperInstance = popperData.instance;
573
+ this.tip = popperInstance.popper;
574
+
572
575
  this._cleanTipClass();
573
576
 
574
- this.addAttachmentClass(this._getAttachment(data.placement));
577
+ this.addAttachmentClass(this._getAttachment(popperData.placement));
575
578
  };
576
579
 
577
580
  _proto._fixTransition = function _fixTransition() {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v4.1.1): util.js
3
+ * Bootstrap (v4.1.2): util.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -76,8 +76,7 @@ var Util = function ($) {
76
76
  }
77
77
 
78
78
  try {
79
- var $selector = $(document).find(selector);
80
- return $selector.length > 0 ? selector : null;
79
+ return document.querySelector(selector) ? selector : null;
81
80
  } catch (err) {
82
81
  return null;
83
82
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Grid v4.1.1 (https://getbootstrap.com/)
2
+ * Bootstrap Grid v4.1.2 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2018 The Bootstrap Authors
4
4
  * Copyright 2011-2018 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Reboot v4.1.1 (https://getbootstrap.com/)
2
+ * Bootstrap Reboot v4.1.2 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2018 The Bootstrap Authors
4
4
  * Copyright 2011-2018 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v4.1.1 (https://getbootstrap.com/)
2
+ * Bootstrap v4.1.2 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2018 The Bootstrap Authors
4
4
  * Copyright 2011-2018 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -23,7 +23,6 @@
23
23
  display: none;
24
24
  align-items: center;
25
25
  width: 100%;
26
- @include transition($carousel-transition);
27
26
  backface-visibility: hidden;
28
27
  perspective: 1000px;
29
28
  }
@@ -32,6 +31,7 @@
32
31
  .carousel-item-next,
33
32
  .carousel-item-prev {
34
33
  display: block;
34
+ @include transition($carousel-transition);
35
35
  }
36
36
 
37
37
  .carousel-item-next,
@@ -7,14 +7,15 @@
7
7
  text-shadow: $close-text-shadow;
8
8
  opacity: .5;
9
9
 
10
- @include hover-focus {
11
- color: $close-color;
12
- text-decoration: none;
13
- opacity: .75;
14
- }
15
-
16
- // Opinionated: add "hand" cursor to non-disabled .close elements
17
10
  &:not(:disabled):not(.disabled) {
11
+
12
+ @include hover-focus {
13
+ color: $close-color;
14
+ text-decoration: none;
15
+ opacity: .75;
16
+ }
17
+
18
+ // Opinionated: add "hand" cursor to non-disabled .close elements
18
19
  cursor: pointer;
19
20
  }
20
21
  }
@@ -177,12 +177,17 @@
177
177
  } @else {
178
178
  border-radius: 0;
179
179
  }
180
+ @include box-shadow($custom-select-box-shadow);
180
181
  appearance: none;
181
182
 
182
183
  &:focus {
183
184
  border-color: $custom-select-focus-border-color;
184
185
  outline: 0;
185
- box-shadow: $custom-select-focus-box-shadow;
186
+ @if $enable-shadows {
187
+ box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow;
188
+ } @else {
189
+ box-shadow: $custom-select-focus-box-shadow;
190
+ }
186
191
 
187
192
  &::-ms-value {
188
193
  // For visual consistency with other platforms/browsers,
@@ -257,6 +262,10 @@
257
262
  }
258
263
  }
259
264
 
265
+ &:disabled ~ .custom-file-label {
266
+ background-color: $custom-file-disabled-bg;
267
+ }
268
+
260
269
  @each $lang, $value in $custom-file-text {
261
270
  &:lang(#{$lang}) ~ .custom-file-label::after {
262
271
  content: $value;
@@ -325,6 +334,7 @@
325
334
  border: $custom-range-thumb-border;
326
335
  @include border-radius($custom-range-thumb-border-radius);
327
336
  @include box-shadow($custom-range-thumb-box-shadow);
337
+ @include transition($custom-forms-transition);
328
338
  appearance: none;
329
339
 
330
340
  &:focus {
@@ -355,6 +365,7 @@
355
365
  border: $custom-range-thumb-border;
356
366
  @include border-radius($custom-range-thumb-border-radius);
357
367
  @include box-shadow($custom-range-thumb-box-shadow);
368
+ @include transition($custom-forms-transition);
358
369
  appearance: none;
359
370
 
360
371
  &:focus {
@@ -385,6 +396,7 @@
385
396
  border: $custom-range-thumb-border;
386
397
  @include border-radius($custom-range-thumb-border-radius);
387
398
  @include box-shadow($custom-range-thumb-box-shadow);
399
+ @include transition($custom-forms-transition);
388
400
  appearance: none;
389
401
 
390
402
  &:focus {
@@ -419,3 +431,9 @@
419
431
  @include border-radius($custom-range-track-border-radius);
420
432
  }
421
433
  }
434
+
435
+ .custom-control-label::before,
436
+ .custom-file-label,
437
+ .custom-select {
438
+ @include transition($custom-forms-transition);
439
+ }
@@ -1,6 +1,6 @@
1
1
  // Bootstrap functions
2
2
  //
3
- // Utility mixins and functions for evalutating source code across our variables, maps, and mixins.
3
+ // Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
4
4
 
5
5
  // Ascending
6
6
  // Used to evaluate Sass maps like our grid breakpoints.
@@ -21,11 +21,6 @@
21
21
  width: 1%;
22
22
  margin-bottom: 0;
23
23
 
24
- // Bring the "active" form control to the top of surrounding elements
25
- &:focus {
26
- z-index: 3;
27
- }
28
-
29
24
  + .form-control,
30
25
  + .custom-select,
31
26
  + .custom-file {
@@ -33,6 +28,13 @@
33
28
  }
34
29
  }
35
30
 
31
+ // Bring the "active" form control to the top of surrounding elements
32
+ > .form-control:focus,
33
+ > .custom-select:focus,
34
+ > .custom-file .custom-file-input:focus ~ .custom-file-label {
35
+ z-index: 3;
36
+ }
37
+
36
38
  > .form-control,
37
39
  > .custom-select {
38
40
  &:not(:last-child) { @include border-right-radius(0); }
@@ -24,7 +24,7 @@
24
24
  padding: $navbar-padding-y $navbar-padding-x;
25
25
 
26
26
  // Because flex properties aren't inherited, we need to redeclare these first
27
- // few properities so that content nested within behave properly.
27
+ // few properties so that content nested within behave properly.
28
28
  > .container,
29
29
  > .container-fluid {
30
30
  display: flex;
@@ -94,7 +94,7 @@
94
94
  // Powered by the collapse Bootstrap JavaScript plugin.
95
95
 
96
96
  // When collapsed, prevent the toggleable navbar contents from appearing in
97
- // the default flexbox row orienation. Requires the use of `flex-wrap: wrap`
97
+ // the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
98
98
  // on the `.navbar` parent.
99
99
  .navbar-collapse {
100
100
  flex-basis: 100%;
@@ -274,6 +274,7 @@ img {
274
274
 
275
275
  svg:not(:root) {
276
276
  overflow: hidden; // Hide the overflow in IE
277
+ vertical-align: middle;
277
278
  }
278
279
 
279
280
 
@@ -8,7 +8,6 @@
8
8
  // Color system
9
9
  //
10
10
 
11
- // stylelint-disable
12
11
  $white: #fff !default;
13
12
  $gray-100: #f8f9fa !default;
14
13
  $gray-200: #e9ecef !default;
@@ -22,17 +21,22 @@ $gray-900: #212529 !default;
22
21
  $black: #000 !default;
23
22
 
24
23
  $grays: () !default;
25
- $grays: map-merge((
26
- "100": $gray-100,
27
- "200": $gray-200,
28
- "300": $gray-300,
29
- "400": $gray-400,
30
- "500": $gray-500,
31
- "600": $gray-600,
32
- "700": $gray-700,
33
- "800": $gray-800,
34
- "900": $gray-900
35
- ), $grays);
24
+ // stylelint-disable-next-line scss/dollar-variable-default
25
+ $grays: map-merge(
26
+ (
27
+ "100": $gray-100,
28
+ "200": $gray-200,
29
+ "300": $gray-300,
30
+ "400": $gray-400,
31
+ "500": $gray-500,
32
+ "600": $gray-600,
33
+ "700": $gray-700,
34
+ "800": $gray-800,
35
+ "900": $gray-900
36
+ ),
37
+ $grays
38
+ );
39
+
36
40
 
37
41
  $blue: #007bff !default;
38
42
  $indigo: #6610f2 !default;
@@ -46,21 +50,25 @@ $teal: #20c997 !default;
46
50
  $cyan: #17a2b8 !default;
47
51
 
48
52
  $colors: () !default;
49
- $colors: map-merge((
50
- "blue": $blue,
51
- "indigo": $indigo,
52
- "purple": $purple,
53
- "pink": $pink,
54
- "red": $red,
55
- "orange": $orange,
56
- "yellow": $yellow,
57
- "green": $green,
58
- "teal": $teal,
59
- "cyan": $cyan,
60
- "white": $white,
61
- "gray": $gray-600,
62
- "gray-dark": $gray-800
63
- ), $colors);
53
+ // stylelint-disable-next-line scss/dollar-variable-default
54
+ $colors: map-merge(
55
+ (
56
+ "blue": $blue,
57
+ "indigo": $indigo,
58
+ "purple": $purple,
59
+ "pink": $pink,
60
+ "red": $red,
61
+ "orange": $orange,
62
+ "yellow": $yellow,
63
+ "green": $green,
64
+ "teal": $teal,
65
+ "cyan": $cyan,
66
+ "white": $white,
67
+ "gray": $gray-600,
68
+ "gray-dark": $gray-800
69
+ ),
70
+ $colors
71
+ );
64
72
 
65
73
  $primary: $blue !default;
66
74
  $secondary: $gray-600 !default;
@@ -72,17 +80,20 @@ $light: $gray-100 !default;
72
80
  $dark: $gray-800 !default;
73
81
 
74
82
  $theme-colors: () !default;
75
- $theme-colors: map-merge((
76
- "primary": $primary,
77
- "secondary": $secondary,
78
- "success": $success,
79
- "info": $info,
80
- "warning": $warning,
81
- "danger": $danger,
82
- "light": $light,
83
- "dark": $dark
84
- ), $theme-colors);
85
- // stylelint-enable
83
+ // stylelint-disable-next-line scss/dollar-variable-default
84
+ $theme-colors: map-merge(
85
+ (
86
+ "primary": $primary,
87
+ "secondary": $secondary,
88
+ "success": $success,
89
+ "info": $info,
90
+ "warning": $warning,
91
+ "danger": $danger,
92
+ "light": $light,
93
+ "dark": $dark
94
+ ),
95
+ $theme-colors
96
+ );
86
97
 
87
98
  // Set a specific jump point for requesting color jumps
88
99
  $theme-color-interval: 8% !default;
@@ -114,28 +125,34 @@ $enable-print-styles: true !default;
114
125
  // variables. Mostly focused on spacing.
115
126
  // You can add more entries to the $spacers map, should you need more variation.
116
127
 
117
- // stylelint-disable
118
128
  $spacer: 1rem !default;
119
129
  $spacers: () !default;
120
- $spacers: map-merge((
121
- 0: 0,
122
- 1: ($spacer * .25),
123
- 2: ($spacer * .5),
124
- 3: $spacer,
125
- 4: ($spacer * 1.5),
126
- 5: ($spacer * 3)
127
- ), $spacers);
130
+ // stylelint-disable-next-line scss/dollar-variable-default
131
+ $spacers: map-merge(
132
+ (
133
+ 0: 0,
134
+ 1: ($spacer * .25),
135
+ 2: ($spacer * .5),
136
+ 3: $spacer,
137
+ 4: ($spacer * 1.5),
138
+ 5: ($spacer * 3)
139
+ ),
140
+ $spacers
141
+ );
128
142
 
129
143
  // This variable affects the `.h-*` and `.w-*` classes.
130
144
  $sizes: () !default;
131
- $sizes: map-merge((
132
- 25: 25%,
133
- 50: 50%,
134
- 75: 75%,
135
- 100: 100%,
136
- auto: auto
137
- ), $sizes);
138
- // stylelint-enable
145
+ // stylelint-disable-next-line scss/dollar-variable-default
146
+ $sizes: map-merge(
147
+ (
148
+ 25: 25%,
149
+ 50: 50%,
150
+ 75: 75%,
151
+ 100: 100%,
152
+ auto: auto
153
+ ),
154
+ $sizes
155
+ );
139
156
 
140
157
  // Body
141
158
  //
@@ -451,6 +468,8 @@ $input-group-addon-color: $input-color !default;
451
468
  $input-group-addon-bg: $gray-200 !default;
452
469
  $input-group-addon-border-color: $input-border-color !default;
453
470
 
471
+ $custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
472
+
454
473
  $custom-control-gutter: 1.5rem !default;
455
474
  $custom-control-spacer-x: 1rem !default;
456
475
 
@@ -499,9 +518,11 @@ $custom-select-indicator: str-replace(url("data:image/svg+xml;charset=
499
518
  $custom-select-border-width: $input-btn-border-width !default;
500
519
  $custom-select-border-color: $input-border-color !default;
501
520
  $custom-select-border-radius: $border-radius !default;
521
+ $custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;
502
522
 
503
523
  $custom-select-focus-border-color: $input-focus-border-color !default;
504
- $custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;
524
+ $custom-select-focus-width: $input-btn-focus-width !default;
525
+ $custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width rgba($custom-select-focus-border-color, .5) !default;
505
526
 
506
527
  $custom-select-font-size-sm: 75% !default;
507
528
  $custom-select-height-sm: $input-height-sm !default;
@@ -529,6 +550,7 @@ $custom-file-height: $input-height !default;
529
550
  $custom-file-height-inner: $input-height-inner !default;
530
551
  $custom-file-focus-border-color: $input-focus-border-color !default;
531
552
  $custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;
553
+ $custom-file-disabled-bg: $input-disabled-bg !default;
532
554
 
533
555
  $custom-file-padding-y: $input-btn-padding-y !default;
534
556
  $custom-file-padding-x: $input-btn-padding-x !default;