admin-lte 4.0.0-rc2 → 4.0.0-rc4

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 (62) hide show
  1. package/.claude/settings.local.json +28 -0
  2. package/CHANGELOG.md +181 -0
  3. package/CLAUDE.md +106 -0
  4. package/README 2.md +106 -0
  5. package/README.md +24 -8
  6. package/dist/{pages/UI → UI}/general.html +14 -19
  7. package/dist/{pages/UI → UI}/icons.html +14 -19
  8. package/dist/{pages/UI → UI}/timeline.html +18 -23
  9. package/dist/css/adminlte.css +990 -924
  10. package/dist/css/adminlte.css.map +1 -1
  11. package/dist/css/adminlte.min.css +2 -2
  12. package/dist/css/adminlte.min.css.map +1 -1
  13. package/dist/css/adminlte.rtl.css +982 -942
  14. package/dist/css/adminlte.rtl.css.map +1 -1
  15. package/dist/css/adminlte.rtl.min.css +2 -2
  16. package/dist/css/adminlte.rtl.min.css.map +1 -1
  17. package/dist/{pages/docs → docs}/browser-support.html +14 -19
  18. package/dist/{pages/docs → docs}/color-mode.html +14 -19
  19. package/dist/{pages/docs → docs}/components/main-header.html +19 -24
  20. package/dist/{pages/docs → docs}/components/main-sidebar.html +14 -19
  21. package/dist/{pages/docs → docs}/faq.html +14 -19
  22. package/dist/{pages/docs → docs}/how-to-contribute.html +14 -19
  23. package/dist/{pages/docs → docs}/introduction.html +19 -24
  24. package/dist/{pages/docs → docs}/javascript/treeview.html +14 -19
  25. package/dist/{pages/docs → docs}/layout.html +14 -19
  26. package/dist/{pages/docs → docs}/license.html +14 -19
  27. package/dist/{pages/examples → examples}/lockscreen.html +8 -13
  28. package/dist/{pages/examples → examples}/login-v2.html +7 -12
  29. package/dist/{pages/examples → examples}/login.html +7 -12
  30. package/dist/{pages/examples → examples}/register-v2.html +7 -12
  31. package/dist/{pages/examples → examples}/register.html +7 -12
  32. package/dist/{pages/forms → forms}/general.html +14 -19
  33. package/dist/{pages/generate → generate}/theme.html +14 -19
  34. package/dist/{pages/index.html → index.html} +24 -30
  35. package/dist/{pages/index2.html → index2.html} +36 -41
  36. package/dist/{pages/index3.html → index3.html} +18 -23
  37. package/dist/js/adminlte.js +26 -8
  38. package/dist/js/adminlte.js.map +1 -1
  39. package/dist/js/adminlte.min.js +2 -2
  40. package/dist/js/adminlte.min.js.map +1 -1
  41. package/dist/{pages/layout → layout}/collapsed-sidebar.html +13 -18
  42. package/dist/{pages/layout → layout}/fixed-complete.html +16 -19
  43. package/dist/{pages/layout → layout}/fixed-footer.html +14 -19
  44. package/dist/{pages/layout → layout}/fixed-header.html +14 -19
  45. package/dist/{pages/layout → layout}/fixed-sidebar.html +14 -19
  46. package/dist/{pages/layout → layout}/layout-custom-area.html +14 -19
  47. package/dist/{pages/layout → layout}/layout-rtl.html +14 -19
  48. package/dist/{pages/layout → layout}/logo-switch.html +14 -19
  49. package/dist/{pages/layout → layout}/sidebar-mini.html +13 -18
  50. package/dist/{pages/layout → layout}/unfixed-sidebar.html +14 -19
  51. package/dist/{pages/tables → tables}/simple.html +14 -19
  52. package/dist/{pages/widgets → widgets}/cards.html +14 -19
  53. package/dist/{pages/widgets → widgets}/info-box.html +14 -19
  54. package/dist/{pages/widgets → widgets}/small-box.html +14 -19
  55. package/eslint.config.js +2 -1
  56. package/package.json +15 -12
  57. package/src/scss/_accessibility.scss +9 -2
  58. package/src/scss/_app-sidebar.scss +16 -0
  59. package/src/scss/adminlte.scss +1 -1
  60. package/src/ts/adminlte.ts +1 -1
  61. package/src/ts/push-menu.ts +17 -5
  62. package/src/ts/treeview.ts +13 -2
