bootstrap 4.3.1 → 5.1.3

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 (158) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +17 -2
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +7 -4
  5. data/assets/javascripts/bootstrap/alert.js +172 -136
  6. data/assets/javascripts/bootstrap/base-component.js +182 -0
  7. data/assets/javascripts/bootstrap/button.js +101 -142
  8. data/assets/javascripts/bootstrap/carousel.js +483 -408
  9. data/assets/javascripts/bootstrap/collapse.js +340 -273
  10. data/assets/javascripts/bootstrap/dom/data.js +68 -0
  11. data/assets/javascripts/bootstrap/dom/event-handler.js +321 -0
  12. data/assets/javascripts/bootstrap/dom/manipulator.js +88 -0
  13. data/assets/javascripts/bootstrap/dom/selector-engine.js +127 -0
  14. data/assets/javascripts/bootstrap/dropdown.js +491 -399
  15. data/assets/javascripts/bootstrap/modal.js +841 -449
  16. data/assets/javascripts/bootstrap/offcanvas.js +866 -0
  17. data/assets/javascripts/bootstrap/popover.js +121 -198
  18. data/assets/javascripts/bootstrap/scrollspy.js +256 -240
  19. data/assets/javascripts/bootstrap/tab.js +218 -154
  20. data/assets/javascripts/bootstrap/toast.js +329 -189
  21. data/assets/javascripts/bootstrap/tooltip.js +651 -552
  22. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  23. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  24. data/assets/javascripts/bootstrap-sprockets.js +8 -1
  25. data/assets/javascripts/bootstrap.js +3503 -2892
  26. data/assets/javascripts/bootstrap.min.js +4 -4
  27. data/assets/stylesheets/_bootstrap-grid.scss +56 -18
  28. data/assets/stylesheets/_bootstrap-reboot.scss +5 -4
  29. data/assets/stylesheets/_bootstrap.scss +20 -11
  30. data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
  31. data/assets/stylesheets/bootstrap/_alert.scss +15 -9
  32. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  33. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -18
  34. data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
  35. data/assets/stylesheets/bootstrap/_buttons.scss +28 -54
  36. data/assets/stylesheets/bootstrap/_card.scss +52 -125
  37. data/assets/stylesheets/bootstrap/_carousel.scss +70 -38
  38. data/assets/stylesheets/bootstrap/_close.scss +30 -31
  39. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  40. data/assets/stylesheets/bootstrap/_dropdown.scss +88 -39
  41. data/assets/stylesheets/bootstrap/_forms.scss +9 -330
  42. data/assets/stylesheets/bootstrap/_functions.scss +243 -27
  43. data/assets/stylesheets/bootstrap/_grid.scss +14 -33
  44. data/assets/stylesheets/bootstrap/_helpers.scss +9 -0
  45. data/assets/stylesheets/bootstrap/_images.scss +3 -3
  46. data/assets/stylesheets/bootstrap/_list-group.scss +61 -36
  47. data/assets/stylesheets/bootstrap/_mixins.scss +12 -16
  48. data/assets/stylesheets/bootstrap/_modal.scss +64 -84
  49. data/assets/stylesheets/bootstrap/_nav.scss +29 -10
  50. data/assets/stylesheets/bootstrap/_navbar.scss +93 -52
  51. data/assets/stylesheets/bootstrap/_offcanvas.scss +83 -0
  52. data/assets/stylesheets/bootstrap/_pagination.scss +13 -22
  53. data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
  54. data/assets/stylesheets/bootstrap/_popover.scss +29 -42
  55. data/assets/stylesheets/bootstrap/_progress.scss +10 -5
  56. data/assets/stylesheets/bootstrap/_reboot.scss +350 -208
  57. data/assets/stylesheets/bootstrap/_root.scss +43 -8
  58. data/assets/stylesheets/bootstrap/_spinners.scss +21 -7
  59. data/assets/stylesheets/bootstrap/_tables.scss +84 -114
  60. data/assets/stylesheets/bootstrap/_toasts.scss +21 -14
  61. data/assets/stylesheets/bootstrap/_tooltip.scss +21 -21
  62. data/assets/stylesheets/bootstrap/_transitions.scss +8 -1
  63. data/assets/stylesheets/bootstrap/_type.scss +40 -61
  64. data/assets/stylesheets/bootstrap/_utilities.scss +630 -17
  65. data/assets/stylesheets/bootstrap/_variables.scss +1007 -489
  66. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  67. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +63 -0
  68. data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
  69. data/assets/stylesheets/bootstrap/forms/_form-control.scss +219 -0
  70. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  71. data/assets/stylesheets/bootstrap/forms/_form-select.scss +72 -0
  72. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  74. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  75. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  76. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  77. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  78. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  79. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  80. data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
  81. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  82. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  83. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  84. data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
  85. data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -5
  86. data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
  87. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +37 -22
  88. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  89. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
  90. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +77 -51
  91. data/assets/stylesheets/bootstrap/mixins/_caret.scss +10 -8
  92. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  93. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  94. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  95. data/assets/stylesheets/bootstrap/mixins/_forms.scss +67 -115
  96. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  97. data/assets/stylesheets/bootstrap/mixins/_grid.scss +132 -32
  98. data/assets/stylesheets/bootstrap/mixins/_image.scss +0 -20
  99. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
  100. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +17 -8
  101. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  102. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  103. data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
  104. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +89 -0
  105. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
  106. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  107. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +278 -128
  108. data/bootstrap.gemspec +4 -6
  109. data/lib/bootstrap/version.rb +2 -2
  110. data/tasks/updater/js.rb +25 -6
  111. data/tasks/updater/network.rb +8 -2
  112. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  113. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  114. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  115. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  116. data/test/dummy_rails/app/views/pages/root.html +89 -0
  117. data/test/dummy_rails/config/application.rb +0 -3
  118. data/test/gemfiles/rails_6_0.gemfile +7 -0
  119. data/test/gemfiles/rails_6_1.gemfile +7 -0
  120. data/test/support/dummy_rails_integration.rb +3 -1
  121. data/test/test_helper.rb +18 -13
  122. metadata +61 -79
  123. data/assets/javascripts/bootstrap/util.js +0 -171
  124. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  125. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -507
  126. data/assets/stylesheets/bootstrap/_input-group.scss +0 -193
  127. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  128. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  129. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  130. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  131. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  132. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  133. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -66
  134. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  135. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  136. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -33
  137. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  138. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  139. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -16
  140. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  141. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  142. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  143. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  144. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  145. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  146. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  147. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  148. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  149. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  150. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  151. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  152. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  153. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  154. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  155. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  156. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  157. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
  158. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
