bootstrap 4.0.0.beta2.1 → 4.0.0.beta3

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.

Potentially problematic release.


This version of bootstrap might be problematic. Click here for more details.

Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +1 -1
  4. data/assets/javascripts/bootstrap-sprockets.js +4 -4
  5. data/assets/javascripts/bootstrap.js +576 -534
  6. data/assets/javascripts/bootstrap.min.js +2 -2
  7. data/assets/javascripts/bootstrap/alert.js +3 -3
  8. data/assets/javascripts/bootstrap/button.js +3 -3
  9. data/assets/javascripts/bootstrap/carousel.js +10 -7
  10. data/assets/javascripts/bootstrap/collapse.js +7 -5
  11. data/assets/javascripts/bootstrap/dropdown.js +64 -37
  12. data/assets/javascripts/bootstrap/modal.js +8 -6
  13. data/assets/javascripts/bootstrap/popover.js +19 -7
  14. data/assets/javascripts/bootstrap/scrollspy.js +6 -4
  15. data/assets/javascripts/bootstrap/tab.js +8 -16
  16. data/assets/javascripts/bootstrap/tooltip.js +23 -17
  17. data/assets/javascripts/bootstrap/util.js +18 -21
  18. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  19. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  20. data/assets/stylesheets/_bootstrap.scss +2 -2
  21. data/assets/stylesheets/bootstrap/_alert.scss +2 -0
  22. data/assets/stylesheets/bootstrap/_button-group.scss +31 -72
  23. data/assets/stylesheets/bootstrap/_buttons.scss +22 -11
  24. data/assets/stylesheets/bootstrap/_card.scss +23 -12
  25. data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
  26. data/assets/stylesheets/bootstrap/_close.scss +6 -1
  27. data/assets/stylesheets/bootstrap/_code.scss +4 -12
  28. data/assets/stylesheets/bootstrap/_custom-forms.scss +110 -85
  29. data/assets/stylesheets/bootstrap/_dropdown.scss +30 -2
  30. data/assets/stylesheets/bootstrap/_forms.scss +46 -71
  31. data/assets/stylesheets/bootstrap/_functions.scss +4 -4
  32. data/assets/stylesheets/bootstrap/_images.scss +0 -1
  33. data/assets/stylesheets/bootstrap/_input-group.scss +96 -126
  34. data/assets/stylesheets/bootstrap/_list-group.scss +2 -1
  35. data/assets/stylesheets/bootstrap/_modal.scss +24 -9
  36. data/assets/stylesheets/bootstrap/_nav.scss +2 -2
  37. data/assets/stylesheets/bootstrap/_navbar.scss +6 -1
  38. data/assets/stylesheets/bootstrap/_pagination.scss +27 -19
  39. data/assets/stylesheets/bootstrap/_popover.scss +104 -115
  40. data/assets/stylesheets/bootstrap/_progress.scss +4 -1
  41. data/assets/stylesheets/bootstrap/_reboot.scss +3 -2
  42. data/assets/stylesheets/bootstrap/_tables.scss +1 -1
  43. data/assets/stylesheets/bootstrap/_tooltip.scss +63 -55
  44. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  45. data/assets/stylesheets/bootstrap/_variables.scss +135 -91
  46. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
  47. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +4 -2
  48. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +25 -18
  49. data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -0
  50. data/assets/stylesheets/bootstrap/mixins/_forms.scss +42 -17
  51. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -1
  52. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +1 -0
  53. data/lib/bootstrap/version.rb +2 -2
  54. data/tasks/updater/js.rb +1 -1
  55. metadata +3 -3
@@ -6,7 +6,8 @@
6
6
  #{$parent} {
7
7
  background-color: $color !important;
8
8
  }
9
- a#{$parent} {
9
+ a#{$parent},
10
+ button#{$parent} {
10
11
  @include hover-focus {
11
12
  background-color: darken($color, 10%) !important;
12
13
  }
@@ -29,13 +29,15 @@
29
29
  }
30
30
 
31
31
  // Maximum breakpoint width. Null for the largest (last) breakpoint.
32
- // The maximum value is calculated as the minimum of the next one less 0.1.
32
+ // The maximum value is calculated as the minimum of the next one less 0.01px
33
+ // to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.
34
+ // See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
33
35
  //
34
36
  // >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
35
37
  // 767px
36
38
  @function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
37
39
  $next: breakpoint-next($name, $breakpoints);
38
- @return if($next, breakpoint-min($next, $breakpoints) - 1px, null);
40
+ @return if($next, breakpoint-min($next, $breakpoints) - .01px, null);
39
41
  }
40
42
 
41
43
  // Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.
@@ -19,9 +19,9 @@
19
19
  &.focus {
20
20
  // Avoid using mixin so we can pass custom focus shadow properly
21
21
  @if $enable-shadows {
22
- box-shadow: $btn-box-shadow, 0 0 0 $input-btn-focus-width rgba($border, .5);
22
+ box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);
23
23
  } @else {
24
- box-shadow: 0 0 0 $input-btn-focus-width rgba($border, .5);
24
+ box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);
25
25
  }
