bootstrap 4.5.3 → 4.6.0

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap-sprockets.js +7 -7
  4. data/assets/javascripts/bootstrap.js +69 -55
  5. data/assets/javascripts/bootstrap.min.js +3 -3
  6. data/assets/javascripts/bootstrap/alert.js +19 -6
  7. data/assets/javascripts/bootstrap/button.js +18 -5
  8. data/assets/javascripts/bootstrap/carousel.js +56 -16
  9. data/assets/javascripts/bootstrap/collapse.js +36 -7
  10. data/assets/javascripts/bootstrap/dropdown.js +39 -10
  11. data/assets/javascripts/bootstrap/modal.js +62 -33
  12. data/assets/javascripts/bootstrap/popover.js +41 -8
  13. data/assets/javascripts/bootstrap/scrollspy.js +36 -7
  14. data/assets/javascripts/bootstrap/tab.js +19 -6
  15. data/assets/javascripts/bootstrap/toast.js +36 -7
  16. data/assets/javascripts/bootstrap/tooltip.js +44 -12
  17. data/assets/javascripts/bootstrap/util.js +3 -3
  18. data/assets/stylesheets/_bootstrap-grid.scss +4 -3
  19. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  20. data/assets/stylesheets/_bootstrap.scss +3 -3
  21. data/assets/stylesheets/bootstrap/_breadcrumb.scss +1 -3
  22. data/assets/stylesheets/bootstrap/_carousel.scss +1 -1
  23. data/assets/stylesheets/bootstrap/_custom-forms.scss +4 -2
  24. data/assets/stylesheets/bootstrap/_dropdown.scss +1 -1
  25. data/assets/stylesheets/bootstrap/_input-group.scss +20 -4
  26. data/assets/stylesheets/bootstrap/_nav.scss +1 -4
  27. data/assets/stylesheets/bootstrap/_navbar.scss +10 -2
  28. data/assets/stylesheets/bootstrap/_pagination.scss +2 -2
  29. data/assets/stylesheets/bootstrap/_progress.scss +1 -1
  30. data/assets/stylesheets/bootstrap/_reboot.scss +8 -8
  31. data/assets/stylesheets/bootstrap/_root.scss +0 -1
  32. data/assets/stylesheets/bootstrap/_spinners.scss +11 -2
  33. data/assets/stylesheets/bootstrap/_type.scss +1 -1
  34. data/assets/stylesheets/bootstrap/_variables.scss +8 -4
  35. data/assets/stylesheets/bootstrap/mixins/_forms.scss +8 -1
  36. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
  37. data/lib/bootstrap/version.rb +2 -2
  38. metadata +2 -2
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Bootstrap scrollspy.js v4.5.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap scrollspy.js v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
8
+ typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.jQuery, global.Util));
10
10
  }(this, (function ($, Util) { 'use strict';
11
11
 
@@ -14,11 +14,40 @@
14
14
  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
15
  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
16
16
 
17
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17
+ function _defineProperties(target, props) {
18
+ for (var i = 0; i < props.length; i++) {
19
+ var descriptor = props[i];
20
+ descriptor.enumerable = descriptor.enumerable || false;
21
+ descriptor.configurable = true;
22
+ if ("value" in descriptor) descriptor.writable = true;
23
+ Object.defineProperty(target, descriptor.key, descriptor);
24
+ }
25
+ }
26
+
27
+ function _createClass(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ return Constructor;
31
+ }
32
+
33
+ function _extends() {
34
+ _extends = Object.assign || function (target) {
35
+ for (var i = 1; i < arguments.length; i++) {
36
+ var source = arguments[i];
37
+
38
+ for (var key in source) {
39
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
40
+ target[key] = source[key];
41
+ }
42
+ }
43
+ }
44
+
45
+ return target;
46
+ };
18
47
 
19
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
48
+ return _extends.apply(this, arguments);
49
+ }
20
50
 
21
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
22
51
  /**
23
52
  * ------------------------------------------------------------------------
24
53
  * Constants
@@ -26,7 +55,7 @@
26
55
  */
27
56
 
28
57
  var NAME = 'scrollspy';
29
- var VERSION = '4.5.3';
58
+ var VERSION = '4.6.0';
30
59
  var DATA_KEY = 'bs.scrollspy';
31
60
  var EVENT_KEY = "." + DATA_KEY;
32
61
  var DATA_API_KEY = '.data-api';
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Bootstrap tab.js v4.5.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap tab.js v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
8
+ typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.jQuery, global.Util));
10
10
  }(this, (function ($, Util) { 'use strict';
11
11
 
@@ -14,9 +14,22 @@
14
14
  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
15
  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
16
16
 
17
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
17
+ function _defineProperties(target, props) {
18
+ for (var i = 0; i < props.length; i++) {
19
+ var descriptor = props[i];
20
+ descriptor.enumerable = descriptor.enumerable || false;
21
+ descriptor.configurable = true;
22
+ if ("value" in descriptor) descriptor.writable = true;
23
+ Object.defineProperty(target, descriptor.key, descriptor);
24
+ }
25
+ }
26
+
27
+ function _createClass(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ return Constructor;
31
+ }
18
32
 
19
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
20
33
  /**
21
34
  * ------------------------------------------------------------------------
22
35
  * Constants
@@ -24,7 +37,7 @@
24
37
  */
25
38
 
26
39
  var NAME = 'tab';
27
- var VERSION = '4.5.3';
40
+ var VERSION = '4.6.0';
28
41
  var DATA_KEY = 'bs.tab';
29
42
  var EVENT_KEY = "." + DATA_KEY;
30
43
  var DATA_API_KEY = '.data-api';
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Bootstrap toast.js v4.5.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap toast.js v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
8
+ typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.jQuery, global.Util));
10
10
  }(this, (function ($, Util) { 'use strict';
11
11
 
@@ -14,11 +14,40 @@
14
14
  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
15
  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
16
16
 
17
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17
+ function _defineProperties(target, props) {
18
+ for (var i = 0; i < props.length; i++) {
19
+ var descriptor = props[i];
20
+ descriptor.enumerable = descriptor.enumerable || false;
21
+ descriptor.configurable = true;
22
+ if ("value" in descriptor) descriptor.writable = true;
23
+ Object.defineProperty(target, descriptor.key, descriptor);
24
+ }
25
+ }
26
+
27
+ function _createClass(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ return Constructor;
31
+ }
32
+
33
+ function _extends() {
34
+ _extends = Object.assign || function (target) {
35
+ for (var i = 1; i < arguments.length; i++) {
36
+ var source = arguments[i];
37
+
38
+ for (var key in source) {
39
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
40
+ target[key] = source[key];
41
+ }
42
+ }
43
+ }
44
+
45
+ return target;
46
+ };
18
47
 
19
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
48
+ return _extends.apply(this, arguments);
49
+ }
20
50
 
21
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
22
51
  /**
23
52
  * ------------------------------------------------------------------------
24
53
  * Constants
@@ -26,7 +55,7 @@
26
55
  */
27
56
 
28
57
  var NAME = 'toast';
29
- var VERSION = '4.5.3';
58
+ var VERSION = '4.6.0';
30
59
  var DATA_KEY = 'bs.toast';
31
60
  var EVENT_KEY = "." + DATA_KEY;
32
61
  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Bootstrap tooltip.js v4.5.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap tooltip.js v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util.js'], factory) :
8
+ typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util'], factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.jQuery, global.Popper, global.Util));
10
10
  }(this, (function ($, Popper, Util) { 'use strict';
11
11
 
@@ -15,9 +15,43 @@
15
15
  var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
16
16
  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
17
17
 
18
+ function _defineProperties(target, props) {
19
+ for (var i = 0; i < props.length; i++) {
20
+ var descriptor = props[i];
21
+ descriptor.enumerable = descriptor.enumerable || false;
22
+ descriptor.configurable = true;
23
+ if ("value" in descriptor) descriptor.writable = true;
24
+ Object.defineProperty(target, descriptor.key, descriptor);
25
+ }
26
+ }
27
+
28
+ function _createClass(Constructor, protoProps, staticProps) {
29
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
+ if (staticProps) _defineProperties(Constructor, staticProps);
31
+ return Constructor;
32
+ }
33
+
34
+ function _extends() {
35
+ _extends = Object.assign || function (target) {
36
+ for (var i = 1; i < arguments.length; i++) {
37
+ var source = arguments[i];
38
+
39
+ for (var key in source) {
40
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
41
+ target[key] = source[key];
42
+ }
43
+ }
44
+ }
45
+
46
+ return target;
47
+ };
48
+
49
+ return _extends.apply(this, arguments);
50
+ }
51
+
18
52
  /**
19
53
  * --------------------------------------------------------------------------
20
- * Bootstrap (v4.5.3): tools/sanitizer.js
54
+ * Bootstrap (v4.6.0): tools/sanitizer.js
21
55
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
22
56
  * --------------------------------------------------------------------------
23
57
  */
@@ -136,11 +170,6 @@
136
170
  return createdDocument.body.innerHTML;
137
171
  }
138
172
 
139
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
140
-
141
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
142
-
143
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
144
173
  /**
145
174
  * ------------------------------------------------------------------------
146
175
  * Constants
@@ -148,7 +177,7 @@
148
177
  */
149
178
 
150
179
  var NAME = 'tooltip';
151
- var VERSION = '4.5.3';
180
+ var VERSION = '4.6.0';
152
181
  var DATA_KEY = 'bs.tooltip';
153
182
  var EVENT_KEY = "." + DATA_KEY;
154
183
  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
@@ -168,6 +197,7 @@
168
197
  container: '(string|element|boolean)',
169
198
  fallbackPlacement: '(string|array)',
170
199
  boundary: '(string|element)',
200
+ customClass: '(string|function)',
171
201
  sanitize: 'boolean',
172
202
  sanitizeFn: '(null|function)',
173
203
  whiteList: 'object',
@@ -193,6 +223,7 @@
193
223
  container: false,
194
224
  fallbackPlacement: 'flip',
195
225
  boundary: 'scrollParent',
226
+ customClass: '',
196
227
  sanitize: true,
197
228
  sanitizeFn: null,
198
229
  whiteList: DefaultWhitelist,
@@ -229,7 +260,7 @@
229
260
  var Tooltip = /*#__PURE__*/function () {
230
261
  function Tooltip(element, config) {
231
262
  if (typeof Popper__default['default'] === 'undefined') {
232
- throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)');
263
+ throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
233
264
  } // private
234
265
 
235
266
 
@@ -363,7 +394,8 @@
363
394
 
364
395
  $__default['default'](this.element).trigger(this.constructor.Event.INSERTED);
365
396
  this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment));
366
- $__default['default'](tip).addClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we add extra
397
+ $__default['default'](tip).addClass(CLASS_NAME_SHOW);
398
+ $__default['default'](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra
367
399
  // empty mouseover listeners to the body's immediate children;
368
400
  // only needed because of broken event delegation on iOS
369
401
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap util.js v4.5.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap util.js v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -15,7 +15,7 @@
15
15
 
16
16
  /**
17
17
  * --------------------------------------------------------------------------
18
- * Bootstrap (v4.5.3): util.js
18
+ * Bootstrap (v4.6.0): util.js
19
19
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
20
20
  * --------------------------------------------------------------------------
21
21
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Bootstrap Grid v4.5.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors
4
- * Copyright 2011-2020 Twitter, Inc.
2
+ * Bootstrap Grid v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
@@ -19,6 +19,7 @@ html {
19
19
  @import "bootstrap/functions";
20
20
  @import "bootstrap/variables";
21
21
 
22
+ @import "bootstrap/mixins/deprecate";
22
23
  @import "bootstrap/mixins/breakpoints";
23
24
  @import "bootstrap/mixins/grid-framework";
24
25
  @import "bootstrap/mixins/grid";
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors
4
- * Copyright 2011-2020 Twitter, Inc.
2
+ * Bootstrap Reboot v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/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.5.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors
4
- * Copyright 2011-2020 Twitter, Inc.
2
+ * Bootstrap v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
@@ -10,14 +10,12 @@
10
10
  }
11
11
 
12
12
  .breadcrumb-item {
13
- display: flex;
14
-
15
13
  // The separator between breadcrumbs (by default, a forward-slash: "/")
16
14
  + .breadcrumb-item {
17
15
  padding-left: $breadcrumb-item-padding;
18
16
 
19
17
  &::before {
20
- display: inline-block; // Suppress underlining of the separator in modern browsers
18
+ float: left; // Suppress inline spacings and underlining of the separator
21
19
  padding-right: $breadcrumb-item-padding;
22
20
  color: $breadcrumb-divider-color;
23
21
  content: escape-svg($breadcrumb-divider);
@@ -127,7 +127,7 @@
127
127
  display: inline-block;
128
128
  width: $carousel-control-icon-width;
129
129
  height: $carousel-control-icon-width;
130
- background: no-repeat 50% / 100% 100%;
130
+ background: 50% / 100% 100% no-repeat;
131
131
  }
132
132
  .carousel-control-prev-icon {
133
133
  background-image: escape-svg($carousel-control-prev-icon-bg);
@@ -104,7 +104,7 @@
104
104
  width: $custom-control-indicator-size;
105
105
  height: $custom-control-indicator-size;
106
106
  content: "";
107
- background: no-repeat 50% / #{$custom-control-indicator-bg-size};
107
+ background: 50% / #{$custom-control-indicator-bg-size} no-repeat;
108
108
  }
109
109
  }
110
110
 
@@ -315,6 +315,7 @@
315
315
  width: 100%;
316
316
  height: $custom-file-height;
317
317
  margin: 0;
318
+ overflow: hidden;
318
319
  opacity: 0;
319
320
 
320
321
  &:focus ~ .custom-file-label {
@@ -347,6 +348,7 @@
347
348
  z-index: 1;
348
349
  height: $custom-file-height;
349
350
  padding: $custom-file-padding-y $custom-file-padding-x;
351
+ overflow: hidden;
350
352
  font-family: $custom-file-font-family;
351
353
  font-weight: $custom-file-font-weight;
352
354
  line-height: $custom-file-line-height;
@@ -388,7 +390,7 @@
388
390
  appearance: none;
389
391
 
390
392
  &:focus {
391
- outline: none;
393
+ outline: 0;
392
394
 
393
395
  // Pseudo-elements must be split across multiple rulesets to have an effect.
394
396
  // No box-shadow() mixin for focus accessibility.
@@ -100,7 +100,7 @@
100
100
  }
101
101
  }
102
102
 
103
- // When enabled Popper.js, reset basic dropdown position
103
+ // When Popper is enabled, reset the basic dropdown position
104
104
  // stylelint-disable-next-line no-duplicate-selectors
105
105
  .dropdown-menu {
106
106
  &[x-placement^="top"],
@@ -42,7 +42,6 @@
42
42
 
43
43
  > .form-control,
44
44
  > .custom-select {
45
- &:not(:last-child) { @include border-right-radius(0); }
46
45
  &:not(:first-child) { @include border-left-radius(0); }
47
46
  }
48
47
 
@@ -53,9 +52,24 @@
53
52
  align-items: center;
54
53
 
55
54
  &:not(:last-child) .custom-file-label,
56
- &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }
57
55
  &:not(:first-child) .custom-file-label { @include border-left-radius(0); }
58
56
  }
57
+
58
+ &:not(.has-validation) {
59
+ > .form-control:not(:last-child),
60
+ > .custom-select:not(:last-child),
61
+ > .custom-file:not(:last-child) .custom-file-label::after {
62
+ @include border-right-radius(0);
63
+ }
64
+ }
65
+
66
+ &.has-validation {
67
+ > .form-control:nth-last-child(n + 3),
68
+ > .custom-select:nth-last-child(n + 3),
69
+ > .custom-file:nth-last-child(n + 3) .custom-file-label::after {
70
+ @include border-right-radius(0);
71
+ }
72
+ }
59
73
  }
60
74
 
61
75
 
@@ -175,8 +189,10 @@
175
189
 
176
190
  .input-group > .input-group-prepend > .btn,
177
191
  .input-group > .input-group-prepend > .input-group-text,
178
- .input-group > .input-group-append:not(:last-child) > .btn,
179
- .input-group > .input-group-append:not(:last-child) > .input-group-text,
192
+ .input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,
193
+ .input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,
194
+ .input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,
195
+ .input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,
180
196
  .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
181
197
  .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
182
198
  @include border-right-radius(0);