@@ -25,7 +25,7 @@
25
25
  <!--begin::Accessibility Features-->
26
26
  <!-- Skip links will be dynamically added by accessibility.js -->
27
27
  <meta name="supported-color-schemes" content="light dark" />
28
- <link rel="preload" href="../../../dist/css/adminlte.css" as="style" />
28
+ <link rel="preload" href="../css/adminlte.css" as="style" />
29
29
  <!--end::Accessibility Features-->
30
30
  <!--begin::Fonts-->
31
31
  <link
@@ -40,26 +40,24 @@
40
40
  <!--begin::Third Party Plugin(OverlayScrollbars)-->
41
41
  <link
42
42
  rel="stylesheet"
43
- href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/styles/overlayscrollbars.min.css"
44
- integrity="sha256-tZHrRjVqNSRyWg2wbppGnT833E/Ys0DHWGwT04GiqQg="
43
+ href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/styles/overlayscrollbars.min.css"
45
44
  crossorigin="anonymous"
46
45
  />
47
46
  <!--end::Third Party Plugin(OverlayScrollbars)-->
48
47
  <!--begin::Third Party Plugin(Bootstrap Icons)-->
49
48
  <link
50
49
  rel="stylesheet"
51
- href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"
52
- integrity="sha256-9kPW/n5nn53j4WMRYAxe9c1rCY96Oogo/MKSVdKzPmI="
50
+ href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css"
53
51
  crossorigin="anonymous"
54
52
  />
55
53
  <!--end::Third Party Plugin(Bootstrap Icons)-->
56
54
  <!--begin::Required Plugin(AdminLTE)-->
57
- <link rel="stylesheet" href="../../../dist/css/adminlte.css" />
55
+ <link rel="stylesheet" href="../css/adminlte.css" />
58
56
  <!--end::Required Plugin(AdminLTE)-->
59
57
  </head>
60
58
  <!--end::Head-->
61
59
  <!--begin::Body-->
62
- <body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
60
+ <body class="layout-fixed sidebar-expand-lg sidebar-open bg-body-tertiary">
63
61
  <!--begin::App Wrapper-->
64
62
  <div class="app-wrapper">
65
63
  <!--begin::Header-->
@@ -98,7 +96,7 @@
98
96
  <div class="d-flex">
99
97
  <div class="flex-shrink-0">
100
98
  <img
101
- src="../../../dist/assets/img/user1-128x128.jpg"
99
+ src="../assets/img/user1-128x128.jpg"
102
100
  alt="User Avatar"
103
101
  class="img-size-50 rounded-circle me-3"
104
102
  />
@@ -124,7 +122,7 @@
124
122
  <div class="d-flex">
125
123
  <div class="flex-shrink-0">
126
124
  <img
127
- src="../../../dist/assets/img/user8-128x128.jpg"
125
+ src="../assets/img/user8-128x128.jpg"
128
126
  alt="User Avatar"
129
127
  class="img-size-50 rounded-circle me-3"
130
128
  />
@@ -150,7 +148,7 @@
150
148
  <div class="d-flex">
151
149
  <div class="flex-shrink-0">
152
150
  <img
153
- src="../../../dist/assets/img/user3-128x128.jpg"
151
+ src="../assets/img/user3-128x128.jpg"
154
152
  alt="User Avatar"
155
153
  class="img-size-50 rounded-circle me-3"
156
154
  />
@@ -215,7 +213,7 @@
215
213
  <li class="nav-item dropdown user-menu">
216
214
  <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
217
215
  <img
218
- src="../../../dist/assets/img/user2-160x160.jpg"
216
+ src="../assets/img/user2-160x160.jpg"
219
217
  class="user-image rounded-circle shadow"
220
218
  alt="User Image"
221
219
  />
@@ -225,7 +223,7 @@
225
223
  <!--begin::User Image-->
226
224
  <li class="user-header text-bg-primary">
227
225
  <img
228
- src="../../../dist/assets/img/user2-160x160.jpg"
226
+ src="../assets/img/user2-160x160.jpg"
229
227
  class="rounded-circle shadow"
230
228
  alt="User Image"
231
229
  />
@@ -269,7 +267,7 @@
269
267
  <a href="../index.html" class="brand-link">
