bootstrap 5.0.0.beta3 → 5.1.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.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/assets/javascripts/bootstrap-sprockets.js +1 -1
- data/assets/javascripts/bootstrap.js +1310 -1277
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +78 -107
- data/assets/javascripts/bootstrap/base-component.js +131 -10
- data/assets/javascripts/bootstrap/button.js +24 -24
- data/assets/javascripts/bootstrap/carousel.js +115 -133
- data/assets/javascripts/bootstrap/collapse.js +120 -177
- data/assets/javascripts/bootstrap/dom/data.js +2 -2
- data/assets/javascripts/bootstrap/dom/event-handler.js +32 -14
- data/assets/javascripts/bootstrap/dom/manipulator.js +4 -4
- data/assets/javascripts/bootstrap/dom/selector-engine.js +47 -5
- data/assets/javascripts/bootstrap/dropdown.js +218 -191
- data/assets/javascripts/bootstrap/modal.js +553 -271
- data/assets/javascripts/bootstrap/offcanvas.js +478 -120
- data/assets/javascripts/bootstrap/popover.js +27 -59
- data/assets/javascripts/bootstrap/scrollspy.js +65 -74
- data/assets/javascripts/bootstrap/tab.js +57 -71
- data/assets/javascripts/bootstrap/toast.js +176 -88
- data/assets/javascripts/bootstrap/tooltip.js +125 -182
- data/assets/stylesheets/_bootstrap-grid.scss +1 -1
- data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
- data/assets/stylesheets/_bootstrap.scss +2 -1
- data/assets/stylesheets/bootstrap/_accordion.scss +4 -2
- data/assets/stylesheets/bootstrap/_card.scss +7 -6
- data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
- data/assets/stylesheets/bootstrap/_dropdown.scss +11 -17
- data/assets/stylesheets/bootstrap/_functions.scss +94 -3
- data/assets/stylesheets/bootstrap/_grid.scss +11 -0
- data/assets/stylesheets/bootstrap/_helpers.scss +2 -0
- data/assets/stylesheets/bootstrap/_images.scss +1 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +5 -5
- data/assets/stylesheets/bootstrap/_mixins.scss +2 -0
- data/assets/stylesheets/bootstrap/_modal.scss +7 -35
- data/assets/stylesheets/bootstrap/_navbar.scss +30 -1
- data/assets/stylesheets/bootstrap/_offcanvas.scss +19 -13
- data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
- data/assets/stylesheets/bootstrap/_popover.scss +10 -10
- data/assets/stylesheets/bootstrap/_reboot.scss +12 -8
- data/assets/stylesheets/bootstrap/_root.scss +39 -2
- data/assets/stylesheets/bootstrap/_spinners.scss +2 -2
- data/assets/stylesheets/bootstrap/_tables.scss +1 -0
- data/assets/stylesheets/bootstrap/_toasts.scss +3 -3
- data/assets/stylesheets/bootstrap/_tooltip.scss +4 -4
- data/assets/stylesheets/bootstrap/_transitions.scss +6 -0
- data/assets/stylesheets/bootstrap/_utilities.scss +44 -8
- data/assets/stylesheets/bootstrap/_variables.scss +193 -28
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +3 -1
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +1 -1
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +1 -1
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +1 -1
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +3 -0
- data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +15 -5
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +40 -10
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +27 -6
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +55 -13
- data/bootstrap.gemspec +3 -3
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +6 -2
- metadata +15 -10
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
.form-check-input {
|
|
18
18
|
width: $form-check-input-width;
|
|
19
19
|
height: $form-check-input-width;
|
|
20
|
-
margin-top: ($line-height-base - $form-check-input-width)
|
|
20
|
+
margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
|
|
21
21
|
vertical-align: top;
|
|
22
22
|
background-color: $form-check-input-bg;
|
|
23
23
|
background-repeat: no-repeat;
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
&::-webkit-slider-thumb {
|
|
28
28
|
width: $form-range-thumb-width;
|
|
29
29
|
height: $form-range-thumb-height;
|
|
30
|
-
margin-top: ($form-range-track-height - $form-range-thumb-height)
|
|
30
|
+
margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific
|
|
31
31
|
@include gradient-bg($form-range-thumb-bg);
|
|
32
32
|
border: $form-range-thumb-border;
|
|
33
33
|
@include border-radius($form-range-thumb-border-radius);
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
display: block;
|
|
8
8
|
width: 100%;
|
|
9
9
|
padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
|
|
10
|
+
// stylelint-disable-next-line property-no-vendor-prefix
|
|
11
|
+
-moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
|
|
10
12
|
font-family: $form-select-font-family;
|
|
11
13
|
@include font-size($form-select-font-size);
|
|
12
14
|
font-weight: $form-select-font-weight;
|
|
@@ -20,6 +22,7 @@
|
|
|
20
22
|
border: $form-select-border-width solid $form-select-border-color;
|
|
21
23
|
@include border-radius($form-select-border-radius, 0);
|
|
22
24
|
@include box-shadow($form-select-box-shadow);
|
|
25
|
+
@include transition($form-select-transition);
|
|
23
26
|
appearance: none;
|
|
24
27
|
|
|
25
28
|
&:focus {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// scss-docs-start stacks
|
|
2
|
+
.hstack {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: row;
|
|
5
|
+
align-items: center;
|
|
6
|
+
align-self: stretch;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.vstack {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex: 1 1 auto;
|
|
12
|
+
flex-direction: column;
|
|
13
|
+
align-self: stretch;
|
|
14
|
+
}
|
|
15
|
+
// scss-docs-end stacks
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Shared between modals and offcanvases
|
|
2
|
+
@mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) {
|
|
3
|
+
position: fixed;
|
|
4
|
+
top: 0;
|
|
5
|
+
left: 0;
|
|
6
|
+
z-index: $zindex;
|
|
7
|
+
width: 100vw;
|
|
8
|
+
height: 100vh;
|
|
9
|
+
background-color: $backdrop-bg;
|
|
10
|
+
|
|
11
|
+
// Fade for backdrop
|
|
12
|
+
&.fade { opacity: 0; }
|
|
13
|
+
&.show { opacity: $backdrop-opacity; }
|
|
14
|
+
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
$hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
|
|
12
12
|
$hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
|
|
13
13
|
$hover-color: color-contrast($hover-background),
|
|
14
|
-
$active-background: if($color == $color-contrast-light, shade-color($background
|
|
14
|
+
$active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
|
|
15
15
|
$active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
|
|
16
16
|
$active-color: color-contrast($active-background),
|
|
17
17
|
$disabled-background: $background,
|
|
@@ -88,10 +88,13 @@
|
|
|
88
88
|
border-color: $color;
|
|
89
89
|
|
|
90
90
|
@if $enable-validation-icons {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
&:not([multiple]):not([size]),
|
|
92
|
+
&:not([multiple])[size="1"] {
|
|
93
|
+
padding-right: $form-select-feedback-icon-padding-end;
|
|
94
|
+
background-image: escape-svg($form-select-indicator), escape-svg($icon);
|
|
95
|
+
background-position: $form-select-bg-position, $form-select-feedback-icon-position;
|
|
96
|
+
background-size: $form-select-bg-size, $form-select-feedback-icon-size;
|
|
97
|
+
}
|
|
95
98
|
}
|
|
96
99
|
|
|
97
100
|
&:focus {
|
|
@@ -127,7 +130,14 @@
|
|
|
127
130
|
.input-group .form-control,
|
|
128
131
|
.input-group .form-select {
|
|
129
132
|
@include form-validation-state-selector($state) {
|
|
130
|
-
|
|
133
|
+
@if $state == "valid" {
|
|
134
|
+
z-index: 1;
|
|
135
|
+
} @else if $state == "invalid" {
|
|
136
|
+
z-index: 2;
|
|
137
|
+
}
|
|
138
|
+
&:focus {
|
|
139
|
+
z-index: 3;
|
|
140
|
+
}
|
|
131
141
|
}
|
|
132
142
|
}
|
|
133
143
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// Grid system
|
|
2
2
|
//
|
|
3
3
|
// Generate semantic grid columns with these mixins.
|
|
4
4
|
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
display: flex;
|
|
9
9
|
flex-wrap: wrap;
|
|
10
10
|
margin-top: calc(var(--#{$variable-prefix}gutter-y) * -1); // stylelint-disable-line function-disallowed-list
|
|
11
|
-
margin-right: calc(var(--#{$variable-prefix}gutter-x)
|
|
12
|
-
margin-left: calc(var(--#{$variable-prefix}gutter-x)
|
|
11
|
+
margin-right: calc(var(--#{$variable-prefix}gutter-x) * -.5); // stylelint-disable-line function-disallowed-list
|
|
12
|
+
margin-left: calc(var(--#{$variable-prefix}gutter-x) * -.5); // stylelint-disable-line function-disallowed-list
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
@mixin make-col-ready($gutter: $grid-gutter-width) {
|
|
@@ -21,14 +21,20 @@
|
|
|
21
21
|
flex-shrink: 0;
|
|
22
22
|
width: 100%;
|
|
23
23
|
max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid
|
|
24
|
-
padding-right: calc(var(--#{$variable-prefix}gutter-x)
|
|
25
|
-
padding-left: calc(var(--#{$variable-prefix}gutter-x)
|
|
24
|
+
padding-right: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
|
|
25
|
+
padding-left: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
|
|
26
26
|
margin-top: var(--#{$variable-prefix}gutter-y);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
@mixin make-col($size, $columns: $grid-columns) {
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
@mixin make-col($size: false, $columns: $grid-columns) {
|
|
30
|
+
@if $size {
|
|
31
|
+
flex: 0 0 auto;
|
|
32
|
+
width: percentage(divide($size, $columns));
|
|
33
|
+
|
|
34
|
+
} @else {
|
|
35
|
+
flex: 1 1 0;
|
|
36
|
+
max-width: 100%;
|
|
37
|
+
}
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
@mixin make-col-auto() {
|
|
@@ -37,7 +43,7 @@
|
|
|
37
43
|
}
|
|
38
44
|
|
|
39
45
|
@mixin make-col-offset($size, $columns: $grid-columns) {
|
|
40
|
-
$num: $size
|
|
46
|
+
$num: divide($size, $columns);
|
|
41
47
|
margin-left: if($num == 0, 0, percentage($num));
|
|
42
48
|
}
|
|
43
49
|
|
|
@@ -49,7 +55,7 @@
|
|
|
49
55
|
@mixin row-cols($count) {
|
|
50
56
|
> * {
|
|
51
57
|
flex: 0 0 auto;
|
|
52
|
-
width: 100
|
|
58
|
+
width: divide(100%, $count);
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
61
|
|
|
@@ -118,3 +124,27 @@
|
|
|
118
124
|
}
|
|
119
125
|
}
|
|
120
126
|
}
|
|
127
|
+
|
|
128
|
+
@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {
|
|
129
|
+
@each $breakpoint in map-keys($breakpoints) {
|
|
130
|
+
$infix: breakpoint-infix($breakpoint, $breakpoints);
|
|
131
|
+
|
|
132
|
+
@include media-breakpoint-up($breakpoint, $breakpoints) {
|
|
133
|
+
@if $columns > 0 {
|
|
134
|
+
@for $i from 1 through $columns {
|
|
135
|
+
.g-col#{$infix}-#{$i} {
|
|
136
|
+
grid-column: auto / span $i;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Start with `1` because `0` is and invalid value.
|
|
141
|
+
// Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.
|
|
142
|
+
@for $i from 1 through ($columns - 1) {
|
|
143
|
+
.g-start#{$infix}-#{$i} {
|
|
144
|
+
grid-column-start: $i;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -41,25 +41,46 @@
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
$is-css-var: map-get($utility, css-var);
|
|
45
|
+
$is-local-vars: map-get($utility, local-vars);
|
|
44
46
|
$is-rtl: map-get($utility, rtl);
|
|
45
47
|
|
|
46
48
|
@if $value != null {
|
|
47
49
|
@if $is-rtl == false {
|
|
48
50
|
/* rtl:begin:remove */
|
|
49
51
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
|
|
53
|
+
@if $is-css-var {
|
|
54
|
+
.#{$property-class + $infix + $property-class-modifier} {
|
|
55
|
+
--#{$variable-prefix}#{$property-class}: #{$value};
|
|
53
56
|
}
|
|
54
|
-
}
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
@each $pseudo in $state {
|
|
59
|
+
.#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
|
|
60
|
+
--#{$variable-prefix}#{$property-class}: #{$value};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
} @else {
|
|
64
|
+
.#{$property-class + $infix + $property-class-modifier} {
|
|
58
65
|
@each $property in $properties {
|
|
66
|
+
@if $is-local-vars {
|
|
67
|
+
@each $local-var, $value in $is-local-vars {
|
|
68
|
+
--#{$variable-prefix}#{$local-var}: #{$value};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
59
71
|
#{$property}: $value if($enable-important-utilities, !important, null);
|
|
60
72
|
}
|
|
61
73
|
}
|
|
74
|
+
|
|
75
|
+
@each $pseudo in $state {
|
|
76
|
+
.#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
|
|
77
|
+
@each $property in $properties {
|
|
78
|
+
#{$property}: $value if($enable-important-utilities, !important, null);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
62
82
|
}
|
|
83
|
+
|
|
63
84
|
@if $is-rtl == false {
|
|
64
85
|
/* rtl:end:remove */
|
|
65
86
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
//
|
|
5
5
|
// Automated responsive values for font sizes, paddings, margins and much more
|
|
6
6
|
//
|
|
7
|
-
// Licensed under MIT (https://github.com/twbs/rfs/blob/
|
|
7
|
+
// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)
|
|
8
8
|
|
|
9
9
|
// Configuration
|
|
10
10
|
|
|
@@ -52,12 +52,54 @@ $enable-rfs: true !default;
|
|
|
52
52
|
// Cache $rfs-base-value unit
|
|
53
53
|
$rfs-base-value-unit: unit($rfs-base-value);
|
|
54
54
|
|
|
55
|
+
@function divide($dividend, $divisor, $precision: 10) {
|
|
56
|
+
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
|
|
57
|
+
$dividend: abs($dividend);
|
|
58
|
+
$divisor: abs($divisor);
|
|
59
|
+
@if $dividend == 0 {
|
|
60
|
+
@return 0;
|
|
61
|
+
}
|
|
62
|
+
@if $divisor == 0 {
|
|
63
|
+
@error "Cannot divide by 0";
|
|
64
|
+
}
|
|
65
|
+
$remainder: $dividend;
|
|
66
|
+
$result: 0;
|
|
67
|
+
$factor: 10;
|
|
68
|
+
@while ($remainder > 0 and $precision >= 0) {
|
|
69
|
+
$quotient: 0;
|
|
70
|
+
@while ($remainder >= $divisor) {
|
|
71
|
+
$remainder: $remainder - $divisor;
|
|
72
|
+
$quotient: $quotient + 1;
|
|
73
|
+
}
|
|
74
|
+
$result: $result * 10 + $quotient;
|
|
75
|
+
$factor: $factor * .1;
|
|
76
|
+
$remainder: $remainder * 10;
|
|
77
|
+
$precision: $precision - 1;
|
|
78
|
+
@if ($precision < 0 and $remainder >= $divisor * 5) {
|
|
79
|
+
$result: $result + 1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
$result: $result * $factor * $sign;
|
|
83
|
+
$dividend-unit: unit($dividend);
|
|
84
|
+
$divisor-unit: unit($divisor);
|
|
85
|
+
$unit-map: (
|
|
86
|
+
"px": 1px,
|
|
87
|
+
"rem": 1rem,
|
|
88
|
+
"em": 1em,
|
|
89
|
+
"%": 1%
|
|
90
|
+
);
|
|
91
|
+
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
|
|
92
|
+
$result: $result * map-get($unit-map, $dividend-unit);
|
|
93
|
+
}
|
|
94
|
+
@return $result;
|
|
95
|
+
}
|
|
96
|
+
|
|
55
97
|
// Remove px-unit from $rfs-base-value for calculations
|
|
56
98
|
@if $rfs-base-value-unit == px {
|
|
57
|
-
$rfs-base-value: $rfs-base-value
|
|
99
|
+
$rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);
|
|
58
100
|
}
|
|
59
101
|
@else if $rfs-base-value-unit == rem {
|
|
60
|
-
$rfs-base-value: $rfs-base-value
|
|
102
|
+
$rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));
|
|
61
103
|
}
|
|
62
104
|
|
|
63
105
|
// Cache $rfs-breakpoint unit to prevent multiple calls
|
|
@@ -65,14 +107,14 @@ $rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
|
|
|
65
107
|
|
|
66
108
|
// Remove unit from $rfs-breakpoint for calculations
|
|
67
109
|
@if $rfs-breakpoint-unit-cache == px {
|
|
68
|
-
$rfs-breakpoint: $rfs-breakpoint
|
|
110
|
+
$rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
|
|
69
111
|
}
|
|
70
112
|
@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == "em" {
|
|
71
|
-
$rfs-breakpoint: $rfs-breakpoint
|
|
113
|
+
$rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
|
|
72
114
|
}
|
|
73
115
|
|
|
74
116
|
// Calculate the media query value
|
|
75
|
-
$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{$rfs-breakpoint
|
|
117
|
+
$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
|
|
76
118
|
$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);
|
|
77
119
|
$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);
|
|
78
120
|
|
|
@@ -164,11 +206,11 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
|
|
|
164
206
|
|
|
165
207
|
@if $unit == px {
|
|
166
208
|
// Convert to rem if needed
|
|
167
|
-
$val: $val + ' ' + if($rfs-unit == rem, #{$value
|
|
209
|
+
$val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);
|
|
168
210
|
}
|
|
169
211
|
@else if $unit == rem {
|
|
170
212
|
// Convert to px if needed
|
|
171
|
-
$val: $val + ' ' + if($rfs-unit == px, #{$value
|
|
213
|
+
$val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);
|
|
172
214
|
}
|
|
173
215
|
@else {
|
|
174
216
|
// If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
|
|
@@ -205,21 +247,21 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
|
|
|
205
247
|
|
|
206
248
|
@else {
|
|
207
249
|
// Remove unit from $value for calculations
|
|
208
|
-
$value: $value
|
|
250
|
+
$value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));
|
|
209
251
|
|
|
210
252
|
// Only add the media query if the value is greater than the minimum value
|
|
211
253
|
@if abs($value) <= $rfs-base-value or not $enable-rfs {
|
|
212
|
-
$val: $val + ' ' + if($rfs-unit == rem, #{$value
|
|
254
|
+
$val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);
|
|
213
255
|
}
|
|
214
256
|
@else {
|
|
215
257
|
// Calculate the minimum value
|
|
216
|
-
$value-min: $rfs-base-value + (abs($value) - $rfs-base-value
|
|
258
|
+
$value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);
|
|
217
259
|
|
|
218
260
|
// Calculate difference between $value and the minimum value
|
|
219
261
|
$value-diff: abs($value) - $value-min;
|
|
220
262
|
|
|
221
263
|
// Base value formatting
|
|
222
|
-
$min-width: if($rfs-unit == rem, #{$value-min
|
|
264
|
+
$min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);
|
|
223
265
|
|
|
224
266
|
// Use negative value if needed
|
|
225
267
|
$min-width: if($value < 0, -$min-width, $min-width);
|
|
@@ -228,7 +270,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
|
|
|
228
270
|
$variable-unit: if($rfs-two-dimensional, vmin, vw);
|
|
229
271
|
|
|
230
272
|
// Calculate the variable width between 0 and $rfs-breakpoint
|
|
231
|
-
$variable-width: #{$value-diff * 100
|
|
273
|
+
$variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};
|
|
232
274
|
|
|
233
275
|
// Return the calculated value
|
|
234
276
|
$val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';
|
data/bootstrap.gemspec
CHANGED
|
@@ -14,14 +14,14 @@ Gem::Specification.new do |s|
|
|
|
14
14
|
# SassC requires Ruby 2.3.3. Also specify here to make it obvious.
|
|
15
15
|
s.required_ruby_version = '>= 2.3.3'
|
|
16
16
|
|
|
17
|
-
s.add_runtime_dependency 'popper_js', '>= 2.9.
|
|
17
|
+
s.add_runtime_dependency 'popper_js', '>= 2.9.3', '< 3'
|
|
18
18
|
|
|
19
19
|
s.add_runtime_dependency 'sassc-rails', '>= 2.0.0'
|
|
20
20
|
s.add_runtime_dependency 'autoprefixer-rails', '>= 9.1.0'
|
|
21
21
|
|
|
22
22
|
# Testing dependencies
|
|
23
|
-
s.add_development_dependency 'minitest', '~> 5.
|
|
24
|
-
s.add_development_dependency 'minitest-reporters', '~> 1.
|
|
23
|
+
s.add_development_dependency 'minitest', '~> 5.14.4'
|
|
24
|
+
s.add_development_dependency 'minitest-reporters', '~> 1.4.3'
|
|
25
25
|
s.add_development_dependency 'term-ansicolor'
|
|
26
26
|
# Integration testing
|
|
27
27
|
s.add_development_dependency 'capybara', '>= 2.6.0'
|
data/lib/bootstrap/version.rb
CHANGED
data/tasks/updater/js.rb
CHANGED
|
@@ -2,7 +2,7 @@ require 'tsort'
|
|
|
2
2
|
|
|
3
3
|
class Updater
|
|
4
4
|
module Js
|
|
5
|
-
INLINED_SRCS = %w[util/index.js util/sanitizer.js util/scrollbar.js].freeze
|
|
5
|
+
INLINED_SRCS = %w[util/backdrop.js util/component-functions.js util/focustrap.js util/index.js util/sanitizer.js util/scrollbar.js].freeze
|
|
6
6
|
|
|
7
7
|
def update_javascript_assets
|
|
8
8
|
log_status 'Updating javascripts...'
|
|
@@ -72,7 +72,11 @@ class Updater
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def tsort_each_child(node, &block)
|
|
75
|
-
@imports[node]
|
|
75
|
+
node_imports = @imports[node]
|
|
76
|
+
if node_imports.nil?
|
|
77
|
+
raise "No imports found for #{node.inspect}"
|
|
78
|
+
end
|
|
79
|
+
node_imports.each(&block)
|
|
76
80
|
end
|
|
77
81
|
|
|
78
82
|
def tsort_each_node(&block)
|