@finqu/cool 1.2.29 → 2.0.2

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 (221) hide show
  1. package/README.md +694 -1
  2. package/dist/css/cool.css +26902 -14322
  3. package/dist/css/cool.css.map +1 -154
  4. package/dist/css/cool.min.css +2 -7
  5. package/dist/css/cool.min.css.map +1 -1
  6. package/dist/js/cool.bundle.js +16191 -5588
  7. package/dist/js/cool.bundle.js.map +1 -1
  8. package/dist/js/cool.bundle.min.js +13 -8
  9. package/dist/js/cool.bundle.min.js.map +1 -1
  10. package/dist/js/cool.esm.js +4722 -4812
  11. package/dist/js/cool.esm.js.map +1 -1
  12. package/dist/js/cool.esm.min.js +4 -9
  13. package/dist/js/cool.esm.min.js.map +1 -1
  14. package/dist/js/cool.js +5143 -5240
  15. package/dist/js/cool.js.map +1 -1
  16. package/dist/js/cool.min.js +4 -9
  17. package/dist/js/cool.min.js.map +1 -1
  18. package/package.json +125 -60
  19. package/scss/LISENCE +1 -1
  20. package/scss/_badge.scss +134 -102
  21. package/scss/_button-group.scss +80 -129
  22. package/scss/_buttons.scss +257 -201
  23. package/scss/_dark.scss +637 -0
  24. package/scss/_dialog.scss +314 -123
  25. package/scss/_dropdown.scss +165 -233
  26. package/scss/_forms.scss +555 -200
  27. package/scss/_frame.scss +945 -624
  28. package/scss/_grid.scss +215 -35
  29. package/scss/_input-group.scss +326 -285
  30. package/scss/_list-group.scss +127 -82
  31. package/scss/_media.scss +439 -0
  32. package/scss/_navbar.scss +116 -284
  33. package/scss/_notification.scss +111 -9
  34. package/scss/_pagination.scss +82 -88
  35. package/scss/_popover.scss +61 -167
  36. package/scss/_reboot.scss +306 -284
  37. package/scss/_root.scss +848 -15
  38. package/scss/_section.scss +735 -977
  39. package/scss/_select.scss +559 -187
  40. package/scss/_tables.scss +471 -595
  41. package/scss/_tabs.scss +50 -178
  42. package/scss/_toast.scss +242 -147
  43. package/scss/_tooltip.scss +130 -101
  44. package/scss/_typography.scss +166 -0
  45. package/scss/_variables.scss +1154 -748
  46. package/scss/cool.scss +64 -32
  47. package/scss/utilities/_align.scss +51 -41
  48. package/scss/utilities/_animation.scss +165 -0
  49. package/scss/utilities/_background.scss +72 -14
  50. package/scss/utilities/_borders.scss +205 -146
  51. package/scss/utilities/_collapse.scss +20 -25
  52. package/scss/utilities/_cursor.scss +160 -22
  53. package/scss/utilities/_display.scss +116 -16
  54. package/scss/utilities/_embed.scss +89 -78
  55. package/scss/utilities/_fill.scss +79 -0
  56. package/scss/utilities/_filters.scss +233 -0
  57. package/scss/utilities/_flex.scss +216 -52
  58. package/scss/utilities/_grid.scss +136 -0
  59. package/scss/utilities/_opacity.scss +131 -0
  60. package/scss/utilities/_overflow.scss +242 -6
  61. package/scss/utilities/_perfect-scrollbar.scss +147 -141
  62. package/scss/utilities/_pointer-events.scss +125 -0
  63. package/scss/utilities/_position.scss +130 -30
  64. package/scss/utilities/_screen-readers.scss +95 -0
  65. package/scss/utilities/_shadows.scss +195 -0
  66. package/scss/utilities/_sizing.scss +288 -32
  67. package/scss/utilities/_spacing.scss +168 -92
  68. package/scss/utilities/_stroke.scss +124 -0
  69. package/scss/utilities/_text.scss +420 -99
  70. package/scss/utilities/_transform.scss +232 -0
  71. package/scss/utilities/_transitions.scss +147 -0
  72. package/scss/utilities/_user-select.scss +89 -10
  73. package/scss/utilities/_visibility.scss +62 -6
  74. package/scss/utilities/_z-index.scss +169 -0
  75. package/.babelrc.js +0 -20
  76. package/.browserslistrc +0 -13
  77. package/build/.eslintrc.json +0 -10
  78. package/build/banner.js +0 -14
  79. package/build/build-plugins.js +0 -92
  80. package/build/rollup.config.js +0 -46
  81. package/dist/css/cool-grid.css +0 -4390
  82. package/dist/css/cool-grid.css.map +0 -30
  83. package/dist/css/cool-grid.min.css +0 -7
  84. package/dist/css/cool-grid.min.css.map +0 -1
  85. package/dist/css/cool-reboot.css +0 -286
  86. package/dist/css/cool-reboot.css.map +0 -62
  87. package/dist/css/cool-reboot.min.css +0 -7
  88. package/dist/css/cool-reboot.min.css.map +0 -1
  89. package/html/index.html +0 -2703
  90. package/js/dist/collapse.js +0 -5535
  91. package/js/dist/collapse.js.map +0 -1
  92. package/js/dist/common.js +0 -21996
  93. package/js/dist/common.js.map +0 -1
  94. package/js/dist/cooldropdown.js +0 -467
  95. package/js/dist/cooldropdown.js.map +0 -1
  96. package/js/dist/coolpopover.js +0 -391
  97. package/js/dist/coolpopover.js.map +0 -1
  98. package/js/dist/coolsectiontabs.js +0 -256
  99. package/js/dist/coolsectiontabs.js.map +0 -1
  100. package/js/dist/coolselect.js +0 -796
  101. package/js/dist/coolselect.js.map +0 -1
  102. package/js/dist/cooltooltip.js +0 -360
  103. package/js/dist/cooltooltip.js.map +0 -1
  104. package/js/dist/coolui.js +0 -73
  105. package/js/dist/coolui.js.map +0 -1
  106. package/js/dist/dropdown.js +0 -27421
  107. package/js/dist/dropdown.js.map +0 -1
  108. package/js/dist/popover.js +0 -9472
  109. package/js/dist/popover.js.map +0 -1
  110. package/js/dist/sectiontabs.js +0 -4483
  111. package/js/dist/sectiontabs.js.map +0 -1
  112. package/js/dist/select.js +0 -37080
  113. package/js/dist/select.js.map +0 -1
  114. package/js/dist/tooltip.js +0 -8786
  115. package/js/dist/tooltip.js.map +0 -1
  116. package/js/index.esm.js +0 -21
  117. package/js/index.umd.js +0 -21
  118. package/js/src/abstract-ui-component.js +0 -81
  119. package/js/src/collapse.js +0 -286
  120. package/js/src/common.js +0 -296
  121. package/js/src/dialog.js +0 -579
  122. package/js/src/dropdown.js +0 -525
  123. package/js/src/popover.js +0 -632
  124. package/js/src/section-tabs.js +0 -215
  125. package/js/src/select.js +0 -1342
  126. package/js/src/toast.js +0 -581
  127. package/js/src/tooltip.js +0 -591
  128. package/js/src/util/animate-css.js +0 -22
  129. package/js/src/util/index.js +0 -122
  130. package/js/src/util/perfect-scrollbar.js +0 -1316
  131. package/less/alert.less +0 -345
  132. package/less/badge.less +0 -38
  133. package/less/bootstrap-noconflict.less +0 -23
  134. package/less/bootstrap.less +0 -23
  135. package/less/button-group.less +0 -153
  136. package/less/buttons.less +0 -287
  137. package/less/dialog-noconflict.less +0 -174
  138. package/less/dialog.less +0 -203
  139. package/less/dropdown.less +0 -209
  140. package/less/forms.less +0 -770
  141. package/less/images.less +0 -242
  142. package/less/input-group.less +0 -163
  143. package/less/list-group.less +0 -73
  144. package/less/mixins/aspect-ratio.less +0 -23
  145. package/less/mixins/border-radius.less +0 -24
  146. package/less/mixins/box-shadow.less +0 -4
  147. package/less/mixins/buttons.less +0 -17
  148. package/less/mixins/caret.less +0 -51
  149. package/less/mixins/clearfix.less +0 -10
  150. package/less/mixins/gradients.less +0 -34
  151. package/less/mixins/nav-divider.less +0 -7
  152. package/less/mixins/object-fit.less +0 -13
  153. package/less/mixins/reset-text.less +0 -16
  154. package/less/mixins.less +0 -11
  155. package/less/package.json +0 -11
  156. package/less/pagination.less +0 -69
  157. package/less/popover.less +0 -143
  158. package/less/project.sublime-workspace +0 -774
  159. package/less/reboot.less +0 -235
  160. package/less/section.less +0 -793
  161. package/less/select.less +0 -150
  162. package/less/tables.less +0 -737
  163. package/less/tabs.less +0 -162
  164. package/less/tooltip.less +0 -87
  165. package/less/type.less +0 -71
  166. package/less/utilities/align.less +0 -27
  167. package/less/utilities/animate.less +0 -3512
  168. package/less/utilities/background.less +0 -70
  169. package/less/utilities/borders.less +0 -16
  170. package/less/utilities/color.less +0 -70
  171. package/less/utilities/cursor.less +0 -8
  172. package/less/utilities/display.less +0 -38
  173. package/less/utilities/embed.less +0 -61
  174. package/less/utilities/flex.less +0 -76
  175. package/less/utilities/jquery-ui.less +0 -116
  176. package/less/utilities/lazyload.less +0 -29
  177. package/less/utilities/overflow.less +0 -11
  178. package/less/utilities/pace.less +0 -25
  179. package/less/utilities/placeholder.less +0 -60
  180. package/less/utilities/position.less +0 -42
  181. package/less/utilities/scrollbar.less +0 -152
  182. package/less/utilities/spacing.less +0 -197
  183. package/less/utilities/text.less +0 -68
  184. package/less/utilities/transform.less +0 -7
  185. package/less/utilities.less +0 -21
  186. package/less/variables.less +0 -343
  187. package/scss/_alert.scss +0 -102
  188. package/scss/_custom-forms.scss +0 -444
  189. package/scss/_functions.scss +0 -124
  190. package/scss/_images.scss +0 -361
  191. package/scss/_mixins.scss +0 -34
  192. package/scss/_type.scss +0 -129
  193. package/scss/_utilities.scss +0 -23
  194. package/scss/cool-grid.scss +0 -29
  195. package/scss/cool-reboot.scss +0 -11
  196. package/scss/mixins/_alert-variant.scss +0 -20
  197. package/scss/mixins/_aspect-ratio.scss +0 -29
  198. package/scss/mixins/_background-variant.scss +0 -25
  199. package/scss/mixins/_badge-variant.scss +0 -36
  200. package/scss/mixins/_breakpoints.scss +0 -102
  201. package/scss/mixins/_buttons.scss +0 -104
  202. package/scss/mixins/_caret.scss +0 -80
  203. package/scss/mixins/_clearfix.scss +0 -10
  204. package/scss/mixins/_float.scss +0 -14
  205. package/scss/mixins/_forms.scss +0 -67
  206. package/scss/mixins/_gradients.scss +0 -40
  207. package/scss/mixins/_grid-framework.scss +0 -72
  208. package/scss/mixins/_grid.scss +0 -60
  209. package/scss/mixins/_nav-divider.scss +0 -9
  210. package/scss/mixins/_notification-variant.scss +0 -7
  211. package/scss/mixins/_object-fit.scss +0 -16
  212. package/scss/mixins/_reset-text.scss +0 -19
  213. package/scss/mixins/_text-emphasis.scss +0 -21
  214. package/scss/mixins/_text-hide.scss +0 -10
  215. package/scss/mixins/_text-truncate.scss +0 -81
  216. package/scss/mixins/_visibility.scss +0 -7
  217. package/scss/project.sublime-workspace +0 -491
  218. package/scss/utilities/_animate.scss +0 -3512
  219. package/scss/utilities/_clearfix.scss +0 -6
  220. package/scss/utilities/_lazyload.scss +0 -31
  221. package/scss/utilities/_placeholder.scss +0 -77
