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.
Files changed (76) hide show
  1. package/.browserslistrc +9 -4
  2. package/ACCESSIBILITY-COMPLIANCE.md +369 -0
  3. package/CHANGELOG.md +460 -0
  4. package/README.md +50 -7
  5. package/dist/{pages/UI → UI}/general.html +79 -28
  6. package/dist/{pages/UI → UI}/icons.html +76 -25
  7. package/dist/{pages/UI → UI}/timeline.html +80 -29
  8. package/dist/css/adminlte.css +516 -332
  9. package/dist/css/adminlte.css.map +1 -1
  10. package/dist/css/adminlte.min.css +1 -1
  11. package/dist/css/adminlte.min.css.map +1 -1
  12. package/dist/css/adminlte.rtl.css +516 -332
  13. package/dist/css/adminlte.rtl.css.map +1 -1
  14. package/dist/css/adminlte.rtl.min.css +1 -1
  15. package/dist/css/adminlte.rtl.min.css.map +1 -1
  16. package/dist/{pages/docs → docs}/browser-support.html +77 -44
  17. package/dist/{pages/docs → docs}/color-mode.html +82 -50
  18. package/dist/{pages/docs → docs}/components/main-header.html +82 -49
  19. package/dist/{pages/docs → docs}/components/main-sidebar.html +78 -46
  20. package/dist/{pages/docs → docs}/faq.html +76 -42
  21. package/dist/{pages/docs → docs}/how-to-contribute.html +77 -44
  22. package/dist/{pages/docs → docs}/introduction.html +82 -54
  23. package/dist/{pages/docs → docs}/javascript/treeview.html +77 -44
  24. package/dist/{pages/docs → docs}/layout.html +76 -25
  25. package/dist/{pages/docs → docs}/license.html +76 -42
  26. package/dist/{pages/examples → examples}/lockscreen.html +49 -18
  27. package/dist/{pages/examples → examples}/login-v2.html +47 -16
  28. package/dist/{pages/examples → examples}/login.html +47 -16
  29. package/dist/{pages/examples → examples}/register-v2.html +47 -16
  30. package/dist/{pages/examples → examples}/register.html +47 -16
  31. package/dist/{pages/forms → forms}/general.html +76 -25
  32. package/dist/{pages/generate → generate}/theme.html +193 -24
  33. package/dist/{pages/index.html → index.html} +90 -57
  34. package/dist/{pages/index2.html → index2.html} +99 -48
  35. package/dist/{pages/index3.html → index3.html} +80 -29
  36. package/dist/js/adminlte.js +795 -345
  37. package/dist/js/adminlte.js.map +1 -1
  38. package/dist/js/adminlte.min.js +3 -3
  39. package/dist/js/adminlte.min.js.map +1 -1
  40. package/dist/{pages/layout → layout}/collapsed-sidebar.html +75 -24
  41. package/dist/layout/fixed-complete.html +883 -0
  42. package/dist/layout/fixed-footer.html +880 -0
  43. package/dist/layout/fixed-header.html +880 -0
  44. package/dist/{pages/layout → layout}/fixed-sidebar.html +76 -25
  45. package/dist/{pages/layout → layout}/layout-custom-area.html +76 -25
  46. package/dist/{pages/layout → layout}/layout-rtl.html +76 -25
  47. package/dist/{pages/layout → layout}/logo-switch.html +55 -24
  48. package/dist/{pages/layout → layout}/sidebar-mini.html +75 -24
  49. package/dist/{pages/layout → layout}/unfixed-sidebar.html +76 -25
  50. package/dist/{pages/tables → tables}/simple.html +76 -25
  51. package/dist/{pages/widgets → widgets}/cards.html +76 -25
  52. package/dist/{pages/widgets → widgets}/info-box.html +76 -25
  53. package/dist/{pages/widgets → widgets}/small-box.html +76 -25
  54. package/eslint.config.js +82 -0
  55. package/package.json +42 -37
  56. package/src/scss/_accessibility.scss +292 -0
  57. package/src/scss/_app-footer.scss +8 -0
  58. package/src/scss/_app-header.scss +8 -0
  59. package/src/scss/_app-sidebar.scss +12 -0
  60. package/src/scss/_table.scss +1 -9
  61. package/src/scss/_variables.scss +2 -1
  62. package/src/scss/adminlte.scss +3 -0
  63. package/src/ts/accessibility.ts +533 -0
  64. package/src/ts/adminlte.ts +48 -9
  65. package/src/ts/card-widget.ts +1 -2
  66. package/src/ts/push-menu.ts +1 -2
  67. package/src/ts/treeview.ts +13 -2
  68. package/src/ts/util/index.ts +39 -7
  69. package/.astro/content-assets.mjs +0 -1
  70. package/.astro/content-modules.mjs +0 -1
  71. package/.astro/content.d.ts +0 -166
  72. package/.astro/data-store.json +0 -1
  73. package/.astro/settings.json +0 -5
  74. package/.astro/types.d.ts +0 -2
  75. package/adminlte-v4.0.0-beta1-with-dist.zip +0 -0
  76. package/adminlte-v4.0.0-beta3.zip +0 -0