26
26
  }
27
27
 
@@ -42,30 +42,32 @@
42
42
  }
43
43
  border-color: $active-border;
44
44
 
45
- // Avoid using mixin so we can pass custom focus shadow properly
46
- @if $enable-shadows {
47
- box-shadow: $btn-active-box-shadow, 0 0 0 $input-btn-focus-width rgba($border, .5);
48
- } @else {
49
- box-shadow: 0 0 0 $input-btn-focus-width rgba($border, .5);
45
+ &:focus {
46
+ // Avoid using mixin so we can pass custom focus shadow properly
47
+ @if $enable-shadows {
48
+ box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);
49
+ } @else {
50
+ box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);
51
+ }
50
52
  }
51
53
  }
52
54
  }
53
55
 
54
- @mixin button-outline-variant($color, $color-hover: #fff) {
56
+ @mixin button-outline-variant($color, $color-hover: #fff, $active-background: $color, $active-border: $color) {
55
57
  color: $color;
56
58
  background-color: transparent;
57
59
  background-image: none;
58
60
  border-color: $color;
59
61
 
60
- @include hover {
61
- color: $color-hover;
62
- background-color: $color;
63
- border-color: $color;
62
+ &:hover {
63
+ color: color-yiq($color);
64
+ background-color: $active-background;
65
+ border-color: $active-border;
64
66
  }
65
67
 
66
68
  &:focus,
67
69
  &.focus {
68
- box-shadow: 0 0 0 $input-btn-focus-width rgba($color, .5);
70
+ box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
69
71
  }
70
72
 
71
73
  &.disabled,
@@ -77,11 +79,11 @@
77
79
  &:not([disabled]):not(.disabled):active,
78
80
  &:not([disabled]):not(.disabled).active,
79
81
  .show > &.dropdown-toggle {
80
- color: $color-hover;
81
- background-color: $color;
82
- border-color: $color;
82
+ color: color-yiq($color-hover);
83
+ background-color: $active-background;
84
+ border-color: $active-border;
83
85
  // Avoid using mixin so we can pass custom focus shadow properly
84
- box-shadow: 0 0 0 $input-btn-focus-width rgba($color, .5);
86
+ box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
85
87
  }
86
88
  }
87
89
 
@@ -90,5 +92,10 @@
90
92
  padding: $padding-y $padding-x;
91
93
  font-size: $font-size;
92
94
  line-height: $line-height;
93
- @include border-radius($border-radius);
95
+ // Manually declare to provide an override to the browser default
96
+ @if $enable-rounded {
97
+ border-radius: $border-radius;
98
+ } @else {
99
+ border-radius: 0;
100
+ }
94
101
  }
@@ -12,6 +12,18 @@
12
12
  border-left: $caret-width solid transparent;
13
13
  }
14
14
 
15
+ @mixin caret-right {
16
+ border-top: $caret-width solid transparent;
17
+ border-bottom: $caret-width solid transparent;
18
+ border-left: $caret-width solid;
19
+ }
20
+
21
+ @mixin caret-left {
22
+ border-top: $caret-width solid transparent;
23
+ border-right: $caret-width solid;
24
+ border-bottom: $caret-width solid transparent;
25
+ }
26
+
15
27
  @mixin caret($direction: down) {
16
28
  @if $enable-caret {
17
29
  &::after {
@@ -25,6 +37,24 @@
25
37
  @include caret-down;
26
38
  } @else if $direction == up {
27
39
  @include caret-up;
40
+ } @else if $direction == right {
41
+ @include caret-right;
42
+ }
43
+ }
44
+
45
+ @if $direction == left {
46
+ &::after {
47
+ display: none;
48
+ }
49
+
50
+ &::before {
51
+ display: inline-block;
52
+ width: 0;
53
+ height: 0;
54
+ margin-right: $caret-width * .85;
55
+ vertical-align: $caret-width * .85;
56
+ content: "";
57
+ @include caret-left;
28
58
  }
29
59
  }
30
60
 
@@ -15,12 +15,12 @@
15
15
  color: $input-focus-color;
16
16
  background-color: $input-focus-bg;
17
17
  border-color: $input-focus-border-color;
18
- outline: none;
18
+ outline: 0;
19
19
  // Avoid using mixin so we can pass custom focus shadow properly
20
20
  @if $enable-shadows {
21
- box-shadow: $input-box-shadow, $input-btn-focus-box-shadow;
21
+ box-shadow: $input-box-shadow, $input-focus-box-shadow;
22
22
  } @else {
23
- box-shadow: $input-btn-focus-box-shadow;
23
+ box-shadow: $input-focus-box-shadow;
24
24
  }
25
25
  }
26
26
  }
@@ -30,8 +30,9 @@
30
30
 
31
31
  .#{$state}-feedback {
