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 | Layout RTL</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 | Layout RTL" />
|
|
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.rtl.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.rtl.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>
|
|
@@ -772,7 +802,7 @@
|
|
|
772
802
|
<!--end::To the end-->
|
|
773
803
|
<!--begin::Copyright-->
|
|
774
804
|
<strong>
|
|
775
|
-
Copyright © 2014-
|
|
805
|
+
Copyright © 2014-2025
|
|
776
806
|
<a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
|
|
777
807
|
</strong>
|
|
778
808
|
All rights reserved.
|
|
@@ -784,24 +814,21 @@
|
|
|
784
814
|
<!--begin::Script-->
|
|
785
815
|
<!--begin::Third Party Plugin(OverlayScrollbars)-->
|
|
786
816
|
<script
|
|
787
|
-
src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.
|
|
788
|
-
integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
|
|
817
|
+
src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
|
|
789
818
|
crossorigin="anonymous"
|
|
790
819
|
></script>
|
|
791
820
|
<!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
|
|
792
821
|
<script
|
|
793
822
|
src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
|
|
794
|
-
integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
|
|
795
823
|
crossorigin="anonymous"
|
|
796
824
|
></script>
|
|
797
825
|
<!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
|
|
798
826
|
<script
|
|
799
|
-
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.
|
|
800
|
-
integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
|
|
827
|
+
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
|
|
801
828
|
crossorigin="anonymous"
|
|
802
829
|
></script>
|
|
803
830
|
<!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
|
|
804
|
-
<script src="
|
|
831
|
+
<script src="../js/adminlte.js"></script>
|
|
805
832
|
<!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
|
|
806
833
|
<script>
|
|
807
834
|
const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
|
|
@@ -812,7 +839,7 @@
|
|
|
812
839
|
};
|
|
813
840
|
document.addEventListener('DOMContentLoaded', function () {
|
|
814
841
|
const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
|
|
815
|
-
if (sidebarWrapper &&
|
|
842
|
+
if (sidebarWrapper && OverlayScrollbarsGlobal?.OverlayScrollbars !== undefined) {
|
|
816
843
|
OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
|
|
817
844
|
scrollbars: {
|
|
818
845
|
theme: Default.scrollbarTheme,
|
|
@@ -823,7 +850,31 @@
|
|
|
823
850
|
}
|
|
824
851
|
});
|
|
825
852
|
</script>
|
|
826
|
-
<!--end::OverlayScrollbars Configure-->
|
|
853
|
+
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
|
854
|
+
<script>
|
|
855
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
856
|
+
// Find the link tag for the main AdminLTE CSS file.
|
|
857
|
+
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
|
858
|
+
if (!cssLink) {
|
|
859
|
+
return; // Exit if the link isn't found
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
// Extract the base path from the CSS href.
|
|
863
|
+
// e.g., from "../css/adminlte.css", we get "../"
|
|
864
|
+
// e.g., from "./css/adminlte.css", we get "./"
|
|
865
|
+
const cssHref = cssLink.getAttribute('href');
|
|
866
|
+
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
|
867
|
+
|
|
868
|
+
// Find all images with absolute paths and fix them.
|
|
869
|
+
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
|
870
|
+
const originalSrc = img.getAttribute('src');
|
|
871
|
+
if (originalSrc) {
|
|
872
|
+
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
|
873
|
+
img.src = deploymentPath + relativeSrc;
|
|
874
|
+
}
|
|
875
|
+
});
|
|
876
|
+
});
|
|
877
|
+
</script>
|
|
827
878
|
<!--end::Script-->
|
|
828
879
|
</body>
|
|
829
880
|
<!--end::Body-->
|
|
@@ -4,45 +4,55 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
6
|
<title>AdminLTE 4 | Sidebar Mini</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 | Sidebar Mini" />
|
|
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-->
|
|
@@ -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,14 +267,14 @@
|
|
|
257
267
|
<a href="../index.html" class="brand-link logo-switch">
|
|
258
268
|
<!--begin::Brand Image Small-->
|
|
259
269
|
<img
|
|
260
|
-
src="
|
|
270
|
+
src="/assets/img/AdminLTELogo.png"
|
|
261
271
|
alt="AdminLTE Logo Small"
|
|
262
272
|
class="brand-image-xl logo-xs opacity-75 shadow"
|
|
263
273
|
/>
|
|
264
274
|
<!--end::Brand Image Small-->
|
|
265
275
|
<!--begin::Brand Image Large-->
|
|
266
276
|
<img
|
|
267
|
-
src="
|
|
277
|
+
src="/assets/img/AdminLTEFullLogo.png"
|
|
268
278
|
alt="AdminLTE Logo Large"
|
|
269
279
|
class="brand-image-xs logo-xl opacity-75"
|
|
270
280
|
/>
|
|
@@ -429,7 +439,7 @@
|
|
|
429
439
|
<!--end::To the end-->
|
|
430
440
|
<!--begin::Copyright-->
|
|
431
441
|
<strong>
|
|
432
|
-
Copyright © 2014-
|
|
442
|
+
Copyright © 2014-2025
|
|
433
443
|
<a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
|
|
434
444
|
</strong>
|
|
435
445
|
All rights reserved.
|
|
@@ -441,24 +451,21 @@
|
|
|
441
451
|
<!--begin::Script-->
|
|
442
452
|
<!--begin::Third Party Plugin(OverlayScrollbars)-->
|
|
443
453
|
<script
|
|
444
|
-
src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.
|
|
445
|
-
integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
|
|
454
|
+
src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
|
|
446
455
|
crossorigin="anonymous"
|
|
447
456
|
></script>
|
|
448
457
|
<!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
|
|
449
458
|
<script
|
|
450
459
|
src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
|
|
451
|
-
integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
|
|
452
460
|
crossorigin="anonymous"
|
|
453
461
|
></script>
|
|
454
462
|
<!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
|
|
455
463
|
<script
|
|
456
|
-
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.
|
|
457
|
-
integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
|
|
464
|
+
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
|
|
458
465
|
crossorigin="anonymous"
|
|
459
466
|
></script>
|
|
460
467
|
<!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
|
|
461
|
-
<script src="
|
|
468
|
+
<script src="../js/adminlte.js"></script>
|
|
462
469
|
<!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
|
|
463
470
|
<script>
|
|
464
471
|
const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
|
|
@@ -469,7 +476,7 @@
|
|
|
469
476
|
};
|
|
470
477
|
document.addEventListener('DOMContentLoaded', function () {
|
|
471
478
|
const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
|
|
472
|
-
if (sidebarWrapper &&
|
|
479
|
+
if (sidebarWrapper && OverlayScrollbarsGlobal?.OverlayScrollbars !== undefined) {
|
|
473
480
|
OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
|
|
474
481
|
scrollbars: {
|
|
475
482
|
theme: Default.scrollbarTheme,
|
|
@@ -480,7 +487,31 @@
|
|
|
480
487
|
}
|
|
481
488
|
});
|
|
482
489
|
</script>
|
|
483
|
-
<!--end::OverlayScrollbars Configure-->
|
|
490
|
+
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
|
491
|
+
<script>
|
|
492
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
493
|
+
// Find the link tag for the main AdminLTE CSS file.
|
|
494
|
+
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
|
495
|
+
if (!cssLink) {
|
|
496
|
+
return; // Exit if the link isn't found
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
// Extract the base path from the CSS href.
|
|
500
|
+
// e.g., from "../css/adminlte.css", we get "../"
|
|
501
|
+
// e.g., from "./css/adminlte.css", we get "./"
|
|
502
|
+
const cssHref = cssLink.getAttribute('href');
|
|
503
|
+
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
|
504
|
+
|
|
505
|
+
// Find all images with absolute paths and fix them.
|
|
506
|
+
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
|
507
|
+
const originalSrc = img.getAttribute('src');
|
|
508
|
+
if (originalSrc) {
|
|
509
|
+
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
|
510
|
+
img.src = deploymentPath + relativeSrc;
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
});
|
|
514
|
+
</script>
|
|
484
515
|
<!--end::Script-->
|
|
485
516
|
</body>
|
|
486
517
|
<!--end::Body-->
|