@@ -1,19 +1,54 @@
1
1
  :root {
2
- // Custom variable values only support SassScript inside `#{}`.
2
+ // Note: Custom variable values only support SassScript inside `#{}`.
3
+
4
+ // Colors
5
+ //
6
+ // Generate palettes for full colors, grays, and theme colors.
7
+
3
8
  @each $color, $value in $colors {
4
- --#{$color}: #{$value};
9
+ --#{$variable-prefix}#{$color}: #{$value};
10
+ }
11
+
12
+ @each $color, $value in $grays {
13
+ --#{$variable-prefix}gray-#{$color}: #{$value};
5
14
  }
6
15
 
7
16
  @each $color, $value in $theme-colors {
8
- --#{$color}: #{$value};
17
+ --#{$variable-prefix}#{$color}: #{$value};
9
18
  }
10
19
 
11
- @each $bp, $value in $grid-breakpoints {
12
- --breakpoint-#{$bp}: #{$value};
20
+ @each $color, $value in $theme-colors-rgb {
21
+ --#{$variable-prefix}#{$color}-rgb: #{$value};
13
22
  }
14
23
 
15
- // Use `inspect` for lists so that quoted items keep the quotes.
24
+ --#{$variable-prefix}white-rgb: #{to-rgb($white)};
25
+ --#{$variable-prefix}black-rgb: #{to-rgb($black)};
26
+ --#{$variable-prefix}body-color-rgb: #{to-rgb($body-color)};
27
+ --#{$variable-prefix}body-bg-rgb: #{to-rgb($body-bg)};
28
+
29
+ // Fonts
30
+
31
+ // Note: Use `inspect` for lists so that quoted items keep the quotes.
16
32
  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
17
- --font-family-sans-serif: #{inspect($font-family-sans-serif)};
18
- --font-family-monospace: #{inspect($font-family-monospace)};
33
+ --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
34
+ --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};
35
+ --#{$variable-prefix}gradient: #{$gradient};
36
+
37
+ // Root and body
38
+ // stylelint-disable custom-property-empty-line-before
39
+ // scss-docs-start root-body-variables
40
+ @if $font-size-root != null {
41
+ --#{$variable-prefix}root-font-size: #{$font-size-root};
42
+ }
43
+ --#{$variable-prefix}body-font-family: #{$font-family-base};
44
+ --#{$variable-prefix}body-font-size: #{$font-size-base};
45
+ --#{$variable-prefix}body-font-weight: #{$font-weight-base};
46
+ --#{$variable-prefix}body-line-height: #{$line-height-base};
47
+ --#{$variable-prefix}body-color: #{$body-color};
48
+ @if $body-text-align != null {
49
+ --#{$variable-prefix}body-text-align: #{$body-text-align};
50
+ }
51
+ --#{$variable-prefix}body-bg: #{$body-bg};
52
+ // scss-docs-end root-body-variables
53
+ // stylelint-enable custom-property-empty-line-before
19
54
  }