@@ -4,45 +4,55 @@
4
4
  <head>
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
6
  <title>AdminLTE | Dashboard v2</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 | Dashboard v2" />
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.10.1/styles/overlayscrollbars.min.css"
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.11.3/font/bootstrap-icons.min.css"
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="../../dist/css/adminlte.css" />
55
+ <link rel="stylesheet" href="./css/adminlte.css" />
46
56
  <!--end::Required Plugin(AdminLTE)-->
47
57
  <!-- apexcharts -->
48
58
  <link
@@ -52,7 +62,7 @@
52
62
  crossorigin="anonymous"
53
63
  />
54
64
  </head>
55
- <body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
65
+ <body class="layout-fixed sidebar-expand-lg sidebar-open bg-body-tertiary">
56
66
  <!--begin::App Wrapper-->
57
67
  <div class="app-wrapper">
58
68
  <!--begin::Header-->
@@ -91,7 +101,7 @@
91
101
  <div class="d-flex">
92
102
  <div class="flex-shrink-0">
93
103
  <img
94
- src="../../dist/assets/img/user1-128x128.jpg"
104
+ src="/assets/img/user1-128x128.jpg"
95
105
  alt="User Avatar"
96
106
  class="img-size-50 rounded-circle me-3"
97
107
  />
@@ -117,7 +127,7 @@
117
127
  <div class="d-flex">
118
128
  <div class="flex-shrink-0">
119
129
  <img
120
- src="../../dist/assets/img/user8-128x128.jpg"
130
+ src="/assets/img/user8-128x128.jpg"
121
131
  alt="User Avatar"
122
132
  class="img-size-50 rounded-circle me-3"
123
133
  />
@@ -143,7 +153,7 @@
143
153
  <div class="d-flex">
144
154
  <div class="flex-shrink-0">
145
155
  <img
146
- src="../../dist/assets/img/user3-128x128.jpg"
156
+ src="/assets/img/user3-128x128.jpg"
147
157
  alt="User Avatar"
148
158
  class="img-size-50 rounded-circle me-3"
149
159
  />
@@ -208,7 +218,7 @@
208
218
  <li class="nav-item dropdown user-menu">
209
219
  <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
210
220
  <img
211
- src="../../dist/assets/img/user2-160x160.jpg"
221
+ src="/assets/img/user2-160x160.jpg"
212
222
  class="user-image rounded-circle shadow"
213
223
  alt="User Image"
214
224
  />
@@ -218,7 +228,7 @@
218
228
  <!--begin::User Image-->
219
229
  <li class="user-header text-bg-primary">
220
230
  <img
221
- src="../../dist/assets/img/user2-160x160.jpg"
231
+ src="/assets/img/user2-160x160.jpg"
222
232
  class="rounded-circle shadow"
223
233
  alt="User Image"
224
234
  />
@@ -262,7 +272,7 @@
262
272
  <a href="./index.html" class="brand-link">
263
273
  <!--begin::Brand Image-->
264
274
  <img
265
- src="../../dist/assets/img/AdminLTELogo.png"
275
+ src="/assets/img/AdminLTELogo.png"
266
276
  alt="AdminLTE Logo"
267
277
  class="brand-image opacity-75 shadow"
268
278
  />
@@ -281,8 +291,10 @@
281
291
  <ul
282
292
  class="nav sidebar-menu flex-column"
283
293
  data-lte-toggle="treeview"
284
- role="menu"
294
+ role="navigation"
295
+ aria-label="Main navigation"
285
296
  data-accordion="false"
297
+ id="navigation"
286
298
  >
287
299
  <li class="nav-item menu-open">
288
300
  <a href="#" class="nav-link active">
@@ -370,6 +382,24 @@
370
382
  <p>Fixed Sidebar</p>
