@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,977 +1,735 @@
1
- // Section
2
- // ---------------------------------------------------------------------------------------------------------------
3
-
4
- .section-container {
5
- margin-bottom: $section-spacer;
6
-
7
- @include media-breakpoint-down(sm) {
8
- margin-bottom: $section-spacer-mobile;
9
- }
10
- }
11
-
12
- .section-subtitle {
13
- display: block;
14
- margin-bottom: $section-spacer;
15
- font-family: $section-header-font-family;
16
- font-size: $section-header-font-size;
17
- font-weight: $section-header-font-weight;
18
-
19
- @include media-breakpoint-down(sm) {
20
- margin-bottom: $section-spacer-mobile;
21
- }
22
- }
23
-
24
- .section {
25
- margin-bottom: $section-spacer;
26
- box-shadow: $section-box-shadow;
27
- border-radius: $section-border-radius;
28
- border: $section-border-width solid $section-border-color;
29
-
30
- @include media-breakpoint-down(sm) {
31
- margin-bottom: $section-spacer-mobile;
32
- }
33
-
34
- &:not([class*="order-"]):last-child,
35
- &.last-child {
36
- margin-bottom: 0;
37
- }
38
-
39
- &.section-height-auto {
40
- height: auto;
41
- }
42
-
43
- &.section-parent {
44
- > .section-content {
45
- padding: 0;
46
- }
47
- }
48
-
49
- // Hover
50
- &.section-hover {
51
- transition: box-shadow 0.1s linear;
52
-
53
- &:hover {
54
- box-shadow: $section-hover-box-shadow;
55
- }
56
- }
57
-
58
- // Guide
59
- &.section-guide {
60
- &:not(.show-more) {
61
- .section-content {
62
- @include media-breakpoint-down(md) {
63
- p {
64
- &:not(:first-child) {
65
- display: none;
66
- }
67
-
68
- &:first-child {
69
- white-space: nowrap;
70
- overflow: hidden;
71
- text-overflow: ellipsis;
72
- margin-bottom: 0;
73
- }
74
- }
75
- }
76
-
77
- @include media-breakpoint-up(md) {
78
- [name="guide-read-more"] {
79
- display: none;
80
- }
81
- }
82
- }
83
-
84
- .guide-videos {
85
- @include media-breakpoint-down(md) {
86
- display: none;
87
- }
88
- }
89
- }
90
- .guide-content {
91
- & + .guide-videos {
92
- @include media-breakpoint-down(md) {
93
- margin-top: 20px;
94
- }
95
- }
96
- }
97
- }
98
-
99
- // Image
100
- .section-image {
101
- position: relative;
102
- background-color: #ffffff;
103
- background-size: cover;
104
- background-repeat: no-repeat;
105
- overflow: hidden;
106
- border-top-left-radius: $section-border-radius;
107
- border-top-right-radius: $section-border-radius;
108
-
109
- &.size-sm {
110
- min-height: 170px;
111
- }
112
-
113
- &.size-md {
114
- min-height: 230px;
115
- }
116
-
117
- &.size-lg {
118
- min-height: 326px;
119
- }
120
-
121
- &.darken-image {
122
- z-index: 1;
123
- &:after {
124
- position: absolute;
125
- top: 0;
126
- right: 0;
127
- bottom: 0;
128
- left: 0;
129
- background-color: rgba(0,0,0,0.15);
130
- content: '';
131
- z-index: -1;
132
- }
133
- }
134
-
135
- & + .section-tabs:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
136
- & + .section-content:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
137
- & + .section-filters:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
138
- & + .section-bulk-actions:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
139
- & + .section-title:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
140
- & + .section-sub-heading:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
141
- & + .section-placeholder:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
142
- border-top-left-radius: 0;
143
- border-top-right-radius: 0;
144
- }
145
-
146
- .image-badge {
147
- position: absolute;
148
- top: 30px;
149
- left: -40px;
150
- transform: rotate(-40deg);
151
- background-color: color('blue');
152
- color: #ffffff;
153
- box-shadow: 0 0 3px rgba(0,0,0,0.3);
154
- text-align: center;
155
- letter-spacing: 1px;
156
- width: 220px;
157
- text-overflow: ellipsis;
158
- overflow: hidden;
159
- box-sizing: border-box;
160
- padding: 10px 0;
161
- font-size: 12px;
162
-
163
- .image-badge-content {
164
- display: block;
165
- width: 145px;
166
- height: 18px;
167
- margin-left: 28px;
168
- text-overflow: ellipsis;
169
- overflow: hidden;
170
- }
171
- }
172
- }
173
-
174
- // Video
175
- .section-video {
176
- height: 100%;
177
- background-color: #000000;
178
- border-radius: $section-border-radius;
179
- overflow: hidden;
180
-
181
- &.size-md {
182
- height: 230px;
183
- }
184
-
185
- &.size-lg {
186
- max-height: 326px;
187
- }
188
-
189
- &.has-content {
190
- border-bottom-left-radius: 0;
191
- border-bottom-right-radius: 0;
192
- }
193
-
194
- & + .section-tabs:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
195
- & + .section-content:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
196
- & + .section-filters:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
197
- & + .section-bulk-actions:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
198
- & + .section-title:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
199
- & + .section-sub-heading:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
200
- & + .section-placeholder:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
201
- border-top-left-radius: 0;
202
- border-top-right-radius: 0;
203
- }
204
- }
205
-
206
- // Bg
207
- &.section-bg {
208
- .section-content {
209
- background-color: transparent;
210
- background-size: cover;
211
- background-repeat: no-repeat;
212
-
213
- &.darken-bg {
214
- position: relative;
215
- z-index: 2;
216
-
217
- &:after {
218
- position: absolute;
219
- top: 0;
220
- right: 0;
221
- bottom: 0;
222
- left: 0;
223
- background-color: rgba(0,0,0,0.15);
224
- content: '';
225
- z-index: -1;
226
- }
227
- }
228
- }
229
- }
230
-
231
- // Diviner
232
- .section-hr {
233
- background: $section-bg;
234
- padding-top: $section-padding / 2;
235
- padding-bottom: $section-padding / 2;
236
-
237
- &.content-full-width {
238
- &:after {
239
- margin-left: 0;
240
- margin-right: 0;
241
- }
242
- }
243
-
244
- &:after {
245
- display: block;
246
- content: '';
247
- height: $section-divider-height;
248
- background: $section-divider-color;
249
- margin-left: $section-divider-padding;
250
- margin-right: $section-divider-padding;
251
- }
252
- }
253
-
254
- // Tabs
255
- .section-tabs {
256
- background: $section-tabs-bg;
257
- color: $section-color;
258
- border-top-left-radius: $section-border-radius;
259
- border-top-right-radius: $section-border-radius;
260
-
261
- & + .section-tabs:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
262
- & + .section-content:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
263
- & + .section-filters:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
264
- & + .section-bulk-actions:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
265
- & + .section-title:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
266
- & + .section-sub-heading:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
267
- & + .section-placeholder:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
268
- border-top-left-radius: 0;
269
- border-top-right-radius: 0;
270
- }
271
-
272
- & + .section-hr {
273
- margin-top: -$section-padding / 2;
274
- margin-bottom: -$section-padding / 2;
275
- }
276
-
277
- > .tabs-container {
278
- display: flex;
279
- align-items: stretch;
280
- flex-wrap: nowrap;
281
- list-style: none;
282
- padding: 0;
283
- margin: 0;
284
- overflow: visible;
285
- //border-bottom: 1px solid $section-tabs-border-color;
286
-
287
- > .tab-item {
288
- display: flex;
289
- align-items: stretch;
290
- flex-grow: 0;
291
- flex-shrink: 0;
292
- position: relative;
293
- margin: 0;
294
- font-family: $font-family-title;
295
- font-weight: 600;
296
-
297
- &:first-child {
298
- > .tab-item-action {
299
- margin-left: $section-tabs-item-margin-x;
300
- }
301
- }
302
-
303
- &.dropdown-container {
304
- display: none;
305
- &.visible {
306
- display: flex;
307
- }
308
- }
309
-
310
- > .tab-item-action {
311
- display: flex;
312
- align-items: center;
313
- justify-content: center;
314
- flex-grow: 1;
315
- line-height: 1;
316
- position: relative;
317
- text-align: center;
318
- cursor: pointer;
319
- min-width: $section-tabs-item-min-width;
320
- padding: $section-tabs-item-padding-y 0;
321
- margin-right: $section-tabs-item-margin-x;
322
- color: $section-tabs-color;
323
- border-bottom: $section-tabs-border-width solid transparent;
324
-
325
- &:hover {
326
- color: $section-tabs-hover-color;
327
- border-color: $section-tabs-border-hover-color;
328
- }
329
-
330
- &.active {
331
- color: $section-tabs-active-color;
332
- border-color: $section-tabs-border-active-color;
333
- }
334
- }
335
-
336
- > span.tab-item-action {
337
- cursor: default;
338
- }
339
- }
340
- }
341
- }
342
-
343
- // Filters
344
- .section-filters {
345
- position: absolute;
346
- visibility: hidden;
347
- flex-wrap: wrap;
348
- background: $section-bg;
349
- color: $section-color;
350
- padding: $section-padding / 2;
351
- box-sizing: border-box;
352
- border-top: $border-width solid $section-divider-color;
353
-
354
- & + .section-tabs:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
355
- & + .section-content:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
356
- & + .section-filters:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
357
- & + .section-bulk-actions:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
358
- & + .section-title:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
359
- & + .section-sub-heading:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
360
- & + .section-placeholder:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
361
- margin-top: -$section-border-radius;
362
- }
363
-
364
- & + .section-hr {
365
- margin-top: -$section-padding / 2;
366
- margin-bottom: -$section-padding / 2;
367
- }
368
-
369
- &.active {
370
- display: flex;
371
- position: static;
372
- visibility: visible;
373
- }
374
-
375
- .filter {
376
- position: absolute;
377
- visibility: hidden;
378
- flex: 0 0 25%;
379
- max-width: 25%;
380
- padding: $section-padding / 2;
381
- box-sizing: border-box;
382
- @include media-breakpoint-only(md) {
383
- flex: 0 0 50%;
384
- max-width: 50%;
385
- }
386
- @include media-breakpoint-down(sm) {
387
- flex: 0 0 100%;
388
- max-width: 100%;
389
- }
390
-
391
- &.active {
392
- position: static;
393
- visibility: visible;
394
- }
395
- }
396
- }
397
-
398
- // Bulk actions
399
- .section-bulk-actions {
400
- position: absolute;
401
- visibility: hidden;
402
- flex-wrap: wrap;
403
- background: $section-bg;
404
- color: $section-color;
405
- padding: $section-padding / 2;
406
- box-sizing: border-box;
407
- border-top: 1px solid $section-divider-color;
408
-
409
- & + .section-tabs:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
410
- & + .section-content:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
411
- & + .section-filters:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
412
- & + .section-bulk-actions:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
413
- & + .section-title:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
414
- & + .section-sub-heading:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
415
- & + .section-placeholder:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
416
- margin-top: -$section-border-radius;
417
- }
418
-
419
- & + .section-hr {
420
- margin-top: -$section-padding / 2;
421
- margin-bottom: -$section-padding / 2;
422
- }
423
-
424
- &.active {
425
- display: flex;
426
- position: static;
427
- visibility: visible;
428
- }
429
-
430
- .bulk-action {
431
- display: flex;
432
- align-items: center;
433
- width: 100%;
434
- position: absolute;
435
- visibility: hidden;
436
- padding: $section-padding / 2;
437
- box-sizing: border-box;
438
- @include media-breakpoint-down(md) {
439
- flex-wrap: wrap;
440
- flex-direction: column;
441
- align-items: flex-start;
442
- }
443
-
444
- &.active {
445
- position: static;
446
- visibility: visible;
447
- }
448
-
449
- .bulk-action-select {
450
- display: inline-flex;
451
- flex: 1;
452
- align-items: center;
453
- font-size: 12px;
454
- max-width: 200px;
455
- width: 100%;
456
- @include media-breakpoint-down(md) {
457
- margin-top: 15px;
458
- }
459
- @include media-breakpoint-up(md) {
460
- margin-left: auto;
461
- margin-right: 10px;
462
- }
463
-
464
- & + .bulk-action-actions {
465
- margin-left: 0;
466
- }
467
-
468
- .form-control {
469
- margin-left: 5px;
470
- }
471
- }
472
-
473
- .bulk-action-actions {
474
- @include media-breakpoint-down(md) {
475
- margin-top: 15px;
476
- }
477
- @include media-breakpoint-up(md) {
478
- margin-left: auto;
479
- }
480
- }
481
- }
482
- }
483
-
484
- // Placeholder
485
- .section-placeholder {
486
- flex-direction: column;
487
- flex-grow: 1;
488
- align-items: center;
489
- justify-content: center;
490
- background: $section-bg;
491
- color: $section-color;
492
- border-radius: $section-border-radius;
493
- padding: $section-padding * 3 $section-padding;
494
- overflow-x: auto;
495
- box-sizing: border-box;
496
-
497
- & + .section-tabs:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
498
- & + .section-content:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
499
- & + .section-filters:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
500
- & + .section-bulk-actions:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
501
- & + .section-title:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
502
- & + .section-sub-heading:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
503
- & + .section-placeholder:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
504
- margin-top: -$section-border-radius;
505
- }
506
-
507
- & + .section-hr {
508
- margin-top: -$section-padding / 2;
509
- margin-bottom: -$section-padding / 2;
510
- }
511
-
512
- .placeholder-icon {
513
- .icon-container {
514
- display: flex;
515
- align-items: center;
516
- justify-content: center;
517
- border-radius: 50%;
518
- width: 100px;
519
- height: 100px;
520
- color: theme-color('medium');
521
- //background-color: $grey-100;
522
- padding: 10px;
523
- margin: 0 auto;
524
- box-sizing: content-box;
525
-
526
- .icon {
527
- font-size: 5rem;
528
- }
529
- }
530
-
531
- & + .placeholder-title,
532
- & + .placeholder-description,
533
- & + .placeholder-action,
534
- & + .placeholder-action-secondary {
535
- margin-top: 20px;
536
- }
537
- }
538
-
539
- .placeholder-title {
540
- text-align: center;
541
- font-family: $font-family-title;
542
- font-weight: 600;
543
-
544
- & + .placeholder-description {
545
- margin-top: 10px;
546
- }
547
-
548
- & + .placeholder-action,
549
- & + .placeholder-action-secondary {
550
- margin-top: 20px;
551
- }
552
- }
553
-
554
- .placeholder-description {
555
- text-align: center;
556
- color: theme-color('medium');
557
-
558
- .description {
559
- margin-bottom: 0;
560
- }
561
-
562
- & + .placeholder-action,
563
- & + .placeholder-action-secondary {
564
- margin-top: 20px;
565
- }
566
- }
567
-
568
- .placeholder-action {
569
- text-align: center;
570
-
571
- & + .placeholder-action-secondary {
572
- margin-top: 20px;
573
- }
574
- }
575
- }
576
-
577
- // Header
578
- .section-title {
579
- font-family: $section-header-font-family;
580
- font-size: $section-header-font-size;
581
- font-weight: $section-header-font-weight;
582
- color: $section-header-color;
583
- background: $section-header-bg;
584
- border-radius: $section-border-radius;
585
- padding: $section-padding;
586
- align-items: center;
587
- display: flex;
588
- @include media-breakpoint-down(sm) {
589
- display: block;
590
- }
591
-
592
- & + .section-tabs:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
593
- & + .section-content:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none):not(.section-collapse),
594
- & + .section-filters:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
595
- & + .section-bulk-actions:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
596
- & + .section-title:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
597
- & + .section-placeholder:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
598
- margin-top: -$section-border-radius;
599
- // padding-top: 0;
600
- }
601
-
602
- & + .section-sub-heading:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
603
- margin-top: -$section-border-radius;
604
- padding-top: 0;
605
- }
606
-
607
- & + .section-collapse.show:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
608
- padding-top: $section-border-radius;
609
- margin-top: -$section-border-radius;
610
- }
611
-
612
- & + .section-hr {
613
- margin-top: -$section-padding / 2;
614
- margin-bottom: -$section-padding / 2;
615
- }
616
-
617
- .title {
618
- align-self: center;
619
- text-align: left;
620
- @include media-breakpoint-down(sm) {
621
- display: block;
622
- }
623
-
624
- p {
625
- font-weight: $font-weight-normal;
626
- font-size: $font-size-base;
627
- }
628
- }
629
-
630
- .actions {
631
- color: $section-header-actions-color;
632
- font-weight: $font-weight-normal;
633
- font-size: $font-size-base;
634
- font-family: $font-family-base;
635
- margin-left: auto;
636
- text-align: right;
637
-
638
- @include media-breakpoint-down(sm) {
639
- display: block;
640
- text-align: left;
641
- margin-top: 15px;
642
- }
643
- }
644
-
645
- > .title > .icon,
646
- > .icon {
647
- color: $section-header-icons-color;
648
- font-size: $section-header-icons-size;
649
- margin-right: 5px;
650
- }
651
-
652
- .btn-group,
653
- .form-group {
654
- margin: 0;
655
- }
656
-
657
- & + .section-content {
658
- border-top-left-radius: 0;
659
- border-top-right-radius: 0;
660
- }
661
-
662
- &.inline-actions {
663
- display: flex;
664
-
665
- .title {
666
- display: flex;
667
- flex-direction: column;
668
- }
669
-
670
- .actions {
671
- display: flex;
672
- margin-top: 0;
673
- text-align: right;
674
- }
675
- }
676
- }
677
-
678
- .section-sub-heading {
679
- font-family: $section-subheader-font-family;
680
- font-size: $section-subheader-font-size;
681
- font-weight: $section-subheader-font-weight;
682
- color: $section-subheader-color;
683
- background: $section-subheader-bg;
684
- border-radius: $section-border-radius;
685
- padding: $section-padding * 1.5 $section-padding $section-padding / 1.5 $section-padding;
686
- align-items: center;
687
- display: flex;
688
-
689
- @include media-breakpoint-down(sm) {
690
- display: block;
691
- }
692
-
693
- & + .section-tabs:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
694
- & + .section-content:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none):not(.section-collapse),
695
- & + .section-filters:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
696
- & + .section-bulk-actions:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
697
- & + .section-title:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
698
- & + .section-sub-heading:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
699
- & + .section-placeholder:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
700
- margin-top: -$section-border-radius;
701
- }
702
-
703
- & + .section-collapse.show:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
704
- padding-top: $section-border-radius;
705
- margin-top: -$section-border-radius;
706
- }
707
-
708
- & + .section-hr {
709
- margin-top: -$section-padding / 2;
710
- margin-bottom: -$section-padding / 2;
711
- }
712
-
713
- .title {
714
- align-self: center;
715
- text-align: left;
716
- @include media-breakpoint-down(sm) {
717
- display: block;
718
- }
719
-
720
- p {
721
- font-weight: $font-weight-normal;
722
- font-size: $font-size-base;
723
- }
724
- }
725
-
726
- .actions {
727
- color: $section-header-actions-color;
728
- font-weight: $font-weight-normal;
729
- font-size: $font-size-base;
730
- font-family: $font-family-base;
731
- margin-left: auto;
732
- text-align: right;
733
- @include media-breakpoint-down(sm) {
734
- display: block;
735
- text-align: left;
736
- margin-top: 15px;
737
- }
738
- }
739
-
740
- > .title > .icon,
741
- > .icon {
742
- color: $section-subheader-icons-color;
743
- font-size: $section-subheader-icons-size;
744
- margin-right: 5px;
745
- }
746
-
747
- .btn-group,
748
- .form-group {
749
- margin: 0;
750
- }
751
-
752
- & + .section-content {
753
- border-top-left-radius: 0;
754
- border-top-right-radius: 0;
755
- }
756
-
757
- &.inline-actions {
758
- display: flex;
759
-
760
- .title {
761
- display: flex;
762
- flex-direction: column;
763
- }
764
-
765
- .actions {
766
- display: flex;
767
- margin-top: 0;
768
- text-align: right;
769
- }
770
- }
771
- }
772
-
773
- // Content
774
- .section-content {
775
- flex-direction: column;
776
- flex-grow: 1;
777
- background: $section-bg;
778
- color: $section-color;
779
- border-radius: $section-border-radius;
780
- padding: $section-padding;
781
- overflow-x: auto;
782
- box-sizing: border-box;
783
-
784
- & + .section-tabs:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
785
- & + .section-content:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none):not(.section-collapse),
786
- & + .section-filters:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
787
- & + .section-bulk-actions:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
788
- & + .section-title:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none),
789
- & + .section-placeholder:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
790
- margin-top: -$section-border-radius;
791
- padding-top: 0;
792
- }
793
-
794
- & + .section-sub-heading:not([style*="display:none"]):not([style*="display: none"]):not(.hidden):not(.d-none) {
795
- margin-top: -$section-border-radius;
796
- }
797
-
798
- & + .section-hr {
799
- margin-top: -$section-padding / 2;
800
- margin-bottom: -$section-padding / 2;
801
- }
802
-
803
- & .section-sub-heading {
804
- padding-left: 0;
805
- padding-right: 0;
806
- }
807
-
808
- & > .section-sub-heading:first-child {
809
- padding-top: 0;
810
- margin-top: 0;
811
- }
812
-
813
- &.section-collapse {
814
- position: relative;
815
- transition: padding .35s ease, margin .35s ease;
816
- overflow: hidden;
817
-
818
- &.show {
819
- overflow: visible;
820
- }
821
-
822
- .collapse {
823
- left: $section-padding;
824
- right: $section-padding;
825
-
826
- &.show {
827
- left: auto;
828
- right: auto;
829
- }
830
- }
831
-
832
- .collapsing {
833
- left: auto;
834
- right: auto;
835
- }
836
-
837
- .collapse,
838
- .collapsing {
839
-
840
- .section-hr {
841
- width: 100%;
842
- padding-top: 0;
843
- padding-bottom: 0;
844
-
845
- &:after {
846
- margin-left: 0;
847
- margin-right: 0;
848
- }
849
-
850
- &.content-full-width {
851
- position: relative;
852
- margin-left: 0;
853
- margin-right: 0;
854
-
855
- &:after {
856
- position: absolute;
857
- left: -$section-padding;
858
- right: -$section-padding;
859
- }
860
- }
861
- }
862
- }
863
-
864
- &:not(.show) {
865
- margin-top: 0;
866
- padding-top: 0;
867
- padding-bottom: 0;
868
- }
869
- }
870
-
871
- &.section-content-parent {
872
- padding: 0;
873
- }
874
-
875
- &.no-background {
876
- padding: 0;
877
- background: transparent;
878
- }
879
-
880
- &.attribute-trees {
881
- padding: 0;
882
- background: transparent;
883
- padding: 0;
884
- border-radius: 0;
885
-
886
- .attribute-tree {
887
- padding: 15px;
888
- border-radius: $section-border-radius;
889
- background: white;
890
- padding: 15px;
891
- }
892
- }
893
-
894
- & + .section-sub-heading {
895
- border-top-left-radius: 0;
896
- border-top-right-radius: 0;
897
- }
898
-
899
- .content-full-width {
900
- @include media-breakpoint-up(md) {
901
- margin-left: -$section-padding;
902
- margin-right: -$section-padding;
903
- }
904
- }
905
-
906
- .section-content-box {
907
- padding: $section-padding;
908
- border: 1px solid rgba(0,0,0,0.1);
909
- border-radius: 3px;
910
- }
911
-
912
- .flex-center {
913
- display: flex;
914
- align-items: center;
915
- flex-wrap: wrap;
916
- }
917
-
918
- .definition-spacer {
919
- height: 20px;
920
- }
921
-
922
- .definition {
923
- padding: 2px 0;
924
- display: flex;
925
- flex-wrap: wrap;
926
-
927
- @media (min-width: 500px) {
928
- flex-wrap: nowrap;
929
- }
930
-
931
- .definition-heading {
932
- flex: 0 0 100%;
933
- color: theme-color('medium');
934
- font-size: 12px;
935
-
936
- @media (min-width: 500px) {
937
- color: $body-color;
938
- font-size: 14px;
939
- flex: 0 1 180px;
940
- }
941
- }
942
-
943
- .definition-content {
944
- flex: 1;
945
- order: 1;
946
- align-self: center;
947
- }
948
-
949
- .definition-edit {
950
- order: 2;
951
- flex: 0 1 50px;
952
- }
953
-
954
- .definition-total {
955
- order: 2;
956
- text-align: right;
957
- flex: 0 1 auto;
958
- }
959
-
960
- &.status {
961
- padding: 10px;
962
-
963
- .definition-content {
964
- font-size: 30px;
965
- }
966
-
967
- .definition-edit {
968
- font-size: 18px;
969
- }
970
- }
971
- }
972
-
973
- p:last-child {
974
- margin-bottom: 0;
975
- }
976
- }
977
- }
1
+ @use "variables" as *;
2
+ /* Section ========================================================================== */
3
+
4
+ @mixin cool-section {
5
+ .section {
6
+ display: flex;
7
+ flex-direction: column;
8
+ margin-bottom: var(--cool-section-spacer);
9
+ box-shadow: var(--cool-section-box-shadow);
10
+ border-radius: var(--cool-section-border-radius);
11
+ border: var(--cool-section-border-width) solid var(--cool-section-border-color);
12
+
13
+ &:has(.select.show) {
14
+ z-index: var(--cool-zindex-select);
15
+ }
16
+
17
+ @include media-breakpoint-down(sm) {
18
+ margin-bottom: var(--cool-section-spacer-mobile);
19
+ }
20
+
21
+ &:has(.section-content .expander.expanded) {
22
+ .section-title.section-title-collapsible {
23
+ border-bottom-left-radius: 0;
24
+ border-bottom-right-radius: 0;
25
+ }
26
+ }
27
+
28
+ &:not([class*="order-"]):last-child,
29
+ &.last-child {
30
+ margin-bottom: 0;
31
+ }
32
+
33
+ > * {
34
+ position: relative;
35
+
36
+ &:only-child {
37
+ border-radius: var(--cool-section-border-radius);
38
+ }
39
+
40
+ &:first-child:not(:only-child) {
41
+ border-top-left-radius: var(--cool-section-border-radius);
42
+ border-top-right-radius: var(--cool-section-border-radius);
43
+ }
44
+
45
+ &:last-child:not(:only-child),
46
+ &.is-last-visible {
47
+ border-bottom-left-radius: var(--cool-section-border-radius);
48
+ border-bottom-right-radius: var(--cool-section-border-radius);
49
+ }
50
+
51
+ &:not(:first-child):not(:last-child):not(.is-last-visible) {
52
+ border-radius: 0;
53
+ }
54
+ }
55
+
56
+ .section-content:not(.d-none) + .section-content,
57
+ .section-title + .section-content,
58
+ .section-filters + .section-content,
59
+ .section-bulk-actions + .section-content,
60
+ * + .section-header {
61
+ padding-top: 0;
62
+ }
63
+ }
64
+
65
+ .section-container {
66
+ margin-bottom: var(--cool-section-spacer);
67
+
68
+ @include media-breakpoint-down(sm) {
69
+ margin-bottom: var(--cool-section-spacer-mobile);
70
+ }
71
+ }
72
+
73
+ .section-title {
74
+ font-family: var(--cool-section-title-font-family);
75
+ font-size: var(--cool-section-title-font-size);
76
+ font-weight: var(--cool-section-title-font-weight);
77
+ color: var(--cool-section-title-color);
78
+ background: var(--cool-section-title-bg);
79
+ padding: var(--cool-section-padding);
80
+ display: flex;
81
+ align-items: center;
82
+ gap: var(--cool-spacing-2);
83
+ flex-grow: 1;
84
+
85
+ @include media-breakpoint-down(sm) {
86
+ flex-direction: var(--cool-section-title-direction-mobile, column);
87
+ align-items: var(--cool-section-title-align-mobile, start);
88
+ }
89
+
90
+ .title {
91
+ display: inline-flex;
92
+ flex-wrap: wrap;
93
+ gap: var(--cool-spacing-1);
94
+ align-items: center;
95
+
96
+ p {
97
+ font-weight: var(--cool-font-weight-bold);
98
+ font-size: var(--cool-font-size-base);
99
+ margin: 0;
100
+ }
101
+
102
+ .section-subtitle {
103
+ flex: 0 0 100%;
104
+ --cool-section-subtitle-font-family: var(--cool-font-family-base);
105
+ --cool-section-subtitle-font-size: var(--cool-font-size-base);
106
+ --cool-section-subtitle-font-weight: var(--cool-font-weight-bold);
107
+ --cool-section-spacer: 0;
108
+
109
+ @include media-breakpoint-down(sm) {
110
+ --cool-section-spacer: 0;
111
+ }
112
+ }
113
+ }
114
+
115
+ .actions {
116
+ display: inline-flex;
117
+ gap: var(--cool-spacing-1);
118
+ color: var(--cool-section-title-actions-color);
119
+ font-weight: var(--cool-font-weight-normal);
120
+ font-size: var(--cool-font-size-base);
121
+ font-family: var(--cool-font-family-base);
122
+ margin-left: auto;
123
+ text-align: right;
124
+
125
+ @include media-breakpoint-down(sm) {
126
+ margin-left: var(--cool-section-title-actions-margin-left-mobile, 0);
127
+ text-align: var(--cool-section-title-actions-align-mobile, left);
128
+ }
129
+ }
130
+
131
+ > .icon,
132
+ > .title > .icon {
133
+ color: var(--cool-section-title-icons-color);
134
+ font-size: var(--cool-section-title-icons-size);
135
+ margin-right: 5px;
136
+ }
137
+
138
+ > .btn-text {
139
+ --cool-btn-font-family: var(--cool-section-title-font-family);
140
+ --cool-btn-font-size: var(--cool-section-title-font-size);
141
+ --cool-btn-font-weight: var(--cool-section-title-font-weight);
142
+ --cool-btn-line-height: var(--cool-line-height-base);
143
+ --cool-btn-bg: var(--cool-section-title-bg);
144
+ --cool-btn-color: var(--cool-section-title-color);
145
+ }
146
+
147
+ .btn-group,
148
+ .form-group {
149
+ margin: 0;
150
+ }
151
+ }
152
+
153
+ .section-subtitle {
154
+ display: block;
155
+ margin-bottom: var(--cool-section-spacer);
156
+ font-family: var(--cool-section-subtitle-font-family);
157
+ font-size: var(--cool-section-subtitle-font-size);
158
+ font-weight: var(--cool-section-subtitle-font-weight);
159
+ color: var(--cool-section-subtitle-color);
160
+ margin-bottom: var(--cool-section-spacer);
161
+
162
+ @include media-breakpoint-down(sm) {
163
+ --cool-section-spacer: var(--cool-section-spacer-mobile);
164
+ }
165
+ }
166
+
167
+ .section-content {
168
+ flex-direction: column;
169
+ flex-grow: 1;
170
+ background: var(--cool-section-bg);
171
+ color: var(--cool-section-color);
172
+ padding-top: var(--cool-section-padding-top, var(--cool-section-padding));
173
+ padding-bottom: var(--cool-section-padding-bottom, var(--cool-section-padding));
174
+ padding-left: var(--cool-section-padding-left, var(--cool-section-padding));
175
+ padding-right: var(--cool-section-padding-right, var(--cool-section-padding));
176
+ box-sizing: border-box;
177
+ overflow: auto;
178
+
179
+ &:has(.fr-popup.fr-active) {
180
+ overflow: visible;
181
+ }
182
+
183
+ &:has(> .table-sticky-actions:only-child),
184
+ &:has(> .content-full-width-m:only-child > .table),
185
+ &:has(> .content-full-width:only-child > .table),
186
+ &:has(> .table:only-child) {
187
+ padding-top: 0;
188
+ padding-bottom: 0;
189
+
190
+ &:has(> .table.table-responsive) {
191
+ @include media-breakpoint-down(sm) {
192
+ padding-top: var(--cool-section-padding);
193
+ padding-bottom: var(--cool-section-padding);
194
+ }
195
+ }
196
+
197
+ .table {
198
+ tbody {
199
+ tr:last-child {
200
+ td:first-child {
201
+ border-bottom-left-radius: var(--cool-section-border-radius);
202
+ }
203
+
204
+ td:last-child {
205
+ border-bottom-right-radius: var(--cool-section-border-radius);
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+
212
+ &:first-child {
213
+ &:has(> .table-sticky-actions:only-child),
214
+ &:has(> .content-full-width-m:only-child > .table),
215
+ &:has(> .content-full-width:only-child > .table),
216
+ &:has(> .table:only-child) {
217
+ padding-top: 0;
218
+ padding-bottom: 0;
219
+
220
+ .table-sticky-actions {
221
+ border-radius: var(--cool-section-border-radius);
222
+ }
223
+
224
+ .table {
225
+ thead {
226
+ tr {
227
+ th:first-child {
228
+ border-top-left-radius: var(--cool-section-border-radius);
229
+ }
230
+
231
+ th:last-child {
232
+ border-top-right-radius: var(--cool-section-border-radius);
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ }
239
+
240
+ &:has(> .content-full-width-m:only-child > .table.table-responsive),
241
+ &:has(> .content-full-width:only-child > .table.table-responsive),
242
+ &:has(> .table.table-responsive:only-child) {
243
+ @include media-breakpoint-down(sm) {
244
+ padding-top: var(--cool-section-padding);
245
+ padding-bottom: var(--cool-section-padding);
246
+ }
247
+ }
248
+
249
+ .content-full-width-m {
250
+ @include media-breakpoint-down(lg) {
251
+ margin-inline: calc(-1 * var(--cool-section-padding));
252
+ }
253
+ }
254
+
255
+ .content-full-width {
256
+ @include media-breakpoint-up(md) {
257
+ margin-inline: calc(-1 * var(--cool-section-padding));
258
+ }
259
+ }
260
+
261
+ p:last-child {
262
+ margin-bottom: 0;
263
+ }
264
+
265
+ & > .form-group:first-child {
266
+ margin-top: 1px;
267
+ }
268
+
269
+ & > .form-group:last-child {
270
+ margin-bottom: 0;
271
+ }
272
+ }
273
+
274
+ .section-collapse {
275
+ position: relative;
276
+ overflow: hidden;
277
+
278
+ &:not(.show) {
279
+ display: none;
280
+ }
281
+
282
+ &.show {
283
+ overflow: visible;
284
+ }
285
+ }
286
+
287
+ .section-image {
288
+ position: relative;
289
+ background: var(--cool-section-bg);
290
+ background-size: cover;
291
+ background-repeat: no-repeat;
292
+ background-position: center;
293
+ overflow: hidden;
294
+ aspect-ratio: var(--cool-aspect-ratio, auto);
295
+ min-height: var(--cool-image-height, auto);
296
+
297
+ &.size-xs {
298
+ --cool-image-height: 120px;
299
+ }
300
+
301
+ &.size-sm {
302
+ --cool-image-height: 170px;
303
+ }
304
+
305
+ &.size-md {
306
+ --cool-image-height: 230px;
307
+ }
308
+
309
+ &.size-lg {
310
+ --cool-image-height: 326px;
311
+ }
312
+
313
+ &.darken-image {
314
+ &::after {
315
+ position: absolute;
316
+ inset: 0;
317
+ background-color: var(--cool-section-image-darken-bg);
318
+ content: "";
319
+ pointer-events: none;
320
+ }
321
+ }
322
+
323
+ .image-badge {
324
+ position: absolute;
325
+ top: 30px;
326
+ left: -40px;
327
+ transform: rotate(-40deg);
328
+ background-color: var(--cool-section-image-badge-bg);
329
+ color: var(--cool-section-image-badge-color);
330
+ box-shadow: var(--cool-section-image-badge-shadow);
331
+ text-align: center;
332
+ letter-spacing: 1px;
333
+ width: 220px;
334
+ text-overflow: ellipsis;
335
+ overflow: hidden;
336
+ box-sizing: border-box;
337
+ padding: var(--cool-section-image-badge-padding);
338
+ font-size: var(--cool-section-image-badge-font-size);
339
+
340
+ .image-badge-content {
341
+ display: block;
342
+ width: 145px;
343
+ height: 18px;
344
+ margin-left: 28px;
345
+ text-overflow: ellipsis;
346
+ overflow: hidden;
347
+ }
348
+ }
349
+ }
350
+
351
+ .section-video {
352
+ height: 100%;
353
+ background-color: var(--cool-section-bg);
354
+ overflow: hidden;
355
+ aspect-ratio: var(--cool-aspect-ratio, auto);
356
+ height: var(--cool-video-height, auto);
357
+
358
+ &.size-md {
359
+ --cool-video-height: 230px;
360
+ }
361
+
362
+ &.size-lg {
363
+ --cool-video-height: 326px;
364
+ }
365
+
366
+ &.has-content {
367
+ border-bottom-left-radius: 0;
368
+ border-bottom-right-radius: 0;
369
+ }
370
+ }
371
+
372
+ .section-hr {
373
+ background: var(--cool-section-bg);
374
+ position: relative;
375
+
376
+ & + * {
377
+ padding-top: var(--cool-section-padding);
378
+ }
379
+
380
+ &::after {
381
+ display: block;
382
+ content: "";
383
+ height: var(--cool-section-divider-height);
384
+ background: var(--cool-section-divider-color);
385
+ margin-inline: var(--cool-section-divider-padding);
386
+ }
387
+
388
+ &.content-full-width,
389
+ &.content-full-width-m {
390
+ &::after {
391
+ margin-inline: 0;
392
+ }
393
+ }
394
+ }
395
+
396
+ .section-header {
397
+ display: flex;
398
+ background-color: var(--cool-section-bg);
399
+ gap: var(--cool-spacing-2);
400
+ align-items: stretch;
401
+ width: 100%;
402
+ padding-left: var(--cool-spacing-2);
403
+ padding-right: var(--cool-spacing-2);
404
+ border-bottom: var(--cool-border-width) solid var(--cool-section-divider-color);
405
+
406
+ .section-tabs {
407
+ --cool-section-tabs-bg: transparent;
408
+ flex: 1 1 0;
409
+ min-width: 0;
410
+ width: 100%;
411
+ height: auto;
412
+
413
+ .tabs-container {
414
+ height: 100%;
415
+ }
416
+ }
417
+
418
+ .section-tabs .tabs-container,
419
+ .section-search {
420
+ padding-left: 0;
421
+ padding-right: 0;
422
+ }
423
+
424
+ @include media-breakpoint-up(sm) {
425
+ .section-search {
426
+ padding-top: var(--cool-spacing-2);
427
+ padding-bottom: var(--cool-spacing-2);
428
+ flex: 0 0 auto;
429
+ min-width: 200px;
430
+ }
431
+ }
432
+
433
+ @include media-breakpoint-down(sm) {
434
+ flex-direction: column;
435
+ padding-top: var(--cool-spacing-2);
436
+ padding-bottom: var(--cool-spacing-2);
437
+
438
+ &:has(.section-tabs) {
439
+ padding-top: 0;
440
+ }
441
+ }
442
+ }
443
+
444
+ .section-tabs {
445
+ display: flex;
446
+ align-items: center;
447
+ background: var(--cool-section-tabs-bg);
448
+ color: var(--cool-section-color);
449
+
450
+ .tabs-container {
451
+ display: flex;
452
+ align-items: stretch;
453
+ flex-wrap: nowrap;
454
+ list-style: none;
455
+ padding: 0 var(--cool-section-tabs-item-gap);
456
+ margin: 0;
457
+ gap: var(--cool-section-tabs-item-gap);
458
+ position: relative;
459
+ overflow: hidden;
460
+ flex: 1;
461
+
462
+ /* Prevent visual flash by initially hiding potentially overflowing tabs */
463
+ &:not(.js-initialized) {
464
+ overflow: hidden;
465
+
466
+ /* Use a gradient mask to fade out potentially overflowing content */
467
+ &::after {
468
+ content: "";
469
+ position: absolute;
470
+ top: 0;
471
+ right: 0;
472
+ bottom: 0;
473
+ width: 60px;
474
+ background: linear-gradient(
475
+ to left,
476
+ var(--cool-section-bg, #fff) 0%,
477
+ var(--cool-section-bg, #fff) 30%,
478
+ color-mix(in srgb, var(--cool-section-bg, #fff) 80%, transparent) 50%,
479
+ transparent 100%
480
+ );
481
+ pointer-events: none;
482
+ z-index: 1;
483
+ }
484
+
485
+ /* Initially hide tabs that are likely to overflow on smaller screens */
486
+ @media (max-width: 1200px) {
487
+ > .tab-item:nth-child(n + 6) {
488
+ visibility: hidden;
489
+ }
490
+ }
491
+
492
+ @media (max-width: 992px) {
493
+ > .tab-item:nth-child(n + 5) {
494
+ visibility: hidden;
495
+ }
496
+ }
497
+
498
+ @media (max-width: 768px) {
499
+ > .tab-item:nth-child(n + 4) {
500
+ visibility: hidden;
501
+ }
502
+ }
503
+
504
+ @media (max-width: 576px) {
505
+ > .tab-item:nth-child(n + 3) {
506
+ visibility: hidden;
507
+ }
508
+ }
509
+ }
510
+
511
+ /* Once initialized, let JavaScript control visibility */
512
+ &.js-initialized {
513
+ > .tab-item {
514
+ visibility: visible;
515
+
516
+ &.invisible {
517
+ visibility: hidden;
518
+ }
519
+ }
520
+ }
521
+
522
+ > .tab-item {
523
+ display: flex;
524
+ align-items: stretch;
525
+ flex-grow: 0;
526
+ flex-shrink: 0;
527
+ position: relative;
528
+ margin: 0;
529
+ font-family: var(--cool-section-tabs-font-family);
530
+ font-weight: var(--cool-section-tabs-font-weight);
531
+ padding: 0;
532
+
533
+ > .tab-item-action {
534
+ display: flex;
535
+ align-items: center;
536
+ justify-content: center;
537
+ flex-grow: 1;
538
+ line-height: 1;
539
+ position: relative;
540
+ text-align: center;
541
+ cursor: pointer;
542
+ min-width: var(--cool-section-tabs-item-min-width);
543
+ color: var(--cool-section-tabs-color);
544
+ padding: var(--cool-section-tabs-item-padding-y) 0;
545
+ border-bottom: var(--cool-section-tabs-border-width) solid transparent;
546
+ border-radius: 0;
547
+ white-space: nowrap;
548
+
549
+ &:hover {
550
+ color: var(--cool-section-tabs-hover-color);
551
+ border-color: var(--cool-section-tabs-border-hover-color);
552
+ }
553
+
554
+ &.active {
555
+ color: var(--cool-section-tabs-active-color);
556
+ border-color: var(--cool-section-tabs-border-active-color);
557
+ font-weight: var(--cool-section-tabs-font-weight-active);
558
+ }
559
+ }
560
+ }
561
+ }
562
+
563
+ .dropdown-container {
564
+ display: flex;
565
+ opacity: 0;
566
+ visibility: hidden;
567
+
568
+ /* Initially hidden until JavaScript determines if needed */
569
+ &:not(.js-ready) {
570
+ opacity: 0;
571
+ visibility: hidden;
572
+ }
573
+
574
+ &.visible {
575
+ opacity: 1;
576
+ visibility: visible;
577
+ }
578
+ }
579
+ }
580
+
581
+ .section-search {
582
+ display: grid;
583
+ grid-auto-flow: column;
584
+ grid-template-columns: max-content;
585
+ width: max-content;
586
+ min-width: 200px;
587
+ height: fit-content;
588
+ gap: var(--cool-spacing-1);
589
+ padding: 0 var(--cool-section-tabs-item-gap);
590
+
591
+ @include media-breakpoint-down(sm) {
592
+ grid-template-columns: auto 1fr auto;
593
+ width: 100%;
594
+ }
595
+
596
+ // Prevent layout shift
597
+ > .btn {
598
+ width: 40px;
599
+ }
600
+
601
+ .select-title {
602
+ width: 12px;
603
+ }
604
+ }
605
+
606
+ .section-filters {
607
+ display: none;
608
+ flex-wrap: wrap;
609
+ background: var(--cool-section-filters-bg);
610
+ color: var(--cool-section-filters-color);
611
+ padding: var(--cool-spacing-2);
612
+ gap: var(--cool-grid-gutter-x);
613
+ box-sizing: border-box;
614
+
615
+ &.active {
616
+ display: flex;
617
+ border-bottom: var(--cool-border-width) solid var(--cool-section-divider-color);
618
+
619
+ @include media-breakpoint-down(md) {
620
+ flex-direction: column;
621
+ }
622
+ }
623
+
624
+ .filter {
625
+ display: none;
626
+ box-sizing: border-box;
627
+
628
+ &.active {
629
+ display: block;
630
+ }
631
+ }
632
+ }
633
+
634
+ .section-bulk-actions {
635
+ display: none;
636
+ }
637
+
638
+ .section-placeholder {
639
+ display: flex;
640
+ flex-direction: column;
641
+ flex-grow: 1;
642
+ align-items: center;
643
+ justify-content: center;
644
+ background: var(--cool-section-bg);
645
+ color: var(--cool-section-color);
646
+ padding-top: var(--cool-section-padding-top, calc(var(--cool-section-padding) * 3));
647
+ padding-bottom: var(--cool-section-padding-bottom, calc(var(--cool-section-padding) * 3));
648
+ padding-left: var(--cool-section-padding-left, calc(var(--cool-section-padding) * 0.5));
649
+ padding-right: var(--cool-section-padding-right, calc(var(--cool-section-padding) * 0.5));
650
+ overflow-x: auto;
651
+ box-sizing: border-box;
652
+ min-height: 200px;
653
+
654
+ .placeholder-icon {
655
+ .icon-container {
656
+ display: flex;
657
+ align-items: center;
658
+ justify-content: center;
659
+ border-radius: 50%;
660
+ width: var(--cool-section-placeholder-icon-size);
661
+ height: var(--cool-section-placeholder-icon-size);
662
+ color: var(--cool-section-placeholder-icon-color);
663
+ padding: var(--cool-section-placeholder-icon-padding);
664
+ margin: 0 auto;
665
+ box-sizing: content-box;
666
+
667
+ .icon {
668
+ font-size: var(--cool-section-placeholder-icon-font-size);
669
+ }
670
+ }
671
+
672
+ & + * {
673
+ margin-top: var(--cool-section-placeholder-spacing);
674
+ }
675
+ }
676
+
677
+ .placeholder-title {
678
+ text-align: center;
679
+ font-family: var(--cool-section-placeholder-title-font-family);
680
+ font-weight: var(--cool-section-placeholder-title-font-weight);
681
+
682
+ & + .placeholder-description {
683
+ margin-top: var(--cool-section-placeholder-spacing-sm);
684
+ }
685
+
686
+ & + .placeholder-action,
687
+ & + .placeholder-action-secondary {
688
+ margin-top: var(--cool-section-placeholder-spacing);
689
+ }
690
+ }
691
+
692
+ .placeholder-description {
693
+ text-align: center;
694
+ color: var(--cool-section-placeholder-description-color);
695
+
696
+ .description {
697
+ margin-bottom: 0;
698
+ }
699
+
700
+ & + .placeholder-action,
701
+ & + .placeholder-action-secondary {
702
+ margin-top: var(--cool-section-placeholder-spacing);
703
+ }
704
+ }
705
+
706
+ .placeholder-action {
707
+ text-align: center;
708
+
709
+ & + .placeholder-action-secondary {
710
+ margin-top: var(--cool-section-placeholder-spacing);
711
+ }
712
+ }
713
+ }
714
+
715
+ .section-secondary {
716
+ --cool-section-bg: var(--cool-section-secondary-bg);
717
+ --cool-section-title-bg: var(--cool-section-secondary-bg);
718
+ }
719
+
720
+ @supports (container-type: inline-size) {
721
+ .section {
722
+ @container (max-width: 768px) {
723
+ --cool-section-padding: var(--cool-section-padding-mobile);
724
+ }
725
+ }
726
+ }
727
+ }
728
+
729
+ @if $cool-use-component-layer {
730
+ @layer components {
731
+ @include cool-section;
732
+ }
733
+ } @else {
734
+ @include cool-section;
735
+ }