@gitlab/ui 94.2.0 → 94.4.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.
Files changed (240) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/experimental/duo/chat/duo_chat.js +1 -2
  3. package/dist/vendor/bootstrap-vue/src/components/badge/index.js +0 -10
  4. package/dist/vendor/bootstrap-vue/src/components/breadcrumb/index.js +0 -14
  5. package/dist/vendor/bootstrap-vue/src/components/button/index.js +0 -14
  6. package/dist/vendor/bootstrap-vue/src/components/button-group/index.js +0 -11
  7. package/dist/vendor/bootstrap-vue/src/components/collapse/index.js +0 -14
  8. package/dist/vendor/bootstrap-vue/src/components/dropdown/index.js +0 -34
  9. package/dist/vendor/bootstrap-vue/src/components/form/index.js +0 -20
  10. package/dist/vendor/bootstrap-vue/src/components/form-checkbox/index.js +0 -16
  11. package/dist/vendor/bootstrap-vue/src/components/form-group/index.js +0 -11
  12. package/dist/vendor/bootstrap-vue/src/components/form-input/index.js +0 -11
  13. package/dist/vendor/bootstrap-vue/src/components/form-radio/index.js +0 -14
  14. package/dist/vendor/bootstrap-vue/src/components/form-select/index.js +0 -17
  15. package/dist/vendor/bootstrap-vue/src/components/form-textarea/index.js +0 -11
  16. package/dist/vendor/bootstrap-vue/src/components/index.js +1 -49
  17. package/dist/vendor/bootstrap-vue/src/components/input-group/index.js +0 -18
  18. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +0 -12
  19. package/dist/vendor/bootstrap-vue/src/components/link/index.js +0 -10
  20. package/dist/vendor/bootstrap-vue/src/components/modal/index.js +0 -19
  21. package/dist/vendor/bootstrap-vue/src/components/nav/index.js +0 -21
  22. package/dist/vendor/bootstrap-vue/src/components/navbar/index.js +0 -20
  23. package/dist/vendor/bootstrap-vue/src/components/popover/index.js +0 -14
  24. package/dist/vendor/bootstrap-vue/src/components/progress/index.js +0 -12
  25. package/dist/vendor/bootstrap-vue/src/components/table/index.js +0 -38
  26. package/dist/vendor/bootstrap-vue/src/components/tabs/index.js +0 -12
  27. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +1 -1
  28. package/dist/vendor/bootstrap-vue/src/components/tooltip/index.js +0 -14
  29. package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -2
  30. package/dist/vendor/bootstrap-vue/src/constants/env.js +1 -2
  31. package/dist/vendor/bootstrap-vue/src/constants/regex.js +1 -3
  32. package/dist/vendor/bootstrap-vue/src/directives/modal/index.js +0 -10
  33. package/dist/vendor/bootstrap-vue/src/directives/toggle/index.js +0 -10
  34. package/dist/vendor/bootstrap-vue/src/directives/tooltip/index.js +0 -10
  35. package/dist/vendor/bootstrap-vue/src/directives/visible/index.js +0 -10
  36. package/dist/vendor/bootstrap-vue/src/index.js +1 -38
  37. package/dist/vendor/bootstrap-vue/src/utils/object.js +1 -3
  38. package/dist/vendor/bootstrap-vue/src/utils/warn.js +2 -17
  39. package/package.json +2 -1
  40. package/src/components/experimental/duo/chat/duo_chat.vue +0 -10
  41. package/src/vendor/bootstrap/LICENSE +22 -0
  42. package/src/vendor/bootstrap/scss/_alert.scss +52 -0
  43. package/src/vendor/bootstrap/scss/_badge.scss +54 -0
  44. package/src/vendor/bootstrap/scss/_breadcrumb.scss +42 -0
  45. package/src/vendor/bootstrap/scss/_button-group.scss +163 -0
  46. package/src/vendor/bootstrap/scss/_buttons.scss +142 -0
  47. package/src/vendor/bootstrap/scss/_card.scss +286 -0
  48. package/src/vendor/bootstrap/scss/_carousel.scss +200 -0
  49. package/src/vendor/bootstrap/scss/_close.scss +40 -0
  50. package/src/vendor/bootstrap/scss/_code.scss +48 -0
  51. package/src/vendor/bootstrap/scss/_custom-forms.scss +526 -0
  52. package/src/vendor/bootstrap/scss/_dropdown.scss +192 -0
  53. package/src/vendor/bootstrap/scss/_forms.scss +347 -0
  54. package/src/vendor/bootstrap/scss/_functions.scss +190 -0
  55. package/src/vendor/bootstrap/scss/_grid.scss +73 -0
  56. package/src/vendor/bootstrap/scss/_images.scss +42 -0
  57. package/src/vendor/bootstrap/scss/_input-group.scss +211 -0
  58. package/src/vendor/bootstrap/scss/_jumbotron.scss +17 -0
  59. package/src/vendor/bootstrap/scss/_list-group.scss +154 -0
  60. package/src/vendor/bootstrap/scss/_media.scss +8 -0
  61. package/src/vendor/bootstrap/scss/_mixins.scss +47 -0
  62. package/src/vendor/bootstrap/scss/_modal.scss +240 -0
  63. package/src/vendor/bootstrap/scss/_nav.scss +125 -0
  64. package/src/vendor/bootstrap/scss/_navbar.scss +332 -0
  65. package/src/vendor/bootstrap/scss/_pagination.scss +74 -0
  66. package/src/vendor/bootstrap/scss/_popover.scss +170 -0
  67. package/src/vendor/bootstrap/scss/_print.scss +132 -0
  68. package/src/vendor/bootstrap/scss/_progress.scss +47 -0
  69. package/src/vendor/bootstrap/scss/_reboot.scss +484 -0
  70. package/src/vendor/bootstrap/scss/_root.scss +19 -0
  71. package/src/vendor/bootstrap/scss/_spinners.scss +65 -0
  72. package/src/vendor/bootstrap/scss/_tables.scss +185 -0
  73. package/src/vendor/bootstrap/scss/_toasts.scss +46 -0
  74. package/src/vendor/bootstrap/scss/_tooltip.scss +115 -0
  75. package/src/vendor/bootstrap/scss/_transitions.scss +26 -0
  76. package/src/vendor/bootstrap/scss/_type.scss +125 -0
  77. package/src/vendor/bootstrap/scss/_utilities.scss +18 -0
  78. package/src/vendor/bootstrap/scss/_variables.scss +1149 -0
  79. package/src/vendor/bootstrap/scss/bootstrap-grid.scss +30 -0
  80. package/src/vendor/bootstrap/scss/bootstrap-reboot.scss +12 -0
  81. package/src/vendor/bootstrap/scss/bootstrap.scss +44 -0
  82. package/src/vendor/bootstrap/scss/mixins/_alert.scss +13 -0
  83. package/src/vendor/bootstrap/scss/mixins/_background-variant.scss +23 -0
  84. package/src/vendor/bootstrap/scss/mixins/_badge.scss +17 -0
  85. package/src/vendor/bootstrap/scss/mixins/_border-radius.scss +76 -0
  86. package/src/vendor/bootstrap/scss/mixins/_box-shadow.scss +20 -0
  87. package/src/vendor/bootstrap/scss/mixins/_breakpoints.scss +123 -0
  88. package/src/vendor/bootstrap/scss/mixins/_buttons.scss +110 -0
  89. package/src/vendor/bootstrap/scss/mixins/_caret.scss +62 -0
  90. package/src/vendor/bootstrap/scss/mixins/_clearfix.scss +7 -0
  91. package/src/vendor/bootstrap/scss/mixins/_deprecate.scss +10 -0
  92. package/src/vendor/bootstrap/scss/mixins/_float.scss +14 -0
  93. package/src/vendor/bootstrap/scss/mixins/_forms.scss +195 -0
  94. package/src/vendor/bootstrap/scss/mixins/_gradients.scss +45 -0
  95. package/src/vendor/bootstrap/scss/mixins/_grid-framework.scss +80 -0
  96. package/src/vendor/bootstrap/scss/mixins/_grid.scss +69 -0
  97. package/src/vendor/bootstrap/scss/mixins/_hover.scss +37 -0
  98. package/src/vendor/bootstrap/scss/mixins/_image.scss +36 -0
  99. package/src/vendor/bootstrap/scss/mixins/_list-group.scss +21 -0
  100. package/src/vendor/bootstrap/scss/mixins/_lists.scss +7 -0
  101. package/src/vendor/bootstrap/scss/mixins/_nav-divider.scss +11 -0
  102. package/src/vendor/bootstrap/scss/mixins/_pagination.scss +22 -0
  103. package/src/vendor/bootstrap/scss/mixins/_reset-text.scss +17 -0
  104. package/src/vendor/bootstrap/scss/mixins/_resize.scss +6 -0
  105. package/src/vendor/bootstrap/scss/mixins/_screen-reader.scss +34 -0
  106. package/src/vendor/bootstrap/scss/mixins/_size.scss +7 -0
  107. package/src/vendor/bootstrap/scss/mixins/_table-row.scss +39 -0
  108. package/src/vendor/bootstrap/scss/mixins/_text-emphasis.scss +17 -0
  109. package/src/vendor/bootstrap/scss/mixins/_text-hide.scss +11 -0
  110. package/src/vendor/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  111. package/src/vendor/bootstrap/scss/mixins/_transition.scss +26 -0
  112. package/src/vendor/bootstrap/scss/mixins/_visibility.scss +8 -0
  113. package/src/vendor/bootstrap/scss/utilities/_align.scss +8 -0
  114. package/src/vendor/bootstrap/scss/utilities/_background.scss +19 -0
  115. package/src/vendor/bootstrap/scss/utilities/_borders.scss +75 -0
  116. package/src/vendor/bootstrap/scss/utilities/_clearfix.scss +3 -0
  117. package/src/vendor/bootstrap/scss/utilities/_display.scss +26 -0
  118. package/src/vendor/bootstrap/scss/utilities/_embed.scss +39 -0
  119. package/src/vendor/bootstrap/scss/utilities/_flex.scss +51 -0
  120. package/src/vendor/bootstrap/scss/utilities/_float.scss +11 -0
  121. package/src/vendor/bootstrap/scss/utilities/_interactions.scss +5 -0
  122. package/src/vendor/bootstrap/scss/utilities/_overflow.scss +5 -0
  123. package/src/vendor/bootstrap/scss/utilities/_position.scss +32 -0
  124. package/src/vendor/bootstrap/scss/utilities/_screenreaders.scss +11 -0
  125. package/src/vendor/bootstrap/scss/utilities/_shadows.scss +6 -0
  126. package/src/vendor/bootstrap/scss/utilities/_sizing.scss +20 -0
  127. package/src/vendor/bootstrap/scss/utilities/_spacing.scss +73 -0
  128. package/src/vendor/bootstrap/scss/utilities/_stretched-link.scss +19 -0
  129. package/src/vendor/bootstrap/scss/utilities/_text.scss +72 -0
  130. package/src/vendor/bootstrap/scss/utilities/_visibility.scss +13 -0
  131. package/src/vendor/bootstrap/scss/vendor/_rfs.scss +228 -0
  132. package/src/vendor/bootstrap-vue/src/components/badge/index.d.ts +1 -5
  133. package/src/vendor/bootstrap-vue/src/components/badge/index.js +1 -6
  134. package/src/vendor/bootstrap-vue/src/components/breadcrumb/index.d.ts +1 -5
  135. package/src/vendor/bootstrap-vue/src/components/breadcrumb/index.js +1 -6
  136. package/src/vendor/bootstrap-vue/src/components/button/index.d.ts +1 -5
  137. package/src/vendor/bootstrap-vue/src/components/button/index.js +1 -11
  138. package/src/vendor/bootstrap-vue/src/components/button-group/index.d.ts +1 -5
  139. package/src/vendor/bootstrap-vue/src/components/button-group/index.js +1 -9
  140. package/src/vendor/bootstrap-vue/src/components/collapse/index.d.ts +1 -5
  141. package/src/vendor/bootstrap-vue/src/components/collapse/index.js +1 -8
  142. package/src/vendor/bootstrap-vue/src/components/dropdown/index.d.ts +1 -5
  143. package/src/vendor/bootstrap-vue/src/components/dropdown/index.js +0 -25
  144. package/src/vendor/bootstrap-vue/src/components/form/index.d.ts +1 -5
  145. package/src/vendor/bootstrap-vue/src/components/form/index.js +1 -15
  146. package/src/vendor/bootstrap-vue/src/components/form-checkbox/index.d.ts +1 -5
  147. package/src/vendor/bootstrap-vue/src/components/form-checkbox/index.js +1 -13
  148. package/src/vendor/bootstrap-vue/src/components/form-group/index.d.ts +1 -5
  149. package/src/vendor/bootstrap-vue/src/components/form-group/index.js +1 -9
  150. package/src/vendor/bootstrap-vue/src/components/form-input/index.d.ts +1 -5
  151. package/src/vendor/bootstrap-vue/src/components/form-input/index.js +1 -9
  152. package/src/vendor/bootstrap-vue/src/components/form-radio/index.d.ts +1 -5
  153. package/src/vendor/bootstrap-vue/src/components/form-radio/index.js +1 -11
  154. package/src/vendor/bootstrap-vue/src/components/form-select/index.d.ts +1 -5
  155. package/src/vendor/bootstrap-vue/src/components/form-select/index.js +1 -13
  156. package/src/vendor/bootstrap-vue/src/components/form-textarea/index.d.ts +1 -5
  157. package/src/vendor/bootstrap-vue/src/components/form-textarea/index.js +1 -9
  158. package/src/vendor/bootstrap-vue/src/components/index.js +1 -50
  159. package/src/vendor/bootstrap-vue/src/components/input-group/index.d.ts +1 -5
  160. package/src/vendor/bootstrap-vue/src/components/input-group/index.js +1 -19
  161. package/src/vendor/bootstrap-vue/src/components/layout/index.d.ts +1 -5
  162. package/src/vendor/bootstrap-vue/src/components/layout/index.js +1 -9
  163. package/src/vendor/bootstrap-vue/src/components/link/index.d.ts +1 -5
  164. package/src/vendor/bootstrap-vue/src/components/link/index.js +1 -6
  165. package/src/vendor/bootstrap-vue/src/components/modal/README.md +0 -8
  166. package/src/vendor/bootstrap-vue/src/components/modal/index.d.ts +2 -5
  167. package/src/vendor/bootstrap-vue/src/components/modal/index.js +1 -11
  168. package/src/vendor/bootstrap-vue/src/components/modal/package.json +0 -3
  169. package/src/vendor/bootstrap-vue/src/components/nav/index.d.ts +1 -5
  170. package/src/vendor/bootstrap-vue/src/components/nav/index.js +1 -17
  171. package/src/vendor/bootstrap-vue/src/components/nav/package.json +0 -3
  172. package/src/vendor/bootstrap-vue/src/components/navbar/index.d.ts +1 -4
  173. package/src/vendor/bootstrap-vue/src/components/navbar/index.js +1 -17
  174. package/src/vendor/bootstrap-vue/src/components/navbar/package.json +0 -5
  175. package/src/vendor/bootstrap-vue/src/components/popover/README.md +1 -46
  176. package/src/vendor/bootstrap-vue/src/components/popover/index.d.ts +1 -5
  177. package/src/vendor/bootstrap-vue/src/components/popover/index.js +1 -8
  178. package/src/vendor/bootstrap-vue/src/components/popover/package.json +1 -4
  179. package/src/vendor/bootstrap-vue/src/components/progress/index.d.ts +1 -5
  180. package/src/vendor/bootstrap-vue/src/components/progress/index.js +1 -9
  181. package/src/vendor/bootstrap-vue/src/components/table/README.md +3 -15
  182. package/src/vendor/bootstrap-vue/src/components/table/index.d.ts +1 -7
  183. package/src/vendor/bootstrap-vue/src/components/table/index.js +0 -33
  184. package/src/vendor/bootstrap-vue/src/components/table/package.json +0 -4
  185. package/src/vendor/bootstrap-vue/src/components/tabs/index.d.ts +1 -5
  186. package/src/vendor/bootstrap-vue/src/components/tabs/index.js +1 -9
  187. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +1 -1
  188. package/src/vendor/bootstrap-vue/src/components/tooltip/index.d.ts +1 -5
  189. package/src/vendor/bootstrap-vue/src/components/tooltip/index.js +1 -8
  190. package/src/vendor/bootstrap-vue/src/components/tooltip/package.json +0 -3
  191. package/src/vendor/bootstrap-vue/src/constants/components.js +0 -1
  192. package/src/vendor/bootstrap-vue/src/constants/env.js +0 -1
  193. package/src/vendor/bootstrap-vue/src/constants/regex.js +0 -3
  194. package/src/vendor/bootstrap-vue/src/directives/modal/index.d.ts +1 -4
  195. package/src/vendor/bootstrap-vue/src/directives/modal/index.js +1 -6
  196. package/src/vendor/bootstrap-vue/src/directives/toggle/index.d.ts +1 -5
  197. package/src/vendor/bootstrap-vue/src/directives/toggle/index.js +1 -6
  198. package/src/vendor/bootstrap-vue/src/directives/tooltip/README.md +0 -1
  199. package/src/vendor/bootstrap-vue/src/directives/tooltip/index.d.ts +1 -5
  200. package/src/vendor/bootstrap-vue/src/directives/tooltip/index.js +1 -6
  201. package/src/vendor/bootstrap-vue/src/directives/visible/index.d.ts +1 -5
  202. package/src/vendor/bootstrap-vue/src/directives/visible/index.js +1 -6
  203. package/src/vendor/bootstrap-vue/src/icons/icons.js +1 -4
  204. package/src/vendor/bootstrap-vue/src/index.d.ts +0 -3
  205. package/src/vendor/bootstrap-vue/src/index.js +2 -45
  206. package/src/vendor/bootstrap-vue/src/utils/config.spec.js +2 -2
  207. package/src/vendor/bootstrap-vue/src/utils/object.js +0 -2
  208. package/src/vendor/bootstrap-vue/src/utils/warn.js +1 -16
  209. package/translations.js +0 -2
  210. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal.js +0 -279
  211. package/dist/vendor/bootstrap-vue/src/directives/hover/hover.js +0 -61
  212. package/dist/vendor/bootstrap-vue/src/directives/hover/index.js +0 -11
  213. package/dist/vendor/bootstrap-vue/src/directives/index.js +0 -23
  214. package/dist/vendor/bootstrap-vue/src/directives/popover/index.js +0 -11
  215. package/dist/vendor/bootstrap-vue/src/directives/popover/popover.js +0 -265
  216. package/dist/vendor/bootstrap-vue/src/directives/scrollspy/helpers/bv-scrollspy.class.js +0 -404
  217. package/dist/vendor/bootstrap-vue/src/directives/scrollspy/index.js +0 -11
  218. package/dist/vendor/bootstrap-vue/src/directives/scrollspy/scrollspy.js +0 -112
  219. package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal.js +0 -279
  220. package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal.spec.js +0 -178
  221. package/src/vendor/bootstrap-vue/src/directives/hover/README.md +0 -87
  222. package/src/vendor/bootstrap-vue/src/directives/hover/hover.js +0 -54
  223. package/src/vendor/bootstrap-vue/src/directives/hover/hover.spec.js +0 -49
  224. package/src/vendor/bootstrap-vue/src/directives/hover/index.d.ts +0 -11
  225. package/src/vendor/bootstrap-vue/src/directives/hover/index.js +0 -8
  226. package/src/vendor/bootstrap-vue/src/directives/hover/package.json +0 -13
  227. package/src/vendor/bootstrap-vue/src/directives/index.d.ts +0 -13
  228. package/src/vendor/bootstrap-vue/src/directives/index.js +0 -22
  229. package/src/vendor/bootstrap-vue/src/directives/popover/README.md +0 -648
  230. package/src/vendor/bootstrap-vue/src/directives/popover/index.d.ts +0 -11
  231. package/src/vendor/bootstrap-vue/src/directives/popover/index.js +0 -8
  232. package/src/vendor/bootstrap-vue/src/directives/popover/package.json +0 -111
  233. package/src/vendor/bootstrap-vue/src/directives/popover/popover.js +0 -275
  234. package/src/vendor/bootstrap-vue/src/directives/popover/popover.spec.js +0 -129
  235. package/src/vendor/bootstrap-vue/src/directives/scrollspy/README.md +0 -411
  236. package/src/vendor/bootstrap-vue/src/directives/scrollspy/helpers/bv-scrollspy.class.js +0 -480
  237. package/src/vendor/bootstrap-vue/src/directives/scrollspy/index.d.ts +0 -11
  238. package/src/vendor/bootstrap-vue/src/directives/scrollspy/index.js +0 -8
  239. package/src/vendor/bootstrap-vue/src/directives/scrollspy/package.json +0 -38
  240. package/src/vendor/bootstrap-vue/src/directives/scrollspy/scrollspy.js +0 -117
