bootstrap 5.0.0.beta2 → 5.0.2

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