@@ -2,20 +2,22 @@
2
2
  // Rotating border
3
3
  //
4
4
 
5
+ // scss-docs-start spinner-border-keyframes
5
6
  @keyframes spinner-border {
6
- to { transform: rotate(360deg); }
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
- // stylelint-disable-next-line property-blacklist
18
+ // stylelint-disable-next-line property-disallowed-list
17
19
  border-radius: 50%;
18
- animation: spinner-border .75s linear infinite;
20
+ animation: $spinner-animation-speed linear infinite spinner-border;
19
21
  }
20
22
 
21
23
  .spinner-border-sm {
@@ -28,28 +30,40 @@
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);
34
37
  }
35
38
  50% {
36
39
  opacity: 1;
40
+ transform: none;
37
41
  }
38
42
  }
43
+ // scss-docs-end spinner-grow-keyframes
39
44
 
40
45
  .spinner-grow {
41
46
  display: inline-block;
42
47
  width: $spinner-width;
43
48
  height: $spinner-height;
44
- vertical-align: text-bottom;
49
+ vertical-align: $spinner-vertical-align;
45
50
  background-color: currentColor;
46
- // stylelint-disable-next-line property-blacklist
51
+ // stylelint-disable-next-line property-disallowed-list
47
52
  border-radius: 50%;
48
53
  opacity: 0;
49
- animation: spinner-grow .75s linear infinite;
54
+ animation: $spinner-animation-speed linear infinite spinner-grow;
50
55
  }
51
56
 
52
57
  .spinner-grow-sm {
53
58
  width: $spinner-width-sm;
54
59
  height: $spinner-height-sm;
55
60
  }
61
+
62
+ @if $enable-reduced-motion {
63
+ @media (prefers-reduced-motion: reduce) {
64
+ .spinner-border,
65
+ .spinner-grow {
66
+ animation-duration: $spinner-animation-speed * 2;
67
+ }
68
+ }
69
+ }
@@ -3,37 +3,65 @@
3
3
  //
4
4
 
