@coreui/coreui 5.0.0-alpha.0 → 5.0.0-alpha.1

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 (205) hide show
  1. package/LICENSE +5 -5
  2. package/README.md +2 -2
  3. package/dist/css/coreui-grid.css +34 -192
  4. package/dist/css/coreui-grid.css.map +1 -1
  5. package/dist/css/coreui-grid.min.css +3 -3
  6. package/dist/css/coreui-grid.min.css.map +1 -1
  7. package/dist/css/coreui-grid.rtl.css +123 -275
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +7 -3
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +151 -138
  12. package/dist/css/coreui-reboot.css.map +1 -1
  13. package/dist/css/coreui-reboot.min.css +3 -3
  14. package/dist/css/coreui-reboot.min.css.map +1 -1
  15. package/dist/css/coreui-reboot.rtl.css +160 -146
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +7 -3
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +633 -412
  20. package/dist/css/coreui-utilities.css.map +1 -1
  21. package/dist/css/coreui-utilities.min.css +3 -3
  22. package/dist/css/coreui-utilities.min.css.map +1 -1
  23. package/dist/css/coreui-utilities.rtl.css +809 -688
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +7 -3
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +1925 -1617
  28. package/dist/css/coreui.css.map +1 -1
  29. package/dist/css/coreui.min.css +3 -3
  30. package/dist/css/coreui.min.css.map +1 -1
  31. package/dist/css/coreui.rtl.css +2238 -2091
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +7 -3
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/js/coreui.bundle.js +302 -289
  36. package/dist/js/coreui.bundle.js.map +1 -1
  37. package/dist/js/coreui.bundle.min.js +2 -2
  38. package/dist/js/coreui.bundle.min.js.map +1 -1
  39. package/dist/js/coreui.esm.js +262 -243
  40. package/dist/js/coreui.esm.js.map +1 -1
  41. package/dist/js/coreui.esm.min.js +2 -2
  42. package/dist/js/coreui.esm.min.js.map +1 -1
  43. package/dist/js/coreui.js +265 -245
  44. package/dist/js/coreui.js.map +1 -1
  45. package/dist/js/coreui.min.js +2 -2
  46. package/dist/js/coreui.min.js.map +1 -1
  47. package/js/dist/alert.js +7 -6
  48. package/js/dist/alert.js.map +1 -1
  49. package/js/dist/base-component.js +8 -7
  50. package/js/dist/base-component.js.map +1 -1
  51. package/js/dist/button.js +7 -6
  52. package/js/dist/button.js.map +1 -1
  53. package/js/dist/carousel.js +8 -7
  54. package/js/dist/carousel.js.map +1 -1
  55. package/js/dist/collapse.js +7 -6
  56. package/js/dist/collapse.js.map +1 -1
  57. package/js/dist/dom/data.js +3 -3
  58. package/js/dist/dom/data.js.map +1 -1
  59. package/js/dist/dom/event-handler.js +7 -7
  60. package/js/dist/dom/event-handler.js.map +1 -1
  61. package/js/dist/dom/manipulator.js +4 -4
  62. package/js/dist/dom/manipulator.js.map +1 -1
  63. package/js/dist/dom/selector-engine.js +4 -3
  64. package/js/dist/dom/selector-engine.js.map +1 -1
  65. package/js/dist/dropdown.js +10 -9
  66. package/js/dist/dropdown.js.map +1 -1
  67. package/js/dist/modal.js +9 -10
  68. package/js/dist/modal.js.map +1 -1
  69. package/js/dist/navigation.js +7 -6
  70. package/js/dist/navigation.js.map +1 -1
  71. package/js/dist/offcanvas.js +11 -10
  72. package/js/dist/offcanvas.js.map +1 -1
  73. package/js/dist/popover.js +7 -6
  74. package/js/dist/popover.js.map +1 -1
  75. package/js/dist/scrollspy.js +9 -8
  76. package/js/dist/scrollspy.js.map +1 -1
  77. package/js/dist/sidebar.js +7 -6
  78. package/js/dist/sidebar.js.map +1 -1
  79. package/js/dist/tab.js +10 -9
  80. package/js/dist/tab.js.map +1 -1
  81. package/js/dist/toast.js +7 -6
  82. package/js/dist/toast.js.map +1 -1
  83. package/js/dist/tooltip.js +12 -11
  84. package/js/dist/tooltip.js.map +1 -1
  85. package/js/dist/util/backdrop.js +8 -7
  86. package/js/dist/util/backdrop.js.map +1 -1
  87. package/js/dist/util/component-functions.js +8 -7
  88. package/js/dist/util/component-functions.js.map +1 -1
  89. package/js/dist/util/config.js +8 -7
  90. package/js/dist/util/config.js.map +1 -1
  91. package/js/dist/util/focustrap.js +4 -3
  92. package/js/dist/util/focustrap.js.map +1 -1
  93. package/js/dist/util/index.js +3 -3
  94. package/js/dist/util/index.js.map +1 -1
  95. package/js/dist/util/sanitizer.js +28 -30
  96. package/js/dist/util/sanitizer.js.map +1 -1
  97. package/js/dist/util/scrollbar.js +8 -7
  98. package/js/dist/util/scrollbar.js.map +1 -1
  99. package/js/dist/util/swipe.js +8 -7
  100. package/js/dist/util/swipe.js.map +1 -1
  101. package/js/dist/util/template-factory.js +8 -7
  102. package/js/dist/util/template-factory.js.map +1 -1
  103. package/js/index.esm.js +21 -0
  104. package/js/index.umd.js +38 -0
  105. package/js/src/alert.js +3 -3
  106. package/js/src/base-component.js +3 -3
  107. package/js/src/button.js +4 -3
  108. package/js/src/carousel.js +6 -6
  109. package/js/src/collapse.js +4 -4
  110. package/js/src/dom/data.js +2 -2
  111. package/js/src/dom/event-handler.js +4 -5
  112. package/js/src/dom/manipulator.js +3 -3
  113. package/js/src/dom/selector-engine.js +2 -2
  114. package/js/src/dropdown.js +8 -8
  115. package/js/src/modal.js +8 -9
  116. package/js/src/navigation.js +3 -3
  117. package/js/src/offcanvas.js +11 -11
  118. package/js/src/popover.js +2 -2
  119. package/js/src/scrollspy.js +5 -5
  120. package/js/src/sidebar.js +4 -4
  121. package/js/src/tab.js +6 -6
  122. package/js/src/toast.js +3 -3
  123. package/js/src/tooltip.js +9 -9
  124. package/js/src/util/backdrop.js +3 -3
  125. package/js/src/util/component-functions.js +3 -3
  126. package/js/src/util/config.js +3 -3
  127. package/js/src/util/focustrap.js +2 -2
  128. package/js/src/util/index.js +2 -2
  129. package/js/src/util/sanitizer.js +40 -43
  130. package/js/src/util/scrollbar.js +3 -3
  131. package/js/src/util/swipe.js +3 -3
  132. package/js/src/util/template-factory.js +4 -5
  133. package/package.json +51 -45
  134. package/scss/_alert.scss +5 -5
  135. package/scss/_avatar.scss +4 -4
  136. package/scss/_badge.scss +11 -1
  137. package/scss/_breadcrumb.scss +9 -4
  138. package/scss/_button-group.scss +2 -2
  139. package/scss/_buttons.scss +38 -71
  140. package/scss/_callout.scss +2 -2
  141. package/scss/_card.scss +1 -0
  142. package/scss/_carousel.scss +9 -3
  143. package/scss/_close.scss +2 -0
  144. package/scss/_dropdown.scss +10 -10
  145. package/scss/_functions.scss +59 -0
  146. package/scss/_grid.scss +8 -0
  147. package/scss/_header.scss +195 -0
  148. package/scss/_helpers.scss +2 -0
  149. package/scss/_images.scss +3 -3
  150. package/scss/_list-group.scss +12 -19
  151. package/scss/_maps.scss +75 -21
  152. package/scss/_mixins.scss +6 -4
  153. package/scss/_modal.scss +2 -2
  154. package/scss/_nav.scss +9 -39
  155. package/scss/_navbar.scss +11 -8
  156. package/scss/_offcanvas.scss +8 -8
  157. package/scss/_pagination.scss +2 -2
  158. package/scss/_progress.scss +43 -0
  159. package/scss/_reboot.scss +19 -21
  160. package/scss/_root.scss +65 -64
  161. package/scss/_sidebar.scss +0 -11
  162. package/scss/_subheader.scss +72 -0
  163. package/scss/_tables.scss +18 -11
  164. package/scss/_toasts.scss +2 -2
  165. package/scss/_tooltip.scss +13 -14
  166. package/scss/_utilities.scss +117 -65
  167. package/scss/_variables-dark.scss +115 -55
  168. package/scss/_variables.scss +400 -247
  169. package/scss/coreui-grid.rtl.scss +7 -0
  170. package/scss/coreui-grid.scss +2 -5
  171. package/scss/coreui-reboot.rtl.scss +7 -0
  172. package/scss/coreui-reboot.scss +1 -1
  173. package/scss/coreui-utilities.rtl.scss +7 -0
  174. package/scss/coreui-utilities.scss +1 -1
  175. package/scss/coreui.rtl.scss +7 -0
  176. package/scss/coreui.scss +4 -3
  177. package/scss/forms/_floating-labels.scss +19 -15
  178. package/scss/forms/_form-check.scss +29 -8
  179. package/scss/forms/_form-control.scss +17 -4
  180. package/scss/forms/_form-select.scss +6 -7
  181. package/scss/forms/_input-group.scss +5 -5
  182. package/scss/helpers/_color-bg.scss +12 -2
  183. package/scss/helpers/_colored-links.scss +20 -2
  184. package/scss/helpers/_focus-ring.scss +5 -0
  185. package/scss/helpers/_icon-link.scss +25 -0
  186. package/scss/helpers/_ratio.scss +1 -1
  187. package/scss/helpers/_vr.scss +1 -0
  188. package/scss/mixins/_alert.scss +1 -1
  189. package/scss/mixins/_banner.scss +3 -3
  190. package/scss/mixins/_border-radius.scss +7 -7
  191. package/scss/mixins/_buttons.scss +53 -49
  192. package/scss/mixins/_forms.scss +7 -7
  193. package/scss/mixins/_grid.scss +1 -1
  194. package/scss/mixins/_list-group.scss +12 -20
  195. package/scss/mixins/_lists.scss +1 -1
  196. package/scss/mixins/_ltr-rtl.scss +87 -0
  197. package/scss/mixins/_utilities.scss +6 -1
  198. package/scss/mixins/_visually-hidden.scss +5 -1
  199. package/scss/sidebar/_sidebar-narrow.scss +6 -6
  200. package/scss/sidebar/_sidebar-nav.scss +4 -4
  201. package/scss/sidebar/_sidebar.scss +30 -22
  202. package/scss/vendor/_rfs.scss +24 -30
  203. package/scss/tests/mixins/_color-modes.test.scss +0 -69
  204. package/scss/tests/mixins/_utilities.test.scss +0 -393
  205. package/scss/tests/utilities/_api.test.scss +0 -75
