bootstrap 5.0.0.beta3 → 5.0.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/assets/javascripts/bootstrap-sprockets.js +1 -1
  4. data/assets/javascripts/bootstrap.js +509 -459
  5. data/assets/javascripts/bootstrap.min.js +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +4 -4
  7. data/assets/javascripts/bootstrap/base-component.js +9 -7
  8. data/assets/javascripts/bootstrap/button.js +3 -3
  9. data/assets/javascripts/bootstrap/carousel.js +11 -12
  10. data/assets/javascripts/bootstrap/collapse.js +5 -5
  11. data/assets/javascripts/bootstrap/dom/data.js +2 -2
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +32 -14
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +2 -2
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +2 -2
  15. data/assets/javascripts/bootstrap/dropdown.js +109 -94
  16. data/assets/javascripts/bootstrap/modal.js +262 -177
  17. data/assets/javascripts/bootstrap/offcanvas.js +219 -56
  18. data/assets/javascripts/bootstrap/popover.js +3 -3
  19. data/assets/javascripts/bootstrap/scrollspy.js +18 -22
  20. data/assets/javascripts/bootstrap/tab.js +21 -8
  21. data/assets/javascripts/bootstrap/toast.js +4 -5
  22. data/assets/javascripts/bootstrap/tooltip.js +7 -9
  23. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  24. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  25. data/assets/stylesheets/_bootstrap.scss +1 -1
  26. data/assets/stylesheets/bootstrap/_accordion.scss +4 -2
  27. data/assets/stylesheets/bootstrap/_dropdown.scss +7 -13
  28. data/assets/stylesheets/bootstrap/_list-group.scss +1 -1
  29. data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
  30. data/assets/stylesheets/bootstrap/_modal.scss +0 -9
  31. data/assets/stylesheets/bootstrap/_offcanvas.scss +11 -11
  32. data/assets/stylesheets/bootstrap/_spinners.scss +2 -2
  33. data/assets/stylesheets/bootstrap/_variables.scss +7 -7
  34. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
  35. data/assets/stylesheets/bootstrap/forms/_form-control.scss +5 -5
  36. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  37. data/assets/stylesheets/bootstrap/mixins/_forms.scss +7 -4
  38. data/assets/stylesheets/bootstrap/mixins/_grid.scss +8 -3
  39. data/bootstrap.gemspec +1 -1
  40. data/lib/bootstrap/version.rb +2 -2
  41. data/tasks/updater/js.rb +1 -1
  42. metadata +7 -6
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap popover.js v5.0.0-beta3 (https://getbootstrap.com/)
2
+ * Bootstrap popover.js v5.0.0 (https://getbootstrap.com/)
3
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
  */
@@ -17,7 +17,7 @@
17
17
 
18
18
  /**
19
19
  * --------------------------------------------------------------------------
20
- * Bootstrap (v5.0.0-beta3): util/index.js
20
+ * Bootstrap (v5.0.0): util/index.js
21
21
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
22
22
  * --------------------------------------------------------------------------
23
23
  */
@@ -62,7 +62,7 @@
62
62
 
63
63
  /**
64
64
  * --------------------------------------------------------------------------
65
- * Bootstrap (v5.0.0-beta3): popover.js
65
+ * Bootstrap (v5.0.0): popover.js
66
66
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
67
67
  * --------------------------------------------------------------------------
68
68
  */
@@ -1,17 +1,16 @@
1
1
  /*!
2
- * Bootstrap scrollspy.js v5.0.0-beta3 (https://getbootstrap.com/)
2
+ * Bootstrap scrollspy.js v5.0.0 (https://getbootstrap.com/)
3
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
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
- }(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
+ }(this, (function (EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
13
 
14
- var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
14
  var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
15
  var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
16
  var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
@@ -19,7 +18,7 @@
19
18
 
20
19
  /**
21
20
  * --------------------------------------------------------------------------
22
- * Bootstrap (v5.0.0-beta3): util/index.js
21
+ * Bootstrap (v5.0.0): util/index.js
23
22
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
24
23
  * --------------------------------------------------------------------------
25
24
  */
@@ -62,7 +61,7 @@
62
61
 
63
62
 
64
63
  if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
65
- hrefAttr = '#' + hrefAttr.split('#')[1];
64
+ hrefAttr = `#${hrefAttr.split('#')[1]}`;
66
65
  }
67
66
 
68
67
  selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
@@ -90,7 +89,7 @@
90
89
  const valueType = value && isElement(value) ? 'element' : toType(value);
91
90
 
92
91
  if (!new RegExp(expectedTypes).test(valueType)) {
93
- throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
92
+ throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
94
93
  }
95
94
  });
