adminator-admin-dashboard 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/CLAUDE.md +162 -0
  2. package/LICENSE +21 -0
  3. package/README.md +376 -0
  4. package/RELEASE_NOTES.md +92 -0
  5. package/dist/1e59d2330b4c6deb84b3.ttf +0 -0
  6. package/dist/20fd1704ea223900efa9.woff2 +0 -0
  7. package/dist/29b39089170885ae2967.woff +0 -0
  8. package/dist/404.html +24 -0
  9. package/dist/500.html +24 -0
  10. package/dist/55b07f26c86c8e3d3754.svg +1 -0
  11. package/dist/8b43027f47b20503057d.eot +0 -0
  12. package/dist/9bad94440d49256265a5.eot +0 -0
  13. package/dist/9fad440d8ee7a949a9a9.svg +1 -0
  14. package/dist/assets/c1e38fd9e0e74ba58f7a2b77ef29fdd3.svg +2671 -0
  15. package/dist/assets/f0fc8c798eac5636249c4ea287832422.svg +362 -0
  16. package/dist/assets/static/fonts/icons/fontawesome/FontAwesome.otf +0 -0
  17. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.eot +0 -0
  18. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.svg +2671 -0
  19. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.ttf +0 -0
  20. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.woff +0 -0
  21. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.woff2 +0 -0
  22. package/dist/assets/static/fonts/icons/themify/themify.eot +0 -0
  23. package/dist/assets/static/fonts/icons/themify/themify.svg +362 -0
  24. package/dist/assets/static/fonts/icons/themify/themify.ttf +0 -0
  25. package/dist/assets/static/fonts/icons/themify/themify.woff +0 -0
  26. package/dist/assets/static/images/404.png +0 -0
  27. package/dist/assets/static/images/500.png +0 -0
  28. package/dist/assets/static/images/bg.jpg +0 -0
  29. package/dist/assets/static/images/datatables/sort_asc.png +0 -0
  30. package/dist/assets/static/images/datatables/sort_asc_disabled.png +0 -0
  31. package/dist/assets/static/images/datatables/sort_both.png +0 -0
  32. package/dist/assets/static/images/datatables/sort_desc.png +0 -0
  33. package/dist/assets/static/images/datatables/sort_desc_disabled.png +0 -0
  34. package/dist/assets/static/images/logo-circle.svg +7 -0
  35. package/dist/assets/static/images/logo-gradient.svg +13 -0
  36. package/dist/assets/static/images/logo-outline.svg +7 -0
  37. package/dist/assets/static/images/logo.png +0 -0
  38. package/dist/assets/static/images/logo.svg +5 -0
  39. package/dist/basic-table.html +715 -0
  40. package/dist/blank.html +522 -0
  41. package/dist/buttons.html +467 -0
  42. package/dist/calendar.html +692 -0
  43. package/dist/charts.html +681 -0
  44. package/dist/chat.html +730 -0
  45. package/dist/compose.html +643 -0
  46. package/dist/datatable.html +1009 -0
  47. package/dist/eda8b94308c6f538f04a.ttf +0 -0
  48. package/dist/email.html +992 -0
  49. package/dist/f691f37e57f04c152e23.woff +0 -0
  50. package/dist/forms.html +760 -0
  51. package/dist/google-maps.html +530 -0
  52. package/dist/index.html +1090 -0
  53. package/dist/main.js +61239 -0
  54. package/dist/main.js.map +1 -0
  55. package/dist/signin.html +107 -0
  56. package/dist/signup.html +104 -0
  57. package/dist/test.html +91 -0
  58. package/dist/ui.html +931 -0
  59. package/dist/vector-maps.html +529 -0
  60. package/package.json +112 -0
  61. package/src/404.html +24 -0
  62. package/src/500.html +24 -0
  63. package/src/assets/scripts/app.js +644 -0
  64. package/src/assets/scripts/charts/chartJS/index.js +148 -0
  65. package/src/assets/scripts/charts/easyPieChart/index.js +200 -0
  66. package/src/assets/scripts/charts/index.js +3 -0
  67. package/src/assets/scripts/charts/sparkline/index.js +208 -0
  68. package/src/assets/scripts/chat/index.js +11 -0
  69. package/src/assets/scripts/components/Chart.js +1390 -0
  70. package/src/assets/scripts/components/Sidebar.js +241 -0
  71. package/src/assets/scripts/constants/colors.js +274 -0
  72. package/src/assets/scripts/datatable/index.js +379 -0
  73. package/src/assets/scripts/datepicker/index.js +302 -0
  74. package/src/assets/scripts/email/index.js +25 -0
  75. package/src/assets/scripts/fullcalendar/index.js +86 -0
  76. package/src/assets/scripts/googleMaps/index.js +93 -0
  77. package/src/assets/scripts/index.js +18 -0
  78. package/src/assets/scripts/masonry/index.js +14 -0
  79. package/src/assets/scripts/popover/index.js +109 -0
  80. package/src/assets/scripts/scrollbar/index.js +10 -0
  81. package/src/assets/scripts/search/index.js +15 -0
  82. package/src/assets/scripts/sidebar/index.js +140 -0
  83. package/src/assets/scripts/skycons/index.js +52 -0
  84. package/src/assets/scripts/ui/index.js +412 -0
  85. package/src/assets/scripts/utils/date.js +242 -0
  86. package/src/assets/scripts/utils/dom.js +349 -0
  87. package/src/assets/scripts/utils/index.js +45 -0
  88. package/src/assets/scripts/utils/theme.js +105 -0
  89. package/src/assets/scripts/vectorMaps/index.js +277 -0
  90. package/src/assets/static/fonts/icons/fontawesome/FontAwesome.otf +0 -0
  91. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.eot +0 -0
  92. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.svg +2671 -0
  93. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.ttf +0 -0
  94. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.woff +0 -0
  95. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.woff2 +0 -0
  96. package/src/assets/static/fonts/icons/themify/themify.eot +0 -0
  97. package/src/assets/static/fonts/icons/themify/themify.svg +362 -0
  98. package/src/assets/static/fonts/icons/themify/themify.ttf +0 -0
  99. package/src/assets/static/fonts/icons/themify/themify.woff +0 -0
  100. package/src/assets/static/images/404.png +0 -0
  101. package/src/assets/static/images/500.png +0 -0
  102. package/src/assets/static/images/bg.jpg +0 -0
  103. package/src/assets/static/images/datatables/sort_asc.png +0 -0
  104. package/src/assets/static/images/datatables/sort_asc_disabled.png +0 -0
  105. package/src/assets/static/images/datatables/sort_both.png +0 -0
  106. package/src/assets/static/images/datatables/sort_desc.png +0 -0
  107. package/src/assets/static/images/datatables/sort_desc_disabled.png +0 -0
  108. package/src/assets/static/images/logo-circle.svg +7 -0
  109. package/src/assets/static/images/logo-gradient.svg +13 -0
  110. package/src/assets/static/images/logo-outline.svg +7 -0
  111. package/src/assets/static/images/logo.png +0 -0
  112. package/src/assets/static/images/logo.svg +5 -0
  113. package/src/assets/styles/index.scss +801 -0
  114. package/src/assets/styles/spec/components/easyPieChart.scss +11 -0
  115. package/src/assets/styles/spec/components/footer.scss +4 -0
  116. package/src/assets/styles/spec/components/forms.scss +288 -0
  117. package/src/assets/styles/spec/components/index.scss +9 -0
  118. package/src/assets/styles/spec/components/loader.scss +46 -0
  119. package/src/assets/styles/spec/components/masonry.scss +1 -0
  120. package/src/assets/styles/spec/components/pageContainer.scss +255 -0
  121. package/src/assets/styles/spec/components/progressBar.scss +6 -0
  122. package/src/assets/styles/spec/components/sidebar.scss +642 -0
  123. package/src/assets/styles/spec/components/topbar.scss +455 -0
  124. package/src/assets/styles/spec/generic/base.scss +102 -0
  125. package/src/assets/styles/spec/generic/index.scss +1 -0
  126. package/src/assets/styles/spec/index.scss +4 -0
  127. package/src/assets/styles/spec/screens/chat.scss +147 -0
  128. package/src/assets/styles/spec/screens/email.scss +108 -0
  129. package/src/assets/styles/spec/screens/index.scss +2 -0
  130. package/src/assets/styles/spec/settings/baseColors.scss +103 -0
  131. package/src/assets/styles/spec/settings/borders.scss +6 -0
  132. package/src/assets/styles/spec/settings/breakpoints.scss +26 -0
  133. package/src/assets/styles/spec/settings/fonts.scss +4 -0
  134. package/src/assets/styles/spec/settings/index.scss +4 -0
  135. package/src/assets/styles/spec/settings/materialColors.scss +550 -0
  136. package/src/assets/styles/spec/tools/index.scss +1 -0
  137. package/src/assets/styles/spec/tools/mixins/clearfix.scss +15 -0
  138. package/src/assets/styles/spec/tools/mixins/index.scss +3 -0
  139. package/src/assets/styles/spec/tools/mixins/mediaQueriesRanges.scss +58 -0
  140. package/src/assets/styles/spec/tools/mixins/placeholder.scss +10 -0
  141. package/src/assets/styles/spec/utils/colors.scss +33 -0
  142. package/src/assets/styles/spec/utils/index.scss +2 -0
  143. package/src/assets/styles/spec/utils/layout/helpers/border.scss +78 -0
  144. package/src/assets/styles/spec/utils/layout/helpers/flex.scss +220 -0
  145. package/src/assets/styles/spec/utils/layout/helpers/index.scss +11 -0
  146. package/src/assets/styles/spec/utils/layout/helpers/layout.scss +137 -0
  147. package/src/assets/styles/spec/utils/layout/helpers/lists.scss +23 -0
  148. package/src/assets/styles/spec/utils/layout/helpers/margin.scss +266 -0
  149. package/src/assets/styles/spec/utils/layout/helpers/objects.scss +91 -0
  150. package/src/assets/styles/spec/utils/layout/helpers/padding.scss +147 -0
  151. package/src/assets/styles/spec/utils/layout/helpers/positions.scss +118 -0
  152. package/src/assets/styles/spec/utils/layout/helpers/pseudo.scss +6 -0
  153. package/src/assets/styles/spec/utils/layout/helpers/sizes.scss +157 -0
  154. package/src/assets/styles/spec/utils/layout/helpers/typography.scss +127 -0
  155. package/src/assets/styles/spec/utils/layout/index.scss +3 -0
  156. package/src/assets/styles/spec/utils/layout/mixins/generateResponsive.scss +25 -0
  157. package/src/assets/styles/spec/utils/layout/mixins/index.scss +2 -0
  158. package/src/assets/styles/spec/utils/layout/mixins/mediaQueryCondition.scss +28 -0
  159. package/src/assets/styles/spec/utils/layout/utils/center.scss +54 -0
  160. package/src/assets/styles/spec/utils/layout/utils/gap.scss +229 -0
  161. package/src/assets/styles/spec/utils/layout/utils/index.scss +5 -0
  162. package/src/assets/styles/spec/utils/layout/utils/layers.scss +5 -0
  163. package/src/assets/styles/spec/utils/layout/utils/peers.scss +35 -0
  164. package/src/assets/styles/utils/mobile.scss +954 -0
  165. package/src/assets/styles/utils/theme.css +97 -0
  166. package/src/assets/styles/vendor/datepicker.scss +183 -0
  167. package/src/assets/styles/vendor/font-awesome.css +2337 -0
  168. package/src/assets/styles/vendor/fullcalendar.scss +217 -0
  169. package/src/assets/styles/vendor/index.scss +8 -0
  170. package/src/assets/styles/vendor/jquery.datatables.scss +162 -0
  171. package/src/assets/styles/vendor/perfectScrollbar.scss +4 -0
  172. package/src/assets/styles/vendor/sparkline.scss +6 -0
  173. package/src/assets/styles/vendor/themify-icons.css +1081 -0
  174. package/src/basic-table.html +725 -0
  175. package/src/blank.html +532 -0
  176. package/src/buttons.html +477 -0
  177. package/src/calendar.html +702 -0
  178. package/src/charts.html +691 -0
  179. package/src/chat.html +740 -0
  180. package/src/compose.html +653 -0
  181. package/src/datatable.html +1019 -0
  182. package/src/email.html +1002 -0
  183. package/src/forms.html +770 -0
  184. package/src/google-maps.html +540 -0
  185. package/src/index.html +1100 -0
  186. package/src/signin.html +107 -0
  187. package/src/signup.html +104 -0
  188. package/src/test.html +96 -0
  189. package/src/ui.html +941 -0
  190. package/src/vector-maps.html +539 -0
  191. package/webpack.config.js +3 -0
