bootstrap 5.0.0.beta2 → 5.0.2

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/assets/javascripts/bootstrap-sprockets.js +8 -7
  4. data/assets/javascripts/bootstrap.js +2525 -2460
  5. data/assets/javascripts/bootstrap.min.js +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +77 -179
  7. data/assets/javascripts/bootstrap/base-component.js +140 -38
  8. data/assets/javascripts/bootstrap/button.js +54 -100
  9. data/assets/javascripts/bootstrap/carousel.js +335 -451
  10. data/assets/javascripts/bootstrap/collapse.js +195 -303
  11. data/assets/javascripts/bootstrap/dom/data.js +34 -47
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +95 -90
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +23 -21
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +20 -28
  15. data/assets/javascripts/bootstrap/dropdown.js +323 -358
  16. data/assets/javascripts/bootstrap/modal.js +537 -489
  17. data/assets/javascripts/bootstrap/offcanvas.js +720 -0
  18. data/assets/javascripts/bootstrap/popover.js +112 -180
  19. data/assets/javascripts/bootstrap/scrollspy.js +167 -235
  20. data/assets/javascripts/bootstrap/tab.js +121 -188
  21. data/assets/javascripts/bootstrap/toast.js +166 -243
  22. data/assets/javascripts/bootstrap/tooltip.js +333 -495
  23. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  24. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  25. data/assets/stylesheets/_bootstrap.scss +2 -1
  26. data/assets/stylesheets/bootstrap/_accordion.scss +24 -32
  27. data/assets/stylesheets/bootstrap/_buttons.scss +2 -0
  28. data/assets/stylesheets/bootstrap/_card.scss +6 -6
  29. data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
  30. data/assets/stylesheets/bootstrap/_dropdown.scss +14 -23
  31. data/assets/stylesheets/bootstrap/_functions.scss +61 -3
  32. data/assets/stylesheets/bootstrap/_images.scss +1 -1
  33. data/assets/stylesheets/bootstrap/_list-group.scss +16 -5
  34. data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
  35. data/assets/stylesheets/bootstrap/_modal.scss +8 -24
  36. data/assets/stylesheets/bootstrap/_nav.scss +7 -0
  37. data/assets/stylesheets/bootstrap/_navbar.scss +2 -0
  38. data/assets/stylesheets/bootstrap/_offcanvas.scss +79 -0
  39. data/assets/stylesheets/bootstrap/_popover.scss +10 -10
  40. data/assets/stylesheets/bootstrap/_progress.scss +3 -0
  41. data/assets/stylesheets/bootstrap/_reboot.scss +7 -21
  42. data/assets/stylesheets/bootstrap/_spinners.scss +6 -2
  43. data/assets/stylesheets/bootstrap/_tables.scss +1 -0
  44. data/assets/stylesheets/bootstrap/_toasts.scss +1 -1
  45. data/assets/stylesheets/bootstrap/_tooltip.scss +4 -4
  46. data/assets/stylesheets/bootstrap/_transitions.scss +2 -0
  47. data/assets/stylesheets/bootstrap/_utilities.scss +65 -37
  48. data/assets/stylesheets/bootstrap/_variables.scss +162 -50
  49. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
  50. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +3 -1
  51. data/assets/stylesheets/bootstrap/forms/_form-check.scss +1 -1
  52. data/assets/stylesheets/bootstrap/forms/_form-control.scss +0 -4
  53. data/assets/stylesheets/bootstrap/forms/_form-range.scss +1 -1
  54. data/assets/stylesheets/bootstrap/forms/_form-select.scss +3 -0
  55. data/assets/stylesheets/bootstrap/mixins/_alert.scss +2 -0
  56. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +2 -0
  57. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +7 -2
  58. data/assets/stylesheets/bootstrap/mixins/_caret.scss +2 -0
  59. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  60. data/assets/stylesheets/bootstrap/mixins/_forms.scss +25 -5
  61. data/assets/stylesheets/bootstrap/mixins/_grid.scss +23 -11
  62. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
  63. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +2 -0
  64. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +55 -13
  65. data/bootstrap.gemspec +1 -1
  66. data/lib/bootstrap/version.rb +2 -2
  67. data/tasks/updater/js.rb +1 -1
  68. data/tasks/updater/network.rb +7 -1
  69. metadata +9 -6