@@ -0,0 +1,526 @@
1
+ // Embedded icons from Open Iconic.
2
+ // Released under MIT and copyright 2014 Waybury.
3
+ // https://useiconic.com/open
4
+
5
+
6
+ // Checkboxes and radios
7
+ //
8
+ // Base class takes care of all the key behavioral aspects.
9
+
10
+ .custom-control {
11
+ position: relative;
12
+ z-index: 1;
13
+ display: block;
14
+ min-height: $font-size-base * $line-height-base;
15
+ padding-left: $custom-control-gutter + $custom-control-indicator-size;
16
+ print-color-adjust: exact; // Keep themed appearance for print
17
+ }
18
+
19
+ .custom-control-inline {
20
+ display: inline-flex;
21
+ margin-right: $custom-control-spacer-x;
22
+ }
23
+
24
+ .custom-control-input {
25
+ position: absolute;
26
+ left: 0;
27
+ z-index: -1; // Put the input behind the label so it doesn't overlay text
28
+ width: $custom-control-indicator-size;
29
+ height: ($font-size-base * $line-height-base + $custom-control-indicator-size) * .5;
30
+ opacity: 0;
31
+
32
+ &:checked ~ .custom-control-label::before {
33
+ color: $custom-control-indicator-checked-color;
34
+ border-color: $custom-control-indicator-checked-border-color;
35
+ @include gradient-bg($custom-control-indicator-checked-bg);
36
+ @include box-shadow($custom-control-indicator-checked-box-shadow);
37
+ }
38
+
39
+ &:focus ~ .custom-control-label::before {
40
+ // the mixin is not used here to make sure there is feedback
41
+ @if $enable-shadows {
42
+ box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;
43
+ } @else {
44
+ box-shadow: $custom-control-indicator-focus-box-shadow;
45
+ }
46
+ }
47
+
48
+ &:focus:not(:checked) ~ .custom-control-label::before {
49
+ border-color: $custom-control-indicator-focus-border-color;
50
+ }
51
+
52
+ &:not(:disabled):active ~ .custom-control-label::before {
53
+ color: $custom-control-indicator-active-color;
54
+ background-color: $custom-control-indicator-active-bg;
55
+ border-color: $custom-control-indicator-active-border-color;
56
+ @include box-shadow($custom-control-indicator-active-box-shadow);
57
+ }
58
+
59
+ // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247
60
+ &[disabled],
61
+ &:disabled {
62
+ ~ .custom-control-label {
63
+ color: $custom-control-label-disabled-color;
64
+
65
+ &::before {
66
+ background-color: $custom-control-indicator-disabled-bg;
67
+ }
68
+ }
69
+ }
70
+ }
71
+
72
+ // Custom control indicators
73
+ //
74
+ // Build the custom controls out of pseudo-elements.
75
+
76
+ .custom-control-label {
77
+ position: relative;
78
+ margin-bottom: 0;
79
+ color: $custom-control-label-color;
80
+ vertical-align: top;
81
+ cursor: $custom-control-cursor;
82
+
83
+ // Background-color and (when enabled) gradient
84
+ &::before {
85
+ position: absolute;
86
+ top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
87
+ left: -($custom-control-gutter + $custom-control-indicator-size);
88
+ display: block;
89
+ width: $custom-control-indicator-size;
90
+ height: $custom-control-indicator-size;
91
+ pointer-events: none;
92
+ content: "";
93
+ background-color: $custom-control-indicator-bg;
94
+ border: $custom-control-indicator-border-width solid $custom-control-indicator-border-color;
95
+ @include box-shadow($custom-control-indicator-box-shadow);
96
+ }
97
+
98
+ // Foreground (icon)
99
+ &::after {
100
+ position: absolute;
101
+ top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
102
+ left: -($custom-control-gutter + $custom-control-indicator-size);
103
+ display: block;
104
+ width: $custom-control-indicator-size;
105
+ height: $custom-control-indicator-size;
106
+ content: "";
107
+ background: 50% / #{$custom-control-indicator-bg-size} no-repeat;
108
+ }
109
+ }
110
+
111
+
112
+ // Checkboxes
113
+ //
114
+ // Tweak just a few things for checkboxes.
115
+
116
+ .custom-checkbox {
117
+ .custom-control-label::before {
118
+ @include border-radius($custom-checkbox-indicator-border-radius);
119
+ }
120
+
121
+ .custom-control-input:checked ~ .custom-control-label {
122
+ &::after {
123
+ background-image: escape-svg($custom-checkbox-indicator-icon-checked);
124
+ }
125
+ }
126
+
127
+ .custom-control-input:indeterminate ~ .custom-control-label {
128
+ &::before {
129
+ border-color: $custom-checkbox-indicator-indeterminate-border-color;
130
+ @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);
131
+ @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);
132
+ }
133
+ &::after {
134
+ background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);
135
+ }
136
+ }
137
+
138
+ .custom-control-input:disabled {
139
+ &:checked ~ .custom-control-label::before {
140
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
141
+ }
142
+ &:indeterminate ~ .custom-control-label::before {
143
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
144
+ }
145
+ }
146
+ }
147
+
148
+ // Radios
149
+ //
150
+ // Tweak just a few things for radios.
151
+
152
+ .custom-radio {
153
+ .custom-control-label::before {
154
+ // stylelint-disable-next-line property-disallowed-list
155
+ border-radius: $custom-radio-indicator-border-radius;
156
+ }
157
+
158
+ .custom-control-input:checked ~ .custom-control-label {
159
+ &::after {
160
+ background-image: escape-svg($custom-radio-indicator-icon-checked);
161
+ }
162
+ }
163
+
164
+ .custom-control-input:disabled {
165
+ &:checked ~ .custom-control-label::before {
166
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
167
+ }
168
+ }
169
+ }
170
+
171
+
172
+ // switches
173
+ //
174
+ // Tweak a few things for switches
175
+
176
+ .custom-switch {
177
+ padding-left: $custom-switch-width + $custom-control-gutter;
178
+
179
+ .custom-control-label {
180
+ &::before {
181
+ left: -($custom-switch-width + $custom-control-gutter);
182
+ width: $custom-switch-width;
183
+ pointer-events: all;
184
+ // stylelint-disable-next-line property-disallowed-list
185
+ border-radius: $custom-switch-indicator-border-radius;
186
+ }
187
+
188
+ &::after {
189
+ top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) * .5, $custom-control-indicator-border-width * 2);
190
+ left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);
191
+ width: $custom-switch-indicator-size;
192
+ height: $custom-switch-indicator-size;
193
+ background-color: $custom-control-indicator-border-color;
194
+ // stylelint-disable-next-line property-disallowed-list
195
+ border-radius: $custom-switch-indicator-border-radius;
196
+ @include transition(transform .15s ease-in-out, $custom-forms-transition);
197
+ }
198
+ }
199
+
200
+ .custom-control-input:checked ~ .custom-control-label {
201
+ &::after {
202
+ background-color: $custom-control-indicator-bg;
203
+ transform: translateX($custom-switch-width - $custom-control-indicator-size);
204
+ }
205
+ }
206
+
207
+ .custom-control-input:disabled {
208
+ &:checked ~ .custom-control-label::before {
209
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
210
+ }
211
+ }
212
+ }
213
+
214
+
215
+ // Select
216
+ //
217
+ // Replaces the browser default select with a custom one, mostly pulled from
218
+ // https://primer.github.io/.
219
+ //
220
+
221
+ .custom-select {
222
+ display: inline-block;
223
+ width: 100%;
224
+ height: $custom-select-height;
225
+ padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
226
+ font-family: $custom-select-font-family;
227
+ @include font-size($custom-select-font-size);
228
+ font-weight: $custom-select-font-weight;
229
+ line-height: $custom-select-line-height;
230
+ color: $custom-select-color;
231
+ vertical-align: middle;
232
+ background: $custom-select-bg $custom-select-background;
233
+ border: $custom-select-border-width solid $custom-select-border-color;
234
+ @include border-radius($custom-select-border-radius, 0);
235
+ @include box-shadow($custom-select-box-shadow);
236
+ appearance: none;
237
+
238
+ &:focus {
239
+ border-color: $custom-select-focus-border-color;
240
+ outline: 0;
241
+ @if $enable-shadows {
242
+ @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);
243
+ } @else {
244
+ // Avoid using mixin so we can pass custom focus shadow properly
245
+ box-shadow: $custom-select-focus-box-shadow;
246
+ }
247
+
248
+ &::-ms-value {
249
+ // For visual consistency with other platforms/browsers,
250
+ // suppress the default white text on blue background highlight given to
251
+ // the selected option text when the (still closed) <select> receives focus
252
+ // in IE and (under certain conditions) Edge.
253
+ // See https://github.com/twbs/bootstrap/issues/19398.
254
+ color: $input-color;
255
+ background-color: $input-bg;
256
+ }
257
+ }
258
+
259
+ &[multiple],
260
+ &[size]:not([size="1"]) {
261
+ height: auto;
262
+ padding-right: $custom-select-padding-x;
263
+ background-image: none;
264
+ }
265
+
266
+ &:disabled {
267
+ color: $custom-select-disabled-color;
268
+ background-color: $custom-select-disabled-bg;
269
+ }
270
+
271
+ // Hides the default caret in IE11
272
+ &::-ms-expand {
273
+ display: none;
274
+ }
275
+
276
+ // Remove outline from select box in FF
277
+ &:-moz-focusring {
278
+ color: transparent;
279
+ text-shadow: 0 0 0 $custom-select-color;
280
+ }
281
+ }
282
+
283
+ .custom-select-sm {
284
+ height: $custom-select-height-sm;
285
+ padding-top: $custom-select-padding-y-sm;
286
+ padding-bottom: $custom-select-padding-y-sm;
287
+ padding-left: $custom-select-padding-x-sm;
288
+ @include font-size($custom-select-font-size-sm);
289
+ }
290
+
291
+ .custom-select-lg {
292
+ height: $custom-select-height-lg;
293
+ padding-top: $custom-select-padding-y-lg;
294
+ padding-bottom: $custom-select-padding-y-lg;
295
+ padding-left: $custom-select-padding-x-lg;
296
+ @include font-size($custom-select-font-size-lg);
297
+ }
298
+
299
+
300
+ // File
301
+ //
302
+ // Custom file input.
303
+
304
+ .custom-file {
305
+ position: relative;
306
+ display: inline-block;
307
+ width: 100%;
308
+ height: $custom-file-height;
309
+ margin-bottom: 0;
310
+ }
311
+
312
+ .custom-file-input {
313
+ position: relative;
314
+ z-index: 2;
315
+ width: 100%;
316
+ height: $custom-file-height;
317
+ margin: 0;
318
+ overflow: hidden;
319
+ opacity: 0;
320
+
321
+ &:focus ~ .custom-file-label {
322
+ border-color: $custom-file-focus-border-color;
323
+ box-shadow: $custom-file-focus-box-shadow;
324
+ }
325
+
326
+ // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247
327
+ &[disabled] ~ .custom-file-label,
328
+ &:disabled ~ .custom-file-label {
329
+ background-color: $custom-file-disabled-bg;
330
+ }
331
+
332
+ @each $lang, $value in $custom-file-text {
333
+ &:lang(#{$lang}) ~ .custom-file-label::after {
334
+ content: $value;
335
+ }
336
+ }
337
+
338
+ ~ .custom-file-label[data-browse]::after {
339
+ content: attr(data-browse);
340
+ }
341
+ }
342
+
343
+ .custom-file-label {
344
+ position: absolute;
345
+ top: 0;
346
+ right: 0;
347
+ left: 0;
348
+ z-index: 1;
349
+ height: $custom-file-height;
350
+ padding: $custom-file-padding-y $custom-file-padding-x;
351
+ overflow: hidden;
352
+ font-family: $custom-file-font-family;
353
+ font-weight: $custom-file-font-weight;
354
+ line-height: $custom-file-line-height;
355
+ color: $custom-file-color;
356
+ background-color: $custom-file-bg;
357
+ border: $custom-file-border-width solid $custom-file-border-color;
358
+ @include border-radius($custom-file-border-radius);
359
+ @include box-shadow($custom-file-box-shadow);
360
+
361
+ &::after {
362
+ position: absolute;
363
+ top: 0;
364
+ right: 0;
365
+ bottom: 0;
366
+ z-index: 3;
367
+ display: block;
368
+ height: $custom-file-height-inner;
369
+ padding: $custom-file-padding-y $custom-file-padding-x;
370
+ line-height: $custom-file-line-height;
371
+ color: $custom-file-button-color;
372
+ content: "Browse";
373
+ @include gradient-bg($custom-file-button-bg);
374
+ border-left: inherit;
375
+ @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);
376
+ }
377
+ }
378
+
379
+ // Range
380
+ //
381
+ // Style range inputs the same across browsers. Vendor-specific rules for pseudo
382
+ // elements cannot be mixed. As such, there are no shared styles for focus or
383
+ // active states on prefixed selectors.
384
+
385
+ .custom-range {
386
+ width: 100%;
387
+ height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);
388
+ padding: 0; // Need to reset padding
389
+ background-color: transparent;
390
+ appearance: none;
391
+
392
+ &:focus {
393
+ outline: 0;
394
+
395
+ // Pseudo-elements must be split across multiple rulesets to have an effect.
396
+ // No box-shadow() mixin for focus accessibility.
397
+ &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }
398
+ &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }
399
+ &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }
400
+ }
401
+
402
+ &::-moz-focus-outer {
403
+ border: 0;
404
+ }
405
+
406
+ &::-webkit-slider-thumb {
407
+ width: $custom-range-thumb-width;
408
+ height: $custom-range-thumb-height;
409
+ margin-top: ($custom-range-track-height - $custom-range-thumb-height) * .5; // Webkit specific
410
+ @include gradient-bg($custom-range-thumb-bg);
411
+ border: $custom-range-thumb-border;
412
+ @include border-radius($custom-range-thumb-border-radius);
413
+ @include box-shadow($custom-range-thumb-box-shadow);
414
+ @include transition($custom-forms-transition);
415
+ appearance: none;
416
+
417
+ &:active {
418
+ @include gradient-bg($custom-range-thumb-active-bg);
419
+ }
420
+ }
421
+
422
+ &::-webkit-slider-runnable-track {
423
+ width: $custom-range-track-width;
424
+ height: $custom-range-track-height;
425
+ color: transparent; // Why?
426
+ cursor: $custom-range-track-cursor;
427
+ background-color: $custom-range-track-bg;
428
+ border-color: transparent;
429
+ @include border-radius($custom-range-track-border-radius);
430
+ @include box-shadow($custom-range-track-box-shadow);
431
+ }
432
+
433
+ &::-moz-range-thumb {
434
+ width: $custom-range-thumb-width;
435
+ height: $custom-range-thumb-height;
436
+ @include gradient-bg($custom-range-thumb-bg);
437
+ border: $custom-range-thumb-border;
438
+ @include border-radius($custom-range-thumb-border-radius);
439
+ @include box-shadow($custom-range-thumb-box-shadow);
440
+ @include transition($custom-forms-transition);
441
+ appearance: none;
442
+
443
+ &:active {
444
+ @include gradient-bg($custom-range-thumb-active-bg);
445
+ }
446
+ }
447
+
448
+ &::-moz-range-track {
449
+ width: $custom-range-track-width;
450
+ height: $custom-range-track-height;
451
+ color: transparent;
452
+ cursor: $custom-range-track-cursor;
453
+ background-color: $custom-range-track-bg;
454
+ border-color: transparent; // Firefox specific?
455
+ @include border-radius($custom-range-track-border-radius);
456
+ @include box-shadow($custom-range-track-box-shadow);
457
+ }
458
+
459
+ &::-ms-thumb {
460
+ width: $custom-range-thumb-width;
461
+ height: $custom-range-thumb-height;
462
+ margin-top: 0; // Edge specific
463
+ margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
464
+ margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
465
+ @include gradient-bg($custom-range-thumb-bg);
466
+ border: $custom-range-thumb-border;
467
+ @include border-radius($custom-range-thumb-border-radius);
468
+ @include box-shadow($custom-range-thumb-box-shadow);
469
+ @include transition($custom-forms-transition);
470
+ appearance: none;
471
+
472
+ &:active {
473
+ @include gradient-bg($custom-range-thumb-active-bg);
474
+ }
475
+ }
476
+
477
+ &::-ms-track {
478
+ width: $custom-range-track-width;
479
+ height: $custom-range-track-height;
480
+ color: transparent;
481
+ cursor: $custom-range-track-cursor;
482
+ background-color: transparent;
483
+ border-color: transparent;
484
+ border-width: $custom-range-thumb-height * .5;
485
+ @include box-shadow($custom-range-track-box-shadow);
486
+ }
487
+
488
+ &::-ms-fill-lower {
489
+ background-color: $custom-range-track-bg;
490
+ @include border-radius($custom-range-track-border-radius);
491
+ }
492
+
493
+ &::-ms-fill-upper {
494
+ margin-right: 15px; // arbitrary?
495
+ background-color: $custom-range-track-bg;
496
+ @include border-radius($custom-range-track-border-radius);
497
+ }
498
+
499
+ &:disabled {
500
+ &::-webkit-slider-thumb {
501
+ background-color: $custom-range-thumb-disabled-bg;
502
+ }
503
+
504
+ &::-webkit-slider-runnable-track {
505
+ cursor: default;
506
+ }
507
+
508
+ &::-moz-range-thumb {
509
+ background-color: $custom-range-thumb-disabled-bg;
510
+ }
511
+
512
+ &::-moz-range-track {
513
+ cursor: default;
514
+ }
515
+
516
+ &::-ms-thumb {
517
+ background-color: $custom-range-thumb-disabled-bg;
518
+ }
519
+ }
520
+ }
521
+
522
+ .custom-control-label::before,
523
+ .custom-file-label,
524
+ .custom-select {
525
+ @include transition($custom-forms-transition);
526
+ }
@@ -0,0 +1,192 @@
1
+ // The dropdown wrapper (`<div>`)
2
+ .dropup,
3
+ .dropright,
4
+ .dropdown,
5
+ .dropleft {
6
+ position: relative;
7
+ }
8
+
9
+ .dropdown-toggle {
10
+ white-space: nowrap;
11
+
12
+ // Generate the caret automatically
13
+ @include caret();
14
+ }
15
+
16
+ // The dropdown menu
17
+ .dropdown-menu {
18
+ position: absolute;
19
+ top: 100%;
20
+ left: 0;
21
+ z-index: $zindex-dropdown;
22
+ display: none; // none by default, but block on "open" of the menu
23
+ float: left;
24
+ min-width: $dropdown-min-width;
25
+ padding: $dropdown-padding-y $dropdown-padding-x;
26
+ margin: $dropdown-spacer 0 0; // override default ul
27
+ @include font-size($dropdown-font-size);
28
+ color: $dropdown-color;
29
+ text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
30
+ list-style: none;
31
+ background-color: $dropdown-bg;
32
+ background-clip: padding-box;
33
+ border: $dropdown-border-width solid $dropdown-border-color;
34
+ @include border-radius($dropdown-border-radius);
35
+ @include box-shadow($dropdown-box-shadow);
36
+ }
37
+
38
+ @each $breakpoint in map-keys($grid-breakpoints) {
39
+ @include media-breakpoint-up($breakpoint) {
40
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
41
+
42
+ .dropdown-menu#{$infix}-left {
43
+ right: auto;
44
+ left: 0;
45
+ }
46
+
47
+ .dropdown-menu#{$infix}-right {
48
+ right: 0;
49
+ left: auto;
50
+ }
51
+ }
52
+ }
53
+
54
+ // Allow for dropdowns to go bottom up (aka, dropup-menu)
55
+ // Just add .dropup after the standard .dropdown class and you're set.
56
+ .dropup {
57
+ .dropdown-menu {
58
+ top: auto;
59
+ bottom: 100%;
60
+ margin-top: 0;
61
+ margin-bottom: $dropdown-spacer;
62
+ }
63
+
64
+ .dropdown-toggle {
65
+ @include caret(up);
66
+ }
67
+ }
68
+
69
+ .dropright {
70
+ .dropdown-menu {
71
+ top: 0;
72
+ right: auto;
73
+ left: 100%;
74
+ margin-top: 0;
75
+ margin-left: $dropdown-spacer;
76
+ }
77
+
78
+ .dropdown-toggle {
79
+ @include caret(right);
80
+ &::after {
81
+ vertical-align: 0;
82
+ }
83
+ }
84
+ }
85
+
86
+ .dropleft {
87
+ .dropdown-menu {
88
+ top: 0;
89
+ right: 100%;
90
+ left: auto;
91
+ margin-top: 0;
92
+ margin-right: $dropdown-spacer;
93
+ }
94
+
95
+ .dropdown-toggle {
96
+ @include caret(left);
97
+ &::before {
98
+ vertical-align: 0;
99
+ }
100
+ }
101
+ }
102
+
103
+ // When Popper is enabled, reset the basic dropdown position
104
+ // stylelint-disable-next-line no-duplicate-selectors
105
+ .dropdown-menu {
106
+ &[x-placement^="top"],
107
+ &[x-placement^="right"],
108
+ &[x-placement^="bottom"],
109
+ &[x-placement^="left"] {
110
+ right: auto;
111
+ bottom: auto;
112
+ }
113
+ }
114
+
115
+ // Dividers (basically an `<hr>`) within the dropdown
116
+ .dropdown-divider {
117
+ @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);
118
+ }
119
+
120
+ // Links, buttons, and more within the dropdown menu
121
+ //
122
+ // `<button>`-specific styles are denoted with `// For <button>s`
123
+ .dropdown-item {
124
+ display: block;
125
+ width: 100%; // For `<button>`s
126
+ padding: $dropdown-item-padding-y $dropdown-item-padding-x;
127
+ clear: both;
128
+ font-weight: $font-weight-normal;
129
+ color: $dropdown-link-color;
130
+ text-align: inherit; // For `<button>`s
131
+ text-decoration: if($link-decoration == none, null, none);
132
+ white-space: nowrap; // prevent links from randomly breaking onto new lines
133
+ background-color: transparent; // For `<button>`s
134
+ border: 0; // For `<button>`s
135
+
136
+ // Prevent dropdown overflow if there's no padding
137
+ // See https://github.com/twbs/bootstrap/pull/27703
138
+ @if $dropdown-padding-y == 0 {
139
+ &:first-child {
140
+ @include border-top-radius($dropdown-inner-border-radius);
141
+ }
142
+
143
+ &:last-child {
144
+ @include border-bottom-radius($dropdown-inner-border-radius);
145
+ }
146
+ }
147
+
148
+ @include hover-focus() {
149
+ color: $dropdown-link-hover-color;
150
+ text-decoration: none;
151
+ @include gradient-bg($dropdown-link-hover-bg);
152
+ }
153
+
154
+ &.active,
155
+ &:active {
156
+ color: $dropdown-link-active-color;
157
+ text-decoration: none;
158
+ @include gradient-bg($dropdown-link-active-bg);
159
+ }
160
+
161
+ &.disabled,
162
+ &:disabled {
163
+ color: $dropdown-link-disabled-color;
164
+ pointer-events: none;
165
+ background-color: transparent;
166
+ // Remove CSS gradients if they're enabled
167
+ @if $enable-gradients {
168
+ background-image: none;
169
+ }
170
+ }
171
+ }
172
+
173
+ .dropdown-menu.show {
174
+ display: block;
175
+ }
176
+
177
+ // Dropdown section headers
178
+ .dropdown-header {
179
+ display: block;
180
+ padding: $dropdown-header-padding;
181
+ margin-bottom: 0; // for use with heading elements
182
+ @include font-size($font-size-sm);
183
+ color: $dropdown-header-color;
184
+ white-space: nowrap; // as with > li > a
185
+ }
186
+
187
+ // Dropdown text
188
+ .dropdown-item-text {
189
+ display: block;
190
+ padding: $dropdown-item-padding-y $dropdown-item-padding-x;
191
+ color: $dropdown-link-color;
192
+ }