admin-lte 4.0.0-rc7 → 4.0.1

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 (104) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +202 -102
  3. package/dist/UI/general.html +330 -129
  4. package/dist/UI/icons.html +330 -129
  5. package/dist/UI/timeline.html +330 -129
  6. package/dist/css/adminlte.css +2798 -1167
  7. package/dist/css/adminlte.css.map +1 -1
  8. package/dist/css/adminlte.min.css +2 -2
  9. package/dist/css/adminlte.min.css.map +1 -1
  10. package/dist/css/adminlte.rtl.css +2798 -1167
  11. package/dist/css/adminlte.rtl.css.map +1 -1
  12. package/dist/css/adminlte.rtl.min.css +2 -2
  13. package/dist/css/adminlte.rtl.min.css.map +1 -1
  14. package/dist/docs/browser-support.html +287 -399
  15. package/dist/docs/color-mode.html +268 -384
  16. package/dist/docs/components/main-header.html +264 -376
  17. package/dist/docs/components/main-sidebar.html +279 -391
  18. package/dist/docs/customization.html +1080 -0
  19. package/dist/docs/deployment.html +1145 -0
  20. package/dist/docs/faq.html +883 -411
  21. package/dist/docs/getting-started.html +991 -0
  22. package/dist/docs/how-to-contribute.html +361 -464
  23. package/dist/docs/index.html +16 -0
  24. package/dist/docs/integrations.html +1231 -0
  25. package/dist/docs/introduction.html +479 -448
  26. package/dist/docs/javascript/accessibility.html +387 -493
  27. package/dist/docs/javascript/card-widget.html +472 -452
  28. package/dist/docs/javascript/direct-chat.html +350 -423
  29. package/dist/docs/javascript/fullscreen.html +374 -418
  30. package/dist/docs/javascript/layout.html +371 -438
  31. package/dist/docs/javascript/plugins-overview.html +1144 -0
  32. package/dist/docs/javascript/pushmenu.html +511 -494
  33. package/dist/docs/javascript/treeview.html +492 -402
  34. package/dist/docs/layout-blueprint.html +1087 -0
  35. package/dist/docs/layout.html +313 -417
  36. package/dist/docs/license.html +278 -389
  37. package/dist/docs/migration.html +1149 -0
  38. package/dist/docs/recipes.html +1185 -0
  39. package/dist/docs/rtl.html +957 -0
  40. package/dist/examples/lockscreen.html +91 -1
  41. package/dist/examples/login-v2.html +91 -1
  42. package/dist/examples/login.html +91 -1
  43. package/dist/examples/register-v2.html +91 -1
  44. package/dist/examples/register.html +91 -1
  45. package/dist/forms/elements.html +1405 -0
  46. package/dist/forms/{general.html → layout.html} +401 -489
  47. package/dist/forms/validation.html +1275 -0
  48. package/dist/forms/wizard.html +1410 -0
  49. package/dist/generate/theme.html +160 -4
  50. package/dist/index.html +330 -129
  51. package/dist/index2.html +333 -129
  52. package/dist/index3.html +330 -129
  53. package/dist/js/adminlte.js +8 -5
  54. package/dist/js/adminlte.js.map +1 -1
  55. package/dist/js/adminlte.min.js +2 -2
  56. package/dist/js/adminlte.min.js.map +1 -1
  57. package/dist/layout/collapsed-sidebar-without-hover.html +330 -129
  58. package/dist/layout/collapsed-sidebar.html +330 -129
  59. package/dist/layout/fixed-complete.html +330 -129
  60. package/dist/layout/fixed-footer.html +330 -129
  61. package/dist/layout/fixed-header.html +330 -129
  62. package/dist/layout/fixed-sidebar.html +330 -129
  63. package/dist/layout/layout-custom-area.html +330 -129
  64. package/dist/layout/layout-rtl.html +330 -129
  65. package/dist/layout/logo-switch.html +160 -4
  66. package/dist/layout/sidebar-mini.html +330 -129
  67. package/dist/layout/unfixed-sidebar.html +330 -129
  68. package/dist/mailbox/compose.html +1151 -0
  69. package/dist/mailbox/inbox.html +1509 -0
  70. package/dist/mailbox/read.html +1202 -0
  71. package/dist/pages/404.html +239 -0
  72. package/dist/pages/500.html +227 -0
  73. package/dist/pages/calendar.html +1266 -0
  74. package/dist/pages/chat.html +1427 -0
  75. package/dist/pages/faq.html +1383 -0
  76. package/dist/pages/file-manager.html +1835 -0
  77. package/dist/pages/invoice.html +1199 -0
  78. package/dist/pages/kanban.html +1439 -0
  79. package/dist/pages/maintenance.html +230 -0
  80. package/dist/pages/pricing.html +1279 -0
  81. package/dist/pages/profile.html +1382 -0
  82. package/dist/pages/projects.html +1644 -0
  83. package/dist/pages/settings.html +1387 -0
  84. package/dist/tables/data.html +1319 -0
  85. package/dist/tables/simple.html +330 -129
  86. package/dist/widgets/cards.html +330 -129
  87. package/dist/widgets/info-box.html +330 -129
  88. package/dist/widgets/small-box.html +330 -129
  89. package/github-issue-response.md +40 -0
  90. package/netlify.toml +16 -0
  91. package/package.json +31 -24
  92. package/src/scss/_app-header.scss +27 -0
  93. package/src/scss/_app-sidebar.scss +24 -30
  94. package/src/scss/_bootstrap-variables.scss +11 -4
  95. package/src/scss/_docs.scss +816 -0
  96. package/src/scss/_table.scss +4 -4
  97. package/src/scss/adminlte.scss +4 -1
  98. package/src/ts/accessibility.ts +9 -1
  99. package/src/ts/adminlte.ts +1 -1
  100. package/src/ts/fullscreen.ts +8 -4
  101. package/src/ts/push-menu.ts +66 -5
  102. package/.claude/settings.local.json +0 -37
  103. package/CLAUDE.md +0 -79
  104. package/release.md +0 -75
