bootstrap 4.5.3 → 4.6.0

Sign up to get free protection for your applications and to get access to all the features.
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);