@@ -0,0 +1,7 @@
1
+ @import "mixins/banner";
2
+ @include bsBanner("");
3
+
4
+ $enable-ltr: false !default;
5
+ $enable-rtl: true !default;
6
+
7
+ @import "coreui-grid";
@@ -1,5 +1,5 @@
1
1
  @import "mixins/banner";
2
- @include cuiBanner(Grid);
2
+ @include bsBanner(Grid);
3
3
 
4
4
  $include-column-box-sizing: true !default;
5
5
 
@@ -8,17 +8,14 @@ $include-column-box-sizing: true !default;
8
8
  @import "variables-dark";
9
9
  @import "maps";
10
10
 
11
- @import "mixins/lists";
11
+ @import "mixins/ltr-rtl";
12
12
  @import "mixins/breakpoints";
13
- @import "mixins/color-mode";
14
13
  @import "mixins/container";
15
14
  @import "mixins/grid";
16
15
  @import "mixins/utilities";
17
16
 
18
17
  @import "vendor/rfs";
19
18
 
20
- @import "root";
21
-
22
19
  @import "containers";
23
20
  @import "grid";
24
21
 
@@ -0,0 +1,7 @@
1
+ @import "mixins/banner";
2
+ @include bsBanner("");
3
+
4
+ $enable-ltr: false !default;
5
+ $enable-rtl: true !default;
6
+
7
+ @import "coreui-reboot";
@@ -1,5 +1,5 @@
1
1
  @import "mixins/banner";