@@ -4,16 +4,6 @@
4
4
  // .modal-content - actual modal w/ bg and corners and stuff
5
5
 
6
6
 
7
- .modal-open {
8
- // Kill the scroll on the body
9
- overflow: hidden;
10
-
11
- .modal {
12
- overflow-x: hidden;
13
- overflow-y: auto;
14
- }
15
- }
16
-
17
7
  // Container that the modal scrolls within
18
8
  .modal {
19
9
  position: fixed;
@@ -23,7 +13,8 @@
23
13
  display: none;
24
14
  width: 100%;
25
15
  height: 100%;
26
- overflow: hidden;
16
+ overflow-x: hidden;
17
+ overflow-y: auto;
27
18
  // Prevent Chrome on Windows from adding a focus outline. For details, see
28
19
  // https://github.com/twbs/bootstrap/pull/10951.
29
20
  outline: 0;
@@ -119,8 +110,8 @@
119
110
  @include border-top-radius($modal-content-inner-border-radius);
120
111
 
121
112
  .btn-close {
122
- padding: ($modal-header-padding-y / 2) ($modal-header-padding-x / 2);
123
- margin: ($modal-header-padding-y / -2) ($modal-header-padding-x / -2) ($modal-header-padding-y / -2) auto;
113
+ padding: ($modal-header-padding-y * .5) ($modal-header-padding-x * .5);
114
+ margin: ($modal-header-padding-y * -.5) ($modal-header-padding-x * -.5) ($modal-header-padding-y * -.5) auto;
124
115
  }
125
116
  }
126
117
 
@@ -147,7 +138,7 @@
147
138
  flex-shrink: 0;
148
139
  align-items: center; // vertically center
149
140
  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
150
- padding: $modal-inner-padding - $modal-footer-margin-between / 2;
141
+ padding: $modal-inner-padding - $modal-footer-margin-between * .5;
151
142
  border-top: $modal-footer-border-width solid $modal-footer-border-color;
152
143
  @include border-bottom-radius($modal-content-inner-border-radius);
153
144
 
@@ -155,19 +146,10 @@
155
146
  // This solution is far from ideal because of the universal selector usage,
156
147
  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
157
148
  > * {
158
- margin: $modal-footer-margin-between / 2;
149
+ margin: $modal-footer-margin-between * .5;
159
150
  }
160
151
  }
161
152
 
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
153
  // Scale up the modal
172
154
  @include media-breakpoint-up(sm) {
173
155
  // Automatically set modal's width for larger viewports
@@ -202,6 +184,7 @@
202
184
  .modal-xl { max-width: $modal-xl; }
203
185
  }
204
186
 
187
+ // scss-docs-start modal-fullscreen-loop
205
188
  @each $breakpoint in map-keys($grid-breakpoints) {
206
189
  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
207
190
  $postfix: if($infix != "", $infix + "-down", "");
@@ -233,3 +216,4 @@
233
216
  }
234
217
  }
235
218
  }
219
+ // scss-docs-end modal-fullscreen-loop
@@ -117,6 +117,13 @@
117
117
  }
118
118
  }
119
119
 
120
+ .nav-fill,
121
+ .nav-justified {
122
+ .nav-item .nav-link {
123
+ width: 100%; // Make sure button will grow
124
+ }
125
+ }
126
+
120
127
 
121
128
  // Tabbable tabs
122
129
  //
@@ -154,6 +154,7 @@
154
154
  overflow-y: auto;
155
155
  }
156
156
 
157
+ // scss-docs-start navbar-expand-loop
157
158
  // Generate series of `.navbar-expand-*` responsive classes for configuring
158
159
  // where your navbar collapses.