32
32
  display: none;
33
- margin-top: .25rem;
34
- font-size: .875rem;
33
+ width: 100%;
34
+ margin-top: $form-feedback-margin-top;
35
+ font-size: $form-feedback-font-size;
35
36
  color: $color;
36
37
  }
37
38
 
@@ -46,7 +47,7 @@
46
47
  font-size: .875rem;
47
48
  line-height: 1;
48
49
  color: #fff;
49
- background-color: rgba($color,.8);
50
+ background-color: rgba($color, .8);
50
51
  border-radius: .2rem;
51
52
  }
52
53
 
@@ -57,7 +58,8 @@
57
58
  border-color: $color;
58
59
 
59
60
  &:focus {
60
- box-shadow: 0 0 0 .2rem rgba($color,.25);
61
+ border-color: $color;
62
+ box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
61
63
  }
62
64
 
63
65
  ~ .#{$state}-feedback,
@@ -67,26 +69,41 @@
67
69
  }
68
70
  }
69
71
 
70
-
71
- // TODO: redo check markup lol crap
72
72
  .form-check-input {
73
73
  .was-validated &:#{$state},
74
74
  &.is-#{$state} {
75
- + .form-check-label {
75
+ ~ .form-check-label {
76
76
  color: $color;
77
77
  }
78
78
  }
79
79
  }
80
80
 
81
- // custom radios and checks
82
81
  .custom-control-input {
83
82
  .was-validated &:#{$state},
84
83
  &.is-#{$state} {
85
- ~ .custom-control-indicator {
86
- background-color: rgba($color, .25);
87
- }
88
- ~ .custom-control-description {
84
+ ~ .custom-control-label {
89
85
  color: $color;
86
+
87
+ &::before {
88
+ background-color: lighten($color, 25%);
89
+ }
90
+ }
91
+
92
+ ~ .#{$state}-feedback,
93
+ ~ .#{$state}-tooltip {
94
+ display: block;
95
+ }
96
+
97
+ &:checked {
98
+ ~ .custom-control-label::before {
99
+ @include gradient-bg(lighten($color, 10%));
100
+ }
101
+ }
102
+
103
+ &:focus {
104
+ ~ .custom-control-label::before {
105
+ box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);
106
+ }
90
107
  }
91
108
  }
92
109
  }
@@ -95,13 +112,21 @@
95
112
  .custom-file-input {
96
113
  .was-validated &:#{$state},
97
114
  &.is-#{$state} {
98
- ~ .custom-file-control {
115
+ ~ .custom-file-label {
99
116
  border-color: $color;
100
117
 
101
118
  &::before { border-color: inherit; }
102
119
  }
120
+
121
+ ~ .#{$state}-feedback,
122
+ ~ .#{$state}-tooltip {
123
+ display: block;
124
+ }
125
+
103
126
  &:focus {
104
- box-shadow: 0 0 0 .2rem rgba($color,.25);
127
+ ~ .custom-file-label {
128
+ box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
129
+ }
105
130
  }
106
131
  }
107
132
  }
@@ -9,7 +9,7 @@
9
9
  height: 1px;
10
10
  padding: 0;
11
11
  overflow: hidden;
12
- clip: rect(0,0,0,0);
12
+ clip: rect(0, 0, 0, 0);
13
13
  white-space: nowrap;
14
14
  clip-path: inset(50%);
15
15
  border: 0;
@@ -1,5 +1,6 @@
1
1
  // CSS image replacement
2
2
  @mixin text-hide() {
3
+ // stylelint-disable-next-line font-family-no-missing-generic-family-keyword
3
4
  font: 0/0 a;
4
5
  color: transparent;
5
6
  text-shadow: none;
@@ -1,4 +1,4 @@
1
1
  module Bootstrap
2
- VERSION = '4.0.0.beta2.1'
3
- BOOTSTRAP_SHA = 'fc94de5b8b5b329a298eeeb76174b146ff17af2d'
2
+ VERSION = '4.0.0.beta3'
3
+ BOOTSTRAP_SHA = 'ced70da441d487efb8589acbff445d6b5fa68bb9'
4
4
  end
@@ -53,7 +53,7 @@ class Updater
53
53
  end
54
54
 
55
55
  def add(from, *tos)
56
- (@imports[from] ||= []).push(*tos)
56
+ (@imports[from] ||= []).push(*tos.sort)
57
57
  end
58
58
 
59
59
  def tsort_each_child(node, &block)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.beta2.1
4
+ version: 4.0.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Twitter, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-23 00:00:00.000000000 Z
11
+ date: 2017-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: popper_js
@@ -402,7 +402,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
402
402
  version: 1.3.1
403
403
  requirements: []
404
404
  rubyforge_project:
405
- rubygems_version: 2.6.12
405
+ rubygems_version: 2.6.8
406
406
  signing_key:
407
407
  specification_version: 4
408
408
  summary: The most popular HTML, CSS, and JavaScript framework for developing responsive,