5
5
  .table {
6
+ --#{$variable-prefix}table-bg: #{$table-bg};
7
+ --#{$variable-prefix}table-accent-bg: #{$table-accent-bg};
8
+ --#{$variable-prefix}table-striped-color: #{$table-striped-color};
9
+ --#{$variable-prefix}table-striped-bg: #{$table-striped-bg};
10
+ --#{$variable-prefix}table-active-color: #{$table-active-color};
11
+ --#{$variable-prefix}table-active-bg: #{$table-active-bg};
12
+ --#{$variable-prefix}table-hover-color: #{$table-hover-color};
13
+ --#{$variable-prefix}table-hover-bg: #{$table-hover-bg};
14
+
6
15
  width: 100%;
7
16
  margin-bottom: $spacer;
8
17
  color: $table-color;
9
- background-color: $table-bg; // Reset for nesting within parents with `background-color`.
18
+ vertical-align: $table-cell-vertical-align;
19
+ border-color: $table-border-color;
20
+
21
+ // Target th & td
22
+ // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.
23
+ // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).
24
+ // Another advantage is that this generates less code and makes the selector less specific making it easier to override.
25
+ // stylelint-disable-next-line selector-max-universal
26
+ > :not(caption) > * > * {
27
+ padding: $table-cell-padding-y $table-cell-padding-x;
28
+ background-color: var(--#{$variable-prefix}table-bg);
29
+ border-bottom-width: $table-border-width;
30
+ box-shadow: inset 0 0 0 9999px var(--#{$variable-prefix}table-accent-bg);
31
+ }
10
32
 
11
- th,
12
- td {
13
- padding: $table-cell-padding;
14
- vertical-align: top;
15
- border-top: $table-border-width solid $table-border-color;
33
+ > tbody {
34
+ vertical-align: inherit;
16
35
  }
17
36
 
18
- thead th {
37
+ > thead {
19
38
  vertical-align: bottom;
20
- border-bottom: (2 * $table-border-width) solid $table-border-color;
21
39
  }
22
40
 
23
- tbody + tbody {
24
- border-top: (2 * $table-border-width) solid $table-border-color;
41
+ // Highlight border color between thead, tbody and tfoot.
42
+ > :not(:first-child) {
43
+ border-top: (2 * $table-border-width) solid $table-group-separator-color;
25
44
  }
26
45
  }
27
46
 
28
47
 
48
+ //
49
+ // Change placement of captions with a class
50
+ //
51
+
52
+ .caption-top {
53
+ caption-side: top;
54
+ }
55
+
56
+
29
57
  //
30
58
  // Condensed table w/ half padding
31
59
  //
32
60
 
33
61
  .table-sm {
34
- th,
35
- td {
36
- padding: $table-cell-padding-sm;
62
+ // stylelint-disable-next-line selector-max-universal
63
+ > :not(caption) > * > * {
64
+ padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;
37
65
  }
38
66
  }
39
67
 
@@ -41,29 +69,31 @@
41
69
  // Border versions
42
70
  //
43
71
  // Add or remove borders all around the table and between all the columns.
72
+ //
73
+ // When borders are added on all sides of the cells, the corners can render odd when
74
+ // these borders do not have the same color or if they are semi-transparent.
75
+ // Therefor we add top and border bottoms to the `tr`s and left and right borders
76
+ // to the `td`s or `th`s
44
77
 
45
78
  .table-bordered {
46
- border: $table-border-width solid $table-border-color;
47
-
48
- th,
49
- td {
50
- border: $table-border-width solid $table-border-color;
51
- }
79
+ > :not(caption) > * {
80
+ border-width: $table-border-width 0;
52
81
 
53
- thead {
54
- th,
55
- td {
56
- border-bottom-width: 2 * $table-border-width;
82
+ // stylelint-disable-next-line selector-max-universal
83
+ > * {
84
+ border-width: 0 $table-border-width;
57
85
  }
58
86
  }
59
87
  }
60
88
 
61
89
  .table-borderless {
62
- th,
63
- td,
64
- thead th,
65
- tbody + tbody {
66
- border: 0;
90
+ // stylelint-disable-next-line selector-max-universal
91
+ > :not(caption) > * > * {
92
+ border-bottom-width: 0;
93
+ }
94
+
95
+ > :not(:first-child) {
96
+ border-top-width: 0;
67
97
  }
68
98
  }
69
99
 
@@ -72,114 +102,54 @@
72
102
  // Default zebra-stripe styles (alternating gray and transparent backgrounds)
73
103
 
74
104
  .table-striped {
75
- tbody tr:nth-of-type(#{$table-striped-order}) {
76
- background-color: $table-accent-bg;
105
+ > tbody > tr:nth-of-type(#{$table-striped-order}) > * {
106
+ --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-striped-bg);
107
+ color: var(--#{$variable-prefix}table-striped-color);
77
108
  }
78
109
  }
79
110
 
111
+ // Active table
112
+ //
113
+ // The `.table-active` class can be added to highlight rows or cells
114
+
115
+ .table-active {
116
+ --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-active-bg);
117
+ color: var(--#{$variable-prefix}table-active-color);
118
+ }
80
119
 
81
120
  // Hover effect
82
121
  //
83
122
  // Placed here since it has to come after the potential zebra striping
84
123
 
85
124
  .table-hover {
86
- tbody tr {
87
- @include hover {
88
- color: $table-hover-color;
89
- background-color: $table-hover-bg;
90
- }
125
+ > tbody > tr:hover > * {
126
+ --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-hover-bg);
127
+ color: var(--#{$variable-prefix}table-hover-color);
91
128
  }
92
129
  }
93
130
 
94
131
 
95
- // Table backgrounds
96
- //
97
- // Exact selectors below required to override `.table-striped` and prevent
98
- // inheritance to nested tables.
99
-
100
- @each $color, $value in $theme-colors {
101
- @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));
102
- }
103
-
104
- @include table-row-variant(active, $table-active-bg);
105
-
106
-
107
- // Dark styles
132
+ // Table variants
108
133
  //
109
- // Same table markup, but inverted color scheme: dark background and light text.
110
-
111
- // stylelint-disable-next-line no-duplicate-selectors
112
- .table {
113
- .thead-dark {
114
- th {
115
- color: $table-dark-color;
116
- background-color: $table-dark-bg;
117
- border-color: $table-dark-border-color;
118
- }
119
- }
120
-
121
- .thead-light {
122
- th {
123
- color: $table-head-color;
124
- background-color: $table-head-bg;
125
- border-color: $table-border-color;
126
- }
127
- }
128
- }
129
-
130
- .table-dark {
131
- color: $table-dark-color;
132
- background-color: $table-dark-bg;
134
+ // Table variants set the table cell backgrounds, border colors
135
+ // and the colors of the striped, hovered & active tables
133
136
 
134
- th,
135
- td,
136
- thead th {
137
- border-color: $table-dark-border-color;
138
- }
139
-
140
- &.table-bordered {
141
- border: 0;
142
- }
143
-
144
- &.table-striped {
145
- tbody tr:nth-of-type(odd) {
146
- background-color: $table-dark-accent-bg;
147
- }
148
- }
149
-
150
- &.table-hover {
151
- tbody tr {
152
- @include hover {
153
- color: $table-dark-hover-color;
154
- background-color: $table-dark-hover-bg;
155
- }
156
- }
157
- }
137
+ @each $color, $value in $table-variants {
138
+ @include table-variant($color, $value);
158
139
  }
159
140
 
160
-
161
141
  // Responsive tables
162
142
  //
163
143
  // Generate series of `.table-responsive-*` classes for configuring the screen
164
144
  // size of where your table will overflow.
165
145
 
166
- .table-responsive {
167
- @each $breakpoint in map-keys($grid-breakpoints) {
168
- $next: breakpoint-next($breakpoint, $grid-breakpoints);
169
- $infix: breakpoint-infix($next, $grid-breakpoints);
170
-
171
- &#{$infix} {
172
- @include media-breakpoint-down($breakpoint) {
173
- display: block;
174
- width: 100%;
175
- overflow-x: auto;
176
- -webkit-overflow-scrolling: touch;
177
-
178
- // Prevent double border on horizontal scroll due to use of `display: block;`
179
- > .table-bordered {
180
- border: 0;
181
- }
182
- }
146
+ @each $breakpoint in map-keys($grid-breakpoints) {
147
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
148
+
149
+ @include media-breakpoint-down($breakpoint) {
150
+ .table-responsive#{$infix} {
151
+ overflow-x: auto;
152
+ -webkit-overflow-scrolling: touch;
183
153
  }
184
154
  }
185
155
  }
@@ -1,31 +1,31 @@
1
1
  .toast {
2
- max-width: $toast-max-width;
3
- overflow: hidden; // cheap rounded corners on nested items
2
+ width: $toast-max-width;
3
+ max-width: 100%;
4
4
  @include font-size($toast-font-size);
5
5
  color: $toast-color;
6
+ pointer-events: auto;
6
7
  background-color: $toast-background-color;
7
8
  background-clip: padding-box;
8
9
  border: $toast-border-width solid $toast-border-color;
9
10
  box-shadow: $toast-box-shadow;
10
- backdrop-filter: blur(10px);
11
- opacity: 0;
12
11
  @include border-radius($toast-border-radius);
13
12
 
14
- &:not(:last-child) {
15
- margin-bottom: $toast-padding-x;
16
- }
17
-
18
13
  &.showing {
19
- opacity: 1;
14
+ opacity: 0;
20
15
  }
21
16
 
22
- &.show {
23
- display: block;
24
- opacity: 1;
17
+ &:not(.show) {
18
+ display: none;
25
19
  }
20
+ }
26
21
 
27
- &.hide {
28
- display: none;
22
+ .toast-container {
23
+ width: max-content;
24
+ max-width: 100%;
25
+ pointer-events: none;
26
+
27
+ > :not(:last-child) {
28
+ margin-bottom: $toast-spacing;
29
29
  }
30
30
  }
31
31
 
@@ -37,8 +37,15 @@
37
37
  background-color: $toast-header-background-color;
38
38
  background-clip: padding-box;
39
39
  border-bottom: $toast-border-width solid $toast-header-border-color;
40
+ @include border-top-radius(subtract($toast-border-radius, $toast-border-width));
41
+
42
+ .btn-close {
43
+ margin-right: $toast-padding-x * -.5;
44
+ margin-left: $toast-padding-x;
45
+ }
40
46
  }
41
47
 
42
48
  .toast-body {
43
49
  padding: $toast-padding-x; // apply to both vertical and horizontal
50
+ word-wrap: break-word;
44
51
  }
@@ -14,7 +14,7 @@
14
14
 
15
15
  &.show { opacity: $tooltip-opacity; }
16
16
 
17
- .arrow {
17
+ .tooltip-arrow {
18
18
  position: absolute;
19
19
  display: block;
20
20
  width: $tooltip-arrow-width;
@@ -32,28 +32,28 @@
32
32
  .bs-tooltip-top {
33
33
  padding: $tooltip-arrow-height 0;
34
34
 
35
- .arrow {
35
+ .tooltip-arrow {
36
36
  bottom: 0;
37
37
 
38
38
  &::before {
39
- top: 0;
40
- border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
39
+ top: -1px;
40
+ border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
41
41
  border-top-color: $tooltip-arrow-color;
42
42
  }
43
43
  }
44
44
  }
45
45
 
46
- .bs-tooltip-right {
46
+ .bs-tooltip-end {
47
47
  padding: 0 $tooltip-arrow-height;
48
48
 
49
- .arrow {
49
+ .tooltip-arrow {
50
50
  left: 0;
51
51
  width: $tooltip-arrow-height;
52
52
  height: $tooltip-arrow-width;
53
53
 
54
54
  &::before {
55
- right: 0;
56
- border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
55
+ right: -1px;
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
  }
@@ -62,45 +62,45 @@
62
62
  .bs-tooltip-bottom {
63
63
  padding: $tooltip-arrow-height 0;
64
64
 
65
- .arrow {
65
+ .tooltip-arrow {
66
66
  top: 0;
67
67
 
68
68
  &::before {
69
- bottom: 0;
70
- border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
69
+ bottom: -1px;
70
+ border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
71
71
  border-bottom-color: $tooltip-arrow-color;
72
72
  }
73
73
  }
74
74
  }
75
75
 
76
- .bs-tooltip-left {
76
+ .bs-tooltip-start {
77
77
  padding: 0 $tooltip-arrow-height;
78
78
 
79
- .arrow {
79
+ .tooltip-arrow {
80
80
  right: 0;
81
81
  width: $tooltip-arrow-height;
82
82
  height: $tooltip-arrow-width;
83
83
 
84
84
  &::before {
85
- left: 0;
86
- border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
85
+ left: -1px;
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
  }
90
90
  }
91
91
 
92
92
  .bs-tooltip-auto {
93
- &[x-placement^="top"] {
93
+ &[data-popper-placement^="top"] {
94
94
  @extend .bs-tooltip-top;
95
95
  }
96
- &[x-placement^="right"] {
97
- @extend .bs-tooltip-right;
96
+ &[data-popper-placement^="right"] {
97
+ @extend .bs-tooltip-end;
98
98
  }
99
- &[x-placement^="bottom"] {
99
+ &[data-popper-placement^="bottom"] {
100
100
  @extend .bs-tooltip-bottom;
101
101
  }
102
- &[x-placement^="left"] {
103
- @extend .bs-tooltip-left;
102
+ &[data-popper-placement^="left"] {
103
+ @extend .bs-tooltip-start;
104
104
  }
105
105
  }
106
106
 
@@ -6,6 +6,7 @@
6
6
  }
7
7
  }
8
8
 
9
+ // scss-docs-start collapse-classes
9
10
  .collapse {
10
11
  &:not(.show) {
11
12
  display: none;
@@ -13,8 +14,14 @@
13
14
  }
14
15
 
15
16
  .collapsing {
16
- position: relative;
17
17
  height: 0;
18
18
  overflow: hidden;
19
19
  @include transition($transition-collapse);
20
+
21
+ &.collapse-horizontal {
22
+ width: 0;
23
+ height: auto;
24
+ @include transition($transition-collapse-width);
25
+ }
20
26
  }
27
+ // scss-docs-end collapse-classes