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