270
268
  <!--begin::Brand Image-->
271
269
  <img
272
- src="../../../dist/assets/img/AdminLTELogo.png"
270
+ src="../assets/img/AdminLTELogo.png"
273
271
  alt="AdminLTE Logo"
274
272
  class="brand-image opacity-75 shadow"
275
273
  />
@@ -1066,24 +1064,21 @@
1066
1064
  <!--begin::Script-->
1067
1065
  <!--begin::Third Party Plugin(OverlayScrollbars)-->
1068
1066
  <script
1069
- src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/browser/overlayscrollbars.browser.es6.min.js"
1070
- integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
1067
+ src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
1071
1068
  crossorigin="anonymous"
1072
1069
  ></script>
1073
1070
  <!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
1074
1071
  <script
1075
1072
  src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
1076
- integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
1077
1073
  crossorigin="anonymous"
1078
1074
  ></script>
1079
1075
  <!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
1080
1076
  <script
1081
- src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js"
1082
- integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
1077
+ src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
1083
1078
  crossorigin="anonymous"
1084
1079
  ></script>
1085
1080
  <!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
1086
- <script src="../../../dist/js/adminlte.js"></script>
1081
+ <script src="../js/adminlte.js"></script>
1087
1082
  <!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
1088
1083
  <script>
1089
1084
  const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
@@ -25,7 +25,7 @@
25
25
  <!--begin::Accessibility Features-->
26
26
  <!-- Skip links will be dynamically added by accessibility.js -->
27
27
  <meta name="supported-color-schemes" content="light dark" />
28
- <link rel="preload" href="../../../dist/css/adminlte.css" as="style" />
28
+ <link rel="preload" href="../css/adminlte.css" as="style" />
29
29
  <!--end::Accessibility Features-->
30
30
  <!--begin::Fonts-->
31
31
  <link
@@ -40,26 +40,24 @@
40
40
  <!--begin::Third Party Plugin(OverlayScrollbars)-->
41
41
  <link
42
42
  rel="stylesheet"
43
- href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/styles/overlayscrollbars.min.css"
44
- integrity="sha256-tZHrRjVqNSRyWg2wbppGnT833E/Ys0DHWGwT04GiqQg="
43
+ href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/styles/overlayscrollbars.min.css"
45
44
  crossorigin="anonymous"
46
45
  />
47
46
  <!--end::Third Party Plugin(OverlayScrollbars)-->
48
47
  <!--begin::Third Party Plugin(Bootstrap Icons)-->
49
48
  <link
50
49
  rel="stylesheet"
51
- href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"
52
- integrity="sha256-9kPW/n5nn53j4WMRYAxe9c1rCY96Oogo/MKSVdKzPmI="
50
+ href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css"
53
51
  crossorigin="anonymous"
54
52
  />
55
53
  <!--end::Third Party Plugin(Bootstrap Icons)-->
56
54
  <!--begin::Required Plugin(AdminLTE)-->
57
- <link rel="stylesheet" href="../../../dist/css/adminlte.css" />
55
+ <link rel="stylesheet" href="../css/adminlte.css" />
58
56
  <!--end::Required Plugin(AdminLTE)-->
59
57
  </head>
60
58
  <!--end::Head-->
61
59
  <!--begin::Body-->
62
- <body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
60
+ <body class="layout-fixed sidebar-expand-lg sidebar-open bg-body-tertiary">
63
61
  <!--begin::App Wrapper-->
64
62
  <div class="app-wrapper">
65
63
  <!--begin::Header-->
@@ -98,7 +96,7 @@
98
96
  <div class="d-flex">
99
97
  <div class="flex-shrink-0">
100
98
  <img
101
- src="../../../dist/assets/img/user1-128x128.jpg"
99
+ src="../assets/img/user1-128x128.jpg"
102
100
  alt="User Avatar"
103
101
  class="img-size-50 rounded-circle me-3"
104
102
  />
@@ -124,7 +122,7 @@
124
122
  <div class="d-flex">
125
123
  <div class="flex-shrink-0">
126
124
  <img
127
- src="../../../dist/assets/img/user8-128x128.jpg"
125
+ src="../assets/img/user8-128x128.jpg"
128
126
  alt="User Avatar"