2
- @include cuiBanner(Reboot);
2
+ @include bsBanner(Reboot);
3
3
 
4
4
  @import "functions";
5
5
  @import "variables";
@@ -0,0 +1,7 @@
1
+ @import "mixins/banner";
2
+ @include bsBanner("");
3
+
4
+ $enable-ltr: false !default;
5
+ $enable-rtl: true !default;
6
+
7
+ @import "coreui-utilities";
@@ -1,5 +1,5 @@
1
1
  @import "mixins/banner";
2
- @include cuiBanner(Utilities);
2
+ @include bsBanner(Utilities);
3
3
 
4
4
  // Configuration
5
5
  @import "functions";
@@ -0,0 +1,7 @@
1
+ @import "mixins/banner";
2
+ @include bsBanner("");
3
+
4
+ $enable-ltr: false !default;
5
+ $enable-rtl: true !default;
6
+
7
+ @import "coreui";
package/scss/coreui.scss CHANGED
@@ -1,6 +1,5 @@
1
1
  @import "mixins/banner";
2
- @include cuiBanner("");
3
-
2
+ @include bsBanner("");
4
3
 
5
4
  // scss-docs-start import-stack
6
5
  // Configuration
@@ -46,9 +45,11 @@
46
45
 
47
46
  @import "avatar";