@@ -1,285 +1,326 @@
1
- // Input group
2
- // ---------------------------------------------------------------------------------------------------------------
3
-
4
- html.dom-ready {
5
- .input-group-text,
6
- .input-group-dropdown {
7
- transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
8
- }
9
- }
10
-
11
- .input-group {
12
- position: relative;
13
- display: flex;
14
- flex-wrap: wrap;
15
- align-items: stretch;
16
- width: 100%;
17
- border-color: $input-group-addon-border-color;
18
-
19
- > .form-control,
20
- > .form-control-plaintext {
21
- position: relative;
22
- flex: 1 1 auto;
23
- // Add width 1% and flex-basis auto to ensure that button will not wrap out
24
- // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.
25
- width: 1%;
26
- margin-bottom: 0;
27
-
28
- + .form-control {
29
- // Add extra 0.2px to border rendering bug on chrome
30
- // margin-left: -#{$input-border-width};
31
- margin-left: calc(-#{$input-border-width + 0.2});
32
- }
33
- }
34
-
35
- > .form-control {
36
- &:not(:last-child) {
37
- border-top-right-radius: 0;
38
- border-bottom-right-radius: 0;
39
- border-right: 0;
40
- }
41
-
42
- &:not(:first-child) {
43
- border-top-left-radius: 0;
44
- border-bottom-left-radius: 0;
45
- border-left: 0;
46
- }
47
- }
48
- }
49
-
50
-
51
- // Prepend and append
52
- .input-group-prepend,
53
- .input-group-append {
54
- display: flex;
55
- border-color: $input-group-addon-border-color;
56
-
57
- // > .btn {
58
- // height: $input-height;
59
- // box-sizing: border-box;
60
- // //@include button-variant($input-bg, $color: theme-color('brand'), $border: $input-bg, $hover-background: darken($input-bg, 5%), $hover-border: $input-focus-border-color, $enable-shadow: false);
61
- // }
62
-
63
- .btn {
64
- position: relative;
65
- z-index: 2;
66
- margin: 0;
67
-
68
- > .icon {
69
- margin-right: 0;
70
-
71
- & + * {
72
- margin-left: $icon-spacer;
73
- }
74
- }
75
-
76
- &:focus {
77
- z-index: 3;
78
- }
79
- }
80
-
81
- .btn + .btn,
82
- .btn + .input-group-text,
83
- .btn + .input-group-dropdown,
84
- .input-group-text + .btn,
85
- .input-group-text + .input-group-text,
86
- .input-group-text + .input-group-dropdown,
87
- .input-group-dropdown + .btn,
88
- .input-group-dropdown + .input-group-text,
89
- .input-group-dropdown + .input-group-dropdown {
90
- // Add extra 0.2px to border rendering bug on chrome
91
- // margin-left: -#{$input-border-width};
92
- margin-left: calc(-#{$input-border-width + 0.2});
93
- }
94
- }
95
-
96
- .input-group-prepend {
97
- margin-right: -$input-border-width;
98
-
99
- .input-group-text > span {
100
- margin-right: $input-border-width;
101
- }
102
- }
103
-
104
- .input-group-append {
105
- margin-left: -$input-border-width;
106
-
107
- .input-group-text > span {
108
- margin-left: $input-border-width;
109
- }
110
- }
111
-
112
-
113
-
114
- // Textual addons
115
- // Serves as a catch-all element for any text or radio/checkbox input you wish
116
- // to prepend or append to an input.
117
- .input-group-text {
118
- display: flex;
119
- align-items: center;
120
- padding: $input-padding-y $input-padding-x;
121
- margin-bottom: 0;
122
- font-size: $input-font-size;
123
- font-weight: $font-weight-normal;
124
- line-height: $input-line-height;
125
- color: $input-group-addon-color;
126
- text-align: center;
127
- white-space: nowrap;
128
- background-color: $input-bg;
129
- border: $input-border-width solid $input-group-addon-border-color;
130
- border-radius: $input-border-radius;
131
-
132
- // Nuke default margins from checkboxes and radios to vertically center within.
133
- input[type="radio"],
134
- input[type="checkbox"] {
135
- margin-top: 0;
136
- }
137
- }
138
-
139
-
140
- // Dropdown
141
- .input-group-dropdown {
142
- display: flex;
143
- align-items: center;
144
- margin-bottom: 0;
145
- font-size: $input-font-size;
146
- font-weight: $font-weight-normal;
147
- line-height: $input-line-height;
148
- color: $input-group-addon-color;
149
- text-align: center;
150
- white-space: nowrap;
151
- background-color: $input-group-addon-bg;
152
- border-radius: $input-border-radius;
153
- border: $input-border-width solid $input-group-addon-border-color;
154
-
155
- .btn {
156
- margin-right: 2px;
157
- @include button-size($btn-padding-y - 2 * $input-border-width, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius - 2px);
158
- @include button-variant($input-group-addon-bg, $color: $input-group-addon-color, $hover-background: $input-group-addon-bg, $enable-shadow: false);
159
-
160
- &.btn-xs {
161
- @include button-size($btn-padding-y-xs - 2 * $input-border-width, $btn-padding-x-xs, $btn-font-size-xs , $btn-line-height-xs, $btn-border-radius-xs - 1px);
162
- }
163
-
164
- &.btn-sm {
165
- @include button-size($btn-padding-y-sm - 2 * $input-border-width, $btn-padding-x-sm, $btn-font-size-sm , $btn-line-height-sm, $btn-border-radius-sm - 2px);
166
- }
167
-
168
- &.btn-lg {
169
- @include button-size($btn-padding-y-lg - 2 * $input-border-width, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg - 2px);
170
- }
171
- }
172
- }
173
-
174
-
175
- // Focus
176
- .input-group-focus {
177
- .form-control,
178
- .input-group-text,
179
- .input-group-dropdown,
180
- .input-group-append > .btn,
181
- .input-group-prepend > .btn {
182
- border-color: $input-focus-border-color;
183
- }
184
- }
185
-
186
-
187
- // Sizing
188
- .input-group-lg > .form-control:not(textarea) {
189
- height: $input-height-lg;
190
- }
191
-
192
- .input-group-lg > .form-control,
193
- .input-group-lg > .input-group-text,
194
- .input-group-lg > .input-group-dropdown,
195
- .input-group-lg > .input-group-prepend > .input-group-text,
196
- .input-group-lg > .input-group-append > .input-group-text,
197
- .input-group-lg > .input-group-prepend > .input-group-dropdown,
198
- .input-group-lg > .input-group-append > .input-group-dropdown {
199
- padding: $input-padding-y-lg $input-padding-x-lg;
200
- font-size: $input-font-size-lg;
201
- line-height: $input-line-height-lg;
202
- border-radius: $input-border-radius-lg;
203
- }
204
-
205
- .input-group-lg > .input-group-prepend > .btn,
206
- .input-group-lg > .input-group-append > .btn {
207
- padding: $input-padding-y-lg $input-padding-x-lg;
208
- font-size: $input-font-size-lg;
209
- border-radius: $input-border-radius-lg;
210
- height: $input-height-lg;
211
- }
212
-
213
- .input-group-lg .input-group-dropdown .dropdown {
214
- margin: -#{$input-padding-y-lg} -#{$input-padding-x-lg};
215
- }
216
-
217
- .input-group-sm > .form-control:not(textarea) {
218
- height: $input-height-sm;
219
- }
220
-
221
- .input-group-sm > .form-control,
222
- .input-group-sm > .input-group-text,
223
- .input-group-sm > .input-group-dropdown,
224
- .input-group-sm > .input-group-prepend > .input-group-text,
225
- .input-group-sm > .input-group-append > .input-group-text,
226
- .input-group-sm > .input-group-prepend > .input-group-dropdown,
227
- .input-group-sm > .input-group-append > .input-group-dropdown {
228
- padding: $input-padding-y-sm $input-padding-x-sm;
229
- font-size: $input-font-size-sm;
230
- line-height: $input-line-height-sm;
231
- border-radius: $input-border-radius-sm;
232
- }
233
-
234
- .input-group-lg > .input-group-prepend > .btn,
235
- .input-group-lg > .input-group-append > .btn {
236
- padding: $input-padding-y-sm $input-padding-x-sm;
237
- font-size: $input-font-size-sm;
238
- border-radius: $input-border-radius-sm;
239
- height: $input-height-sm;
240
- }
241
-
242
- .input-group-sm .input-group-dropdown .dropdown {
243
- margin: -#{$input-padding-y-sm} -#{$input-padding-x-sm};
244
- }
245
-
246
-
247
- // Prepend and append rounded corners
248
- // These rulesets must come after the sizing ones to properly override sm and lg
249
- // border-radius values when extending. They're more specific than we'd like
250
- // with the `.input-group >` part, but without it, we cannot override the sizing.
251
- .input-group > .input-group-prepend > .btn,
252
- .input-group > .input-group-prepend > .input-group-text,
253
- .input-group > .input-group-prepend > .input-group-dropdown,
254
- .input-group > .input-group-append:not(:last-child) > .btn,
255
- .input-group > .input-group-append:not(:last-child) > .input-group-text,
256
- .input-group > .input-group-append:not(:last-child) > .input-group-dropdown,
257
- .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
258
- .input-group > .input-group-append:last-child > .input-group-text:not(:last-child),
259
- .input-group > .input-group-append:last-child > .input-group-dropdown:not(:last-child) {
260
- border-top-right-radius: 0;
261
- border-bottom-right-radius: 0;
262
- }
263
-
264
- .input-group > .input-group-prepend > .input-group-text:not([class*="bg-"]),
265
- .input-group > .input-group-append:last-child > .input-group-text:not([class*="bg-"]):not(:last-child) {
266
- padding-right: 0;
267
- }
268
-
269
- .input-group > .input-group-append > .btn,
270
- .input-group > .input-group-append > .input-group-text,
271
- .input-group > .input-group-append > .input-group-dropdown,
272
- .input-group > .input-group-prepend:not(:first-child) > .btn,
273
- .input-group > .input-group-prepend:not(:first-child) > .input-group-text,
274
- .input-group > .input-group-prepend:not(:first-child) > .input-group-dropdown,
275
- .input-group > .input-group-prepend:first-child > .btn:not(:first-child),
276
- .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child),
277
- .input-group > .input-group-prepend:first-child > .input-group-dropdown:not(:first-child) {
278
- border-top-left-radius: 0;
279
- border-bottom-left-radius: 0;
280
- }
281
-
282
- .input-group > .input-group-append > .input-group-text:not([class*="bg-"]),
283
- .input-group > .input-group-prepend:first-child > .input-group-text:not([class*="bg-"]):not(:first-child) {
284
- padding-left: 0;
285
- }
1
+ @use "variables" as *;
2
+ /* Input Group ========================================================================== */
3
+
4
+ @mixin cool-input-group {
5
+ .input-group {
6
+ position: relative;
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ align-items: stretch;
10
+ width: 100%;
11
+ gap: var(--cool-input-group-gap);
12
+ border-color: var(--cool-input-group-border-color);
13
+ border-width: var(--cool-input-group-border-width);
14
+ border-radius: var(--cool-input-group-border-radius);
15
+ background-color: var(--cool-input-group-bg);
16
+ color: var(--cool-input-group-color);
17
+ margin-bottom: 1px;
18
+
19
+ > .form-control {
20
+ position: relative;
21
+ flex: 1 1 auto;
22
+ width: 1%;
23
+ margin-bottom: 0;
24
+
25
+ + .form-control {
26
+ margin-left: calc((var(--cool-input-border-width) + 0.2px) * -1);
27
+ }
28
+ }
29
+
30
+ > .form-control {
31
+ &:not(:last-child) {
32
+ border-top-right-radius: 0;
33
+ border-bottom-right-radius: 0;
34
+ border-right: 0;
35
+ }
36
+
37
+ &:not(:first-child) {
38
+ border-top-left-radius: 0;
39
+ border-bottom-left-radius: 0;
40
+ border-left: 0;
41
+ }
42
+ }
43
+
44
+ &.input-group-sm {
45
+ border-radius: var(--cool-input-border-radius-sm);
46
+ }
47
+
48
+ &.input-group-lg {
49
+ border-radius: var(--cool-input-border-radius-lg);
50
+ }
51
+ }
52
+
53
+ .input-group-prepend,
54
+ .input-group-append {
55
+ display: flex;
56
+ border-color: var(--cool-input-group-border-color);
57
+
58
+ .btn {
59
+ position: relative;
60
+ z-index: 2;
61
+ margin: 0;
62
+
63
+ > .icon {
64
+ margin-right: 0;
65
+
66
+ & + * {
67
+ margin-left: var(--cool-icon-spacer);
68
+ }
69
+ }
70
+
71
+ &:focus {
72
+ z-index: 3;
73
+ }
74
+ }
75
+
76
+ .btn + .btn,
77
+ .btn + .input-group-text,
78
+ .btn + .input-group-dropdown,
79
+ .input-group-text + .btn,
80
+ .input-group-text + .input-group-text,
81
+ .input-group-text + .input-group-dropdown,
82
+ .input-group-dropdown + .btn,
83
+ .input-group-dropdown + .input-group-text,
84
+ .input-group-dropdown + .input-group-dropdown {
85
+ margin-left: calc((var(--cool-input-border-width) + 0.2px) * -1);
86
+ }
87
+ }
88
+
89
+ .input-group-prepend {
90
+ margin-right: calc(var(--cool-input-border-width) * -1);
91
+
92
+ .input-group-text > span {
93
+ margin-right: var(--cool-input-border-width);
94
+ }
95
+ }
96
+
97
+ .input-group-append {
98
+ margin-left: calc(var(--cool-input-border-width) * -1);
99
+
100
+ .input-group-text > span {
101
+ margin-left: var(--cool-input-border-width);
102
+ }
103
+ }
104
+
105
+ .input-group-text {
106
+ display: flex;
107
+ align-items: center;
108
+ padding: var(--cool-input-padding-y) var(--cool-input-padding-x);
109
+ margin-bottom: 0;
110
+ font-size: var(--cool-input-font-size);
111
+ font-weight: var(--cool-font-weight-normal);
112
+ line-height: var(--cool-input-line-height);
113
+ color: var(--cool-input-group-color);
114
+ text-align: center;
115
+ white-space: nowrap;
116
+ background-color: var(--cool-input-bg);
117
+ border: var(--cool-input-border-width) solid var(--cool-input-group-border-color);
118
+ border-radius: var(--cool-input-border-radius);
119
+ transition: box-shadow var(--cool-animation-duration) ease-in-out;
120
+
121
+ input[type="radio"],
122
+ input[type="checkbox"] {
123
+ margin-top: 0;
124
+ }
125
+ }
126
+
127
+ .input-group-dropdown {
128
+ display: flex;
129
+ align-items: center;
130
+ margin-bottom: 0;
131
+ font-size: var(--cool-input-font-size);
132
+ font-weight: var(--cool-font-weight-normal);
133
+ line-height: var(--cool-input-line-height);
134
+ color: var(--cool-input-group-color);
135
+ text-align: center;
136
+ white-space: nowrap;
137
+ background-color: var(--cool-input-group-bg);
138
+ border-radius: var(--cool-input-border-radius);
139
+ border: var(--cool-input-border-width) solid var(--cool-input-group-border-color);
140
+ transition: box-shadow var(--cool-animation-duration) ease-in-out;
141
+
142
+ .dropdown {
143
+ height: 100%;
144
+ }
145
+
146
+ .btn {
147
+ padding: calc(var(--cool-btn-padding-y) - 2 * var(--cool-input-border-width)) var(--cool-btn-padding-x);
148
+ font-size: var(--cool-btn-font-size);
149
+ line-height: var(--cool-btn-line-height);
150
+ border-radius: calc(var(--cool-btn-border-radius) - 2px);
151
+ --cool-btn-bg: var(--cool-input-group-bg);
152
+ --cool-btn-color: var(--cool-input-group-color);
153
+ --cool-btn-border-color: transparent;
154
+ --cool-btn-hover-bg: var(--cool-input-group-bg);
155
+ --cool-btn-hover-color: var(--cool-input-group-color);
156
+ --cool-btn-hover-border-color: transparent;
157
+ --cool-btn-active-bg: var(--cool-input-group-bg);
158
+ --cool-btn-active-color: var(--cool-input-group-color);
159
+ --cool-btn-active-border-color: transparent;
160
+ --cool-btn-disabled-bg: var(--cool-input-group-bg);
161
+ --cool-btn-disabled-color: var(--cool-input-group-color);
162
+ --cool-btn-disabled-border-color: transparent;
163
+
164
+ &.btn-xs {
165
+ --cool-btn-padding-y: calc(var(--cool-btn-padding-y-xs) - 2 * var(--cool-input-border-width));
166
+ --cool-btn-padding-x: var(--cool-btn-padding-x-xs);
167
+ --cool-btn-font-size: var(--cool-btn-font-size-xs);
168
+ --cool-btn-line-height: var(--cool-btn-line-height-xs);
169
+ --cool-btn-border-radius: calc(var(--cool-btn-border-radius-xs) - 1px);
170
+ }
171
+
172
+ &.btn-sm {
173
+ --cool-btn-padding-y: calc(var(--cool-btn-padding-y-sm) - 2 * var(--cool-input-border-width));
174
+ --cool-btn-padding-x: var(--cool-btn-padding-x-sm);
175
+ --cool-btn-font-size: var(--cool-btn-font-size-sm);
176
+ --cool-btn-line-height: var(--cool-btn-line-height-sm);
177
+ --cool-btn-border-radius: calc(var(--cool-btn-border-radius-sm) - 2px);
178
+ }
179
+
180
+ &.btn-lg {
181
+ --cool-btn-padding-y: calc(var(--cool-btn-padding-y-lg) - 2 * var(--cool-input-border-width));
182
+ --cool-btn-padding-x: var(--cool-btn-padding-x-lg);
183
+ --cool-btn-font-size: var(--cool-btn-font-size-lg);
184
+ --cool-btn-line-height: var(--cool-btn-line-height-lg);
185
+ --cool-btn-border-radius: calc(var(--cool-btn-border-radius-lg) - 2px);
186
+ }
187
+ }
188
+ }
189
+
190
+ @supports selector(:has(*)) {
191
+ .input-group:has(input:focus),
192
+ .input-group:has(textarea:focus) {
193
+ .form-control,
194
+ .input-group-text,
195
+ .input-group-dropdown,
196
+ .input-group-append > .btn,
197
+ .input-group-prepend > .btn {
198
+ outline: none;
199
+ --cool-btn-border-color: var(--cool-input-focus-border-color);
200
+ --cool-input-group-border-color: var(--cool-input-focus-border-color);
201
+
202
+ &:focus {
203
+ outline: none;
204
+ }
205
+ }
206
+ }
207
+
208
+ .input-group:has(.form-control[readonly]),
209
+ .input-group:has(.form-control:disabled) {
210
+ .input-group-text,
211
+ .input-group-dropdown,
212
+ .input-group-append > .btn,
213
+ .input-group-prepend > .btn {
214
+ background-color: var(--cool-input-disabled-bg);
215
+ opacity: 1;
216
+ color: var(--cool-input-disabled-color);
217
+ }
218
+ }
219
+ }
220
+
221
+ .input-group-lg > .form-control:not(textarea) {
222
+ height: var(--cool-input-height-lg);
223
+ }
224
+
225
+ .input-group-lg > .form-control,
226
+ .input-group-lg > .input-group-text,
227
+ .input-group-lg > .input-group-dropdown,
228
+ .input-group-lg > .input-group-prepend > .input-group-text,
229
+ .input-group-lg > .input-group-append > .input-group-text,
230
+ .input-group-lg > .input-group-prepend > .input-group-dropdown,
231
+ .input-group-lg > .input-group-append > .input-group-dropdown {
232
+ padding: var(--cool-input-padding-y-lg) var(--cool-input-padding-x-lg);
233
+ font-size: var(--cool-input-font-size-lg);
234
+ line-height: var(--cool-input-line-height-lg);
235
+ border-radius: var(--cool-input-border-radius-lg);
236
+ }
237
+
238
+ .input-group-lg > .input-group-prepend > .btn,
239
+ .input-group-lg > .input-group-append > .btn {
240
+ padding: var(--cool-input-padding-y-lg) var(--cool-input-padding-x-lg);
241
+ font-size: var(--cool-input-font-size-lg);
242
+ border-radius: var(--cool-input-border-radius-lg);
243
+ height: var(--cool-input-height-lg);
244
+ }
245
+
246
+ .input-group-lg .input-group-dropdown .dropdown {
247
+ margin: calc(var(--cool-input-padding-y-lg) * -1) calc(var(--cool-input-padding-x-lg) * -1);
248
+ }
249
+
250
+ .input-group-sm > .form-control:not(textarea) {
251
+ height: var(--cool-input-height-sm);
252
+ }
253
+
254
+ .input-group-sm > .form-control,
255
+ .input-group-sm > .input-group-text,
256
+ .input-group-sm > .input-group-dropdown,
257
+ .input-group-sm > .input-group-prepend > .input-group-text,
258
+ .input-group-sm > .input-group-append > .input-group-text,
259
+ .input-group-sm > .input-group-prepend > .input-group-dropdown,
260
+ .input-group-sm > .input-group-append > .input-group-dropdown {
261
+ padding: var(--cool-input-padding-y-sm) var(--cool-input-padding-x-sm);
262
+ font-size: var(--cool-input-font-size-sm);
263
+ line-height: var(--cool-input-line-height-sm);
264
+ border-radius: var(--cool-input-border-radius-sm);
265
+ }
266
+
267
+ .input-group-sm > .input-group-prepend > .btn,
268
+ .input-group-sm > .input-group-append > .btn {
269
+ padding: var(--cool-input-padding-y-sm) var(--cool-input-padding-x-sm);
270
+ font-size: var(--cool-input-font-size-sm);
271
+ border-radius: var(--cool-input-border-radius-sm);
272
+ height: var(--cool-input-height-sm);
273
+ }
274
+
275
+ .input-group-sm .input-group-dropdown .dropdown {
276
+ margin: calc(var(--cool-input-padding-y-sm) * -1) calc(var(--cool-input-padding-x-sm) * -1);
277
+ }
278
+
279
+ // Prepend and append rounded corners
280
+ // These rulesets must come after the sizing ones to properly override sm and lg
281
+ // border-radius values when extending. They're more specific than we'd like
282
+ // with the `.input-group >` part, but without it, we cannot override the sizing.
283
+ .input-group > .input-group-prepend > .btn,
284
+ .input-group > .input-group-prepend > .input-group-text,
285
+ .input-group > .input-group-prepend > .input-group-dropdown,
286
+ .input-group > .input-group-append:not(:last-child) > .btn,
287
+ .input-group > .input-group-append:not(:last-child) > .input-group-text,
288
+ .input-group > .input-group-append:not(:last-child) > .input-group-dropdown,
289
+ .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
290
+ .input-group > .input-group-append:last-child > .input-group-text:not(:last-child),
291
+ .input-group > .input-group-append:last-child > .input-group-dropdown:not(:last-child) {
292
+ border-top-right-radius: 0;
293
+ border-bottom-right-radius: 0;
294
+ }
295
+
296
+ .input-group > .input-group-prepend > .input-group-text:not([class*="bg-"]),
297
+ .input-group > .input-group-append:last-child > .input-group-text:not([class*="bg-"]):not(:last-child) {
298
+ padding-right: 0;
299
+ }
300
+
301
+ .input-group > .input-group-append > .btn,
302
+ .input-group > .input-group-append > .input-group-text,
303
+ .input-group > .input-group-append > .input-group-dropdown,
304
+ .input-group > .input-group-prepend:not(:first-child) > .btn,
305
+ .input-group > .input-group-prepend:not(:first-child) > .input-group-text,
306
+ .input-group > .input-group-prepend:not(:first-child) > .input-group-dropdown,
307
+ .input-group > .input-group-prepend:first-child > .btn:not(:first-child),
308
+ .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child),
309
+ .input-group > .input-group-prepend:first-child > .input-group-dropdown:not(:first-child) {
310
+ border-top-left-radius: 0;
311
+ border-bottom-left-radius: 0;
312
+ }
313
+
314
+ .input-group > .input-group-append > .input-group-text:not([class*="bg-"]),
315
+ .input-group > .input-group-prepend:first-child > .input-group-text:not([class*="bg-"]):not(:first-child) {
316
+ padding-left: 0;
317
+ }
318
+ }
319
+
320
+ @if $cool-use-component-layer {
321
+ @layer components {
322
+ @include cool-input-group;
323
+ }
324
+ } @else {
325
+ @include cool-input-group;
326
+ }