129
127
  class="img-size-50 rounded-circle me-3"
130
128
  />
@@ -150,7 +148,7 @@
150
148
  <div class="d-flex">
151
149
  <div class="flex-shrink-0">
152
150
  <img
153
- src="../../../dist/assets/img/user3-128x128.jpg"
151
+ src="../assets/img/user3-128x128.jpg"
154
152
  alt="User Avatar"
155
153
  class="img-size-50 rounded-circle me-3"
156
154
  />
@@ -215,7 +213,7 @@
215
213
  <li class="nav-item dropdown user-menu">
216
214
  <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
217
215
  <img
218
- src="../../../dist/assets/img/user2-160x160.jpg"
216
+ src="../assets/img/user2-160x160.jpg"
219
217
  class="user-image rounded-circle shadow"
220
218
  alt="User Image"
221
219
  />
@@ -225,7 +223,7 @@
225
223
  <!--begin::User Image-->
226
224
  <li class="user-header text-bg-primary">
227
225
  <img
228
- src="../../../dist/assets/img/user2-160x160.jpg"
226
+ src="../assets/img/user2-160x160.jpg"
229
227
  class="rounded-circle shadow"
230
228
  alt="User Image"
231
229
  />
@@ -269,7 +267,7 @@
269
267
  <a href="../index.html" class="brand-link">
270
268
  <!--begin::Brand Image-->
271
269
  <img
272
- src="../../../dist/assets/img/AdminLTELogo.png"
270
+ src="../assets/img/AdminLTELogo.png"
273
271
  alt="AdminLTE Logo"
274
272
  class="brand-image opacity-75 shadow"
275
273
  />
@@ -1021,24 +1019,21 @@
1021
1019
  <!--begin::Script-->
1022
1020
  <!--begin::Third Party Plugin(OverlayScrollbars)-->
1023
1021
  <script
1024
- src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/browser/overlayscrollbars.browser.es6.min.js"
1025
- integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
1022
+ src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
1026
1023
  crossorigin="anonymous"
1027
1024
  ></script>
1028
1025
  <!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
1029
1026
  <script
1030
1027
  src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
1031
- integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
1032
1028
  crossorigin="anonymous"
1033
1029
  ></script>
1034
1030
  <!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
1035
1031
  <script
1036
- src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js"
1037
- integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
1032
+ src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
1038
1033
  crossorigin="anonymous"
1039
1034
  ></script>
1040
1035
  <!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
1041
- <script src="../../../dist/js/adminlte.js"></script>
1036
+ <script src="../js/adminlte.js"></script>
1042
1037
  <!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
1043
1038
  <script>
1044
1039
  const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
@@ -25,7 +25,7 @@
25
25
  <!--begin::Accessibility Features-->
26
26
  <!-- Skip links will be dynamically added by accessibility.js -->
27
27
  <meta name="supported-color-schemes" content="light dark" />
28
- <link rel="preload" href="../../../dist/css/adminlte.css" as="style" />
28
+ <link rel="preload" href="../css/adminlte.css" as="style" />
29
29
  <!--end::Accessibility Features-->
30
30
  <!--begin::Fonts-->
31
31
  <link
@@ -40,26 +40,24 @@
40
40
  <!--begin::Third Party Plugin(OverlayScrollbars)-->
41
41
  <link
42
42
  rel="stylesheet"
43
- href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/styles/overlayscrollbars.min.css"
44
- integrity="sha256-tZHrRjVqNSRyWg2wbppGnT833E/Ys0DHWGwT04GiqQg="
43
+ href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/styles/overlayscrollbars.min.css"
45
44
  crossorigin="anonymous"
46
45
  />
47
46
  <!--end::Third Party Plugin(OverlayScrollbars)-->
48
47
  <!--begin::Third Party Plugin(Bootstrap Icons)-->
49
48
  <link
50
49
  rel="stylesheet"
51
- href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"
52
- integrity="sha256-9kPW/n5nn53j4WMRYAxe9c1rCY96Oogo/MKSVdKzPmI="
50
+ href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css"
53
51
  crossorigin="anonymous"
54
52
  />
55
53
  <!--end::Third Party Plugin(Bootstrap Icons)-->
56
54
  <!--begin::Required Plugin(AdminLTE)-->