371
383
  </a>
372
384
  </li>
385
+ <li class="nav-item">
386
+ <a href="./layout/fixed-header.html" class="nav-link">
387
+ <i class="nav-icon bi bi-circle"></i>
388
+ <p>Fixed Header</p>
389
+ </a>
390
+ </li>
391
+ <li class="nav-item">
392
+ <a href="./layout/fixed-footer.html" class="nav-link">
393
+ <i class="nav-icon bi bi-circle"></i>
394
+ <p>Fixed Footer</p>
395
+ </a>
396
+ </li>
397
+ <li class="nav-item">
398
+ <a href="./layout/fixed-complete.html" class="nav-link">
399
+ <i class="nav-icon bi bi-circle"></i>
400
+ <p>Fixed Complete</p>
401
+ </a>
402
+ </li>
373
403
  <li class="nav-item">
374
404
  <a href="./layout/layout-custom-area.html" class="nav-link">
375
405
  <i class="nav-icon bi bi-circle"></i>
@@ -971,7 +1001,7 @@
971
1001
  <!-- /.direct-chat-infos -->
972
1002
  <img
973
1003
  class="direct-chat-img"
974
- src="../../dist/assets/img/user1-128x128.jpg"
1004
+ src="/assets/img/user1-128x128.jpg"
975
1005
  alt="message user image"
976
1006
  />
977
1007
  <!-- /.direct-chat-img -->
@@ -992,7 +1022,7 @@
992
1022
  <!-- /.direct-chat-infos -->
993
1023
  <img
994
1024
  class="direct-chat-img"
995
- src="../../dist/assets/img/user3-128x128.jpg"
1025
+ src="/assets/img/user3-128x128.jpg"
996
1026
  alt="message user image"
997
1027
  />
998
1028
  <!-- /.direct-chat-img -->
@@ -1009,7 +1039,7 @@
1009
1039
  <!-- /.direct-chat-infos -->
1010
1040
  <img
1011
1041
  class="direct-chat-img"
1012
- src="../../dist/assets/img/user1-128x128.jpg"
1042
+ src="/assets/img/user1-128x128.jpg"
1013
1043
  alt="message user image"
1014
1044
  />
1015
1045
  <!-- /.direct-chat-img -->
@@ -1030,7 +1060,7 @@
1030
1060
  <!-- /.direct-chat-infos -->
1031
1061
  <img
1032
1062
  class="direct-chat-img"
1033
- src="../../dist/assets/img/user3-128x128.jpg"
1063
+ src="/assets/img/user3-128x128.jpg"
1034
1064
  alt="message user image"
1035
1065
  />
1036
1066
  <!-- /.direct-chat-img -->
@@ -1047,7 +1077,7 @@
1047
1077
  <a href="#">
1048
1078
  <img
1049
1079
  class="contacts-list-img"
1050
- src="../../dist/assets/img/user1-128x128.jpg"
1080
+ src="/assets/img/user1-128x128.jpg"
1051
1081
  alt="User Avatar"
1052
1082
  />
1053
1083
  <div class="contacts-list-info">
@@ -1067,7 +1097,7 @@
1067
1097
  <a href="#">
1068
1098
  <img
1069
1099
  class="contacts-list-img"
1070
- src="../../dist/assets/img/user7-128x128.jpg"
1100
+ src="/assets/img/user7-128x128.jpg"
1071
1101
  alt="User Avatar"
1072
1102
  />
1073
1103
  <div class="contacts-list-info">
@@ -1085,7 +1115,7 @@
1085
1115
  <a href="#">
1086
1116
  <img
1087
1117
  class="contacts-list-img"
1088
- src="../../dist/assets/img/user3-128x128.jpg"
1118
+ src="/assets/img/user3-128x128.jpg"
1089
1119
  alt="User Avatar"
1090
1120
  />
1091
1121
  <div class="contacts-list-info">
@@ -1103,7 +1133,7 @@
1103
1133
  <a href="#">
1104
1134
  <img
1105
1135
  class="contacts-list-img"
1106
- src="../../dist/assets/img/user5-128x128.jpg"
1136
+ src="/assets/img/user5-128x128.jpg"
1107
1137
  alt="User Avatar"
1108
1138
  />
1109
1139
  <div class="contacts-list-info">
@@ -1121,7 +1151,7 @@
1121
1151
  <a href="#">
1122
1152
  <img
1123
1153
  class="contacts-list-img"