159
160
  .navbar-expand {
@@ -196,6 +197,7 @@
196
197
  }
197
198
  }
198
199
  }
200
+ // scss-docs-end navbar-expand-loop
199
201
 
200
202
 
201
203
  // Navbar themes
@@ -0,0 +1,79 @@
1
+ .offcanvas {
2
+ position: fixed;
3
+ bottom: 0;
4
+ z-index: $zindex-offcanvas;
5
+ display: flex;
6
+ flex-direction: column;
7
+ max-width: 100%;
8
+ color: $offcanvas-color;
9
+ visibility: hidden;
10
+ background-color: $offcanvas-bg-color;
11
+ background-clip: padding-box;
12
+ outline: 0;
13
+ @include box-shadow($offcanvas-box-shadow);
14
+ @include transition(transform $offcanvas-transition-duration ease-in-out);
15
+ }
16
+
17
+ .offcanvas-header {
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: space-between;
21
+ padding: $offcanvas-padding-y $offcanvas-padding-x;
22
+
23
+ .btn-close {
24
+ padding: ($offcanvas-padding-y * .5) ($offcanvas-padding-x * .5);
25
+ margin-top: $offcanvas-padding-y * -.5;
26
+ margin-right: $offcanvas-padding-x * -.5;
27
+ margin-bottom: $offcanvas-padding-y * -.5;
28
+ }
29
+ }
30
+
31
+ .offcanvas-title {
32
+ margin-bottom: 0;
33
+ line-height: $offcanvas-title-line-height;
34
+ }
35
+
36
+ .offcanvas-body {
37
+ flex-grow: 1;
38
+ padding: $offcanvas-padding-y $offcanvas-padding-x;
39
+ overflow-y: auto;
40
+ }
41
+
42
+ .offcanvas-start {
43
+ top: 0;
44
+ left: 0;
45
+ width: $offcanvas-horizontal-width;
46
+ border-right: $offcanvas-border-width solid $offcanvas-border-color;
47
+ transform: translateX(-100%);
48
+ }
49
+
50
+ .offcanvas-end {
51
+ top: 0;
52
+ right: 0;
53
+ width: $offcanvas-horizontal-width;
54
+ border-left: $offcanvas-border-width solid $offcanvas-border-color;
55
+ transform: translateX(100%);
56
+ }
57
+
58
+ .offcanvas-top {
59
+ top: 0;
60
+ right: 0;
61
+ left: 0;
62
+ height: $offcanvas-vertical-height;
63
+ max-height: 100%;
64
+ border-bottom: $offcanvas-border-width solid $offcanvas-border-color;
65
+ transform: translateY(-100%);
66
+ }
67
+
68
+ .offcanvas-bottom {
69
+ right: 0;
70
+ left: 0;
71
+ height: $offcanvas-vertical-height;
72
+ max-height: 100%;
73
+ border-top: $offcanvas-border-width solid $offcanvas-border-color;
74
+ transform: translateY(100%);
75
+ }
76
+
77
+ .offcanvas.show {
78
+ transform: none;
79
+ }
@@ -40,13 +40,13 @@
40
40
 
41
41
  &::before {
42
42
  bottom: 0;
43
- border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
43
+ border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
44
44
  border-top-color: $popover-arrow-outer-color;
45
45
  }
46
46
 
47
47
  &::after {
48
48
  bottom: $popover-border-width;
49
- border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
49
+ border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
50
50
  border-top-color: $popover-arrow-color;
51
51
  }
52
52
  }
@@ -60,13 +60,13 @@
60
60
 
61
61
  &::before {
62
62
  left: 0;
63
- border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
63
+ border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
64
64
  border-right-color: $popover-arrow-outer-color;
65
65
  }
66
66
 
67
67
  &::after {
68
68
  left: $popover-border-width;
69
- border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
69
+ border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
70
70
  border-right-color: $popover-arrow-color;
71
71
  }
72
72
  }
@@ -78,13 +78,13 @@
78
78
 