57
- <link rel="stylesheet" href="../../../dist/css/adminlte.css" />
55
+ <link rel="stylesheet" href="../css/adminlte.css" />
58
56
  <!--end::Required Plugin(AdminLTE)-->
59
57
  </head>
60
58
  <!--end::Head-->
61
59
  <!--begin::Body-->
62
- <body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
60
+ <body class="layout-fixed sidebar-expand-lg sidebar-open bg-body-tertiary">
63
61
  <!--begin::App Wrapper-->
64
62
  <div class="app-wrapper">
65
63
  <!--begin::Header-->
@@ -98,7 +96,7 @@
98
96
  <div class="d-flex">
99
97
  <div class="flex-shrink-0">
100
98
  <img
101
- src="../../../dist/assets/img/user1-128x128.jpg"
99
+ src="../assets/img/user1-128x128.jpg"
102
100
  alt="User Avatar"
103
101
  class="img-size-50 rounded-circle me-3"
104
102
  />
@@ -124,7 +122,7 @@
124
122
  <div class="d-flex">
125
123
  <div class="flex-shrink-0">
126
124
  <img
127
- src="../../../dist/assets/img/user8-128x128.jpg"
125
+ src="../assets/img/user8-128x128.jpg"
128
126
  alt="User Avatar"
129
127
  class="img-size-50 rounded-circle me-3"
130
128
  />
@@ -150,7 +148,7 @@
150
148
  <div class="d-flex">
151
149
  <div class="flex-shrink-0">
152
150
  <img
153
- src="../../../dist/assets/img/user3-128x128.jpg"
151
+ src="../assets/img/user3-128x128.jpg"
154
152
  alt="User Avatar"
155
153
  class="img-size-50 rounded-circle me-3"
156
154
  />
@@ -215,7 +213,7 @@
215
213
  <li class="nav-item dropdown user-menu">
216
214
  <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
217
215
  <img
218
- src="../../../dist/assets/img/user2-160x160.jpg"
216
+ src="../assets/img/user2-160x160.jpg"
219
217
  class="user-image rounded-circle shadow"
220
218
  alt="User Image"
221
219
  />
@@ -225,7 +223,7 @@
225
223
  <!--begin::User Image-->
226
224
  <li class="user-header text-bg-primary">
227
225
  <img
228
- src="../../../dist/assets/img/user2-160x160.jpg"
226
+ src="../assets/img/user2-160x160.jpg"
229
227
  class="rounded-circle shadow"
230
228
  alt="User Image"
231
229
  />
@@ -269,7 +267,7 @@
269
267
  <a href="../index.html" class="brand-link">
270
268
  <!--begin::Brand Image-->
271
269
  <img
272
- src="../../../dist/assets/img/AdminLTELogo.png"
270
+ src="../assets/img/AdminLTELogo.png"
273
271
  alt="AdminLTE Logo"
274
272
  class="brand-image opacity-75 shadow"
275
273
  />
@@ -1039,24 +1037,21 @@
1039
1037
  <!--begin::Script-->
1040
1038
  <!--begin::Third Party Plugin(OverlayScrollbars)-->
1041
1039
  <script
1042
- src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/browser/overlayscrollbars.browser.es6.min.js"
1043
- integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
1040
+ src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
1044
1041
  crossorigin="anonymous"
1045
1042
  ></script>
1046
1043
  <!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
1047
1044
  <script
1048
1045
  src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
1049
- integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
1050
1046
  crossorigin="anonymous"
1051
1047
  ></script>
1052
1048
  <!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
1053
1049
  <script
1054
- src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js"
1055
- integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
1050
+ src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
1056
1051
  crossorigin="anonymous"
1057
1052
  ></script>
1058
1053
  <!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
1059
- <script src="../../../dist/js/adminlte.js"></script>
1054
+ <script src="../js/adminlte.js"></script>
1060
1055
  <!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
1061
1056
  <script>
1062
1057
  const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
@@ -25,7 +25,7 @@
25
25
  <!--begin::Accessibility Features-->
26
26
  <!-- Skip links will be dynamically added by accessibility.js -->
27
27
  <meta name="supported-color-schemes" content="light dark" />
28
- <link rel="preload" href="../../../dist/css/adminlte.css" as="style" />
28
+ <link rel="preload" href="../css/adminlte.css" as="style" />
29
29
  <!--end::Accessibility Features-->