package/dist/index3.html CHANGED
@@ -5,6 +5,32 @@
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
6
  <title>AdminLTE | Dashboard v3</title>
7
7
 
8
+ <!--begin::Theme Init (prevents flash of incorrect theme on load, #6043)-->
9
+ <script>
10
+ (() => {
11
+ 'use strict';
12
+ const STORAGE_KEY = 'lte-theme';
13
+ let stored = null;
14
+ try {
15
+ stored = localStorage.getItem(STORAGE_KEY);
16
+ } catch {
17
+ // localStorage may be unavailable (private mode, sandboxed iframe).
18
+ }
19
+ const prefersDark = globalThis.matchMedia('(prefers-color-scheme: dark)').matches;
20
+ // Mirror the resolution in _scripts.astro: explicit "dark"/"light" win,
21
+ // otherwise ("auto" or unset) fall back to the OS preference.
22
+ let resolved = 'light';
23
+ if (stored === 'dark' || stored === 'light') {
24
+ resolved = stored;
25
+ } else if (prefersDark) {
26
+ resolved = 'dark';
27
+ }
28
+ document.documentElement.setAttribute('data-bs-theme', resolved);
29
+ document.documentElement.style.colorScheme = resolved;
30
+ })();
31
+ </script>
32
+ <!--end::Theme Init-->
33
+
8
34
  <!--begin::Accessibility Meta Tags-->
9
35
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
10
36
  <meta name="color-scheme" content="light dark" />
@@ -85,11 +111,18 @@
85
111
  <i class="bi bi-list"></i>
86
112
  </a>
87
113
  </li>
114
+
88
115
  <li class="nav-item d-none d-md-block">
89
- <a href="#" class="nav-link">Home</a>
116
+ <a href="./index.html" class="nav-link">
117
+ <i class="bi bi-grid-1x2 me-1" aria-hidden="true"></i>
118
+ Live preview
119
+ </a>
90
120
  </li>
91
121
  <li class="nav-item d-none d-md-block">
92
- <a href="#" class="nav-link">Contact</a>
122
+ <a href="./docs/introduction.html" class="nav-link">
123
+ <i class="bi bi-book me-1" aria-hidden="true"></i>
124
+ Documentation
125
+ </a>
93
126
  </li>
94
127
  </ul>
95
128
  <!--end::Start Navbar Links-->
@@ -227,11 +260,70 @@
227
260
  <li class="nav-item">
228
261
  <a class="nav-link" href="#" data-lte-toggle="fullscreen">
229
262
  <i data-lte-icon="maximize" class="bi bi-arrows-fullscreen"></i>
230
- <i data-lte-icon="minimize" class="bi bi-fullscreen-exit" style="display: none"></i>
263
+ <i data-lte-icon="minimize" class="bi bi-fullscreen-exit d-none"></i>
231
264
  </a>
232
265
  </li>
233
266
  <!--end::Fullscreen Toggle-->
234
267
 
268
+ <!--begin::Color Mode Toggle (#6010)-->
269
+ <li class="nav-item dropdown">
270
+ <a
271
+ class="nav-link"
272
+ href="#"
273
+ id="bd-theme"
274
+ aria-label="Toggle color scheme"
275
+ data-bs-toggle="dropdown"
276
+ aria-expanded="false"
277
+ >
278
+ <i class="bi bi-sun-fill" data-lte-theme-icon="light"></i>
279
+ <i class="bi bi-moon-fill d-none" data-lte-theme-icon="dark"></i>
280
+ <i class="bi bi-circle-half d-none" data-lte-theme-icon="auto"></i>
281
+ </a>
282
+ <ul
283
+ class="dropdown-menu dropdown-menu-end"
284
+ aria-labelledby="bd-theme"
285
+ style="--bs-dropdown-min-width: 8rem"
286
+ >
287
+ <li>
288
+ <button
289
+ type="button"
290
+ class="dropdown-item d-flex align-items-center"
291
+ data-bs-theme-value="light"
292
+ aria-pressed="false"
293
+ >
294
+ <i class="bi bi-sun-fill me-2"></i>
295
+ Light
296
+ <i class="bi bi-check-lg ms-auto d-none"></i>
297
+ </button>
298
+ </li>
299
+ <li>
300
+ <button
301
+ type="button"
302
+ class="dropdown-item d-flex align-items-center"
303
+ data-bs-theme-value="dark"
304
+ aria-pressed="false"
305
+ >
306
+ <i class="bi bi-moon-fill me-2"></i>
307
+ Dark
308
+ <i class="bi bi-check-lg ms-auto d-none"></i>
309
+ </button>
310
+ </li>
311
+ <li>
312
+ <button
313
+ type="button"
314
+ class="dropdown-item d-flex align-items-center active"
315
+ data-bs-theme-value="auto"
316
+ aria-pressed="true"
317
+ >
318
+ <i class="bi bi-circle-half me-2"></i>
319
+ Auto
320
+ <i class="bi bi-check-lg ms-auto d-none"></i>
321
+ </button>
322
+ </li>
323
+ </ul>
324
+ </li>
325
+ <!--end::Color Mode Toggle-->
326
+
235
327
  <!--begin::User Menu Dropdown-->
236
328
  <li class="nav-item dropdown user-menu">
237
329
  <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
@@ -310,13 +402,11 @@
310
402
  <!--end::Sidebar Brand-->
311
403
  <!--begin::Sidebar Wrapper-->
312
404
  <div class="sidebar-wrapper">
313
- <nav class="mt-2">
405
+ <nav class="mt-2" aria-label="Main navigation">
314
406
  <!--begin::Sidebar Menu-->
315
407
  <ul
316
408
  class="nav sidebar-menu flex-column"
317
409
  data-lte-toggle="treeview"
318
- role="navigation"
319
- aria-label="Main navigation"
320
410
  data-accordion="false"
321
411
  id="navigation"
322
412
  >
@@ -491,6 +581,36 @@
491
581
  </li>
492
582
  </ul>
493
583
  </li>
584
+ <li class="nav-item">
585
+ <a href="#" class="nav-link">
586
+ <i class="nav-icon bi bi-envelope"></i>
587
+ <p>
588
+ Mailbox
589
+ <i class="nav-arrow bi bi-chevron-right"></i>
590
+ </p>
591
+ </a>
592
+ <ul class="nav nav-treeview">
593
+ <li class="nav-item">
594
+ <a href="./mailbox/inbox.html" class="nav-link">
595
+ <i class="nav-icon bi bi-circle"></i>
596
+ <p>Inbox</p>
597
+ </a>
598
+ </li>
599
+ <li class="nav-item">
600
+ <a href="./mailbox/read.html" class="nav-link">
601
+ <i class="nav-icon bi bi-circle"></i>
602
+ <p>Read Message</p>
603
+ </a>
604
+ </li>
605
+ <li class="nav-item">
606
+ <a href="./mailbox/compose.html" class="nav-link">
607
+ <i class="nav-icon bi bi-circle"></i>
608
+ <p>Compose</p>
609
+ </a>
610
+ </li>
611
+ </ul>
612
+ </li>
613
+
494
614
  <li class="nav-item">
495
615
  <a href="#" class="nav-link">
496
616
  <i class="nav-icon bi bi-pencil-square"></i>
@@ -501,9 +621,27 @@
501
621
  </a>
502
622
  <ul class="nav nav-treeview">
503
623
  <li class="nav-item">
504
- <a href="./forms/general.html" class="nav-link">
624
+ <a href="./forms/elements.html" class="nav-link">
625
+ <i class="nav-icon bi bi-circle"></i>
626
+ <p>Elements</p>
627
+ </a>
628
+ </li>
629
+ <li class="nav-item">
630
+ <a href="./forms/layout.html" class="nav-link">
505
631
  <i class="nav-icon bi bi-circle"></i>
506
- <p>General Elements</p>
632
+ <p>Layout</p>
633
+ </a>
634
+ </li>
635
+ <li class="nav-item">
636
+ <a href="./forms/validation.html" class="nav-link">
637
+ <i class="nav-icon bi bi-circle"></i>
638
+ <p>Validation</p>
639
+ </a>
640
+ </li>
641
+ <li class="nav-item">
642
+ <a href="./forms/wizard.html" class="nav-link">
643
+ <i class="nav-icon bi bi-circle"></i>
644
+ <p>Wizard</p>
507
645
  </a>
508
646
  </li>
509
647
  </ul>
@@ -523,6 +661,114 @@
523
661
  <p>Simple Tables</p>
524
662
  </a>
525
663
  </li>
664
+ <li class="nav-item">
665
+ <a href="./tables/data.html" class="nav-link">
666
+ <i class="nav-icon bi bi-circle"></i>
667
+ <p>Data Tables</p>
668
+ </a>
669
+ </li>
670
+ </ul>
671
+ </li>
672
+
673
+ <li class="nav-header">PAGES</li>
674
+ <li class="nav-item">
675
+ <a href="#" class="nav-link">
676
+ <i class="nav-icon bi bi-file-earmark-text"></i>
677
+ <p>
678
+ Pages
679
+ <i class="nav-arrow bi bi-chevron-right"></i>
680
+ </p>
681
+ </a>
682
+ <ul class="nav nav-treeview">
683
+ <li class="nav-item">
684
+ <a href="./pages/profile.html" class="nav-link">
685
+ <i class="nav-icon bi bi-circle"></i>
686
+ <p>Profile</p>
687
+ </a>
688
+ </li>
689
+ <li class="nav-item">
690
+ <a href="./pages/settings.html" class="nav-link">
691
+ <i class="nav-icon bi bi-circle"></i>
692
+ <p>Settings</p>
693
+ </a>
694
+ </li>
695
+ <li class="nav-item">
696
+ <a href="./pages/invoice.html" class="nav-link">
697
+ <i class="nav-icon bi bi-circle"></i>
698
+ <p>Invoice</p>
699
+ </a>
700
+ </li>
701
+ <li class="nav-item">
702
+ <a href="./pages/calendar.html" class="nav-link">
703
+ <i class="nav-icon bi bi-circle"></i>
704
+ <p>Calendar</p>
705
+ </a>
706
+ </li>
707
+ <li class="nav-item">
708
+ <a href="./pages/kanban.html" class="nav-link">
709
+ <i class="nav-icon bi bi-circle"></i>
710
+ <p>Kanban</p>
711
+ </a>
712
+ </li>
713
+ <li class="nav-item">
714
+ <a href="./pages/chat.html" class="nav-link">
715
+ <i class="nav-icon bi bi-circle"></i>
716
+ <p>Chat</p>
717
+ </a>
718
+ </li>
719
+ <li class="nav-item">
720
+ <a href="./pages/file-manager.html" class="nav-link">
721
+ <i class="nav-icon bi bi-circle"></i>
722
+ <p>File Manager</p>
723
+ </a>
724
+ </li>
725
+ <li class="nav-item">
726
+ <a href="./pages/projects.html" class="nav-link">
727
+ <i class="nav-icon bi bi-circle"></i>
728
+ <p>Projects</p>
729
+ </a>
730
+ </li>
731
+ <li class="nav-item">
732
+ <a href="./pages/pricing.html" class="nav-link">
733
+ <i class="nav-icon bi bi-circle"></i>
734
+ <p>Pricing</p>
735
+ </a>
736
+ </li>
737
+ <li class="nav-item">
738
+ <a href="./pages/faq.html" class="nav-link">
739
+ <i class="nav-icon bi bi-circle"></i>
740
+ <p>FAQ</p>
741
+ </a>
742
+ </li>
743
+ <li class="nav-item">
744
+ <a href="#" class="nav-link">
745
+ <i class="nav-icon bi bi-circle"></i>
746
+ <p>
747
+ Error
748
+ <i class="nav-arrow bi bi-chevron-right"></i>
749
+ </p>
750
+ </a>
751
+ <ul class="nav nav-treeview">
752
+ <li class="nav-item">
753
+ <a href="./pages/404.html" class="nav-link">
754
+ <i class="nav-icon bi bi-circle"></i>
755
+ <p>404</p>
756
+ </a>
757
+ </li>
758
+ <li class="nav-item">
759
+ <a href="./pages/500.html" class="nav-link">
760
+ <i class="nav-icon bi bi-circle"></i>
761
+ <p>500</p>
762
+ </a>
763
+ </li>
764
+ <li class="nav-item">
765
+ <a href="./pages/maintenance.html" class="nav-link">
766
+ <i class="nav-icon bi bi-circle"></i>
767
+ <p>Maintenance</p>
768
+ </a>
769
+ </li>
770
+ </ul>
771
+ </li>
526
772
  </ul>
527
773
  </li>
528
774
 
@@ -591,126 +837,6 @@
591
837
  </ul>
592
838
  </li>
593
839
 
594
- <li class="nav-header">DOCUMENTATIONS</li>
595
- <li class="nav-item">
596
- <a href="./docs/introduction.html" class="nav-link">
597
- <i class="nav-icon bi bi-download"></i>
598
- <p>Installation</p>
599
- </a>
600
- </li>
601
- <li class="nav-item">
602
- <a href="./docs/layout.html" class="nav-link">
603
- <i class="nav-icon bi bi-grip-horizontal"></i>
604
- <p>Layout</p>
605
- </a>
606
- </li>
607
- <li class="nav-item">
608
- <a href="./docs/color-mode.html" class="nav-link">
609
- <i class="nav-icon bi bi-star-half"></i>
610
- <p>Color Mode</p>
611
- </a>
612
- </li>
613
- <li class="nav-item">
614
- <a href="#" class="nav-link">
615
- <i class="nav-icon bi bi-ui-checks-grid"></i>
616
- <p>
617
- Components
618
- <i class="nav-arrow bi bi-chevron-right"></i>
619
- </p>
620
- </a>
621
- <ul class="nav nav-treeview">
622
- <li class="nav-item">
623
- <a href="./docs/components/main-header.html" class="nav-link">
624
- <i class="nav-icon bi bi-circle"></i>
625
- <p>Main Header</p>
626
- </a>
627
- </li>
628
- <li class="nav-item">
629
- <a href="./docs/components/main-sidebar.html" class="nav-link">
630
- <i class="nav-icon bi bi-circle"></i>
631
- <p>Main Sidebar</p>
632
- </a>
633
- </li>
634
- </ul>
635
- </li>
636
- <li class="nav-item">
637
- <a href="#" class="nav-link">
638
- <i class="nav-icon bi bi-filetype-js"></i>
639
- <p>
640
- Javascript
641
- <i class="nav-arrow bi bi-chevron-right"></i>
642
- </p>
643
- </a>
644
- <ul class="nav nav-treeview">
645
- <li class="nav-item">
646
- <a href="./docs/javascript/layout.html" class="nav-link">
647
- <i class="nav-icon bi bi-circle"></i>
648
- <p>Layout</p>
649
- </a>
650
- </li>
651
- <li class="nav-item">
652
- <a href="./docs/javascript/pushmenu.html" class="nav-link">
653
- <i class="nav-icon bi bi-circle"></i>
654
- <p>PushMenu</p>
655
- </a>
656
- </li>
657
- <li class="nav-item">
658
- <a href="./docs/javascript/treeview.html" class="nav-link">
659
- <i class="nav-icon bi bi-circle"></i>
660
- <p>Treeview</p>
661
- </a>
662
- </li>
663
- <li class="nav-item">
664
- <a href="./docs/javascript/card-widget.html" class="nav-link">
665
- <i class="nav-icon bi bi-circle"></i>
666
- <p>Card Widget</p>
667
- </a>
668
- </li>
669
- <li class="nav-item">
670
- <a href="./docs/javascript/direct-chat.html" class="nav-link">
671
- <i class="nav-icon bi bi-circle"></i>
672
- <p>Direct Chat</p>
673
- </a>
674
- </li>
675
- <li class="nav-item">
676
- <a href="./docs/javascript/fullscreen.html" class="nav-link">
677
- <i class="nav-icon bi bi-circle"></i>
678
- <p>Fullscreen</p>
679
- </a>
680
- </li>
681
- <li class="nav-item">
682
- <a href="./docs/javascript/accessibility.html" class="nav-link">
683
- <i class="nav-icon bi bi-circle"></i>
684
- <p>Accessibility</p>
685
- </a>
686
- </li>
687
- </ul>
688
- </li>
689
- <li class="nav-item">
690
- <a href="./docs/browser-support.html" class="nav-link">
691
- <i class="nav-icon bi bi-browser-edge"></i>
692
- <p>Browser Support</p>
693
- </a>
694
- </li>
695
- <li class="nav-item">
696
- <a href="./docs/how-to-contribute.html" class="nav-link">
697
- <i class="nav-icon bi bi-hand-thumbs-up-fill"></i>
698
- <p>How To Contribute</p>
699
- </a>
700
- </li>
701
- <li class="nav-item">
702
- <a href="./docs/faq.html" class="nav-link">
703
- <i class="nav-icon bi bi-question-circle-fill"></i>
704
- <p>FAQ</p>
705
- </a>
706
- </li>
707
- <li class="nav-item">
708
- <a href="./docs/license.html" class="nav-link">
709
- <i class="nav-icon bi bi-patch-check-fill"></i>
710
- <p>License</p>
711
- </a>
712
- </li>
713
-
714
840
  <li class="nav-header">MULTI LEVEL EXAMPLE</li>
715
841
  <li class="nav-item">
716
842
  <a href="#" class="nav-link">
@@ -798,6 +924,17 @@
798
924
  </li>
799
925
  </ul>
800
926
  <!--end::Sidebar Menu-->
927
+
928
+ <!-- Docs CTA (bottom of sidebar) -->
929
+ <div class="p-3 mt-3 border-top border-secondary border-opacity-25">
930
+ <a
931
+ href="./docs/introduction.html"
932
+ class="btn btn-sm btn-outline-light w-100 d-flex align-items-center justify-content-center gap-2"
933
+ >
934
+ <i class="bi bi-book" aria-hidden="true"></i>
935
+ View documentation
936
+ </a>
937
+ </div>
801
938
  </nav>
802
939
  </div>
803
940
  <!--end::Sidebar Wrapper-->
@@ -1204,7 +1341,71 @@
1204
1341
  }
1205
1342
  });