1124
- src="../../dist/assets/img/user6-128x128.jpg"
1154
+ src="/assets/img/user6-128x128.jpg"
1125
1155
  alt="User Avatar"
1126
1156
  />
1127
1157
  <div class="contacts-list-info">
@@ -1139,7 +1169,7 @@
1139
1169
  <a href="#">
1140
1170
  <img
1141
1171
  class="contacts-list-img"
1142
- src="../../dist/assets/img/user8-128x128.jpg"
1172
+ src="/assets/img/user8-128x128.jpg"
1143
1173
  alt="User Avatar"
1144
1174
  />
1145
1175
  <div class="contacts-list-info">
@@ -1205,7 +1235,7 @@
1205
1235
  <div class="col-3 p-2">
1206
1236
  <img
1207
1237
  class="img-fluid rounded-circle"
1208
- src="../../dist/assets/img/user1-128x128.jpg"
1238
+ src="/assets/img/user1-128x128.jpg"
1209
1239
  alt="User Image"
1210
1240
  />
1211
1241
  <a
@@ -1219,7 +1249,7 @@
1219
1249
  <div class="col-3 p-2">
1220
1250
  <img
1221
1251
  class="img-fluid rounded-circle"
1222
- src="../../dist/assets/img/user1-128x128.jpg"
1252
+ src="/assets/img/user1-128x128.jpg"
1223
1253
  alt="User Image"
1224
1254
  />
1225
1255
  <a
@@ -1233,7 +1263,7 @@
1233
1263
  <div class="col-3 p-2">
1234
1264
  <img
1235
1265
  class="img-fluid rounded-circle"
1236
- src="../../dist/assets/img/user7-128x128.jpg"
1266
+ src="/assets/img/user7-128x128.jpg"
1237
1267
  alt="User Image"
1238
1268
  />
1239
1269
  <a
@@ -1247,7 +1277,7 @@
1247
1277
  <div class="col-3 p-2">
1248
1278
  <img
1249
1279
  class="img-fluid rounded-circle"
1250
- src="../../dist/assets/img/user6-128x128.jpg"
1280
+ src="/assets/img/user6-128x128.jpg"
1251
1281
  alt="User Image"
1252
1282
  />
1253
1283
  <a
@@ -1261,7 +1291,7 @@
1261
1291
  <div class="col-3 p-2">
1262
1292
  <img
1263
1293
  class="img-fluid rounded-circle"
1264
- src="../../dist/assets/img/user2-160x160.jpg"
1294
+ src="/assets/img/user2-160x160.jpg"
1265
1295
  alt="User Image"
1266
1296
  />
1267
1297
  <a
@@ -1275,7 +1305,7 @@
1275
1305
  <div class="col-3 p-2">
1276
1306
  <img
1277
1307
  class="img-fluid rounded-circle"
1278
- src="../../dist/assets/img/user5-128x128.jpg"
1308
+ src="/assets/img/user5-128x128.jpg"
1279
1309
  alt="User Image"
1280
1310
  />
1281
1311
  <a
@@ -1289,7 +1319,7 @@
1289
1319
  <div class="col-3 p-2">
1290
1320
  <img
1291
1321
  class="img-fluid rounded-circle"
1292
- src="../../dist/assets/img/user4-128x128.jpg"
1322
+ src="/assets/img/user4-128x128.jpg"
1293
1323
  alt="User Image"
1294
1324
  />
1295
1325
  <a
@@ -1303,7 +1333,7 @@
1303
1333
  <div class="col-3 p-2">
1304
1334
  <img
1305
1335
  class="img-fluid rounded-circle"
1306
- src="../../dist/assets/img/user3-128x128.jpg"
1336
+ src="/assets/img/user3-128x128.jpg"
1307
1337
  alt="User Image"
1308
1338
  />
1309
1339
  <a
@@ -1575,7 +1605,7 @@
1575
1605
  <div class="d-flex border-top py-2 px-1">
1576
1606
  <div class="col-2">
1577
1607
  <img
1578
- src="../../dist/assets/img/default-150x150.png"
1608
+ src="/assets/img/default-150x150.png"
1579
1609
  alt="Product Image"
1580
1610
  class="img-size-50"
1581
1611
  />
@@ -1592,7 +1622,7 @@
1592
1622
  <div class="d-flex border-top py-2 px-1">
1593
1623
  <div class="col-2">
1594
1624
  <img
1595
- src="../../dist/assets/img/default-150x150.png"
1625
+ src="/assets/img/default-150x150.png"
1596
1626
  alt="Product Image"