30
30
  <!--begin::Fonts-->
31
31
  <link
@@ -40,26 +40,24 @@
40
40
  <!--begin::Third Party Plugin(OverlayScrollbars)-->
41
41
  <link
42
42
  rel="stylesheet"
43
- href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/styles/overlayscrollbars.min.css"
44
- integrity="sha256-tZHrRjVqNSRyWg2wbppGnT833E/Ys0DHWGwT04GiqQg="
43
+ href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/styles/overlayscrollbars.min.css"
45
44
  crossorigin="anonymous"
46
45
  />
47
46
  <!--end::Third Party Plugin(OverlayScrollbars)-->
48
47
  <!--begin::Third Party Plugin(Bootstrap Icons)-->
49
48
  <link
50
49
  rel="stylesheet"
51
- href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"
52
- integrity="sha256-9kPW/n5nn53j4WMRYAxe9c1rCY96Oogo/MKSVdKzPmI="
50
+ href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css"
53
51
  crossorigin="anonymous"
54
52
  />
55
53
  <!--end::Third Party Plugin(Bootstrap Icons)-->
56
54
  <!--begin::Required Plugin(AdminLTE)-->
57
- <link rel="stylesheet" href="../../../dist/css/adminlte.css" />
55
+ <link rel="stylesheet" href="../css/adminlte.css" />
58
56
  <!--end::Required Plugin(AdminLTE)-->
59
57
  </head>
60
58
  <!--end::Head-->
61
59
  <!--begin::Body-->
62
- <body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
60
+ <body class="layout-fixed sidebar-expand-lg sidebar-open bg-body-tertiary">
63
61
  <!--begin::App Wrapper-->
64
62
  <div class="app-wrapper">
65
63
  <!--begin::Header-->
@@ -98,7 +96,7 @@
98
96
  <div class="d-flex">
99
97
  <div class="flex-shrink-0">
100
98
  <img
101
- src="../../../dist/assets/img/user1-128x128.jpg"
99
+ src="../assets/img/user1-128x128.jpg"
102
100
  alt="User Avatar"
103
101
  class="img-size-50 rounded-circle me-3"
104
102
  />
@@ -124,7 +122,7 @@
124
122
  <div class="d-flex">
125
123
  <div class="flex-shrink-0">
126
124
  <img
127
- src="../../../dist/assets/img/user8-128x128.jpg"
125
+ src="../assets/img/user8-128x128.jpg"
128
126
  alt="User Avatar"
129
127
  class="img-size-50 rounded-circle me-3"
130
128
  />
@@ -150,7 +148,7 @@
150
148
  <div class="d-flex">
151
149
  <div class="flex-shrink-0">
152
150
  <img
153
- src="../../../dist/assets/img/user3-128x128.jpg"
151
+ src="../assets/img/user3-128x128.jpg"
154
152
  alt="User Avatar"
155
153
  class="img-size-50 rounded-circle me-3"
156
154
  />
@@ -215,7 +213,7 @@
215
213
  <li class="nav-item dropdown user-menu">
216
214
  <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
217
215
  <img
218
- src="../../../dist/assets/img/user2-160x160.jpg"
216
+ src="../assets/img/user2-160x160.jpg"
219
217
  class="user-image rounded-circle shadow"
220
218
  alt="User Image"
221
219
  />
@@ -225,7 +223,7 @@
225
223
  <!--begin::User Image-->
226
224
  <li class="user-header text-bg-primary">
227
225
  <img
228
- src="../../../dist/assets/img/user2-160x160.jpg"
226
+ src="../assets/img/user2-160x160.jpg"
229
227
  class="rounded-circle shadow"
230
228
  alt="User Image"
231
229
  />
@@ -269,7 +267,7 @@
269
267
  <a href="../index.html" class="brand-link">
270
268
  <!--begin::Brand Image-->
271
269
  <img
272
- src="../../../dist/assets/img/AdminLTELogo.png"
270
+ src="../assets/img/AdminLTELogo.png"
273
271
  alt="AdminLTE Logo"
274
272
  class="brand-image opacity-75 shadow"
275
273
  />
@@ -901,24 +899,21 @@
901
899
  <!--begin::Script-->
902
900
  <!--begin::Third Party Plugin(OverlayScrollbars)-->
903
901
  <script