79
79
  &::before {
80
80
  top: 0;
81
- border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
81
+ border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
82
82
  border-bottom-color: $popover-arrow-outer-color;
83
83
  }
84
84
 
85
85
  &::after {
86
86
  top: $popover-border-width;
87
- border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
87
+ border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
88
88
  border-bottom-color: $popover-arrow-color;
89
89
  }
90
90
  }
@@ -96,7 +96,7 @@
96
96
  left: 50%;
97
97
  display: block;
98
98
  width: $popover-arrow-width;
99
- margin-left: -$popover-arrow-width / 2;
99
+ margin-left: -$popover-arrow-width * .5;
100
100
  content: "";
101
101
  border-bottom: $popover-border-width solid $popover-header-bg;
102
102
  }
@@ -110,13 +110,13 @@
110
110
 
111
111
  &::before {
112
112
  right: 0;
113
- border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
113
+ border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
114
114
  border-left-color: $popover-arrow-outer-color;
115
115
  }
116
116
 
117
117
  &::after {
118
118
  right: $popover-border-width;
119
- border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
119
+ border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
120
120
  border-left-color: $popover-arrow-color;
121
121
  }
122
122
  }
@@ -144,7 +144,7 @@
144
144
  @include font-size($font-size-base);
145
145
  color: $popover-header-color;
146
146
  background-color: $popover-header-bg;
147
- border-bottom: $popover-border-width solid shade-color($popover-header-bg, 10%);
147
+ border-bottom: $popover-border-width solid $popover-border-color;
148
148
  @include border-top-radius($popover-inner-border-radius);
149
149
 