48
47
  @import "callout";
49
- @import "icon";
50
48
  @import "footer";
49
+ @import "header";
50
+ @import "icon";
51
51
  @import "sidebar";
52
+ @import "subheader";
52
53
 
53
54
  // Helpers
54
55
  @import "helpers";
@@ -1,21 +1,11 @@
1
1
  .form-floating {
2
2
  position: relative;
3
3
 
4
- &::before:not(.form-control:disabled) {
5
- position: absolute;
6
- top: $input-border-width;
7
- left: $input-border-width;
8
- width: subtract(100%, add($input-height-inner-quarter, $input-height-inner-half));
9
- height: $form-floating-label-height;
10
- content: "";
11
- background-color: $input-bg;
12
- @include border-radius($input-border-radius);
13
- }
14
-
15
4
  > .form-control,
16
5
  > .form-control-plaintext,
17
6
  > .form-select {
18
7
  height: $form-floating-height;
8
+ min-height: $form-floating-height;
19
9
  line-height: $form-floating-line-height;
20
10
  }
21
11
 
@@ -23,7 +13,7 @@
23
13
  position: absolute;
24
14
  top: 0;
25
15
  left: 0;
26
- width: 100%;
16
+ z-index: 2;
27
17
  height: 100%; // allow textareas
28
18
  padding: $form-floating-padding-y $form-floating-padding-x;
29
19
  overflow: hidden;
@@ -66,14 +56,24 @@
66
56
  > .form-control-plaintext,
67
57
  > .form-select {
68
58
  ~ label {
69
- opacity: $form-floating-label-opacity;
59
+ color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
70
60
  transform: $form-floating-label-transform;
61
+
62
+ &::after {
63
+ position: absolute;
64
+ inset: $form-floating-padding-y ($form-floating-padding-x * .5);
65
+ z-index: -1;
66
+ height: $form-floating-label-height;
67
+ content: "";
68
+ background-color: $input-bg;
69
+ @include border-radius($input-border-radius);
70
+ }
71
71
  }
72
72
  }
73
73
  // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
74
74
  > .form-control:-webkit-autofill {
75
75
  ~ label {
76
- opacity: $form-floating-label-opacity;
76
+ color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
77
77
  transform: $form-floating-label-transform;
78
78
  }
79
79
  }
@@ -84,7 +84,11 @@
84
84
  }