904
- src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/browser/overlayscrollbars.browser.es6.min.js"
905
- integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
902
+ src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
906
903
  crossorigin="anonymous"
907
904
  ></script>
908
905
  <!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
909
906
  <script
910
907
  src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
911
- integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
912
908
  crossorigin="anonymous"
913
909
  ></script>
914
910
  <!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
915
911
  <script
916
- src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js"
917
- integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
912
+ src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
918
913
  crossorigin="anonymous"
919
914
  ></script>
920
915
  <!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
921
- <script src="../../../dist/js/adminlte.js"></script>
916
+ <script src="../js/adminlte.js"></script>
922
917
  <!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
923
918
  <script>
924
919
  const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
package/eslint.config.js CHANGED
@@ -15,7 +15,8 @@ export default [
15
15
  "**/plugins/",
16
16
  "/.temp/",
17
17
  "src/html/docs/",
18
- "docs_html/"
18
+ "docs_html/",
19
+ "src/html/public/"
19
20
  ]
20
21
  },
21
22
  ...tseslint.config(
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "admin-lte",
3
3
  "description": "Responsive open source admin dashboard and control panel.",
4
- "version": "4.0.0-rc2",
4
+ "version": "4.0.0-rc4",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "Colorlib <https://colorlib.com>",
@@ -24,19 +24,21 @@
24
24
  "js-minify": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/adminlte.js.map,includeSources,url=adminlte.min.js.map\" --output dist/js/adminlte.min.js dist/js/adminlte.js",
25
25
  "bundlewatch": "bundlewatch --config .bundlewatch.config.json",
26
26
  "lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json",
27
- "docs-compile": "astro --config src/config/astro.config.mjs build",
27
+ "docs-compile": "npm run copy-assets && astro --config src/config/astro.config.mjs build",
28
28
  "docs-lint": "astro --config src/config/astro.config.mjs check",
29
- "docs-format": "prettier --write \"dist/pages/**/*.html\"",
30
- "docs-serve": "astro --config src/config/astro.config.mjs dev --open --port 3000",
29
+ "docs-format": "prettier --write \"dist/**/*.html\"",
30
+ "docs-serve": "npm run copy-assets && astro --config src/config/astro.config.mjs dev --open --port 3000",
31
+ "copy-assets": "rimraf src/html/public && shx mkdir -p src/html/public && shx cp -r dist/css dist/js dist/assets src/html/public/",
32
+ "flatten-build": "shx cp -r dist/html/* dist/ && shx rm -rf dist/html && shx rm -rf dist/.astro",
31
33
  "assets": "node src/config/assets.config.mjs",
32
34
  "lint": "npm-run-all --aggregate-output --continue-on-error --parallel js-lint css-lint docs-lint lockfile-lint",
33
35
  "clean": "rimraf dist",
34
- "compile": "npm-run-all docs-compile docs-format assets css js",
36
+ "compile": "npm-run-all css js assets copy-assets docs-compile docs-format flatten-build",
35
37
  "production": "npm-run-all clean lint compile bundlewatch",
36
38
  "watch": "concurrently \"npm:watch-*\"",
37
- "watch-css-main": "nodemon --watch src/scss/ --ext scss --exec \"npm-run-all css-lint css-compile\"",
39
+ "watch-css-main": "nodemon --watch src/scss/ --ext scss --exec \"npm-run-all css-lint css-compile copy-assets\"",
38
40
  "watch-css-dist": "nodemon --watch dist/css/ --ext css --ignore \"dist/css/*.rtl.*\" --exec \"npm run css-rtl\"",
39
- "watch-js-main": "nodemon --watch src/ts/ --ext ts --exec \"npm-run-all js-lint js-compile\"",
41
+ "watch-js-main": "nodemon --watch src/ts/ --ext ts --exec \"npm-run-all js-lint js-compile copy-assets\"",
40
42
  "watch-assets": "nodemon --watch src/assets/ --exec \"npm run assets\""
41
43
  },