1206
1343
  </script>
1207
- <!--end::OverlayScrollbars Configure-->
1344
+ <!--end::OverlayScrollbars Configure--><!--begin::Color Mode Toggle (#6010)-->
1345
+ <script>
1346
+ (() => {
1347
+ 'use strict';
1348
+
1349
+ const STORAGE_KEY = 'lte-theme';
1350
+
1351
+ const getStoredTheme = () => localStorage.getItem(STORAGE_KEY);
1352
+ const setStoredTheme = (theme) => localStorage.setItem(STORAGE_KEY, theme);
1353
+
1354
+ const prefersDark = () => globalThis.matchMedia('(prefers-color-scheme: dark)').matches;
1355
+
1356
+ const getPreferredTheme = () => {
1357
+ const stored = getStoredTheme();
1358
+ if (stored) return stored;
1359
+ return prefersDark() ? 'dark' : 'light';
1360
+ };
1361
+
1362
+ const setTheme = (theme) => {
1363
+ const resolved = theme === 'auto' ? (prefersDark() ? 'dark' : 'light') : theme;
1364
+ document.documentElement.setAttribute('data-bs-theme', resolved);
1365
+ };
1366
+
1367
+ setTheme(getPreferredTheme());
1368
+
1369
+ const showActiveTheme = (theme) => {
1370
+ // Highlight the active dropdown option
1371
+ document.querySelectorAll('[data-bs-theme-value]').forEach((el) => {
1372
+ el.classList.remove('active');
1373
+ el.setAttribute('aria-pressed', 'false');
1374
+ const check = el.querySelector('.bi-check-lg');
1375
+ if (check) check.classList.add('d-none');
1376
+ });
1377
+ const active = document.querySelector(`[data-bs-theme-value="${theme}"]`);
1378
+ if (active) {
1379
+ active.classList.add('active');
1380
+ active.setAttribute('aria-pressed', 'true');
1381
+ const check = active.querySelector('.bi-check-lg');
1382
+ if (check) check.classList.remove('d-none');
1383
+ }
1384
+ // Sync the topbar trigger icon
1385
+ document.querySelectorAll('[data-lte-theme-icon]').forEach((icon) => {
1386
+ icon.classList.toggle('d-none', icon.dataset.lteThemeIcon !== theme);
1387
+ });
1388
+ };
1389
+
1390
+ globalThis.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
1391
+ const stored = getStoredTheme();
1392
+ if (!stored || stored === 'auto') setTheme(getPreferredTheme());
1393
+ });
1394
+
1395
+ document.addEventListener('DOMContentLoaded', () => {
1396
+ showActiveTheme(getPreferredTheme());
1397
+ document.querySelectorAll('[data-bs-theme-value]').forEach((toggle) => {
1398
+ toggle.addEventListener('click', () => {
1399
+ const theme = toggle.getAttribute('data-bs-theme-value');
1400
+ setStoredTheme(theme);
1401
+ setTheme(theme);
1402
+ showActiveTheme(theme);
1403
+ });
1404
+ });
1405
+ });
1406
+ })();
1407
+ </script>
1408
+ <!--end::Color Mode Toggle-->
1208
1409
 