85
85
  }
86
86
 
87
- > .form-control:disabled ~ label {
87
+ > :disabled ~ label {
88
88
  color: $form-floating-label-disabled-color;
89
+
90
+ &::after {
91
+ background-color: $input-disabled-bg;
92
+ }
89
93
  }
90
94
  }
@@ -5,12 +5,12 @@
5
5
  .form-check {
6
6
  display: block;
7
7
  min-height: $form-check-min-height;
8
- padding-left: $form-check-padding-start;
8
+ @include ltr-rtl("padding-left", $form-check-padding-start);
9
9
  margin-bottom: $form-check-margin-bottom;
10
10
 
11
11
  .form-check-input {
12
- float: left;
13
- margin-left: $form-check-padding-start * -1;
12
+ @include ltr-rtl("float", left);
13
+ @include ltr-rtl("margin-left", $form-check-padding-start * -1);
14
14
  }
15
15
  }
16
16
 
@@ -63,8 +63,8 @@
63
63
  }
64
64
 
65
65
  &:checked {
66
- background-color: $form-check-input-checked-bg-color;
67
- border-color: $form-check-input-checked-border-color;
66
+ background-color: var(--#{$prefix}form-check-input-checked-bg-color, $form-check-input-checked-bg-color);
67
+ border-color: var(--#{$prefix}form-check-input-checked-border-color, $form-check-input-checked-border-color);
68
68
 
69
69
  &[type="checkbox"] {
70
70
  @if $enable-gradients {
@@ -112,7 +112,7 @@
112
112
  }
113
113
 
114
114
  .form-check-label {
115
- color: $form-check-label-color;
115
+ color: var(--#{$prefix}form-check-label-color, $form-check-label-color);
116
116
  cursor: $form-check-label-cursor;
117
117
  }
118
118
 
@@ -121,7 +121,7 @@
121
121
  //
122
122
 
123
123
  .form-switch {
124
- padding-left: $form-switch-padding-start;
124
+ @include ltr-rtl("padding-left", $form-switch-padding-start);
125
125
 
126
126
  .form-check-input {
127
127
  --#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image)};
@@ -159,9 +159,30 @@
159
159
  }
160
160
  }
161
161
 
162
+ @each $size, $map in $form-switch-widths {
163
+ $width: map-get($map, "width");
164
+ $height: map-get($map, "height");
165
+
166
+ .form-switch-#{$size} {
167
+ min-height: $height;
168
+ @include ltr-rtl("padding-left", $width + .5em);
169
+
170
+ .form-check-input {
171
+ width: $width;
172
+ height: $height;
173
+ @include ltr-rtl("margin-left", ($width + .5em) * -1);
174
+ }
175
+
176
+ .form-check-label {
177
+ // stylelint-disable-next-line function-disallowed-list
178
+ padding-top: calc((#{$height} - #{$font-size-base}) / 2);
179
+ }
180
+ }
181
+ }
182
+
162
183
  .form-check-inline {
163
184
  display: inline-block;
164
- margin-right: $form-check-inline-margin-end;
185
+ @include ltr-rtl("margin-right", $form-check-inline-margin-end);
165
186
  }
166
187
 
167
188
  .btn-check {
@@ -44,12 +44,24 @@
44
44
  }
45
45
  }
46
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
47
  &::-webkit-date-and-time-value {
48
+ // On Android Chrome, form-control's "width: 100%" makes the input width too small
49
+ // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109
50
+ //
51
+ // On iOS Safari, form-control's "appearance: none" + "width: 100%" makes the input width too small
52
+ // Tested under iOS 16.2 / Safari 16.2
53
+ min-width: 85px; // Seems to be a good minimum safe width
54
+
55
+ // Add some height to date inputs on iOS
56
+ // https://github.com/twbs/bootstrap/issues/23307
57
+ // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
51
58
  // Multiply line-height by 1em if it has no unit
52
59
  height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
60
+
61
+ // Android Chrome type="date" is taller than the other inputs
62
+ // because of "margin: 1px 24px 1px 4px" inside the shadow DOM
63
+ // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109
64
+ margin: 0;
53
65
  }
54
66
 
55
67
  // Prevent excessive date input height in Webkit
@@ -61,7 +73,7 @@
61
73
 
62
74
  // Placeholder
63
75
  &::placeholder {
64
- color: $input-placeholder-color;
76
+ color: var(--#{$prefix}input-placeholder-color, $input-placeholder-color);
65
77
  // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
66
78
  opacity: 1;
67
79
  }
@@ -193,6 +205,7 @@ textarea {
193
205
  }
194
206
 
195
207
  &::-webkit-color-swatch {
208
+ border: 0 !important; // stylelint-disable-line declaration-no-important
196
209
  @include border-radius($input-border-radius);
197
210
  }
198
211
 
@@ -8,8 +8,7 @@
8
8
 
9
9
  display: block;
10
10
  width: 100%;
11
- padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
12
- -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
11
+ @include ltr-rtl-value-only("padding", $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x, $form-select-padding-y $form-select-padding-x $form-select-padding-y $form-select-indicator-padding);
13
12
  font-family: $form-select-font-family;
14
13
  @include font-size($form-select-font-size);
15
14
  font-weight: $form-select-font-weight;
@@ -18,7 +17,7 @@
18
17
  background-color: $form-select-bg;
19
18
  background-image: var(--#{$prefix}form-select-bg-img), var(--#{$prefix}form-select-bg-icon, none);
20
19
  background-repeat: no-repeat;
21
- background-position: $form-select-bg-position;
20
+ @include ltr-rtl-value-only("background-position", $form-select-bg-position);
22
21
  background-size: $form-select-bg-size;
23
22
  border: $form-select-border-width solid $form-select-border-color;
24
23
  @include border-radius($form-select-border-radius, 0);
@@ -27,7 +26,7 @@
27
26
  appearance: none;
28
27
 
29
28
  &:focus {
30
- border-color: $form-select-focus-border-color;
29
+ border-color: var($form-select-focus-border-color);
31
30
  outline: 0;
32
31
  @if $enable-shadows {
33
32
  @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);
@@ -39,7 +38,7 @@
39
38
 
40
39
  &[multiple],
41
40
  &[size]:not([size="1"]) {
42
- padding-right: $form-select-padding-x;
41
+ @include ltr-rtl("padding-right", $form-select-padding-x);
43
42
  background-image: none;
44
43
  }
45
44
 
@@ -59,7 +58,7 @@
59
58
  .form-select-sm {
60
59
  padding-top: $form-select-padding-y-sm;
61
60
  padding-bottom: $form-select-padding-y-sm;
62
- padding-left: $form-select-padding-x-sm;
61
+ @include ltr-rtl("padding-left", $form-select-padding-x-sm);
63
62
  @include font-size($form-select-font-size-sm);
64
63
  @include border-radius($form-select-border-radius-sm);
65
64
  }
@@ -67,7 +66,7 @@
67
66
  .form-select-lg {
68
67
  padding-top: $form-select-padding-y-lg;
69
68
  padding-bottom: $form-select-padding-y-lg;
70
- padding-left: $form-select-padding-x-lg;
69
+ @include ltr-rtl("padding-left", $form-select-padding-x-lg);
71
70
  @include font-size($form-select-font-size-lg);
72
71
  @include border-radius($form-select-border-radius-lg);
73
72
  }
@@ -51,11 +51,11 @@
51
51
  @include font-size($input-font-size); // Match inputs
52
52
  font-weight: $input-group-addon-font-weight;
53
53
  line-height: $input-line-height;
54
- color: $input-group-addon-color;
54
+ color: var(--#{$prefix}input-group-addon-color, $input-group-addon-color);
55
55
  text-align: center;
56
56
  white-space: nowrap;
57
- background-color: $input-group-addon-bg;
58
- border: $input-border-width solid $input-group-addon-border-color;
57
+ background-color: var(--#{$prefix}input-group-addon-bg, $input-group-addon-bg);
58
+ border: $input-border-width solid var(--#{$prefix}input-group-addon-border-color, $input-group-addon-border-color);
59
59
  @include border-radius($input-border-radius);
60
60
  }
61
61
 
@@ -85,7 +85,7 @@
85
85
 
86
86
  .input-group-lg > .form-select,
87
87
  .input-group-sm > .form-select {
88
- padding-right: $form-select-padding-x + $form-select-indicator-padding;
88
+ @include ltr-rtl("padding-right", $form-select-padding-x + $form-select-indicator-padding);
89
89
  }
90
90
 
91
91
 
@@ -121,7 +121,7 @@
121
121
  }
122
122
 
123
123
  > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
124
- margin-left: calc($input-border-width * -1); // stylelint-disable-line function-disallowed-list
124
+ @include ltr-rtl("margin-left", calc(#{$input-border-width} * -1));
125
125
  @include border-start-radius(0);
126
126
  }
127
127
 
@@ -1,5 +1,3 @@
1
- // stylelint-disable function-name-case
2
-
3
1
  // All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251
4
2
  @each $color, $value in $theme-colors {
5
3
  $color-rgb: to-rgb($value);
@@ -8,3 +6,15 @@
8
6
  background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
9
7
  }
10
8
  }
9
+
10
+ @if $enable-dark-mode {
11
+ @include color-mode(dark) {
12
+ @each $color, $value in $theme-colors-dark {
13
+ $color-rgb: to-rgb($value);
14
+ .text-bg-#{$color} {
15
+ color: color-contrast($value) if($enable-important-utilities, !important, null);
16
+ background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
17
+ }
18
+ }
19
+ }
20
+ }
@@ -1,12 +1,30 @@
1
+ // All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251
1
2
  @each $color, $value in $theme-colors {
2
3
  .link-#{$color} {
3
- color: $value if($enable-important-utilities, !important, null);
4
+ color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}link-opacity, 1)) if($enable-important-utilities, !important, null);
5
+ text-decoration-color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}link-underline-opacity, 1)) if($enable-important-utilities, !important, null);
4
6
 
5
7
  @if $link-shade-percentage != 0 {
6
8
  &:hover,
7
9
  &:focus {
8
- color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) if($enable-important-utilities, !important, null);
10
+ $hover-color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage));
11
+ color: RGBA(#{to-rgb($hover-color)}, var(--#{$prefix}link-opacity, 1)) if($enable-important-utilities, !important, null);
12
+ text-decoration-color: RGBA(to-rgb($hover-color), var(--#{$prefix}link-underline-opacity, 1)) if($enable-important-utilities, !important, null);
9
13
  }
10
14
  }
11
15
  }
12
16
  }
17
+
18
+ // One-off special link helper as a bridge until v6
19
+ .link-body-emphasis {
20
+ color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-opacity, 1)) if($enable-important-utilities, !important, null);
21
+ text-decoration-color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-underline-opacity, 1)) if($enable-important-utilities, !important, null);
22
+
23
+ @if $link-shade-percentage != 0 {
24
+ &:hover,
25
+ &:focus {
26
+ color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-opacity, .75)) if($enable-important-utilities, !important, null);
27
+ text-decoration-color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-underline-opacity, .75)) if($enable-important-utilities, !important, null);
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,5 @@
1
+ .focus-ring:focus {
2
+ outline: 0;
3
+ // By default, there is no `--cui-focus-ring-x`, `--cui-focus-ring-y`, or `--cui-focus-ring-blur`, but we provide CSS variables with fallbacks to initial `0` values
4
+ box-shadow: var(--#{$prefix}focus-ring-x, 0) var(--#{$prefix}focus-ring-y, 0) var(--#{$prefix}focus-ring-blur, 0) var(--#{$prefix}focus-ring-width) var(--#{$prefix}focus-ring-color);
5
+ }
@@ -0,0 +1,25 @@
1
+ .icon-link {
2
+ display: inline-flex;
3
+ gap: $icon-link-gap;
4
+ align-items: center;
5
+ text-decoration-color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, .5));
6
+ text-underline-offset: $icon-link-underline-offset;
7
+ backface-visibility: hidden;
8
+
9
+ > .bi {
10
+ flex-shrink: 0;
11
+ width: $icon-link-icon-size;
12
+ height: $icon-link-icon-size;
13
+ fill: currentcolor;
14
+ @include transition($icon-link-icon-transition);
15
+ }
16
+ }
17
+
18
+ .icon-link-hover {
19
+ &:hover,
20
+ &:focus-visible {
21
+ > .bi {
22
+ transform: var(--#{$prefix}icon-link-transform, $icon-link-icon-transform);
23
+ }
24
+ }
25
+ }
@@ -13,7 +13,7 @@
13
13
  > * {
14
14
  position: absolute;
15
15
  top: 0;
16
- left: 0;
16
+ @include ltr-rtl("left", 0);
17
17
  width: 100%;
18
18
  height: 100%;
19
19
  }
@@ -3,6 +3,7 @@
3
3
  align-self: stretch;
4
4
  width: 1px;
5
5
  min-height: 1em;
6
+ padding: 0;
6
7
  background-color: currentcolor;
7
8
  opacity: $hr-opacity;
8
9
  }
