bootstrap 5.0.0.alpha2 → 5.0.0.alpha3
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 +5 -2
- data/assets/javascripts/bootstrap-sprockets.js +6 -7
- data/assets/javascripts/bootstrap.js +220 -267
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +25 -15
- data/assets/javascripts/bootstrap/button.js +25 -15
- data/assets/javascripts/bootstrap/carousel.js +46 -24
- data/assets/javascripts/bootstrap/collapse.js +25 -15
- data/assets/javascripts/bootstrap/dom/data.js +2 -2
- data/assets/javascripts/bootstrap/dom/event-handler.js +8 -16
- data/assets/javascripts/bootstrap/dom/manipulator.js +2 -13
- data/assets/javascripts/bootstrap/dom/selector-engine.js +9 -9
- data/assets/javascripts/bootstrap/dropdown.js +34 -24
- data/assets/javascripts/bootstrap/modal.js +25 -15
- data/assets/javascripts/bootstrap/popover.js +26 -15
- data/assets/javascripts/bootstrap/scrollspy.js +25 -14
- data/assets/javascripts/bootstrap/tab.js +25 -15
- data/assets/javascripts/bootstrap/toast.js +26 -16
- data/assets/javascripts/bootstrap/tooltip.js +27 -17
- 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 +125 -0
- data/assets/stylesheets/bootstrap/_alert.scss +10 -3
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +1 -3
- data/assets/stylesheets/bootstrap/_button-group.scss +0 -2
- data/assets/stylesheets/bootstrap/_buttons.scss +0 -15
- data/assets/stylesheets/bootstrap/_card.scss +0 -27
- data/assets/stylesheets/bootstrap/_close.scss +1 -2
- data/assets/stylesheets/bootstrap/_forms.scss +1 -1
- data/assets/stylesheets/bootstrap/_functions.scss +12 -12
- data/assets/stylesheets/bootstrap/_list-group.scss +8 -2
- data/assets/stylesheets/bootstrap/_popover.scss +1 -1
- data/assets/stylesheets/bootstrap/_progress.scss +1 -1
- data/assets/stylesheets/bootstrap/_reboot.scss +19 -17
- data/assets/stylesheets/bootstrap/_root.scss +5 -5
- data/assets/stylesheets/bootstrap/_spinners.scss +11 -2
- data/assets/stylesheets/bootstrap/_tables.scss +16 -16
- data/assets/stylesheets/bootstrap/_utilities.scss +27 -13
- data/assets/stylesheets/bootstrap/_variables.scss +183 -160
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +15 -6
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +115 -8
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +0 -45
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +0 -14
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +20 -39
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +0 -16
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +10 -10
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +7 -7
- data/lib/bootstrap/version.rb +2 -2
- metadata +4 -4
- data/assets/javascripts/bootstrap/dom/polyfill.js +0 -110
- data/assets/stylesheets/bootstrap/forms/_form-file.scss +0 -91
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap Utilities v5.0.0-
|
2
|
+
* Bootstrap Utilities v5.0.0-alpha3 (https://getbootstrap.com/)
|
3
3
|
* Copyright 2011-2020 The Bootstrap Authors
|
4
4
|
* Copyright 2011-2020 Twitter, Inc.
|
5
5
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
@@ -0,0 +1,61 @@
|
|
1
|
+
.form-floating {
|
2
|
+
position: relative;
|
3
|
+
|
4
|
+
> .form-control,
|
5
|
+
> .form-select {
|
6
|
+
height: $form-floating-height;
|
7
|
+
padding: $form-floating-padding-y $form-floating-padding-x;
|
8
|
+
}
|
9
|
+
|
10
|
+
> label {
|
11
|
+
position: absolute;
|
12
|
+
top: 0;
|
13
|
+
left: 0;
|
14
|
+
height: 100%; // allow textareas
|
15
|
+
padding: $form-floating-padding-y $form-floating-padding-x;
|
16
|
+
pointer-events: none;
|
17
|
+
border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model
|
18
|
+
transform-origin: 0 0;
|
19
|
+
@include transition($form-floating-transition);
|
20
|
+
}
|
21
|
+
|
22
|
+
// stylelint-disable no-duplicate-selectors
|
23
|
+
> .form-control {
|
24
|
+
&::placeholder {
|
25
|
+
color: transparent;
|
26
|
+
}
|
27
|
+
|
28
|
+
&:focus,
|
29
|
+
&:not(:placeholder-shown) {
|
30
|
+
padding-top: $form-floating-input-padding-t;
|
31
|
+
padding-bottom: $form-floating-input-padding-b;
|
32
|
+
}
|
33
|
+
// Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
|
34
|
+
&:-webkit-autofill {
|
35
|
+
padding-top: $form-floating-input-padding-t;
|
36
|
+
padding-bottom: $form-floating-input-padding-b;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
> .form-select {
|
41
|
+
padding-top: $form-floating-input-padding-t;
|
42
|
+
padding-bottom: $form-floating-input-padding-b;
|
43
|
+
}
|
44
|
+
|
45
|
+
> .form-control:focus,
|
46
|
+
> .form-control:not(:placeholder-shown),
|
47
|
+
> .form-select {
|
48
|
+
~ label {
|
49
|
+
opacity: $form-floating-label-opacity;
|
50
|
+
transform: $form-floating-label-transform;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
// Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
|
54
|
+
> .form-control:-webkit-autofill {
|
55
|
+
~ label {
|
56
|
+
opacity: $form-floating-label-opacity;
|
57
|
+
transform: $form-floating-label-transform;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
// stylelint-enable no-duplicate-selectors
|
61
|
+
}
|
@@ -53,7 +53,7 @@
|
|
53
53
|
|
54
54
|
&[type="checkbox"] {
|
55
55
|
@if $enable-gradients {
|
56
|
-
background-image: escape-svg($form-check-input-checked-bg-image), var(
|
56
|
+
background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$variable-prefix}gradient);
|
57
57
|
} @else {
|
58
58
|
background-image: escape-svg($form-check-input-checked-bg-image);
|
59
59
|
}
|
@@ -61,7 +61,7 @@
|
|
61
61
|
|
62
62
|
&[type="radio"] {
|
63
63
|
@if $enable-gradients {
|
64
|
-
background-image: escape-svg($form-check-radio-checked-bg-image), var(
|
64
|
+
background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$variable-prefix}gradient);
|
65
65
|
} @else {
|
66
66
|
background-image: escape-svg($form-check-radio-checked-bg-image);
|
67
67
|
}
|
@@ -73,7 +73,7 @@
|
|
73
73
|
border-color: $form-check-input-indeterminate-border-color;
|
74
74
|
|
75
75
|
@if $enable-gradients {
|
76
|
-
background-image: escape-svg($form-check-input-indeterminate-bg-image), var(
|
76
|
+
background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$variable-prefix}gradient);
|
77
77
|
} @else {
|
78
78
|
background-image: escape-svg($form-check-input-indeterminate-bg-image);
|
79
79
|
}
|
@@ -82,7 +82,7 @@
|
|
82
82
|
&:disabled {
|
83
83
|
pointer-events: none;
|
84
84
|
filter: none;
|
85
|
-
opacity:
|
85
|
+
opacity: $form-check-input-disabled-opacity;
|
86
86
|
}
|
87
87
|
|
88
88
|
// Use disabled attribute in addition of :disabled pseudo-class
|
@@ -90,7 +90,7 @@
|
|
90
90
|
&[disabled],
|
91
91
|
&:disabled {
|
92
92
|
~ .form-check-label {
|
93
|
-
opacity:
|
93
|
+
opacity: $form-check-label-disabled-opacity;
|
94
94
|
}
|
95
95
|
}
|
96
96
|
}
|
@@ -122,7 +122,7 @@
|
|
122
122
|
background-position: $form-switch-checked-bg-position;
|
123
123
|
|
124
124
|
@if $enable-gradients {
|
125
|
-
background-image: escape-svg($form-switch-checked-bg-image), var(
|
125
|
+
background-image: escape-svg($form-switch-checked-bg-image), var(--#{$variable-prefix}gradient);
|
126
126
|
} @else {
|
127
127
|
background-image: escape-svg($form-switch-checked-bg-image);
|
128
128
|
}
|
@@ -139,4 +139,13 @@
|
|
139
139
|
position: absolute;
|
140
140
|
clip: rect(0, 0, 0, 0);
|
141
141
|
pointer-events: none;
|
142
|
+
|
143
|
+
&[disabled],
|
144
|
+
&:disabled {
|
145
|
+
+ .btn {
|
146
|
+
pointer-events: none;
|
147
|
+
filter: none;
|
148
|
+
opacity: $form-check-btn-check-disabled-opacity;
|
149
|
+
}
|
150
|
+
}
|
142
151
|
}
|
@@ -1,11 +1,10 @@
|
|
1
1
|
//
|
2
|
-
//
|
2
|
+
// General form controls (plus a few specific high-level interventions)
|
3
3
|
//
|
4
4
|
|
5
5
|
.form-control {
|
6
6
|
display: block;
|
7
7
|
width: 100%;
|
8
|
-
min-height: $input-height;
|
9
8
|
padding: $input-padding-y $input-padding-x;
|
10
9
|
font-family: $input-font-family;
|
11
10
|
@include font-size($input-font-size);
|
@@ -23,6 +22,14 @@
|
|
23
22
|
@include box-shadow($input-box-shadow);
|
24
23
|
@include transition($input-transition);
|
25
24
|
|
25
|
+
&[type="file"] {
|
26
|
+
overflow: hidden; // prevent pseudo element button overlap
|
27
|
+
|
28
|
+
&:not(:disabled):not([readonly]) {
|
29
|
+
cursor: pointer;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
26
33
|
// Customize the `:focus` state to imitate native WebKit styles.
|
27
34
|
&:focus {
|
28
35
|
color: $input-focus-color;
|
@@ -37,6 +44,14 @@
|
|
37
44
|
}
|
38
45
|
}
|
39
46
|
|
47
|
+
// Add some height to date inputs on iOS
|
48
|
+
// https://github.com/twbs/bootstrap/issues/23307
|
49
|
+
// TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
|
50
|
+
&::-webkit-date-and-time-value {
|
51
|
+
// Multiply line-height by 1em if it has no unit
|
52
|
+
height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
|
53
|
+
}
|
54
|
+
|
40
55
|
// Placeholder
|
41
56
|
&::placeholder {
|
42
57
|
color: $input-placeholder-color;
|
@@ -56,6 +71,47 @@
|
|
56
71
|
// iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
|
57
72
|
opacity: 1;
|
58
73
|
}
|
74
|
+
|
75
|
+
// File input buttons theming
|
76
|
+
// stylelint-disable-next-line selector-pseudo-element-no-unknown
|
77
|
+
&::file-selector-button {
|
78
|
+
padding: $input-padding-y $input-padding-x;
|
79
|
+
margin: (-$input-padding-y) (-$input-padding-x);
|
80
|
+
margin-inline-end: $input-padding-x;
|
81
|
+
color: $form-file-button-color;
|
82
|
+
@include gradient-bg($form-file-button-bg);
|
83
|
+
pointer-events: none;
|
84
|
+
border-color: inherit;
|
85
|
+
border-style: solid;
|
86
|
+
border-width: 0;
|
87
|
+
border-inline-end-width: $input-border-width;
|
88
|
+
border-radius: 0; // stylelint-disable-line property-disallowed-list
|
89
|
+
@include transition($btn-transition);
|
90
|
+
}
|
91
|
+
|
92
|
+
// stylelint-disable-next-line selector-pseudo-element-no-unknown
|
93
|
+
&:hover:not(:disabled):not([readonly])::file-selector-button {
|
94
|
+
background-color: $form-file-button-hover-bg;
|
95
|
+
}
|
96
|
+
|
97
|
+
&::-webkit-file-upload-button {
|
98
|
+
padding: $input-padding-y $input-padding-x;
|
99
|
+
margin: (-$input-padding-y) (-$input-padding-x);
|
100
|
+
margin-inline-end: $input-padding-x;
|
101
|
+
color: $form-file-button-color;
|
102
|
+
@include gradient-bg($form-file-button-bg);
|
103
|
+
pointer-events: none;
|
104
|
+
border-color: inherit;
|
105
|
+
border-style: solid;
|
106
|
+
border-width: 0;
|
107
|
+
border-inline-end-width: $input-border-width;
|
108
|
+
border-radius: 0; // stylelint-disable-line property-disallowed-list
|
109
|
+
@include transition($btn-transition);
|
110
|
+
}
|
111
|
+
|
112
|
+
&:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
|
113
|
+
background-color: $form-file-button-hover-bg;
|
114
|
+
}
|
59
115
|
}
|
60
116
|
|
61
117
|
// Readonly controls as plain text
|
@@ -93,6 +149,19 @@
|
|
93
149
|
padding: $input-padding-y-sm $input-padding-x-sm;
|
94
150
|
@include font-size($input-font-size-sm);
|
95
151
|
@include border-radius($input-border-radius-sm);
|
152
|
+
|
153
|
+
// stylelint-disable-next-line selector-pseudo-element-no-unknown
|
154
|
+
&::file-selector-button {
|
155
|
+
padding: $input-padding-y-sm $input-padding-x-sm;
|
156
|
+
margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
|
157
|
+
margin-inline-end: $input-padding-x-sm;
|
158
|
+
}
|
159
|
+
|
160
|
+
&::-webkit-file-upload-button {
|
161
|
+
padding: $input-padding-y-sm $input-padding-x-sm;
|
162
|
+
margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
|
163
|
+
margin-inline-end: $input-padding-x-sm;
|
164
|
+
}
|
96
165
|
}
|
97
166
|
|
98
167
|
.form-control-lg {
|
@@ -100,17 +169,55 @@
|
|
100
169
|
padding: $input-padding-y-lg $input-padding-x-lg;
|
101
170
|
@include font-size($input-font-size-lg);
|
102
171
|
@include border-radius($input-border-radius-lg);
|
172
|
+
|
173
|
+
// stylelint-disable-next-line selector-pseudo-element-no-unknown
|
174
|
+
&::file-selector-button {
|
175
|
+
padding: $input-padding-y-lg $input-padding-x-lg;
|
176
|
+
margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
|
177
|
+
margin-inline-end: $input-padding-x-lg;
|
178
|
+
}
|
179
|
+
|
180
|
+
&::-webkit-file-upload-button {
|
181
|
+
padding: $input-padding-y-lg $input-padding-x-lg;
|
182
|
+
margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
|
183
|
+
margin-inline-end: $input-padding-x-lg;
|
184
|
+
}
|
185
|
+
}
|
186
|
+
|
187
|
+
// Make sure textareas don't shrink too much when resized
|
188
|
+
// https://github.com/twbs/bootstrap/pull/29124
|
189
|
+
// stylelint-disable selector-no-qualifying-type
|
190
|
+
textarea {
|
191
|
+
&.form-control {
|
192
|
+
min-height: $input-height;
|
193
|
+
}
|
194
|
+
|
195
|
+
&.form-control-sm {
|
196
|
+
min-height: $input-height-sm;
|
197
|
+
}
|
198
|
+
|
199
|
+
&.form-control-lg {
|
200
|
+
min-height: $input-height-lg;
|
201
|
+
}
|
103
202
|
}
|
203
|
+
// stylelint-enable selector-no-qualifying-type
|
104
204
|
|
105
205
|
.form-control-color {
|
106
206
|
max-width: 3rem;
|
207
|
+
height: auto; // Override fixed browser height
|
107
208
|
padding: $input-padding-y;
|
108
|
-
}
|
109
209
|
|
110
|
-
|
111
|
-
|
112
|
-
}
|
210
|
+
&:not(:disabled):not([readonly]) {
|
211
|
+
cursor: pointer;
|
212
|
+
}
|
213
|
+
|
214
|
+
&::-moz-color-swatch {
|
215
|
+
height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
|
216
|
+
@include border-radius($input-border-radius);
|
217
|
+
}
|
113
218
|
|
114
|
-
|
115
|
-
|
219
|
+
&::-webkit-color-swatch {
|
220
|
+
height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
|
221
|
+
@include border-radius($input-border-radius);
|
222
|
+
}
|
116
223
|
}
|
@@ -18,7 +18,6 @@
|
|
18
18
|
// No box-shadow() mixin for focus accessibility.
|
19
19
|
&::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
|
20
20
|
&::-moz-range-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
|
21
|
-
&::-ms-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
|
22
21
|
}
|
23
22
|
|
24
23
|
&::-moz-focus-outer {
|
@@ -78,46 +77,6 @@
|
|
78
77
|
@include box-shadow($form-range-track-box-shadow);
|
79
78
|
}
|
80
79
|
|
81
|
-
&::-ms-thumb {
|
82
|
-
width: $form-range-thumb-width;
|
83
|
-
height: $form-range-thumb-height;
|
84
|
-
margin-top: 0; // Edge specific
|
85
|
-
margin-right: $form-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
|
86
|
-
margin-left: $form-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
|
87
|
-
@include gradient-bg($form-range-thumb-bg);
|
88
|
-
border: $form-range-thumb-border;
|
89
|
-
@include border-radius($form-range-thumb-border-radius);
|
90
|
-
@include box-shadow($form-range-thumb-box-shadow);
|
91
|
-
@include transition($form-range-thumb-transition);
|
92
|
-
appearance: none;
|
93
|
-
|
94
|
-
&:active {
|
95
|
-
@include gradient-bg($form-range-thumb-active-bg);
|
96
|
-
}
|
97
|
-
}
|
98
|
-
|
99
|
-
&::-ms-track {
|
100
|
-
width: $form-range-track-width;
|
101
|
-
height: $form-range-track-height;
|
102
|
-
color: transparent;
|
103
|
-
cursor: $form-range-track-cursor;
|
104
|
-
background-color: transparent;
|
105
|
-
border-color: transparent;
|
106
|
-
border-width: $form-range-thumb-height / 2;
|
107
|
-
@include box-shadow($form-range-track-box-shadow);
|
108
|
-
}
|
109
|
-
|
110
|
-
&::-ms-fill-lower {
|
111
|
-
background-color: $form-range-track-bg;
|
112
|
-
@include border-radius($form-range-track-border-radius);
|
113
|
-
}
|
114
|
-
|
115
|
-
&::-ms-fill-upper {
|
116
|
-
margin-right: 15px; // arbitrary?
|
117
|
-
background-color: $form-range-track-bg;
|
118
|
-
@include border-radius($form-range-track-border-radius);
|
119
|
-
}
|
120
|
-
|
121
80
|
&:disabled {
|
122
81
|
pointer-events: none;
|
123
82
|
|
@@ -128,9 +87,5 @@
|
|
128
87
|
&::-moz-range-thumb {
|
129
88
|
background-color: $form-range-thumb-disabled-bg;
|
130
89
|
}
|
131
|
-
|
132
|
-
&::-ms-thumb {
|
133
|
-
background-color: $form-range-thumb-disabled-bg;
|
134
|
-
}
|
135
90
|
}
|
136
91
|
}
|
@@ -6,7 +6,6 @@
|
|
6
6
|
.form-select {
|
7
7
|
display: block;
|
8
8
|
width: 100%;
|
9
|
-
height: $form-select-height;
|
10
9
|
padding: $form-select-padding-y ($form-select-padding-x + $form-select-indicator-padding) $form-select-padding-y $form-select-padding-x;
|
11
10
|
font-family: $form-select-font-family;
|
12
11
|
@include font-size($form-select-font-size);
|
@@ -33,21 +32,10 @@
|
|
33
32
|
// Avoid using mixin so we can pass custom focus shadow properly
|
34
33
|
box-shadow: $form-select-focus-box-shadow;
|
35
34
|
}
|
36
|
-
|
37
|
-
&::-ms-value {
|
38
|
-
// For visual consistency with other platforms/browsers,
|
39
|
-
// suppress the default white text on blue background highlight given to
|
40
|
-
// the selected option text when the (still closed) <select> receives focus
|
41
|
-
// in Edge.
|
42
|
-
// See https://github.com/twbs/bootstrap/issues/19398.
|
43
|
-
color: $input-color;
|
44
|
-
background-color: $input-bg;
|
45
|
-
}
|
46
35
|
}
|
47
36
|
|
48
37
|
&[multiple],
|
49
38
|
&[size]:not([size="1"]) {
|
50
|
-
height: auto;
|
51
39
|
padding-right: $form-select-padding-x;
|
52
40
|
background-image: none;
|
53
41
|
}
|
@@ -66,7 +54,6 @@
|
|
66
54
|
}
|
67
55
|
|
68
56
|
.form-select-sm {
|
69
|
-
height: $form-select-height-sm;
|
70
57
|
padding-top: $form-select-padding-y-sm;
|
71
58
|
padding-bottom: $form-select-padding-y-sm;
|
72
59
|
padding-left: $form-select-padding-x-sm;
|
@@ -74,7 +61,6 @@
|
|
74
61
|
}
|
75
62
|
|
76
63
|
.form-select-lg {
|
77
|
-
height: $form-select-height-lg;
|
78
64
|
padding-top: $form-select-padding-y-lg;
|
79
65
|
padding-bottom: $form-select-padding-y-lg;
|
80
66
|
padding-left: $form-select-padding-x-lg;
|
@@ -10,8 +10,7 @@
|
|
10
10
|
width: 100%;
|
11
11
|
|
12
12
|
> .form-control,
|
13
|
-
> .form-select
|
14
|
-
> .form-file {
|
13
|
+
> .form-select {
|
15
14
|
position: relative; // For focus state's z-index
|
16
15
|
flex: 1 1 auto;
|
17
16
|
width: 1%;
|
@@ -20,26 +19,10 @@
|
|
20
19
|
|
21
20
|
// Bring the "active" form control to the top of surrounding elements
|
22
21
|
> .form-control:focus,
|
23
|
-
> .form-select:focus
|
24
|
-
> .form-file .form-file-input:focus ~ .form-file-label {
|
22
|
+
> .form-select:focus {
|
25
23
|
z-index: 3;
|
26
24
|
}
|
27
25
|
|
28
|
-
// Bring the custom file input above the label
|
29
|
-
> .form-file {
|
30
|
-
> .form-file-input:focus {
|
31
|
-
z-index: 4;
|
32
|
-
}
|
33
|
-
|
34
|
-
&:not(:last-child) > .form-file-label {
|
35
|
-
@include border-right-radius(0);
|
36
|
-
}
|
37
|
-
|
38
|
-
&:not(:first-child) > .form-file-label {
|
39
|
-
@include border-left-radius(0);
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|
43
26
|
// Ensure buttons are always above inputs for more visually pleasing borders.
|
44
27
|
// This isn't needed for `.input-group-text` since it shares the same border-color
|
45
28
|
// as our inputs.
|
@@ -80,14 +63,6 @@
|
|
80
63
|
// Remix the default form control sizing classes into new ones for easier
|
81
64
|
// manipulation.
|
82
65
|
|
83
|
-
.input-group-lg > .form-control {
|
84
|
-
min-height: $input-height-lg;
|
85
|
-
}
|
86
|
-
|
87
|
-
.input-group-lg > .form-select {
|
88
|
-
height: $input-height-lg;
|
89
|
-
}
|
90
|
-
|
91
66
|
.input-group-lg > .form-control,
|
92
67
|
.input-group-lg > .form-select,
|
93
68
|
.input-group-lg > .input-group-text,
|
@@ -97,14 +72,6 @@
|
|
97
72
|
@include border-radius($input-border-radius-lg);
|
98
73
|
}
|
99
74
|
|
100
|
-
.input-group-sm > .form-control {
|
101
|
-
min-height: $input-height-sm;
|
102
|
-
}
|
103
|
-
|
104
|
-
.input-group-sm > .form-select {
|
105
|
-
height: $input-height-sm;
|
106
|
-
}
|
107
|
-
|
108
75
|
.input-group-sm > .form-control,
|
109
76
|
.input-group-sm > .form-select,
|
110
77
|
.input-group-sm > .input-group-text,
|
@@ -128,12 +95,26 @@
|
|
128
95
|
|
129
96
|
// stylelint-disable-next-line no-duplicate-selectors
|
130
97
|
.input-group {
|
131
|
-
|
132
|
-
|
133
|
-
|
98
|
+
&:not(.has-validation) {
|
99
|
+
> :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
|
100
|
+
> .dropdown-toggle:nth-last-child(n + 3) {
|
101
|
+
@include border-right-radius(0);
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
&.has-validation {
|
106
|
+
> :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu),
|
107
|
+
> .dropdown-toggle:nth-last-child(n + 4) {
|
108
|
+
@include border-right-radius(0);
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
$validation-messages: "";
|
113
|
+
@each $state in map-keys($form-validation-states) {
|
114
|
+
$validation-messages: $validation-messages + ":not(." + unquote($state) + "-tooltip)" + ":not(." + unquote($state) + "-feedback)";
|
134
115
|
}
|
135
116
|
|
136
|
-
> :not(:first-child):not(.dropdown-menu) {
|
117
|
+
> :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
|
137
118
|
margin-left: -$input-border-width;
|
138
119
|
@include border-left-radius(0);
|
139
120
|
}
|