admin-lte 4.0.0-beta3 → 4.0.0-rc3
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.
- package/.browserslistrc +9 -4
- package/ACCESSIBILITY-COMPLIANCE.md +369 -0
- package/CHANGELOG.md +460 -0
- package/README.md +50 -7
- package/dist/{pages/UI → UI}/general.html +79 -28
- package/dist/{pages/UI → UI}/icons.html +76 -25
- package/dist/{pages/UI → UI}/timeline.html +80 -29
- package/dist/css/adminlte.css +516 -332
- package/dist/css/adminlte.css.map +1 -1
- package/dist/css/adminlte.min.css +1 -1
- package/dist/css/adminlte.min.css.map +1 -1
- package/dist/css/adminlte.rtl.css +516 -332
- package/dist/css/adminlte.rtl.css.map +1 -1
- package/dist/css/adminlte.rtl.min.css +1 -1
- package/dist/css/adminlte.rtl.min.css.map +1 -1
- package/dist/{pages/docs → docs}/browser-support.html +77 -44
- package/dist/{pages/docs → docs}/color-mode.html +82 -50
- package/dist/{pages/docs → docs}/components/main-header.html +82 -49
- package/dist/{pages/docs → docs}/components/main-sidebar.html +78 -46
- package/dist/{pages/docs → docs}/faq.html +76 -42
- package/dist/{pages/docs → docs}/how-to-contribute.html +77 -44
- package/dist/{pages/docs → docs}/introduction.html +82 -54
- package/dist/{pages/docs → docs}/javascript/treeview.html +77 -44
- package/dist/{pages/docs → docs}/layout.html +76 -25
- package/dist/{pages/docs → docs}/license.html +76 -42
- package/dist/{pages/examples → examples}/lockscreen.html +49 -18
- package/dist/{pages/examples → examples}/login-v2.html +47 -16
- package/dist/{pages/examples → examples}/login.html +47 -16
- package/dist/{pages/examples → examples}/register-v2.html +47 -16
- package/dist/{pages/examples → examples}/register.html +47 -16
- package/dist/{pages/forms → forms}/general.html +76 -25
- package/dist/{pages/generate → generate}/theme.html +193 -24
- package/dist/{pages/index.html → index.html} +90 -57
- package/dist/{pages/index2.html → index2.html} +99 -48
- package/dist/{pages/index3.html → index3.html} +80 -29
- package/dist/js/adminlte.js +795 -345
- package/dist/js/adminlte.js.map +1 -1
- package/dist/js/adminlte.min.js +3 -3
- package/dist/js/adminlte.min.js.map +1 -1
- package/dist/{pages/layout → layout}/collapsed-sidebar.html +75 -24
- package/dist/layout/fixed-complete.html +883 -0
- package/dist/layout/fixed-footer.html +880 -0
- package/dist/layout/fixed-header.html +880 -0
- package/dist/{pages/layout → layout}/fixed-sidebar.html +76 -25
- package/dist/{pages/layout → layout}/layout-custom-area.html +76 -25
- package/dist/{pages/layout → layout}/layout-rtl.html +76 -25
- package/dist/{pages/layout → layout}/logo-switch.html +55 -24
- package/dist/{pages/layout → layout}/sidebar-mini.html +75 -24
- package/dist/{pages/layout → layout}/unfixed-sidebar.html +76 -25
- package/dist/{pages/tables → tables}/simple.html +76 -25
- package/dist/{pages/widgets → widgets}/cards.html +76 -25
- package/dist/{pages/widgets → widgets}/info-box.html +76 -25
- package/dist/{pages/widgets → widgets}/small-box.html +76 -25
- package/eslint.config.js +82 -0
- package/package.json +42 -37
- package/src/scss/_accessibility.scss +292 -0
- package/src/scss/_app-footer.scss +8 -0
- package/src/scss/_app-header.scss +8 -0
- package/src/scss/_app-sidebar.scss +12 -0
- package/src/scss/_table.scss +1 -9
- package/src/scss/_variables.scss +2 -1
- package/src/scss/adminlte.scss +3 -0
- package/src/ts/accessibility.ts +533 -0
- package/src/ts/adminlte.ts +48 -9
- package/src/ts/card-widget.ts +1 -2
- package/src/ts/push-menu.ts +1 -2
- package/src/ts/treeview.ts +13 -2
- package/src/ts/util/index.ts +39 -7
- package/.astro/content-assets.mjs +0 -1
- package/.astro/content-modules.mjs +0 -1
- package/.astro/content.d.ts +0 -166
- package/.astro/data-store.json +0 -1
- package/.astro/settings.json +0 -5
- package/.astro/types.d.ts +0 -2
- package/adminlte-v4.0.0-beta1-with-dist.zip +0 -0
- package/adminlte-v4.0.0-beta3.zip +0 -0
|
@@ -4,50 +4,60 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
6
|
<title>AdminLTE 4 | Simple Tables</title>
|
|
7
|
+
<!--begin::Accessibility Meta Tags-->
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
9
|
+
<meta name="color-scheme" content="light dark" />
|
|
10
|
+
<meta name="theme-color" content="#007bff" media="(prefers-color-scheme: light)" />
|
|
11
|
+
<meta name="theme-color" content="#1a1a1a" media="(prefers-color-scheme: dark)" />
|
|
12
|
+
<!--end::Accessibility Meta Tags-->
|
|
7
13
|
<!--begin::Primary Meta Tags-->
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
14
|
<meta name="title" content="AdminLTE 4 | Simple Tables" />
|
|
10
15
|
<meta name="author" content="ColorlibHQ" />
|
|
11
16
|
<meta
|
|
12
17
|
name="description"
|
|
13
|
-
content="AdminLTE is a Free Bootstrap 5 Admin Dashboard, 30 example pages using Vanilla JS."
|
|
18
|
+
content="AdminLTE is a Free Bootstrap 5 Admin Dashboard, 30 example pages using Vanilla JS. Fully accessible with WCAG 2.1 AA compliance."
|
|
14
19
|
/>
|
|
15
20
|
<meta
|
|
16
21
|
name="keywords"
|
|
17
|
-
content="bootstrap 5, bootstrap, bootstrap 5 admin dashboard, bootstrap 5 dashboard, bootstrap 5 charts, bootstrap 5 calendar, bootstrap 5 datepicker, bootstrap 5 tables, bootstrap 5 datatable, vanilla js datatable, colorlibhq, colorlibhq dashboard, colorlibhq admin dashboard"
|
|
22
|
+
content="bootstrap 5, bootstrap, bootstrap 5 admin dashboard, bootstrap 5 dashboard, bootstrap 5 charts, bootstrap 5 calendar, bootstrap 5 datepicker, bootstrap 5 tables, bootstrap 5 datatable, vanilla js datatable, colorlibhq, colorlibhq dashboard, colorlibhq admin dashboard, accessible admin panel, WCAG compliant"
|
|
18
23
|
/>
|
|
19
24
|
<!--end::Primary Meta Tags-->
|
|
25
|
+
<!--begin::Accessibility Features-->
|
|
26
|
+
<!-- Skip links will be dynamically added by accessibility.js -->
|
|
27
|
+
<meta name="supported-color-schemes" content="light dark" />
|
|
28
|
+
<link rel="preload" href="../css/adminlte.css" as="style" />
|
|
29
|
+
<!--end::Accessibility Features-->
|
|
20
30
|
<!--begin::Fonts-->
|
|
21
31
|
<link
|
|
22
32
|
rel="stylesheet"
|
|
23
33
|
href="https://cdn.jsdelivr.net/npm/@fontsource/source-sans-3@5.0.12/index.css"
|
|
24
34
|
integrity="sha256-tXJfXfp6Ewt1ilPzLDtQnJV4hclT9XuaZUKyUvmyr+Q="
|
|
25
35
|
crossorigin="anonymous"
|
|
36
|
+
media="print"
|
|
37
|
+
onload="this.media='all'"
|
|
26
38
|
/>
|
|
27
39
|
<!--end::Fonts-->
|
|
28
40
|
<!--begin::Third Party Plugin(OverlayScrollbars)-->
|
|
29
41
|
<link
|
|
30
42
|
rel="stylesheet"
|
|
31
|
-
href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.
|
|
32
|
-
integrity="sha256-tZHrRjVqNSRyWg2wbppGnT833E/Ys0DHWGwT04GiqQg="
|
|
43
|
+
href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/styles/overlayscrollbars.min.css"
|
|
33
44
|
crossorigin="anonymous"
|
|
34
45
|
/>
|
|
35
46
|
<!--end::Third Party Plugin(OverlayScrollbars)-->
|
|
36
47
|
<!--begin::Third Party Plugin(Bootstrap Icons)-->
|
|
37
48
|
<link
|
|
38
49
|
rel="stylesheet"
|
|
39
|
-
href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.
|
|
40
|
-
integrity="sha256-9kPW/n5nn53j4WMRYAxe9c1rCY96Oogo/MKSVdKzPmI="
|
|
50
|
+
href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css"
|
|
41
51
|
crossorigin="anonymous"
|
|
42
52
|
/>
|
|
43
53
|
<!--end::Third Party Plugin(Bootstrap Icons)-->
|
|
44
54
|
<!--begin::Required Plugin(AdminLTE)-->
|
|
45
|
-
<link rel="stylesheet" href="
|
|
55
|
+
<link rel="stylesheet" href="../css/adminlte.css" />
|
|
46
56
|
<!--end::Required Plugin(AdminLTE)-->
|
|
47
57
|
</head>
|
|
48
58
|
<!--end::Head-->
|
|
49
59
|
<!--begin::Body-->
|
|
50
|
-
<body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
|
|
60
|
+
<body class="layout-fixed sidebar-expand-lg sidebar-open bg-body-tertiary">
|
|
51
61
|
<!--begin::App Wrapper-->
|
|
52
62
|
<div class="app-wrapper">
|
|
53
63
|
<!--begin::Header-->
|
|
@@ -86,7 +96,7 @@
|
|
|
86
96
|
<div class="d-flex">
|
|
87
97
|
<div class="flex-shrink-0">
|
|
88
98
|
<img
|
|
89
|
-
src="
|
|
99
|
+
src="/assets/img/user1-128x128.jpg"
|
|
90
100
|
alt="User Avatar"
|
|
91
101
|
class="img-size-50 rounded-circle me-3"
|
|
92
102
|
/>
|
|
@@ -112,7 +122,7 @@
|
|
|
112
122
|
<div class="d-flex">
|
|
113
123
|
<div class="flex-shrink-0">
|
|
114
124
|
<img
|
|
115
|
-
src="
|
|
125
|
+
src="/assets/img/user8-128x128.jpg"
|
|
116
126
|
alt="User Avatar"
|
|
117
127
|
class="img-size-50 rounded-circle me-3"
|
|
118
128
|
/>
|
|
@@ -138,7 +148,7 @@
|
|
|
138
148
|
<div class="d-flex">
|
|
139
149
|
<div class="flex-shrink-0">
|
|
140
150
|
<img
|
|
141
|
-
src="
|
|
151
|
+
src="/assets/img/user3-128x128.jpg"
|
|
142
152
|
alt="User Avatar"
|
|
143
153
|
class="img-size-50 rounded-circle me-3"
|
|
144
154
|
/>
|
|
@@ -203,7 +213,7 @@
|
|
|
203
213
|
<li class="nav-item dropdown user-menu">
|
|
204
214
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
|
205
215
|
<img
|
|
206
|
-
src="
|
|
216
|
+
src="/assets/img/user2-160x160.jpg"
|
|
207
217
|
class="user-image rounded-circle shadow"
|
|
208
218
|
alt="User Image"
|
|
209
219
|
/>
|
|
@@ -213,7 +223,7 @@
|
|
|
213
223
|
<!--begin::User Image-->
|
|
214
224
|
<li class="user-header text-bg-primary">
|
|
215
225
|
<img
|
|
216
|
-
src="
|
|
226
|
+
src="/assets/img/user2-160x160.jpg"
|
|
217
227
|
class="rounded-circle shadow"
|
|
218
228
|
alt="User Image"
|
|
219
229
|
/>
|
|
@@ -257,7 +267,7 @@
|
|
|
257
267
|
<a href="../index.html" class="brand-link">
|
|
258
268
|
<!--begin::Brand Image-->
|
|
259
269
|
<img
|
|
260
|
-
src="
|
|
270
|
+
src="/assets/img/AdminLTELogo.png"
|
|
261
271
|
alt="AdminLTE Logo"
|
|
262
272
|
class="brand-image opacity-75 shadow"
|
|
263
273
|
/>
|
|
@@ -276,8 +286,10 @@
|
|
|
276
286
|
<ul
|
|
277
287
|
class="nav sidebar-menu flex-column"
|
|
278
288
|
data-lte-toggle="treeview"
|
|
279
|
-
role="
|
|
289
|
+
role="navigation"
|
|
290
|
+
aria-label="Main navigation"
|
|
280
291
|
data-accordion="false"
|
|
292
|
+
id="navigation"
|
|
281
293
|
>
|
|
282
294
|
<li class="nav-item">
|
|
283
295
|
<a href="#" class="nav-link">
|
|
@@ -365,6 +377,24 @@
|
|
|
365
377
|
<p>Fixed Sidebar</p>
|
|
366
378
|
</a>
|
|
367
379
|
</li>
|
|
380
|
+
<li class="nav-item">
|
|
381
|
+
<a href="../layout/fixed-header.html" class="nav-link">
|
|
382
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
383
|
+
<p>Fixed Header</p>
|
|
384
|
+
</a>
|
|
385
|
+
</li>
|
|
386
|
+
<li class="nav-item">
|
|
387
|
+
<a href="../layout/fixed-footer.html" class="nav-link">
|
|
388
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
389
|
+
<p>Fixed Footer</p>
|
|
390
|
+
</a>
|
|
391
|
+
</li>
|
|
392
|
+
<li class="nav-item">
|
|
393
|
+
<a href="../layout/fixed-complete.html" class="nav-link">
|
|
394
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
395
|
+
<p>Fixed Complete</p>
|
|
396
|
+
</a>
|
|
397
|
+
</li>
|
|
368
398
|
<li class="nav-item">
|
|
369
399
|
<a href="../layout/layout-custom-area.html" class="nav-link">
|
|
370
400
|
<i class="nav-icon bi bi-circle"></i>
|
|
@@ -1022,7 +1052,7 @@
|
|
|
1022
1052
|
<!--end::To the end-->
|
|
1023
1053
|
<!--begin::Copyright-->
|
|
1024
1054
|
<strong>
|
|
1025
|
-
Copyright © 2014-
|
|
1055
|
+
Copyright © 2014-2025
|
|
1026
1056
|
<a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
|
|
1027
1057
|
</strong>
|
|
1028
1058
|
All rights reserved.
|
|
@@ -1034,24 +1064,21 @@
|
|
|
1034
1064
|
<!--begin::Script-->
|
|
1035
1065
|
<!--begin::Third Party Plugin(OverlayScrollbars)-->
|
|
1036
1066
|
<script
|
|
1037
|
-
src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.
|
|
1038
|
-
integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
|
|
1067
|
+
src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
|
|
1039
1068
|
crossorigin="anonymous"
|
|
1040
1069
|
></script>
|
|
1041
1070
|
<!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
|
|
1042
1071
|
<script
|
|
1043
1072
|
src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
|
|
1044
|
-
integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
|
|
1045
1073
|
crossorigin="anonymous"
|
|
1046
1074
|
></script>
|
|
1047
1075
|
<!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
|
|
1048
1076
|
<script
|
|
1049
|
-
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.
|
|
1050
|
-
integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
|
|
1077
|
+
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
|
|
1051
1078
|
crossorigin="anonymous"
|
|
1052
1079
|
></script>
|
|
1053
1080
|
<!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
|
|
1054
|
-
<script src="
|
|
1081
|
+
<script src="../js/adminlte.js"></script>
|
|
1055
1082
|
<!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
|
|
1056
1083
|
<script>
|
|
1057
1084
|
const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
|
|
@@ -1062,7 +1089,7 @@
|
|
|
1062
1089
|
};
|
|
1063
1090
|
document.addEventListener('DOMContentLoaded', function () {
|
|
1064
1091
|
const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
|
|
1065
|
-
if (sidebarWrapper &&
|
|
1092
|
+
if (sidebarWrapper && OverlayScrollbarsGlobal?.OverlayScrollbars !== undefined) {
|
|
1066
1093
|
OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
|
|
1067
1094
|
scrollbars: {
|
|
1068
1095
|
theme: Default.scrollbarTheme,
|
|
@@ -1073,7 +1100,31 @@
|
|
|
1073
1100
|
}
|
|
1074
1101
|
});
|
|
1075
1102
|
</script>
|
|
1076
|
-
<!--end::OverlayScrollbars Configure-->
|
|
1103
|
+
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
|
1104
|
+
<script>
|
|
1105
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
1106
|
+
// Find the link tag for the main AdminLTE CSS file.
|
|
1107
|
+
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
|
1108
|
+
if (!cssLink) {
|
|
1109
|
+
return; // Exit if the link isn't found
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
// Extract the base path from the CSS href.
|
|
1113
|
+
// e.g., from "../css/adminlte.css", we get "../"
|
|
1114
|
+
// e.g., from "./css/adminlte.css", we get "./"
|
|
1115
|
+
const cssHref = cssLink.getAttribute('href');
|
|
1116
|
+
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
|
1117
|
+
|
|
1118
|
+
// Find all images with absolute paths and fix them.
|
|
1119
|
+
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
|
1120
|
+
const originalSrc = img.getAttribute('src');
|
|
1121
|
+
if (originalSrc) {
|
|
1122
|
+
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
|
1123
|
+
img.src = deploymentPath + relativeSrc;
|
|
1124
|
+
}
|
|
1125
|
+
});
|
|
1126
|
+
});
|
|
1127
|
+
</script>
|
|
1077
1128
|
<!--end::Script-->
|
|
1078
1129
|
</body>
|
|
1079
1130
|
<!--end::Body-->
|
|
@@ -4,50 +4,60 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
6
|
<title>AdminLTE 4 | Widgets - Cards</title>
|
|
7
|
+
<!--begin::Accessibility Meta Tags-->
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
9
|
+
<meta name="color-scheme" content="light dark" />
|
|
10
|
+
<meta name="theme-color" content="#007bff" media="(prefers-color-scheme: light)" />
|
|
11
|
+
<meta name="theme-color" content="#1a1a1a" media="(prefers-color-scheme: dark)" />
|
|
12
|
+
<!--end::Accessibility Meta Tags-->
|
|
7
13
|
<!--begin::Primary Meta Tags-->
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
14
|
<meta name="title" content="AdminLTE 4 | Widgets - Cards" />
|
|
10
15
|
<meta name="author" content="ColorlibHQ" />
|
|
11
16
|
<meta
|
|
12
17
|
name="description"
|
|
13
|
-
content="AdminLTE is a Free Bootstrap 5 Admin Dashboard, 30 example pages using Vanilla JS."
|
|
18
|
+
content="AdminLTE is a Free Bootstrap 5 Admin Dashboard, 30 example pages using Vanilla JS. Fully accessible with WCAG 2.1 AA compliance."
|
|
14
19
|
/>
|
|
15
20
|
<meta
|
|
16
21
|
name="keywords"
|
|
17
|
-
content="bootstrap 5, bootstrap, bootstrap 5 admin dashboard, bootstrap 5 dashboard, bootstrap 5 charts, bootstrap 5 calendar, bootstrap 5 datepicker, bootstrap 5 tables, bootstrap 5 datatable, vanilla js datatable, colorlibhq, colorlibhq dashboard, colorlibhq admin dashboard"
|
|
22
|
+
content="bootstrap 5, bootstrap, bootstrap 5 admin dashboard, bootstrap 5 dashboard, bootstrap 5 charts, bootstrap 5 calendar, bootstrap 5 datepicker, bootstrap 5 tables, bootstrap 5 datatable, vanilla js datatable, colorlibhq, colorlibhq dashboard, colorlibhq admin dashboard, accessible admin panel, WCAG compliant"
|
|
18
23
|
/>
|
|
19
24
|
<!--end::Primary Meta Tags-->
|
|
25
|
+
<!--begin::Accessibility Features-->
|
|
26
|
+
<!-- Skip links will be dynamically added by accessibility.js -->
|
|
27
|
+
<meta name="supported-color-schemes" content="light dark" />
|
|
28
|
+
<link rel="preload" href="../css/adminlte.css" as="style" />
|
|
29
|
+
<!--end::Accessibility Features-->
|
|
20
30
|
<!--begin::Fonts-->
|
|
21
31
|
<link
|
|
22
32
|
rel="stylesheet"
|
|
23
33
|
href="https://cdn.jsdelivr.net/npm/@fontsource/source-sans-3@5.0.12/index.css"
|
|
24
34
|
integrity="sha256-tXJfXfp6Ewt1ilPzLDtQnJV4hclT9XuaZUKyUvmyr+Q="
|
|
25
35
|
crossorigin="anonymous"
|
|
36
|
+
media="print"
|
|
37
|
+
onload="this.media='all'"
|
|
26
38
|
/>
|
|
27
39
|
<!--end::Fonts-->
|
|
28
40
|
<!--begin::Third Party Plugin(OverlayScrollbars)-->
|
|
29
41
|
<link
|
|
30
42
|
rel="stylesheet"
|
|
31
|
-
href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.
|
|
32
|
-
integrity="sha256-tZHrRjVqNSRyWg2wbppGnT833E/Ys0DHWGwT04GiqQg="
|
|
43
|
+
href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/styles/overlayscrollbars.min.css"
|
|
33
44
|
crossorigin="anonymous"
|
|
34
45
|
/>
|
|
35
46
|
<!--end::Third Party Plugin(OverlayScrollbars)-->
|
|
36
47
|
<!--begin::Third Party Plugin(Bootstrap Icons)-->
|
|
37
48
|
<link
|
|
38
49
|
rel="stylesheet"
|
|
39
|
-
href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.
|
|
40
|
-
integrity="sha256-9kPW/n5nn53j4WMRYAxe9c1rCY96Oogo/MKSVdKzPmI="
|
|
50
|
+
href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css"
|
|
41
51
|
crossorigin="anonymous"
|
|
42
52
|
/>
|
|
43
53
|
<!--end::Third Party Plugin(Bootstrap Icons)-->
|
|
44
54
|
<!--begin::Required Plugin(AdminLTE)-->
|
|
45
|
-
<link rel="stylesheet" href="
|
|
55
|
+
<link rel="stylesheet" href="../css/adminlte.css" />
|
|
46
56
|
<!--end::Required Plugin(AdminLTE)-->
|
|
47
57
|
</head>
|
|
48
58
|
<!--end::Head-->
|
|
49
59
|
<!--begin::Body-->
|
|
50
|
-
<body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
|
|
60
|
+
<body class="layout-fixed sidebar-expand-lg sidebar-open bg-body-tertiary">
|
|
51
61
|
<!--begin::App Wrapper-->
|
|
52
62
|
<div class="app-wrapper">
|
|
53
63
|
<!--begin::Header-->
|
|
@@ -86,7 +96,7 @@
|
|
|
86
96
|
<div class="d-flex">
|
|
87
97
|
<div class="flex-shrink-0">
|
|
88
98
|
<img
|
|
89
|
-
src="
|
|
99
|
+
src="/assets/img/user1-128x128.jpg"
|
|
90
100
|
alt="User Avatar"
|
|
91
101
|
class="img-size-50 rounded-circle me-3"
|
|
92
102
|
/>
|
|
@@ -112,7 +122,7 @@
|
|
|
112
122
|
<div class="d-flex">
|
|
113
123
|
<div class="flex-shrink-0">
|
|
114
124
|
<img
|
|
115
|
-
src="
|
|
125
|
+
src="/assets/img/user8-128x128.jpg"
|
|
116
126
|
alt="User Avatar"
|
|
117
127
|
class="img-size-50 rounded-circle me-3"
|
|
118
128
|
/>
|
|
@@ -138,7 +148,7 @@
|
|
|
138
148
|
<div class="d-flex">
|
|
139
149
|
<div class="flex-shrink-0">
|
|
140
150
|
<img
|
|
141
|
-
src="
|
|
151
|
+
src="/assets/img/user3-128x128.jpg"
|
|
142
152
|
alt="User Avatar"
|
|
143
153
|
class="img-size-50 rounded-circle me-3"
|
|
144
154
|
/>
|
|
@@ -203,7 +213,7 @@
|
|
|
203
213
|
<li class="nav-item dropdown user-menu">
|
|
204
214
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
|
205
215
|
<img
|
|
206
|
-
src="
|
|
216
|
+
src="/assets/img/user2-160x160.jpg"
|
|
207
217
|
class="user-image rounded-circle shadow"
|
|
208
218
|
alt="User Image"
|
|
209
219
|
/>
|
|
@@ -213,7 +223,7 @@
|
|
|
213
223
|
<!--begin::User Image-->
|
|
214
224
|
<li class="user-header text-bg-primary">
|
|
215
225
|
<img
|
|
216
|
-
src="
|
|
226
|
+
src="/assets/img/user2-160x160.jpg"
|
|
217
227
|
class="rounded-circle shadow"
|
|
218
228
|
alt="User Image"
|
|
219
229
|
/>
|
|
@@ -257,7 +267,7 @@
|
|
|
257
267
|
<a href="../index.html" class="brand-link">
|
|
258
268
|
<!--begin::Brand Image-->
|
|
259
269
|
<img
|
|
260
|
-
src="
|
|
270
|
+
src="/assets/img/AdminLTELogo.png"
|
|
261
271
|
alt="AdminLTE Logo"
|
|
262
272
|
class="brand-image opacity-75 shadow"
|
|
263
273
|
/>
|
|
@@ -276,8 +286,10 @@
|
|
|
276
286
|
<ul
|
|
277
287
|
class="nav sidebar-menu flex-column"
|
|
278
288
|
data-lte-toggle="treeview"
|
|
279
|
-
role="
|
|
289
|
+
role="navigation"
|
|
290
|
+
aria-label="Main navigation"
|
|
280
291
|
data-accordion="false"
|
|
292
|
+
id="navigation"
|
|
281
293
|
>
|
|
282
294
|
<li class="nav-item">
|
|
283
295
|
<a href="#" class="nav-link">
|
|
@@ -365,6 +377,24 @@
|
|
|
365
377
|
<p>Fixed Sidebar</p>
|
|
366
378
|
</a>
|
|
367
379
|
</li>
|
|
380
|
+
<li class="nav-item">
|
|
381
|
+
<a href="../layout/fixed-header.html" class="nav-link">
|
|
382
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
383
|
+
<p>Fixed Header</p>
|
|
384
|
+
</a>
|
|
385
|
+
</li>
|
|
386
|
+
<li class="nav-item">
|
|
387
|
+
<a href="../layout/fixed-footer.html" class="nav-link">
|
|
388
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
389
|
+
<p>Fixed Footer</p>
|
|
390
|
+
</a>
|
|
391
|
+
</li>
|
|
392
|
+
<li class="nav-item">
|
|
393
|
+
<a href="../layout/fixed-complete.html" class="nav-link">
|
|
394
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
395
|
+
<p>Fixed Complete</p>
|
|
396
|
+
</a>
|
|
397
|
+
</li>
|
|
368
398
|
<li class="nav-item">
|
|
369
399
|
<a href="../layout/layout-custom-area.html" class="nav-link">
|
|
370
400
|
<i class="nav-icon bi bi-circle"></i>
|
|
@@ -977,7 +1007,7 @@
|
|
|
977
1007
|
<!--end::To the end-->
|
|
978
1008
|
<!--begin::Copyright-->
|
|
979
1009
|
<strong>
|
|
980
|
-
Copyright © 2014-
|
|
1010
|
+
Copyright © 2014-2025
|
|
981
1011
|
<a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
|
|
982
1012
|
</strong>
|
|
983
1013
|
All rights reserved.
|
|
@@ -989,24 +1019,21 @@
|
|
|
989
1019
|
<!--begin::Script-->
|
|
990
1020
|
<!--begin::Third Party Plugin(OverlayScrollbars)-->
|
|
991
1021
|
<script
|
|
992
|
-
src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.
|
|
993
|
-
integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
|
|
1022
|
+
src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
|
|
994
1023
|
crossorigin="anonymous"
|
|
995
1024
|
></script>
|
|
996
1025
|
<!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
|
|
997
1026
|
<script
|
|
998
1027
|
src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
|
|
999
|
-
integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
|
|
1000
1028
|
crossorigin="anonymous"
|
|
1001
1029
|
></script>
|
|
1002
1030
|
<!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
|
|
1003
1031
|
<script
|
|
1004
|
-
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.
|
|
1005
|
-
integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
|
|
1032
|
+
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
|
|
1006
1033
|
crossorigin="anonymous"
|
|
1007
1034
|
></script>
|
|
1008
1035
|
<!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
|
|
1009
|
-
<script src="
|
|
1036
|
+
<script src="../js/adminlte.js"></script>
|
|
1010
1037
|
<!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
|
|
1011
1038
|
<script>
|
|
1012
1039
|
const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
|
|
@@ -1017,7 +1044,7 @@
|
|
|
1017
1044
|
};
|
|
1018
1045
|
document.addEventListener('DOMContentLoaded', function () {
|
|
1019
1046
|
const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
|
|
1020
|
-
if (sidebarWrapper &&
|
|
1047
|
+
if (sidebarWrapper && OverlayScrollbarsGlobal?.OverlayScrollbars !== undefined) {
|
|
1021
1048
|
OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
|
|
1022
1049
|
scrollbars: {
|
|
1023
1050
|
theme: Default.scrollbarTheme,
|
|
@@ -1028,7 +1055,31 @@
|
|
|
1028
1055
|
}
|
|
1029
1056
|
});
|
|
1030
1057
|
</script>
|
|
1031
|
-
<!--end::OverlayScrollbars Configure-->
|
|
1058
|
+
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
|
1059
|
+
<script>
|
|
1060
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
1061
|
+
// Find the link tag for the main AdminLTE CSS file.
|
|
1062
|
+
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
|
1063
|
+
if (!cssLink) {
|
|
1064
|
+
return; // Exit if the link isn't found
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
// Extract the base path from the CSS href.
|
|
1068
|
+
// e.g., from "../css/adminlte.css", we get "../"
|
|
1069
|
+
// e.g., from "./css/adminlte.css", we get "./"
|
|
1070
|
+
const cssHref = cssLink.getAttribute('href');
|
|
1071
|
+
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
|
1072
|
+
|
|
1073
|
+
// Find all images with absolute paths and fix them.
|
|
1074
|
+
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
|
1075
|
+
const originalSrc = img.getAttribute('src');
|
|
1076
|
+
if (originalSrc) {
|
|
1077
|
+
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
|
1078
|
+
img.src = deploymentPath + relativeSrc;
|
|
1079
|
+
}
|
|
1080
|
+
});
|
|
1081
|
+
});
|
|
1082
|
+
</script>
|
|
1032
1083
|
<!--end::Script-->
|
|
1033
1084
|
</body>
|
|
1034
1085
|
<!--end::Body-->
|