96
95
  };
@@ -135,7 +134,7 @@
135
134
 
136
135
  /**
137
136
  * --------------------------------------------------------------------------
138
- * Bootstrap (v5.0.0-beta3): scrollspy.js
137
+ * Bootstrap (v5.0.0): scrollspy.js
139
138
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
140
139
  * --------------------------------------------------------------------------
141
140
  */
@@ -248,6 +247,7 @@
248
247
 
249
248
  _getConfig(config) {
250
249
  config = { ...Default,
250
+ ...Manipulator__default['default'].getDataAttributes(this._element),
251
251
  ...(typeof config === 'object' && config ? config : {})
252
252
  };
253
253
 
@@ -356,21 +356,17 @@
356
356
 
357
357
  static jQueryInterface(config) {
358
358
  return this.each(function () {
359
- let data = Data__default['default'].get(this, DATA_KEY);
359
+ const data = ScrollSpy.getInstance(this) || new ScrollSpy(this, typeof config === 'object' ? config : {});
360
360
 
361
- const _config = typeof config === 'object' && config;
362
-
363
- if (!data) {
364
- data = new ScrollSpy(this, _config);
361
+ if (typeof config !== 'string') {
362
+ return;
365
363
  }
366
364
 
367
- if (typeof config === 'string') {
368
- if (typeof data[config] === 'undefined') {
369
- throw new TypeError(`No method named "${config}"`);
370
- }
371
-
372
- data[config]();
365
+ if (typeof data[config] === 'undefined') {
366
+ throw new TypeError(`No method named "${config}"`);
373
367
  }
368
+
369
+ data[config]();
374
370
  });
375
371
  }
376
372
 
@@ -383,7 +379,7 @@
383
379
 
384
380
 
385
381
  EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, () => {
386
- SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy)));
382
+ SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy));
387
383
  });
388
384
  /**
389
385
  * ------------------------------------------------------------------------
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap tab.js v5.0.0-beta3 (https://getbootstrap.com/)
2
+ * Bootstrap tab.js v5.0.0 (https://getbootstrap.com/)
3
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
  */
@@ -18,7 +18,7 @@
18
18
 
19
19
  /**
20
20
  * --------------------------------------------------------------------------
21
- * Bootstrap (v5.0.0-beta3): util/index.js
21
+ * Bootstrap (v5.0.0): util/index.js
22
22
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
23
23
  * --------------------------------------------------------------------------
24
24
  */
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
  if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
43
- hrefAttr = '#' + hrefAttr.split('#')[1];
43
+ hrefAttr = `#${hrefAttr.split('#')[1]}`;
44
44
  }
45
45
 
46
46
  selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
@@ -157,7 +157,7 @@
157
157
 
158
158
  /**
159
159
  * --------------------------------------------------------------------------
160
- * Bootstrap (v5.0.0-beta3): tab.js
160
+ * Bootstrap (v5.0.0): tab.js
161
161
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
162
162
  * --------------------------------------------------------------------------
163
163
  */
@@ -201,7 +201,7 @@
201
201
 
202
202
 
203
203
  show() {
204
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || isDisabled(this._element)) {
204
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
205
205
  return;
206
206
  }
207
207
 
@@ -289,11 +289,17 @@
289
289
  element.classList.add(CLASS_NAME_SHOW);
290
290
  }
291
291
 
292
- if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
292
+ let parent = element.parentNode;
293
+
294
+ if (parent && parent.nodeName === 'LI') {
295
+ parent = parent.parentNode;
296
+ }
297
+
298
+ if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
293
299
  const dropdownElement = element.closest(SELECTOR_DROPDOWN);
294
300
 
295
301
  if (dropdownElement) {
296
- SelectorEngine__default['default'].find(SELECTOR_DROPDOWN_TOGGLE).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE));
302
+ SelectorEngine__default['default'].find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE));
297
303
  }
298
304
 
299
305
  element.setAttribute('aria-expanded', true);
@@ -328,7 +334,14 @@
328
334
 
329
335
 
