@finqu/cool 1.3.0 → 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 (74) hide show
  1. package/README.md +23 -9
  2. package/dist/css/cool.css +13391 -7742
  3. package/dist/css/cool.css.map +1 -1
  4. package/dist/css/cool.min.css +2 -93
  5. package/dist/css/cool.min.css.map +1 -1
  6. package/dist/js/cool.bundle.js +16051 -17050
  7. package/dist/js/cool.bundle.js.map +1 -1
  8. package/dist/js/cool.bundle.min.js +11 -18
  9. package/dist/js/cool.bundle.min.js.map +1 -1
  10. package/dist/js/cool.esm.js +3469 -4468
  11. package/dist/js/cool.esm.js.map +1 -1
  12. package/dist/js/cool.esm.min.js +2 -8
  13. package/dist/js/cool.esm.min.js.map +1 -1
  14. package/dist/js/cool.js +5083 -6089
  15. package/dist/js/cool.js.map +1 -1
  16. package/dist/js/cool.min.js +2 -8
  17. package/dist/js/cool.min.js.map +1 -1
  18. package/package.json +48 -16
  19. package/scss/LISENCE +15 -0
  20. package/scss/_badge.scss +134 -0
  21. package/scss/_button-group.scss +80 -0
  22. package/scss/_buttons.scss +304 -0
  23. package/scss/_dark.scss +637 -0
  24. package/scss/_dialog.scss +351 -0
  25. package/scss/_dropdown.scss +165 -0
  26. package/scss/_forms.scss +613 -0
  27. package/scss/_frame.scss +948 -0
  28. package/scss/_grid.scss +215 -0
  29. package/scss/_input-group.scss +326 -0
  30. package/scss/_list-group.scss +127 -0
  31. package/scss/_media.scss +439 -0
  32. package/scss/_navbar.scss +122 -0
  33. package/scss/_notification.scss +115 -0
  34. package/scss/_pagination.scss +82 -0
  35. package/scss/_popover.scss +61 -0
  36. package/scss/_reboot.scss +306 -0
  37. package/scss/_root.scss +848 -0
  38. package/scss/_section.scss +735 -0
  39. package/scss/_select.scss +559 -0
  40. package/scss/_tables.scss +611 -0
  41. package/scss/_tabs.scss +50 -0
  42. package/scss/_toast.scss +277 -0
  43. package/scss/_tooltip.scss +130 -0
  44. package/scss/_typography.scss +166 -0
  45. package/scss/_variables.scss +1229 -0
  46. package/scss/cool.scss +69 -0
  47. package/scss/utilities/_align.scss +51 -0
  48. package/scss/utilities/_animation.scss +165 -0
  49. package/scss/utilities/_background.scss +72 -0
  50. package/scss/utilities/_borders.scss +205 -0
  51. package/scss/utilities/_collapse.scss +28 -0
  52. package/scss/utilities/_cursor.scss +160 -0
  53. package/scss/utilities/_display.scss +116 -0
  54. package/scss/utilities/_embed.scss +89 -0
  55. package/scss/utilities/_fill.scss +79 -0
  56. package/scss/utilities/_filters.scss +233 -0
  57. package/scss/utilities/_flex.scss +216 -0
  58. package/scss/utilities/_grid.scss +136 -0
  59. package/scss/utilities/_opacity.scss +131 -0
  60. package/scss/utilities/_overflow.scss +242 -0
  61. package/scss/utilities/_perfect-scrollbar.scss +147 -0
  62. package/scss/utilities/_pointer-events.scss +125 -0
  63. package/scss/utilities/_position.scss +130 -0
  64. package/scss/utilities/_screen-readers.scss +95 -0
  65. package/scss/utilities/_shadows.scss +195 -0
  66. package/scss/utilities/_sizing.scss +288 -0
  67. package/scss/utilities/_spacing.scss +168 -0
  68. package/scss/utilities/_stroke.scss +124 -0
  69. package/scss/utilities/_text.scss +420 -0
  70. package/scss/utilities/_transform.scss +232 -0
  71. package/scss/utilities/_transitions.scss +147 -0
  72. package/scss/utilities/_user-select.scss +93 -0
  73. package/scss/utilities/_visibility.scss +66 -0
  74. package/scss/utilities/_z-index.scss +169 -0