1209
1410
  <!-- OPTIONAL SCRIPTS -->
1210
1411
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * AdminLTE v4.0.0-rc7 (https://adminlte.io)
2
+ * AdminLTE v4.0.1 (https://adminlte.io)
3
3
  * Copyright 2014-2026 Colorlib <https://colorlib.com>
4
4
  * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE)
5
5
  */
@@ -443,10 +443,10 @@
443
443
  const iconMinimize = document.querySelector(SELECTOR_MINIMIZE_ICON);
444
444
  void document.documentElement.requestFullscreen();
445
445
  if (iconMaximize) {
446
- iconMaximize.style.display = 'none';
446
+ iconMaximize.classList.add('d-none');
447
447
  }
448
448
  if (iconMinimize) {
449
- iconMinimize.style.display = 'block';
449
+ iconMinimize.classList.remove('d-none');
450
450
  }
451
451
  this._element.dispatchEvent(event);
452
452
  }
@@ -456,10 +456,10 @@
456
456
  const iconMinimize = document.querySelector(SELECTOR_MINIMIZE_ICON);
457
457
  void document.exitFullscreen();
458
458
  if (iconMaximize) {
459
- iconMaximize.style.display = 'block';
459
+ iconMaximize.classList.remove('d-none');
460
460
  }
461
461
  if (iconMinimize) {
462
- iconMinimize.style.display = 'none';
462
+ iconMinimize.classList.add('d-none');
463
463
  }
464
464
  this._element.dispatchEvent(event);
465
465
  }
@@ -1041,6 +1041,9 @@
1041
1041
  }
1042
1042
  }
1043
1043
  document.querySelectorAll('.navbar-nav, .nav').forEach((nav, index) => {
1044
+ if (nav.tagName === 'UL' || nav.tagName === 'OL') {
1045
+ return;
1046
+ }
1044
1047
  if (!nav.hasAttribute('role')) {
1045
1048
  nav.setAttribute('role', 'navigation');
1046
1049
  }