330
336
  EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
331
- event.preventDefault();
337
+ if (['A', 'AREA'].includes(this.tagName)) {
338
+ event.preventDefault();
339
+ }
340
+
341
+ if (isDisabled(this)) {
342
+ return;
343
+ }
344
+
332
345
  const data = Data__default['default'].get(this, DATA_KEY) || new Tab(this);
333
346
  data.show();
334
347
  });
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap toast.js v5.0.0-beta3 (https://getbootstrap.com/)
2
+ * Bootstrap toast.js v5.0.0 (https://getbootstrap.com/)
3
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
  */
@@ -18,7 +18,7 @@
18
18
 
19
19
  /**
20
20
  * --------------------------------------------------------------------------
21
- * Bootstrap (v5.0.0-beta3): util/index.js
21
+ * Bootstrap (v5.0.0): util/index.js
22
22
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
23
23
  * --------------------------------------------------------------------------
24
24
  */
@@ -87,7 +87,7 @@
87
87
  const valueType = value && isElement(value) ? 'element' : toType(value);
88
88
 
89
89
  if (!new RegExp(expectedTypes).test(valueType)) {
90
- throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
90
+ throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
91
91
  }
92
92
  });
93
93
  };
@@ -134,7 +134,7 @@
134
134
 
135
135
  /**
136
136
  * --------------------------------------------------------------------------
137
- * Bootstrap (v5.0.0-beta3): toast.js
137
+ * Bootstrap (v5.0.0): toast.js
138
138
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
139
139
  * --------------------------------------------------------------------------
140
140
  */
@@ -273,7 +273,6 @@
273
273
  this._element.classList.remove(CLASS_NAME_SHOW);
274
274
  }
275
275
 
276
- EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
277
276
  super.dispose();
278
277
  this._config = null;
279
278
  } // Private
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap tooltip.js v5.0.0-beta3 (https://getbootstrap.com/)
2
+ * Bootstrap tooltip.js v5.0.0 (https://getbootstrap.com/)
3
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
  */
@@ -40,7 +40,7 @@
40
40
 
41
41
  /**
42
42
  * --------------------------------------------------------------------------
43
- * Bootstrap (v5.0.0-beta3): util/index.js
43
+ * Bootstrap (v5.0.0): util/index.js
44
44
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
45
45
  * --------------------------------------------------------------------------
46
46
  */
@@ -124,7 +124,7 @@
124
124
  const valueType = value && isElement(value) ? 'element' : toType(value);
125
125
 
126
126
  if (!new RegExp(expectedTypes).test(valueType)) {
127
- throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
127
+ throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
128
128
  }
129
129
  });
130
130
  };
@@ -152,7 +152,7 @@
152
152
  return findShadowRoot(element.parentNode);
153
153
  };
154
154
 
155
- const noop = () => function () {};
155
+ const noop = () => {};
156
156
 