42
44
  "keywords": [
@@ -64,20 +66,20 @@
64
66
  "@astrojs/check": "^0.9.4",
65
67
  "@astrojs/mdx": "^4.3.0",
66
68
  "@rollup/plugin-typescript": "^12.1.3",
67
- "@typescript-eslint/eslint-plugin": "^8.34.1",
68
- "@typescript-eslint/parser": "^8.34.1",
69
+ "@typescript-eslint/eslint-plugin": "^8.35.1",
70
+ "@typescript-eslint/parser": "^8.35.1",
69
71
  "astro": "^5.10.0",
70
72
  "autoprefixer": "^10.4.21",
71
73
  "bootstrap": "^5.3.7",
72
74
  "bundlewatch": "^0.4.1",
73
75
  "clean-css-cli": "^5.6.3",
74
- "concurrently": "^9.1.2",
76
+ "concurrently": "^9.2.0",
75
77
  "cross-env": "^7.0.3",
76
- "eslint": "^9.29.0",
78
+ "eslint": "^9.30.0",
77
79
  "eslint-config-xo": "^0.47.0",
78
80
  "eslint-config-xo-typescript": "^8.0.1",
79
81
  "eslint-plugin-astro": "^1.3.1",
80
- "eslint-plugin-import": "^2.31.0",
82
+ "eslint-plugin-import": "^2.32.0",
81
83
  "eslint-plugin-unicorn": "^59.0.1",
82
84
  "fs-extra": "^11.3.0",
83
85
  "lockfile-lint": "^4.14.1",
@@ -91,6 +93,7 @@
91
93
  "rollup": "^4.44.0",
92
94
  "rtlcss": "^4.3.0",
93
95
  "sass": "^1.89.2",
96
+ "shx": "^0.4.0",
94
97
  "stylelint": "^16.21.0",
95
98
  "stylelint-config-twbs-bootstrap": "^16.1.0",
96
99
  "terser": "^5.43.1",
@@ -68,11 +68,18 @@
68
68
  }
69
69
 
70
70
  .fade {
71
- display: block;
71
+ opacity: 1 !important;
72
+ /* stylelint-disable-next-line property-disallowed-list */
73
+ transition: none !important;
72
74
  }
73
75
 
74
76
  .collapse {
75
- display: block;
77
+ /* stylelint-disable-next-line property-disallowed-list */
78
+ transition: none !important;
79
+ }
80
+
81
+ .modal.fade .modal-dialog {
82
+ transform: none !important;
76
83
  }
77
84
  }
78
85
 
@@ -199,7 +199,9 @@
199
199
  .nav-link > .nav-badge,
200
200
  .nav-link > p > .nav-badge {
201
201
  position: absolute;
202
+ top: 50%;
202
203
  right: 1rem;
204
+ transform: translateY(-50%);
203
205
  }
204
206
 
205
207
  .nav-link > .nav-arrow,
@@ -211,6 +213,7 @@
211
213
 
212
214
  .nav-link {
213
215
  position: relative;
216
+ width: 100%;
214
217
  @include transition(width $lte-transition-fn $lte-transition-speed);
215
218
  @include border-radius($border-radius);
216
219
 
@@ -248,6 +251,15 @@
248
251
  }
249
252
  }
250
253
  }
254
+
255
+ // Override: ensure badges/arrows are aligned to the end (right in LTR, left in RTL)
256
+ .nav-link > .nav-badge,
257
+ .nav-link > p > .nav-badge,
258
+ .nav-link > .nav-arrow,
259
+ .nav-link > p > .nav-arrow {
260
+ right: 1rem !important; // place at end in LTR
261
+ left: auto !important;
262
+ }
251
263
  }
252
264
 
253
265
  .nav-compact.nav-indent {
@@ -473,6 +485,8 @@
473
485
 
474
486
  .sidebar-wrapper {
475
487
  height: subtract(100vh, add($lte-app-header-height, 1px));
488
+ overflow-x: hidden;
489
+ overflow-y: auto;
476
490
  }
477
491
  }
478
492
  }
@@ -512,6 +526,8 @@
512
526
 
513
527
  .sidebar-wrapper {
514
528
  height: subtract(100vh, add($lte-app-header-height, 1px));
529
+ overflow-x: hidden;
530
+ overflow-y: auto;
515
531
  }
516
532
  }
517
533
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * AdminLTE v4.0.0-beta3
2
+ * AdminLTE v4.0.0-rc3
3
3
  * Author: Colorlib
4
4
  * Website: AdminLTE.io <https://adminlte.io>
5
5
  * License: Open source - MIT <https://opensource.org/licenses/MIT>