@@ -1,4 +1,4 @@
1
- @include deprecate("`alert-variant()`", "v5.0.0", "v6.0.0");
1
+ @include deprecate("`alert-variant()`", "v4.3.0", "v6.0.0");
2
2
 
3
3
  // scss-docs-start alert-variant-mixin
4
4
  @mixin alert-variant($background, $border, $color) {
@@ -1,7 +1,7 @@
1
- @mixin cuiBanner($file) {
1
+ @mixin bsBanner($file) {
2
2
  /*!
3
- * CoreUI #{$file} v5.0.0-alpha.0 (https://getbootstrap.com/)
4
- * Copyright (c) 2022 creativeLabs Łukasz Holeczek
3
+ * CoreUI #{$file} v5.0.0-alpha.1 (https://coreui.io)
4
+ * Copyright (c) 2023 creativeLabs Łukasz Holeczek
5
5
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
6
6
  */
7
7
  }
@@ -33,8 +33,8 @@
33
33
 
34
34
  @mixin border-end-radius($radius: $border-radius) {
35
35
  @if $enable-rounded {
36
- border-top-right-radius: valid-radius($radius);
37
- border-bottom-right-radius: valid-radius($radius);
36
+ @include ltr-rtl("border-top-right-radius", valid-radius($radius));
37
+ @include ltr-rtl("border-bottom-right-radius", valid-radius($radius));
38
38
  }
39
39
  }
40
40
 
@@ -47,8 +47,8 @@
47
47
 
48
48
  @mixin border-start-radius($radius: $border-radius) {
49
49
  @if $enable-rounded {
50
- border-top-left-radius: valid-radius($radius);
51
- border-bottom-left-radius: valid-radius($radius);
50
+ @include ltr-rtl("border-top-left-radius", valid-radius($radius));
51
+ @include ltr-rtl("border-bottom-left-radius", valid-radius($radius));
52
52
  }
53
53
  }
54
54
 
@@ -60,19 +60,19 @@
60
60
 
61
61
  @mixin border-top-end-radius($radius: $border-radius) {
62
62
  @if $enable-rounded {
63
- border-top-right-radius: valid-radius($radius);
63
+ @include ltr-rtl("border-top-right-radius", valid-radius($radius));
64
64
  }
65
65
  }
66
66
 
67
67
  @mixin border-bottom-end-radius($radius: $border-radius) {
68
68
  @if $enable-rounded {
69
- border-bottom-right-radius: valid-radius($radius);
69
+ @include ltr-rtl("border-bottom-right-radius", valid-radius($radius));
70
70
  }
71
71
  }
72
72
 
73
73
  @mixin border-bottom-start-radius($radius: $border-radius) {
74
74
  @if $enable-rounded {
75
- border-bottom-left-radius: valid-radius($radius);
75
+ @include ltr-rtl("border-bottom-left-radius", valid-radius($radius));
76
76
  }
77
77
  }
78
78
  // scss-docs-end border-radius-mixins