157
157
  const getjQuery = () => {
158
158
  const {
@@ -196,7 +196,7 @@
196
196
 
197
197
  /**
198
198
  * --------------------------------------------------------------------------
199
- * Bootstrap (v5.0.0-beta3): util/sanitizer.js
199
+ * Bootstrap (v5.0.0): util/sanitizer.js
200
200
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
201
201
  * --------------------------------------------------------------------------
202
202
  */
@@ -309,7 +309,7 @@
309
309
 
310
310
  /**
311
311
  * --------------------------------------------------------------------------
312
- * Bootstrap (v5.0.0-beta3): tooltip.js
312
+ * Bootstrap (v5.0.0): tooltip.js
313
313
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
314
314
  * --------------------------------------------------------------------------
315
315
  */
@@ -484,7 +484,6 @@
484
484
 
485
485
  dispose() {
486
486
  clearTimeout(this._timeout);
487
- EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);
488
487
  EventHandler__default['default'].off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler);
489
488
 
490
489
  if (this.tip && this.tip.parentNode) {
@@ -569,7 +568,7 @@
569
568
 
570
569
  if ('ontouchstart' in document.documentElement) {
571
570
  [].concat(...document.body.children).forEach(element => {
572
- EventHandler__default['default'].on(element, 'mouseover', noop());
571
+ EventHandler__default['default'].on(element, 'mouseover', noop);
573
572
  });
574
573
  }
575
574
 
@@ -768,7 +767,6 @@
768
767
  modifiers: [{
769
768
  name: 'flip',
770
769
  options: {
771
- altBoundary: true,
772
770
  fallbackPlacements: this.config.fallbackPlacements
773
771
  }
774
772
  }, {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Grid v5.0.0-beta3 (https://getbootstrap.com/)
2
+ * Bootstrap Grid v5.0.0 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
2
+ * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/)
2
+ * Bootstrap v5.0.0 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -58,7 +58,6 @@
58
58
  }
59
59
 
60
60
  .accordion-item {
61
- margin-bottom: -$accordion-border-width;
62
61
  background-color: $accordion-bg;
63
62
  border: $accordion-border-width solid $accordion-border-color;
64
63
 
@@ -70,9 +69,12 @@
70
69
  }
71
70
  }
72
71
 
72
+ &:not(:first-of-type) {
73
+ border-top: 0;
74
+ }
75
+
73
76
  // Only set a border-radius on the last item if the accordion is collapsed
74
77
  &:last-of-type {
75
- margin-bottom: 0;
76
78
  @include border-bottom-radius($accordion-border-radius);
77
79
 
78
80
  .accordion-button {
@@ -16,7 +16,6 @@
16
16
  // The dropdown menu
17
17
  .dropdown-menu {
18
18
  position: absolute;
19
- top: 100%;
20
19
  z-index: $zindex-dropdown;
21
20
  display: none; // none by default, but block on "open" of the menu
22
21
  min-width: $dropdown-min-width;
@@ -33,6 +32,7 @@
33
32
  @include box-shadow($dropdown-box-shadow);
34
33
 
35
34
  &[data-bs-popper] {
35
+ top: 100%;
36
36
  left: 0;
37
37
  margin-top: $dropdown-spacer;
38
38
  }
@@ -83,15 +83,12 @@
83
83
  }
84
84
 
85
85
  .dropend {
86
- .dropdown-menu {
86
+ .dropdown-menu[data-bs-popper] {
87
87
  top: 0;
88
88
  right: auto;
89
89
  left: 100%;
90
-
91
- &[data-bs-popper] {
92
- margin-top: 0;
93
- margin-left: $dropdown-spacer;
94
- }
90
+ margin-top: 0;
91
+ margin-left: $dropdown-spacer;
95
92
  }
96
93
 
97
94
  .dropdown-toggle {
@@ -103,15 +100,12 @@
103
100
  }
104
101
 
105
102
  .dropstart {
106
- .dropdown-menu {
103
+ .dropdown-menu[data-bs-popper] {
107
104
  top: 0;
108
105
  right: 100%;
109
106
  left: auto;
110
-
111
- &[data-bs-popper] {
112
- margin-top: 0;
113
- margin-right: $dropdown-spacer;
114
- }
107
+ margin-top: 0;
108
+ margin-right: $dropdown-spacer;
115
109
  }
116
110
 
117
111
  .dropdown-toggle {
@@ -166,7 +166,7 @@
166
166
  $list-group-background: shift-color($value, $list-group-item-bg-scale);
167
167
  $list-group-color: shift-color($value, $list-group-item-color-scale);
168
168
  @if (contrast-ratio($list-group-background, $list-group-color) < $min-contrast-ratio) {
169
- $list-group-color: mix($value, color-contrast($list-group-background), abs($alert-color-scale));
169
+ $list-group-color: mix($value, color-contrast($list-group-background), abs($list-group-item-color-scale));
170
170
  }
171
171
 
172
172
  @include list-group-item-variant($state, $list-group-background, $list-group-color);
@@ -10,6 +10,7 @@
10
10
 
11
11
  // Helpers
12
12
  @import "mixins/breakpoints";
13
+ @import "mixins/color-scheme";
13
14
  @import "mixins/image";
14
15
  @import "mixins/resize";
15
16
  @import "mixins/visually-hidden";
@@ -159,15 +159,6 @@
159
159
  }
160
160
  }
161
161
 
162
- // Measure scrollbar width for padding body during modal show/hide
163
- .modal-scrollbar-measure {
164
- position: absolute;
165
- top: -9999px;
166
- width: 50px;
167
- height: 50px;
168
- overflow: scroll;
169
- }
170
-
171
162
  // Scale up the modal
172
163
  @include media-breakpoint-up(sm) {
173
164
  // Automatically set modal's width for larger viewports