@@ -0,0 +1,11 @@
1
+ .easy-pie-chart {
2
+ position: relative;
3
+
4
+ span {
5
+ position: absolute;
6
+ top: 50%;
7
+ left: 50%;
8
+ transform: translate(-50%, -50%);
9
+ line-height: 0;
10
+ }
11
+ }
@@ -0,0 +1,4 @@
1
+ footer {
2
+ z-index: 1;
3
+ position: relative;
4
+ }
@@ -0,0 +1,288 @@
1
+ @use '../settings/baseColors' as *;
2
+ @use '../settings/materialColors' as *;
3
+
4
+ .checkbox label {
5
+ display: inline-block;
6
+ vertical-align: middle;
7
+ position: relative;
8
+ padding-left: 17px;
9
+ margin-bottom: 0;
10
+ }
11
+
12
+ .checkbox label::before {
13
+ content: "";
14
+ display: inline-block;
15
+ position: absolute;
16
+ width: 17px;
17
+ height: 17px;
18
+ left: 0;
19
+ top: 50%;
20
+ transform: translateY(-50%);
21
+ margin-left: -12px;
22
+ border: 1px solid $grey-300;
23
+ border-radius: 3px;
24
+ background-color: $md-white;
25
+ -webkit-transition: border 0.15s ease-in-out, color 0.15s ease-in-out;
26
+ -o-transition: border 0.15s ease-in-out, color 0.15s ease-in-out;
27
+ transition: border 0.15s ease-in-out, color 0.15s ease-in-out;
28
+ }
29
+
30
+ .checkbox label::after {
31
+ display: inline-block;
32
+ position: absolute;
33
+ width: 17px;
34
+ height: 17px;
35
+ text-align: center;
36
+ font-size: 10px !important;
37
+ line-height: 17px;
38
+ left: 0;
39
+ top: 50%;
40
+ transform: translateY(-50%);
41
+ margin-left: -12px;
42
+ color: $grey-500;
43
+ }
44
+
45
+ .checkbox input[type="checkbox"] {
46
+ opacity: 0;
47
+ z-index: 1;
48
+ }
49
+
50
+ .checkbox input[type="checkbox"]:focus + label::before {
51
+ outline: thin dotted;
52
+ outline: 5px auto -webkit-focus-ring-color;
53
+ outline-offset: -2px;
54
+ }
55
+
56
+ .checkbox input[type="checkbox"]:checked + label::after {
57
+ font-family: 'FontAwesome';
58
+ content: "\f00c";
59
+ font-size: 13px;
60
+ }
61
+
62
+ .checkbox input[type="checkbox"]:disabled + label {
63
+ opacity: 0.65;
64
+ }
65
+
66
+ .checkbox input[type="checkbox"]:disabled + label::before {
67
+ background-color: $grey-400;
68
+ cursor: not-allowed;
69
+ }
70
+
71
+ .checkbox.checkbox-circle label::before {
72
+ border-radius: 50%;
73
+ }
74
+
75
+ .checkbox.checkbox-inline {
76
+ margin-top: 0;
77
+ }
78
+
79
+ .checkbox-primary input[type="checkbox"]:checked + label::before {
80
+ background-color: $default-primary;
81
+ border-color: $default-primary;
82
+ }
83
+
84
+ .checkbox-primary input[type="checkbox"]:checked + label::after {
85
+ color: #fff;
86
+ }
87
+
88
+ .checkbox-danger input[type="checkbox"]:checked + label::before {
89
+ background-color: $default-danger;
90
+ border-color: $default-danger;
91
+ }
92
+
93
+ .checkbox-danger input[type="checkbox"]:checked + label::after {
94
+ color: $md-white;
95
+ }
96
+
97
+ .checkbox-info input[type="checkbox"]:checked + label::before {
98
+ background-color: $default-info;
99
+ border-color: $default-info;
100
+ }
101
+
102
+ .checkbox-info input[type="checkbox"]:checked + label::after {
103
+ color: $md-white;
104
+ }
105
+
106
+ .checkbox-warning input[type="checkbox"]:checked + label::before {
107
+ background-color: $default-warning;
108
+ border-color: $default-warning;
109
+ }
110
+
111
+ .checkbox-warning input[type="checkbox"]:checked + label::after {
112
+ color: $md-white;
113
+ }
114
+
115
+ .checkbox-success input[type="checkbox"]:checked + label::before {
116
+ background-color: $default-success;
117
+ border-color: $default-success;
118
+ }
119
+
120
+ .checkbox-success input[type="checkbox"]:checked + label::after {
121
+ color: $md-white;
122
+ }
123
+
124
+ .radio {
125
+ padding-left: 20px;
126
+ }
127
+
128
+ .radio label {
129
+ display: inline-block;
130
+ vertical-align: middle;
131
+ position: relative;
132
+ padding-left: 5px;
133
+ }
134
+
135
+ .radio label::before {
136
+ content: "";
137
+ display: inline-block;
138
+ position: absolute;
139
+ width: 17px;
140
+ height: 17px;
141
+ left: 0;
142
+ margin-left: -20px;
143
+ border: 1px solid #cccccc;
144
+ border-radius: 50%;
145
+ background-color: var(--c-bkg-card);
146
+ -webkit-transition: border 0.15s ease-in-out;
147
+ -o-transition: border 0.15s ease-in-out;
148
+ transition: border 0.15s ease-in-out;
149
+ }
150
+
151
+ .radio label::after {
152
+ display: inline-block;
153
+ position: absolute;
154
+ content: " ";
155
+ width: 11px;
156
+ height: 11px;
157
+ left: 3px;
158
+ top: 3px;
159
+ margin-left: -20px;
160
+ border-radius: 50%;
161
+ background-color: var(--c-text-base);
162
+ -webkit-transform: scale(0, 0);
163
+ -ms-transform: scale(0, 0);
164
+ -o-transform: scale(0, 0);
165
+ transform: scale(0, 0);
166
+ -webkit-transition: -webkit-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33);
167
+ -moz-transition: -moz-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33);
168
+ -o-transition: -o-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33);
169
+ transition: transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33);
170
+ }
171
+
172
+ .radio input[type="radio"] {
173
+ opacity: 0;
174
+ z-index: 1;
175
+ }
176
+
177
+ .radio input[type="radio"]:focus + label::before {
178
+ outline: thin dotted;
179
+ outline: 5px auto -webkit-focus-ring-color;
180
+ outline-offset: -2px;
181
+ }
182
+
183
+ .radio input[type="radio"]:checked + label::after {
184
+ -webkit-transform: scale(1, 1);
185
+ -ms-transform: scale(1, 1);
186
+ -o-transform: scale(1, 1);
187
+ transform: scale(1, 1);
188
+ }
189
+
190
+ .radio input[type="radio"]:disabled + label {
191
+ opacity: 0.65;
192
+ }
193
+
194
+ .radio input[type="radio"]:disabled + label::before {
195
+ cursor: not-allowed;
196
+ }
197
+
198
+ .radio.radio-inline {
199
+ margin-top: 0;
200
+ }
201
+
202
+ .radio-primary input[type="radio"] + label::after {
203
+ background-color: #428bca;
204
+ }
205
+
206
+ .radio-primary input[type="radio"]:checked + label::before {
207
+ border-color: #428bca;
208
+ }
209
+
210
+ .radio-primary input[type="radio"]:checked + label::after {
211
+ background-color: #428bca;
212
+ }
213
+
214
+ .radio-danger input[type="radio"] + label::after {
215
+ background-color: #d9534f;
216
+ }
217
+
218
+ .radio-danger input[type="radio"]:checked + label::before {
219
+ border-color: #d9534f;
220
+ }
221
+
222
+ .radio-danger input[type="radio"]:checked + label::after {
223
+ background-color: #d9534f;
224
+ }
225
+
226
+ .radio-info input[type="radio"] + label::after {
227
+ background-color: #5bc0de;
228
+ }
229
+
230
+ .radio-info input[type="radio"]:checked + label::before {
231
+ border-color: #5bc0de;
232
+ }
233
+
234
+ .radio-info input[type="radio"]:checked + label::after {
235
+ background-color: #5bc0de;
236
+ }
237
+
238
+ .radio-warning input[type="radio"] + label::after {
239
+ background-color: #f0ad4e;
240
+ }
241
+
242
+ .radio-warning input[type="radio"]:checked + label::before {
243
+ border-color: #f0ad4e;
244
+ }
245
+
246
+ .radio-warning input[type="radio"]:checked + label::after {
247
+ background-color: #f0ad4e;
248
+ }
249
+
250
+ .radio-success input[type="radio"] + label::after {
251
+ background-color: #5cb85c;
252
+ }
253
+
254
+ .radio-success input[type="radio"]:checked + label::before {
255
+ border-color: #5cb85c;
256
+ }
257
+
258
+ .radio-success input[type="radio"]:checked + label::after {
259
+ background-color: #5cb85c;
260
+ }
261
+
262
+ // Dark mode specific fixes for birthdate field only
263
+ [data-theme="dark"] {
264
+ // Date picker specific styling (birthdate field)
265
+ .timepicker-input {
266
+ .input-group-text {
267
+ background-color: var(--c-bkg-card) !important;
268
+ border-color: var(--c-border) !important;
269
+ color: var(--c-text-base) !important;
270
+
271
+ // Override specific background classes
272
+ &.bgc-white {
273
+ background-color: var(--c-bkg-card) !important;
274
+ }
275
+
276
+ // Calendar icon styling
277
+ .ti-calendar {
278
+ color: var(--c-text-base) !important;
279
+ }
280
+ }
281
+
282
+ .form-control {
283
+ &.bdc-grey-200 {
284
+ border-color: var(--c-border) !important;
285
+ }
286
+ }
287
+ }
288
+ }
@@ -0,0 +1,9 @@
1
+ @use 'sidebar' as *;
2
+ @use 'topbar' as *;
3
+ @use 'pageContainer' as *;
4
+ @use 'progressBar' as *;
5
+ @use 'easyPieChart' as *;
6
+ @use 'forms' as *;
7
+ @use 'masonry' as *;
8
+ @use 'loader' as *;
9
+ @use 'footer' as *;
@@ -0,0 +1,46 @@
1
+ #loader {
2
+ transition: all 0.3s ease-in-out;
3
+ opacity: 1;
4
+ visibility: visible;
5
+ position: fixed;
6
+ height: 100vh;
7
+ width: 100%;
8
+ background: var(--loader-bg);
9
+ z-index: 90000;
10
+ }
11
+
12
+ #loader.fadeOut {
13
+ opacity: 0;
14
+ visibility: hidden;
15
+ }
16
+
17
+ .spinner {
18
+ width: 40px;
19
+ height: 40px;
20
+ position: absolute;
21
+ top: calc(50% - 20px);
22
+ left: calc(50% - 20px);
23
+ background-color: var(--spinner-bg);
24
+ border-radius: 100%;
25
+ -webkit-animation: sk-scaleout 1.0s infinite ease-in-out;
26
+ animation: sk-scaleout 1.0s infinite ease-in-out;
27
+ }
28
+
29
+ @-webkit-keyframes sk-scaleout {
30
+ 0% { -webkit-transform: scale(0) }
31
+ 100% {
32
+ -webkit-transform: scale(1.0);
33
+ opacity: 0;
34
+ }
35
+ }
36
+
37
+ @keyframes sk-scaleout {
38
+ 0% {
39
+ -webkit-transform: scale(0);
40
+ transform: scale(0);
41
+ } 100% {
42
+ -webkit-transform: scale(1.0);
43
+ transform: scale(1.0);
44
+ opacity: 0;
45
+ }
46
+ }
@@ -0,0 +1,255 @@
1
+ @use '../settings/baseColors' as *;
2
+ @use '../settings/breakpoints' as *;
3
+ @use '../tools/mixins/mediaQueriesRanges' as *;
4
+
5
+ // ---------------------------------------------------------
6
+ // @TOC
7
+ // ---------------------------------------------------------
8
+
9
+ // + @Page Container
10
+ // + @Main Content
11
+ // + @Full Container
12
+ // + @Collapsed State
13
+ // + @Mobile Layout Fixes
14
+
15
+ // ---------------------------------------------------------
16
+ // @Page Container - MODERN LAYOUT APPROACH
17
+ // ---------------------------------------------------------
18
+
19
+ .page-container {
20
+ min-height: 100vh;
21
+ padding-left: $offscreen-size;
22
+ transition: all 0.2s ease;
23
+
24
+ // Modern flexbox layout to prevent footer overlap
25
+ display: flex;
26
+ flex-direction: column;
27
+
28
+ @include between($breakpoint-md, $breakpoint-xl) {
29
+ padding-left: $collapsed-size;
30
+ }
31
+
32
+ @include to($breakpoint-md) {
33
+ padding-left: 0;
34
+ }
35
+ }
36
+
37
+ // ---------------------------------------------------------
38
+ // @Main Content - FLEXIBLE LAYOUT
39
+ // ---------------------------------------------------------
40
+
41
+ .main-content {
42
+ padding: 85px 20px 20px;
43
+
44
+ // Flex-grow to push footer to bottom
45
+ flex: 1 0 auto;
46
+ min-height: 0; // Allow flex shrinking
47
+
48
+ // Ensure content doesn't overflow
49
+ overflow-x: hidden;
50
+
51
+ @include to($breakpoint-md) {
52
+ padding: 85px 5px 5px;
53
+ }
54
+
55
+ @include to($breakpoint-sm) {
56
+ padding: 85px 10px 30px; // Extra bottom padding on mobile
57
+ }
58
+
59
+ @include to(400px) {
60
+ padding: 85px 5px 40px; // Even more bottom padding on tiny screens
61
+ }
62
+ }
63
+
64
+ .remain-height {
65
+ height: calc(100vh - 126px);
66
+ }
67
+
68
+ // ---------------------------------------------------------
69
+ // @Full Container
70
+ // ---------------------------------------------------------
71
+
72
+ .full-container {
73
+ left: $offscreen-size;
74
+ min-height: calc(100vh - #{$header-height});
75
+ position: absolute;
76
+ right: 0;
77
+ top: $header-height;
78
+ transition: all 0.2s ease;
79
+
80
+ @include between($breakpoint-md, $breakpoint-xl) {
81
+ left: 0;
82
+ padding-left: $collapsed-size;
83
+ }
84
+
85
+ @include to($breakpoint-md) {
86
+ left: 0;
87
+ }
88
+ }
89
+
90
+ // ---------------------------------------------------------
91
+ // @Mobile Layout Fixes - AGGRESSIVE FOOTER SOLUTION
92
+ // ---------------------------------------------------------
93
+
94
+ // Footer - completely redesigned for mobile
95
+ footer {
96
+ // Flex-shrink: 0 to prevent compression
97
+ flex: 0 0 auto;
98
+
99
+ // Positioning
100
+ position: relative;
101
+ z-index: 1;
102
+
103
+ // Styling
104
+ margin-top: auto;
105
+ padding: 20px;
106
+ text-align: center;
107
+ border-top: 1px solid var(--c-border);
108
+ background: var(--c-bkg-card);
109
+ color: var(--c-text-muted);
110
+ font-size: 12px;
111
+ line-height: 1.4;
112
+
113
+ // Prevent any potential overflow
114
+ word-wrap: break-word;
115
+ overflow-wrap: break-word;
116
+
117
+ // Tablet footer adjustments
118
+ @include to($breakpoint-md) {
119
+ padding: 18px 15px;
120
+ font-size: 11px;
121
+ }
122
+
123
+ // Mobile footer adjustments
124
+ @include to($breakpoint-sm) {
125
+ padding: 15px 10px;
126
+ font-size: 10px;
127
+ line-height: 1.3;
128
+
129
+ span {
130
+ display: inline-block;
131
+ max-width: 100%;
132
+
133
+ a {
134
+ color: var(--c-primary);
135
+ text-decoration: none;
136
+ word-break: break-word;
137
+
138
+ &:hover {
139
+ text-decoration: underline;
140
+ }
141
+ }
142
+ }
143
+ }
144
+
145
+ // Tiny screen footer adjustments
146
+ @include to(400px) {
147
+ padding: 12px 8px;
148
+ font-size: 9px;
149
+ line-height: 1.2;
150
+
151
+ span {
152
+ display: block;
153
+
154
+ // Break long text on new lines for readability
155
+ &::after {
156
+ content: "";
157
+ display: block;
158
+ height: 2px;
159
+ }
160
+ }
161
+ }
162
+ }
163
+
164
+ // Ensure body and html take full height for flex layout
165
+ html, body {
166
+ height: 100%;
167
+ margin: 0;
168
+ padding: 0;
169
+ }
170
+
171
+ // Global mobile overflow prevention
172
+ @include to($breakpoint-sm) {
173
+ body {
174
+ overflow-x: hidden;
175
+ }
176
+
177
+ // Prevent any element from causing horizontal scroll
178
+ * {
179
+ max-width: 100%;
180
+ box-sizing: border-box;
181
+ }
182
+ }
183
+
184
+ // Additional mobile content spacing
185
+ @include to($breakpoint-sm) {
186
+ .page-container {
187
+ .main-content {
188
+ // Extra margin-bottom to ensure footer never overlaps
189
+ margin-bottom: 20px;
190
+
191
+ // Responsive content adjustments
192
+ .row {
193
+ margin-left: 0;
194
+ margin-right: 0;
195
+ }
196
+
197
+ .col-md-6, .col-md-3, .col-md-12 {
198
+ padding-left: 5px;
199
+ padding-right: 5px;
200
+ }
201
+ }
202
+ }
203
+ }
204
+
205
+ // Emergency footer overlap prevention
206
+ @include to(480px) {
207
+ .page-container {
208
+ // Force minimum height that accounts for content
209
+ min-height: calc(100vh - 80px);
210
+
211
+ .main-content {
212
+ // Ensure there's always space for footer
213
+ padding-bottom: 60px !important;
214
+ margin-bottom: 20px !important;
215
+ }
216
+ }
217
+
218
+ footer {
219
+ // Stick to bottom on very small screens
220
+ position: relative;
221
+ margin-top: auto;
222
+ clear: both;
223
+ }
224
+ }
225
+
226
+ // ---------------------------------------------------------
227
+ // @Collapsed State
228
+ // ---------------------------------------------------------
229
+
230
+ .is-collapsed {
231
+ .page-container {
232
+ padding-left: $collapsed-size;
233
+
234
+ @include to($breakpoint-md) {
235
+ padding-left: 0;
236
+ }
237
+
238
+ @include between($breakpoint-md, $breakpoint-xl) {
239
+ padding-left: $offscreen-size;
240
+ }
241
+ }
242
+
243
+ .full-container {
244
+ left: $collapsed-size;
245
+
246
+ @include to($breakpoint-md) {
247
+ left: 0;
248
+ }
249
+
250
+ @include between($breakpoint-md, $breakpoint-xl) {
251
+ left: $offscreen-size;
252
+ padding-left: 0;
253
+ }
254
+ }
255
+ }
@@ -0,0 +1,6 @@
1
+ .progress {
2
+ height: 4px;
3
+ background-color: var(--c-border);
4
+ border-radius: 4px;
5
+ margin-bottom: 10px;
6
+ }