150
150
  &:empty {
@@ -1,9 +1,12 @@
1
1
  // Disable animation if transitions are disabled
2
+
3
+ // scss-docs-start progress-keyframes
2
4
  @if $enable-transitions {
3
5
  @keyframes progress-bar-stripes {
4
6
  0% { background-position-x: $progress-height; }
5
7
  }
6
8
  }
9
+ // scss-docs-end progress-keyframes
7
10
 
8
11
  .progress {
9
12
  display: flex;
@@ -57,20 +57,6 @@ body {
57
57
  }
58
58
 
59
59
 
60
- // Future-proof rule: in browsers that support :focus-visible, suppress the focus outline
61
- // on elements that programmatically receive focus but wouldn't normally show a visible
62
- // focus outline. In general, this would mean that the outline is only applied if the
63
- // interaction that led to the element receiving programmatic focus was a keyboard interaction,
64
- // or the browser has somehow determined that the user is primarily a keyboard user and/or
65
- // wants focus outlines to always be presented.
66
- // See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible
67
- // and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/
68
-
69
- [tabindex="-1"]:focus:not(:focus-visible) {
70
- outline: 0 !important;
71
- }
72
-
73
-
74
60
  // Content grouping
75
61
  //
76
62
  // 1. Reset Firefox's gray color
@@ -156,7 +142,6 @@ p {
156
142
 
157
143
  abbr[title],
158
144
  abbr[data-bs-original-title] { // 1
159
- text-decoration: underline; // 2
160
145
  text-decoration: underline dotted; // 2
161
146
  cursor: help; // 3
162
147
  text-decoration-skip-ink: none; // 4
@@ -434,12 +419,10 @@ textarea {
434
419
  }
435
420
 
436
421
  // Remove the inheritance of text transform in Firefox
437
-
438
422
  button,
439
423
  select {
440
424
  text-transform: none;
441
425
  }
442
-
443
426
  // Set the cursor for non-`<button>` buttons
444
427
  //
445
428
  // Details at https://github.com/twbs/bootstrap/pull/30562
@@ -447,11 +430,15 @@ select {
447
430
  cursor: pointer;
448
431
  }
449
432
 
450
- // Remove the inheritance of word-wrap in Safari.
451
- // See https://github.com/twbs/bootstrap/issues/24990
452
-
453
433
  select {
434
+ // Remove the inheritance of word-wrap in Safari.
435
+ // See https://github.com/twbs/bootstrap/issues/24990
454
436
  word-wrap: normal;
437
+
438
+ // Undo the opacity change from Chrome
439
+ &:disabled {
440
+ opacity: 1;
441
+ }
455
442
  }
456
443
 
457
444
  // Remove the dropdown arrow in Chrome from inputs built with datalists.
@@ -582,7 +569,6 @@ legend {
582
569
 
583
570
  // Inherit font family and line height for file input buttons
584
571
 
585
- // stylelint-disable-next-line selector-pseudo-element-no-unknown
586
572
  ::file-selector-button {
587
573
  font: inherit;
588
574
  }
@@ -2,15 +2,17 @@
2
2
  // Rotating border
3
3
  //
4
4
 
5
+ // scss-docs-start spinner-border-keyframes
5
6
  @keyframes spinner-border {
6
7
  to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
7
8
  }
9
+ // scss-docs-end spinner-border-keyframes
8
10
 
9
11
  .spinner-border {
10
12
  display: inline-block;
11
13
  width: $spinner-width;
12
14
  height: $spinner-height;
13
- vertical-align: text-bottom;
15
+ vertical-align: $spinner-vertical-align;
14
16
  border: $spinner-border-width solid currentColor;
15
17
  border-right-color: transparent;
16
18
  // stylelint-disable-next-line property-disallowed-list
@@ -28,6 +30,7 @@
28
30
  // Growing circle
29
31
  //
30
32
 
33
+ // scss-docs-start spinner-grow-keyframes
31
34
  @keyframes spinner-grow {
32
35
  0% {
33
36
  transform: scale(0);
@@ -37,12 +40,13 @@
37
40
  transform: none;
38
41
  }
39
42
  }
43
+ // scss-docs-end spinner-grow-keyframes
40
44
 
41
45
  .spinner-grow {
42
46
  display: inline-block;
43
47
  width: $spinner-width;
44
48
  height: $spinner-height;
45
- vertical-align: text-bottom;
49
+ vertical-align: $spinner-vertical-align;
46
50
  background-color: currentColor;
47
51
  // stylelint-disable-next-line property-disallowed-list
48
52
  border-radius: 50%;
@@ -4,6 +4,7 @@
4
4
 
5
5
  .table {
6
6
  --#{$variable-prefix}table-bg: #{$table-bg};
7
+ --#{$variable-prefix}table-accent-bg: #{$table-accent-bg};
7
8
  --#{$variable-prefix}table-striped-color: #{$table-striped-color};
8
9
  --#{$variable-prefix}table-striped-bg: #{$table-striped-bg};
9
10
  --#{$variable-prefix}table-active-color: #{$table-active-color};
@@ -40,7 +40,7 @@
40
40
  @include border-top-radius(subtract($toast-border-radius, $toast-border-width));
41
41
 
42
42
  .btn-close {
43
- margin-right: $toast-padding-x / -2;
43
+ margin-right: $toast-padding-x * -.5;
44
44
  margin-left: $toast-padding-x;
45
45
  }
46
46
  }
@@ -37,7 +37,7 @@
37
37
 
38
38
  &::before {
39
39
  top: -1px;
40
- border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
40
+ border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
41
41
  border-top-color: $tooltip-arrow-color;
42
42
  }
43
43
  }
@@ -53,7 +53,7 @@
53
53
 
54
54
  &::before {
55
55
  right: -1px;
56
- border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
56
+ border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
57
57
  border-right-color: $tooltip-arrow-color;
58
58
  }
59
59
  }
@@ -67,7 +67,7 @@
67
67
 
68
68
  &::before {
69
69
  bottom: -1px;
70
- border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
70
+ border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
71
71
  border-bottom-color: $tooltip-arrow-color;
72
72
  }
73
73
  }
@@ -83,7 +83,7 @@
83
83
 
84
84
  &::before {
85
85
  left: -1px;
86
- border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
86
+ border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
87
87
  border-left-color: $tooltip-arrow-color;
88
88
  }
89
89
  }