1597
1627
  class="img-size-50"
1598
1628
  />
@@ -1611,7 +1641,7 @@
1611
1641
  <div class="d-flex border-top py-2 px-1">
1612
1642
  <div class="col-2">
1613
1643
  <img
1614
- src="../../dist/assets/img/default-150x150.png"
1644
+ src="/assets/img/default-150x150.png"
1615
1645
  alt="Product Image"
1616
1646
  class="img-size-50"
1617
1647
  />
@@ -1630,7 +1660,7 @@
1630
1660
  <div class="d-flex border-top py-2 px-1">
1631
1661
  <div class="col-2">
1632
1662
  <img
1633
- src="../../dist/assets/img/default-150x150.png"
1663
+ src="/assets/img/default-150x150.png"
1634
1664
  alt="Product Image"
1635
1665
  class="img-size-50"
1636
1666
  />
@@ -1670,7 +1700,7 @@
1670
1700
  <!--end::To the end-->
1671
1701
  <!--begin::Copyright-->
1672
1702
  <strong>
1673
- Copyright &copy; 2014-2024&nbsp;
1703
+ Copyright &copy; 2014-2025&nbsp;
1674
1704
  <a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
1675
1705
  </strong>
1676
1706
  All rights reserved.
@@ -1682,24 +1712,21 @@
1682
1712
  <!--begin::Script-->
1683
1713
  <!--begin::Third Party Plugin(OverlayScrollbars)-->
1684
1714
  <script
1685
- src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/browser/overlayscrollbars.browser.es6.min.js"
1686
- integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
1715
+ src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
1687
1716
  crossorigin="anonymous"
1688
1717
  ></script>
1689
1718
  <!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
1690
1719
  <script
1691
1720
  src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
1692
- integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
1693
1721
  crossorigin="anonymous"
1694
1722
  ></script>
1695
1723
  <!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
1696
1724
  <script
1697
- src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js"
1698
- integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
1725
+ src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
1699
1726
  crossorigin="anonymous"
1700
1727
  ></script>
1701
1728
  <!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
1702
- <script src="../../dist/js/adminlte.js"></script>
1729
+ <script src="./js/adminlte.js"></script>
1703
1730
  <!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
1704
1731
  <script>
1705
1732
  const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
@@ -1710,7 +1737,7 @@
1710
1737
  };
1711
1738
  document.addEventListener('DOMContentLoaded', function () {
1712
1739
  const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
1713
- if (sidebarWrapper && typeof OverlayScrollbarsGlobal?.OverlayScrollbars !== 'undefined') {
1740
+ if (sidebarWrapper && OverlayScrollbarsGlobal?.OverlayScrollbars !== undefined) {
1714
1741
  OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
1715
1742
  scrollbars: {
1716
1743
  theme: Default.scrollbarTheme,
@@ -1721,7 +1748,31 @@
1721
1748
  }
1722
1749
  });
1723
1750
  </script>
1724
- <!--end::OverlayScrollbars Configure-->
1751
+ <!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
1752
+ <script>
1753
+ document.addEventListener('DOMContentLoaded', () => {
1754
+ // Find the link tag for the main AdminLTE CSS file.
1755
+ const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
1756
+ if (!cssLink) {
1757
+ return; // Exit if the link isn't found
1758
+ }
1759
+
1760
+ // Extract the base path from the CSS href.
1761
+ // e.g., from "../css/adminlte.css", we get "../"
1762
+ // e.g., from "./css/adminlte.css", we get "./"
1763
+ const cssHref = cssLink.getAttribute('href');
1764
+ const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
1765
+
1766
+ // Find all images with absolute paths and fix them.
1767
+ document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
1768
+ const originalSrc = img.getAttribute('src');
1769
+ if (originalSrc) {
1770
+ const relativeSrc = originalSrc.slice(1); // Remove leading '/'
1771
+ img.src = deploymentPath + relativeSrc;
1772
+ }
1773
+ });
1774
+ });
1775
+ </script>
1725
1776
  <!-- OPTIONAL SCRIPTS -->
1726
1777
  <!-- apexcharts -->
1727
1778
  <script
@@ -1824,7 +1875,7 @@
1824
1875
  },
1825
1876
  y: {
1826
1877
  title: {
1827
- formatter: function (seriesName) {
1878
+ formatter() {
1828
1879
  return '';
1829
1880
  },
1830
1881
  },