@@ -0,0 +1,215 @@
1
+ @use "variables" as *;
2
+ @use "sass:map";
3
+ @use "sass:math";
4
+ /* Grid ========================================================================== */
5
+ @layer layout {
6
+ .container {
7
+ width: 100%;
8
+ padding-right: var(--cool-grid-gutter-x);
9
+ padding-left: var(--cool-grid-gutter-x);
10
+ margin-right: auto;
11
+ margin-left: auto;
12
+
13
+ @each $breakpoint, $container-max-width in $container-max-widths {
14
+ @include media-breakpoint-up($breakpoint) {
15
+ max-width: $container-max-width;
16
+ }
17
+ }
18
+ }
19
+
20
+ .container-fluid {
21
+ width: 100%;
22
+ padding-right: var(--cool-grid-gutter-x);
23
+ padding-left: var(--cool-grid-gutter-x);
24
+ margin-right: auto;
25
+ margin-left: auto;
26
+ max-width: 100%;
27
+ }
28
+
29
+ .container-content {
30
+ position: relative;
31
+ width: 100%;
32
+ max-width: var(--cool-container-content-max-width);
33
+ padding-right: var(--cool-grid-gutter-x);
34
+ padding-left: var(--cool-grid-gutter-x);
35
+ margin-right: auto;
36
+ margin-left: auto;
37
+ }
38
+
39
+ .row {
40
+ display: flex;
41
+ flex-wrap: wrap;
42
+ margin-right: calc(var(--cool-grid-gutter-x) * -0.5);
43
+ margin-left: calc(var(--cool-grid-gutter-x) * -0.5);
44
+ }
45
+
46
+ .no-gutters {
47
+ margin-right: 0;
48
+ margin-left: 0;
49
+
50
+ > .col,
51
+ > [class*="col-"] {
52
+ padding-right: 0;
53
+ padding-left: 0;
54
+ }
55
+ }
56
+
57
+ .col,
58
+ [class*="col-"] {
59
+ position: relative;
60
+ width: 100%;
61
+ padding-right: calc(var(--cool-grid-gutter-x) * 0.5);
62
+ padding-left: calc(var(--cool-grid-gutter-x) * 0.5);
63
+ }
64
+
65
+ .col {
66
+ flex-basis: 0;
67
+ flex-grow: 1;
68
+ max-width: 100%;
69
+ }
70
+
71
+ .col-auto {
72
+ flex: 0 0 auto;
73
+ width: auto;
74
+ max-width: 100%;
75
+ }
76
+
77
+ @for $i from 1 through $grid-columns {
78
+ .col-#{$i} {
79
+ flex: 0 0 math.percentage(math.div($i, $grid-columns));
80
+ max-width: math.percentage(math.div($i, $grid-columns));
81
+ }
82
+ }
83
+
84
+ .order-first {
85
+ order: -1;
86
+ }
87
+
88
+ .order-last {
89
+ order: $grid-columns + 1;
90
+ }
91
+
92
+ @for $i from 0 through $grid-columns {
93
+ .order-#{$i} {
94
+ order: $i;
95
+ }
96
+ }
97
+
98
+ @for $i from 1 through ($grid-columns - 1) {
99
+ .offset-#{$i} {
100
+ margin-left: math.percentage(math.div($i, $grid-columns));
101
+ }
102
+ }
103
+
104
+ @each $breakpoint in map.keys($grid-breakpoints) {
105
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
106
+
107
+ @if $breakpoint !=xs {
108
+ @include media-breakpoint-up($breakpoint) {
109
+ .col#{$infix} {
110
+ flex-basis: 0;
111
+ flex-grow: 1;
112
+ max-width: 100%;
113
+ }
114
+
115
+ .col#{$infix}-auto {
116
+ flex: 0 0 auto;
117
+ width: auto;
118
+ max-width: 100%;
119
+ }
120
+
121
+ @for $i from 1 through $grid-columns {
122
+ .col#{$infix}-#{$i} {
123
+ flex: 0 0 math.percentage(math.div($i, $grid-columns));
124
+ max-width: math.percentage(math.div($i, $grid-columns));
125
+ }
126
+ }
127
+
128
+ .order#{$infix}-first {
129
+ order: -1;
130
+ }
131
+
132
+ .order#{$infix}-last {
133
+ order: $grid-columns + 1;
134
+ }
135
+
136
+ @for $i from 0 through $grid-columns {
137
+ .order#{$infix}-#{$i} {
138
+ order: $i;
139
+ }
140
+ }
141
+
142
+ @for $i from 0 through ($grid-columns - 1) {
143
+ @if not($infix == "" and $i == 0) {
144
+ .offset#{$infix}-#{$i} {
145
+ @if $i == 0 {
146
+ margin-left: 0;
147
+ } @else {
148
+ margin-left: math.percentage(math.div($i, $grid-columns));
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+ }
156
+
157
+ @for $i from 1 through 6 {
158
+ .row-cols-#{$i} {
159
+ > * {
160
+ flex: 0 0 math.percentage(math.div(1, $i));
161
+ max-width: math.percentage(math.div(1, $i));
162
+ }
163
+ }
164
+ }
165
+
166
+ @each $breakpoint in map.keys($grid-breakpoints) {
167
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
168
+
169
+ @if $breakpoint !=xs {
170
+ @include media-breakpoint-up($breakpoint) {
171
+ @for $i from 1 through 6 {
172
+ .row-cols#{$infix}-#{$i} {
173
+ > * {
174
+ flex: 0 0 math.percentage(math.div(1, $i));
175
+ max-width: math.percentage(math.div(1, $i));
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
182
+
183
+ @each $breakpoint in map.keys($grid-breakpoints) {
184
+ @include media-breakpoint-up($breakpoint) {
185
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
186
+
187
+ @for $i from 0 through 6 {
188
+ .g#{$infix}-#{$i},
189
+ .gx#{$infix}-#{$i} {
190
+ --cool-grid-gutter-x: #{calc(var(--cool-spacer) * $i)};
191
+ }
192
+
193
+ .g#{$infix}-#{$i},
194
+ .gy#{$infix}-#{$i} {
195
+ --cool-grid-gutter-y: #{calc(var(--cool-spacer) * $i)};
196
+ }
197
+ }
198
+ }
199
+ }
200
+
201
+ @for $i from 0 through 6 {
202
+ .g-#{$i} {
203
+ --cool-grid-gutter-x: #{calc(var(--cool-spacer) * $i)};
204
+ --cool-grid-gutter-y: #{calc(var(--cool-spacer) * $i)};
205
+ }
206
+
207
+ .gx-#{$i} {
208
+ --cool-grid-gutter-x: #{calc(var(--cool-spacer) * $i)};
209
+ }
210
+
211
+ .gy-#{$i} {
212
+ --cool-grid-gutter-y: #{calc(var(--cool-spacer) * $i)};
213
+ }
214
+ }
215
+ }
@@ -0,0 +1,326 @@
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
+ }
@@ -0,0 +1,127 @@
1
+ @use "variables" as *;
2
+ /* List Group ========================================================================== */
3
+
4
+ @mixin cool-list-group {
5
+ .list-group {
6
+ display: flex;
7
+ flex-direction: column;
8
+ padding-left: 0;
9
+ margin-bottom: 0;
10
+ margin-top: 0;
11
+ }
12
+
13
+ .list-group-item {
14
+ position: relative;
15
+ display: flex;
16
+ padding: var(--cool-list-group-item-padding-y) var(--cool-list-group-item-padding-x);
17
+ line-height: var(--cool-list-group-line-height);
18
+ color: var(--cool-list-group-color);
19
+ align-items: center;
20
+ flex: 1 0 auto;
21
+ appearance: none;
22
+ border: none;
23
+ background-color: var(--cool-list-group-bg);
24
+ text-align: left;
25
+ font-weight: var(--cool-font-weight-base);
26
+
27
+ &.active {
28
+ .list-group-icon.image > .icon {
29
+ color: var(--cool-list-group-active-color);
30
+ }
31
+ }
32
+
33
+ &.disabled {
34
+ color: var(--cool-list-group-disabled-color);
35
+ }
36
+
37
+ > a {
38
+ display: flex;
39
+ color: inherit;
40
+ align-items: center;
41
+ width: 100%;
42
+ flex: 1 1;
43
+ }
44
+
45
+ .list-group-icon {
46
+ margin-right: var(--cool-list-group-icon-spacing);
47
+
48
+ &:not(.image) {
49
+ line-height: var(--cool-list-group-line-height);
50
+ }
51
+ }
52
+ }
53
+
54
+ .list-group-bordered:not(ul) {
55
+ > .list-group-item {
56
+ border-bottom: var(--cool-border-width) solid var(--cool-list-group-border-color);
57
+
58
+ &:last-child {
59
+ border-bottom: 0;
60
+ }
61
+ }
62
+ }
63
+
64
+ .list-group-hover:not(ul) {
65
+ > .list-group-item {
66
+ &:hover:not(.disabled) {
67
+ background-color: var(--cool-list-group-hover-bg);
68
+ }
69
+ }
70
+ }
71
+
72
+ ul.list-group {
73
+ li {
74
+ list-style: none;
75
+ }
76
+ }
77
+
78
+ ul.list-group-bordered {
79
+ > .list-group-item {
80
+ border-bottom: var(--cool-border-width) solid var(--cool-list-group-border-color);
81
+ }
82
+
83
+ > li:last-child {
84
+ border-bottom: 0;
85
+
86
+ .list-group-item {
87
+ border-bottom: 0;
88
+ }
89
+ }
90
+ }
91
+
92
+ ul.list-group-hover {
93
+ > .list-group-item {
94
+ &:hover:not(.disabled) {
95
+ background-color: var(--cool-list-group-hover-bg);
96
+ }
97
+ }
98
+ }
99
+
100
+ .list-group-inner-spacing {
101
+ > .list-group-item {
102
+ padding: var(--cool-list-group-inner-padding);
103
+ }
104
+ }
105
+
106
+ .list-group.list-group-distinctive {
107
+ display: grid;
108
+ gap: var(--cool-list-group-distinctive-gap);
109
+
110
+ > .list-group-item {
111
+ line-height: initial;
112
+ border: var(--cool-border-width) solid var(--cool-list-group-border-color);
113
+ padding: var(--cool-list-group-distinctive-padding);
114
+ background: var(--cool-list-group-distinctive-bg);
115
+ border-radius: var(--cool-border-radius);
116
+ display: block;
117
+ }
118
+ }
119
+ }
120
+
121
+ @if $cool-use-component-layer {
122
+ @layer components {
123
+ @include cool-list-group;
124
+ }
125
+ } @else {
126
+ @include cool-list-group;
127
+ }