admin-lte 4.0.0-rc7 → 4.0.0
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/CHANGELOG.md +48 -0
- package/README.md +43 -17
- package/dist/UI/general.html +303 -126
- package/dist/UI/icons.html +303 -126
- package/dist/UI/timeline.html +303 -126
- package/dist/css/adminlte.css +2798 -1167
- package/dist/css/adminlte.css.map +1 -1
- package/dist/css/adminlte.min.css +2 -2
- package/dist/css/adminlte.min.css.map +1 -1
- package/dist/css/adminlte.rtl.css +2798 -1167
- package/dist/css/adminlte.rtl.css.map +1 -1
- package/dist/css/adminlte.rtl.min.css +2 -2
- package/dist/css/adminlte.rtl.min.css.map +1 -1
- package/dist/docs/browser-support.html +261 -397
- package/dist/docs/color-mode.html +242 -382
- package/dist/docs/components/main-header.html +238 -374
- package/dist/docs/components/main-sidebar.html +253 -389
- package/dist/docs/customization.html +1056 -0
- package/dist/docs/deployment.html +1121 -0
- package/dist/docs/faq.html +857 -409
- package/dist/docs/getting-started.html +967 -0
- package/dist/docs/how-to-contribute.html +335 -462
- package/dist/docs/index.html +16 -0
- package/dist/docs/integrations.html +1207 -0
- package/dist/docs/introduction.html +453 -446
- package/dist/docs/javascript/accessibility.html +361 -491
- package/dist/docs/javascript/card-widget.html +446 -450
- package/dist/docs/javascript/direct-chat.html +324 -421
- package/dist/docs/javascript/fullscreen.html +348 -416
- package/dist/docs/javascript/layout.html +345 -436
- package/dist/docs/javascript/plugins-overview.html +1120 -0
- package/dist/docs/javascript/pushmenu.html +485 -492
- package/dist/docs/javascript/treeview.html +466 -400
- package/dist/docs/layout-blueprint.html +1063 -0
- package/dist/docs/layout.html +287 -415
- package/dist/docs/license.html +252 -387
- package/dist/docs/migration.html +1125 -0
- package/dist/docs/recipes.html +1161 -0
- package/dist/docs/rtl.html +933 -0
- package/dist/examples/lockscreen.html +65 -1
- package/dist/examples/login-v2.html +65 -1
- package/dist/examples/login.html +65 -1
- package/dist/examples/register-v2.html +65 -1
- package/dist/examples/register.html +65 -1
- package/dist/forms/{general.html → elements.html} +489 -463
- package/dist/forms/layout.html +1243 -0
- package/dist/forms/validation.html +1251 -0
- package/dist/forms/wizard.html +1386 -0
- package/dist/generate/theme.html +134 -4
- package/dist/index.html +303 -126
- package/dist/index2.html +306 -126
- package/dist/index3.html +303 -126
- package/dist/js/adminlte.js +5 -5
- package/dist/js/adminlte.js.map +1 -1
- package/dist/js/adminlte.min.js +2 -2
- package/dist/js/adminlte.min.js.map +1 -1
- package/dist/layout/collapsed-sidebar-without-hover.html +303 -126
- package/dist/layout/collapsed-sidebar.html +303 -126
- package/dist/layout/fixed-complete.html +303 -126
- package/dist/layout/fixed-footer.html +303 -126
- package/dist/layout/fixed-header.html +303 -126
- package/dist/layout/fixed-sidebar.html +303 -126
- package/dist/layout/layout-custom-area.html +303 -126
- package/dist/layout/layout-rtl.html +303 -126
- package/dist/layout/logo-switch.html +134 -4
- package/dist/layout/sidebar-mini.html +303 -126
- package/dist/layout/unfixed-sidebar.html +303 -126
- package/dist/mailbox/compose.html +1127 -0
- package/dist/mailbox/inbox.html +1477 -0
- package/dist/mailbox/read.html +1178 -0
- package/dist/pages/404.html +213 -0
- package/dist/pages/500.html +201 -0
- package/dist/pages/calendar.html +1242 -0
- package/dist/pages/chat.html +1403 -0
- package/dist/pages/faq.html +1359 -0
- package/dist/pages/file-manager.html +1811 -0
- package/dist/pages/invoice.html +1175 -0
- package/dist/pages/kanban.html +1415 -0
- package/dist/pages/maintenance.html +204 -0
- package/dist/pages/pricing.html +1255 -0
- package/dist/pages/profile.html +1358 -0
- package/dist/pages/projects.html +1620 -0
- package/dist/pages/settings.html +1363 -0
- package/dist/tables/data.html +1295 -0
- package/dist/tables/simple.html +303 -126
- package/dist/widgets/cards.html +303 -126
- package/dist/widgets/info-box.html +303 -126
- package/dist/widgets/small-box.html +303 -126
- package/netlify.toml +16 -0
- package/package.json +29 -23
- package/src/scss/_app-header.scss +27 -0
- package/src/scss/_app-sidebar.scss +24 -30
- package/src/scss/_bootstrap-variables.scss +11 -4
- package/src/scss/_docs.scss +816 -0
- package/src/scss/_table.scss +4 -4
- package/src/scss/adminlte.scss +4 -1
- package/src/ts/adminlte.ts +1 -1
- package/src/ts/fullscreen.ts +8 -4
- package/src/ts/push-menu.ts +66 -5
- package/.claude/settings.local.json +0 -37
- package/CLAUDE.md +0 -79
- package/release.md +0 -75
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,54 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [4.0.0] - 2026-05-19
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **18 new demo pages** dramatically expanding the page catalog:
|
|
15
|
+
- **Apps:** Calendar (FullCalendar 6, drag-and-drop scheduling), Kanban (SortableJS, lane-to-lane drag), Chat (full-page conversation app), File Manager (grid + list views, folder tree), Projects (list with status, progress, team avatars)
|
|
16
|
+
- **Mailbox:** Inbox, Read Message, Compose — three-pane workflow with folders + labels
|
|
17
|
+
- **Forms:** Wizard (4-step with per-step validation + review summary)
|
|
18
|
+
- **Tables:** Data Tables — jQuery-free implementation using Tabulator 6
|
|
19
|
+
- **Pages:** Profile (tabbed activity/timeline/settings), Settings (account / notifications / security / billing / danger zone), Invoice (print-ready with totals math), Pricing (3-tier + comparison table + billing toggle), FAQ (data-driven accordions)
|
|
20
|
+
- **Error pages:** 404, 500, Maintenance
|
|
21
|
+
- **Recommended Integrations docs page** (`docs/integrations.html`) — copy-paste install snippets for Flatpickr, Tom Select, noUiSlider, Pickr, IMask, Dropzone, FilePond, Quill, EasyMDE, Toast UI Editor, ApexCharts, Chart.js, Tabulator, FullCalendar, SortableJS, GLightbox, and a comparison of icon libraries. AdminLTE doesn't bundle these — the page shows how to drop them in.
|
|
22
|
+
- **Visible color-mode toggle in the default topbar** (#6010) — Light / Dark / Auto dropdown with localStorage persistence and `prefers-color-scheme` integration. Wiring JS shipped globally in `_scripts.astro` so the toggle works on every demo page automatically.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- **Forms section restructured:** Split the 623-line `forms/general.html` into three focused pages — `forms/elements.html` (inputs, selects, checks/radios/switches, ranges, floating labels), `forms/layout.html` (horizontal, inline, sizing, width), and `forms/validation.html` (Bootstrap native validation + tooltip variant).
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- **#6028:** Color-mode "Auto" icon now renders. The dropdown used `bi-circle-fill-half-stroke` (a FontAwesome class name); replaced with the correct Bootstrap Icons class `bi-circle-half`.
|
|
31
|
+
- **#6026:** `.table-head-fixed` now respects dark mode. Hardcoded `background-color: $white` swapped for `var(--bs-body-bg)` so the sticky header tracks the active colour scheme.
|
|
32
|
+
- **#6021:** Fullscreen button no longer shifts after click. The plugin used to set `iconMaximize.style.display = 'block'` directly, overriding the icon library's natural display value (visible on FontAwesome). Now toggles Bootstrap's `.d-none` utility class. Markup updated accordingly.
|
|
33
|
+
- **#6020:** Sidebar (including brand) now stays put when using `.fixed-header`. New companion rule pins the sidebar sticky on `sidebar-expand-*` breakpoints, giving the menu its own scrollbar instead of scrolling with the page.
|
|
34
|
+
- **#6019:** Pie chart on `index2.html` no longer flickers on browser zoom. Pinned an explicit `height: 350` to break the ApexCharts ResizeObserver feedback loop most visible on Edge.
|
|
35
|
+
|
|
36
|
+
### Updated
|
|
37
|
+
|
|
38
|
+
- **Bootstrap variable sync with 5.3.4:**
|
|
39
|
+
- Added missing null variables: `$btn-close-filter`, `$carousel-control-icon-filter`
|
|
40
|
+
- Marked deprecated-in-5.3.4 variables with inline comments: `$btn-close-white-filter`, `$carousel-dark-indicator-active-bg`, `$carousel-dark-caption-color`, `$carousel-dark-control-icon-filter`
|
|
41
|
+
- Documented the intentional override of `$modal-content-color` (null vs Bootstrap's `var(--bs-body-color)`)
|
|
42
|
+
- **All dependencies bumped to latest, including majors:**
|
|
43
|
+
- eslint: 9.39.4 → 10.4.0
|
|
44
|
+
- typescript: 5.9.3 → 6.0.3 (`baseUrl` removed, `moduleResolution: "bundler"` set to clear deprecation warnings)
|
|
45
|
+
- stylelint: 16.26.1 → 17.11.1
|
|
46
|
+
- eslint-plugin-unicorn: 62 → 64
|
|
47
|
+
- astro: 6.0.0 → 6.3.3
|
|
48
|
+
- autoprefixer: 10.4.27 → 10.5.0
|
|
49
|
+
- postcss: 8.5.8 → 8.5.14
|
|
50
|
+
- rollup: 4.59.0 → 4.60.4
|
|
51
|
+
- sass: 1.97.3 → 1.99.0
|
|
52
|
+
- terser: 5.46.0 → 5.47.1
|
|
53
|
+
- bundlewatch: 0.4.1 → 0.4.2, fs-extra: 11.3.4 → 11.3.5, prettier: 3.8.1 → 3.8.3
|
|
54
|
+
- **ESLint config flattened:** Removed the legacy `.eslintrc.json` (ignored since ESLint 9), along with three deps that only it referenced: `eslint-plugin-import`, `eslint-config-xo`, `eslint-config-xo-typescript`. Added explicit deps for `@eslint/js`, `globals`, and `typescript-eslint` (now required to be declared since ESLint 10 stopped resolving them transitively).
|
|
55
|
+
- **`stylelint-config-twbs-bootstrap` peer pinned via npm overrides** so it accepts stylelint 17 ahead of an upstream release. This removes the need for `--legacy-peer-deps` on `npm install`.
|
|
56
|
+
- **Security:** `yaml` pinned to `^2.9.0` via overrides to clear the dev-only stack-overflow advisory chain through `@astrojs/check`. `npm audit` now reports **0 vulnerabilities**.
|
|
57
|
+
|
|
10
58
|
## [4.0.0-rc7] - 2026-03-10
|
|
11
59
|
|
|
12
60
|
### Added
|
package/README.md
CHANGED
|
@@ -9,31 +9,57 @@
|
|
|
9
9
|
**AdminLTE** is a fully responsive administration template. Based on **[Bootstrap 5](https://getbootstrap.com/)** framework and also the JavaScript plugins.
|
|
10
10
|
Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops.
|
|
11
11
|
|
|
12
|
-
## What's New in v4.0.0
|
|
12
|
+
## What's New in v4.0.0
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
The first stable release of the v4 line — a ground-up rewrite on Bootstrap 5.3 with no jQuery. Highlights:
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
- **Sidebar Without Hover** - New `sidebar-without-hover` class to keep collapsed sidebar from expanding on hover
|
|
18
|
-
- **Complete JS Documentation** - All 7 JavaScript components now fully documented
|
|
19
|
-
- **Astro 6.0.0** - Upgraded to latest Astro with Vite 7 and Shiki 4
|
|
20
|
-
- **Bug Fixes** - Fixed footer with layout-fixed, mobile scroll chaining, print layout, modal escape key, pagination borders
|
|
16
|
+
**18 new demo pages**
|
|
21
17
|
|
|
22
|
-
|
|
18
|
+
- Apps: Calendar (FullCalendar), Kanban (SortableJS), Chat, File Manager, Projects, Mailbox (Inbox / Read / Compose)
|
|
19
|
+
- Forms: Wizard (4-step with validation)
|
|
20
|
+
- Tables: Data Tables (Tabulator — jQuery-free)
|
|
21
|
+
- Pages: Profile, Settings, Invoice, Pricing, FAQ
|
|
22
|
+
- Errors: 404, 500, Maintenance
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
- Sidebar no longer causes page scroll chaining on mobile (#5864)
|
|
26
|
-
- Print layout shows both sidebar and content (#5996)
|
|
27
|
-
- Sidebar persistence is now opt-in via `data-enable-persistence="true"` (**breaking change**)
|
|
28
|
-
- All dependencies updated to latest versions
|
|
24
|
+
**Documentation overhaul**
|
|
29
25
|
|
|
30
|
-
|
|
26
|
+
- New pages: Getting Started, Customization & Theming, RTL Support, Migration from v3, Layout Blueprint, Recipes, Deployment & Performance, Recommended Integrations, JavaScript Plugins Overview
|
|
27
|
+
- Rewritten Introduction with four labelled install paths (CDN / npm / source / Composer)
|
|
28
|
+
- FAQ rebuilt as a custom page with hero, live search, section chips, and an accordion of 19 questions across six topics
|
|
29
|
+
- Split sidebar navigation: dashboard demo and docs each have their own nav, no more docs entries cluttering the live preview
|
|
30
|
+
- Reading-friendly typography across all docs pages, with constrained line length, prose-tuned heading rhythm, styled reference tables, info callouts, and pill inline code
|
|
31
|
+
|
|
32
|
+
**Six issue fixes**
|
|
33
|
+
|
|
34
|
+
- `bi-circle-half` for the Auto color-mode icon (#6028)
|
|
35
|
+
- `table-head-fixed` respects dark mode (#6026)
|
|
36
|
+
- Fullscreen icon toggles `.d-none` instead of inline `display` so it works with any icon library (#6021)
|
|
37
|
+
- Sidebar (including brand) stays pinned when using `fixed-header` (#6020)
|
|
38
|
+
- Pie chart on `index2.html` no longer flickers on browser zoom (#6019)
|
|
39
|
+
- Color-mode toggle now visible by default in the topbar with localStorage persistence (#6010)
|
|
40
|
+
|
|
41
|
+
**Major dependency upgrades**
|
|
42
|
+
|
|
43
|
+
- ESLint 9 → 10, TypeScript 5.9 → 6, Stylelint 16 → 17
|
|
44
|
+
- Astro 6.0 → 6.3, autoprefixer / postcss / rollup / sass / terser refreshed
|
|
45
|
+
- Bootstrap 5.3.8, Node 22 LTS in CI
|
|
46
|
+
- Dropped dead `eslint-plugin-import`, `eslint-config-xo*`, and the legacy `.eslintrc.json`
|
|
47
|
+
- npm `overrides` for `yaml` + `stylelint-config-twbs-bootstrap` so `npm install` runs without `--legacy-peer-deps` and reports **0 vulnerabilities**
|
|
48
|
+
|
|
49
|
+
**Breaking changes from v3**
|
|
50
|
+
|
|
51
|
+
- Class renames: `.wrapper` → `.app-wrapper`, `.main-header` → `.app-header`, `.main-sidebar` → `.app-sidebar`, `.content-wrapper` → `.app-main`
|
|
52
|
+
- Data attributes: `data-toggle` → `data-bs-toggle`, `data-widget="pushmenu"` → `data-lte-toggle="sidebar"`, `data-widget="treeview"` → `data-lte-toggle="treeview"`
|
|
53
|
+
- Dark mode: `.dark-mode` body class → `data-bs-theme="dark"` attribute (Bootstrap 5.3 native)
|
|
54
|
+
- jQuery no longer required; plugins are vanilla TypeScript
|
|
55
|
+
|
|
56
|
+
See the dedicated [Migration from v3](https://adminlte.io/themes/v4/docs/migration.html) guide and the [CHANGELOG.md](CHANGELOG.md) for the full list.
|
|
57
|
+
|
|
58
|
+
**Install:**
|
|
31
59
|
```bash
|
|
32
|
-
npm install admin-lte@4.0.0
|
|
60
|
+
npm install admin-lte@4.0.0
|
|
33
61
|
```
|
|
34
62
|
|
|
35
|
-
See the [CHANGELOG.md](CHANGELOG.md) for complete details.
|
|
36
|
-
|
|
37
63
|
## Looking for Premium Templates?
|
|
38
64
|
|
|
39
65
|
AdminLTE.io just opened a new premium templates page. Hand picked to ensure the best quality and the most affordable
|
package/dist/UI/general.html
CHANGED
|
@@ -78,11 +78,18 @@
|
|
|
78
78
|
<i class="bi bi-list"></i>
|
|
79
79
|
</a>
|
|
80
80
|
</li>
|
|
81
|
+
|
|
81
82
|
<li class="nav-item d-none d-md-block">
|
|
82
|
-
<a href="
|
|
83
|
+
<a href="../index.html" class="nav-link">
|
|
84
|
+
<i class="bi bi-grid-1x2 me-1" aria-hidden="true"></i>
|
|
85
|
+
Live preview
|
|
86
|
+
</a>
|
|
83
87
|
</li>
|
|
84
88
|
<li class="nav-item d-none d-md-block">
|
|
85
|
-
<a href="
|
|
89
|
+
<a href="../docs/introduction.html" class="nav-link">
|
|
90
|
+
<i class="bi bi-book me-1" aria-hidden="true"></i>
|
|
91
|
+
Documentation
|
|
92
|
+
</a>
|
|
86
93
|
</li>
|
|
87
94
|
</ul>
|
|
88
95
|
<!--end::Start Navbar Links-->
|
|
@@ -220,11 +227,70 @@
|
|
|
220
227
|
<li class="nav-item">
|
|
221
228
|
<a class="nav-link" href="#" data-lte-toggle="fullscreen">
|
|
222
229
|
<i data-lte-icon="maximize" class="bi bi-arrows-fullscreen"></i>
|
|
223
|
-
<i data-lte-icon="minimize" class="bi bi-fullscreen-exit
|
|
230
|
+
<i data-lte-icon="minimize" class="bi bi-fullscreen-exit d-none"></i>
|
|
224
231
|
</a>
|
|
225
232
|
</li>
|
|
226
233
|
<!--end::Fullscreen Toggle-->
|
|
227
234
|
|
|
235
|
+
<!--begin::Color Mode Toggle (#6010)-->
|
|
236
|
+
<li class="nav-item dropdown">
|
|
237
|
+
<a
|
|
238
|
+
class="nav-link"
|
|
239
|
+
href="#"
|
|
240
|
+
id="bd-theme"
|
|
241
|
+
aria-label="Toggle color scheme"
|
|
242
|
+
data-bs-toggle="dropdown"
|
|
243
|
+
aria-expanded="false"
|
|
244
|
+
>
|
|
245
|
+
<i class="bi bi-sun-fill" data-lte-theme-icon="light"></i>
|
|
246
|
+
<i class="bi bi-moon-fill d-none" data-lte-theme-icon="dark"></i>
|
|
247
|
+
<i class="bi bi-circle-half d-none" data-lte-theme-icon="auto"></i>
|
|
248
|
+
</a>
|
|
249
|
+
<ul
|
|
250
|
+
class="dropdown-menu dropdown-menu-end"
|
|
251
|
+
aria-labelledby="bd-theme"
|
|
252
|
+
style="--bs-dropdown-min-width: 8rem"
|
|
253
|
+
>
|
|
254
|
+
<li>
|
|
255
|
+
<button
|
|
256
|
+
type="button"
|
|
257
|
+
class="dropdown-item d-flex align-items-center"
|
|
258
|
+
data-bs-theme-value="light"
|
|
259
|
+
aria-pressed="false"
|
|
260
|
+
>
|
|
261
|
+
<i class="bi bi-sun-fill me-2"></i>
|
|
262
|
+
Light
|
|
263
|
+
<i class="bi bi-check-lg ms-auto d-none"></i>
|
|
264
|
+
</button>
|
|
265
|
+
</li>
|
|
266
|
+
<li>
|
|
267
|
+
<button
|
|
268
|
+
type="button"
|
|
269
|
+
class="dropdown-item d-flex align-items-center"
|
|
270
|
+
data-bs-theme-value="dark"
|
|
271
|
+
aria-pressed="false"
|
|
272
|
+
>
|
|
273
|
+
<i class="bi bi-moon-fill me-2"></i>
|
|
274
|
+
Dark
|
|
275
|
+
<i class="bi bi-check-lg ms-auto d-none"></i>
|
|
276
|
+
</button>
|
|
277
|
+
</li>
|
|
278
|
+
<li>
|
|
279
|
+
<button
|
|
280
|
+
type="button"
|
|
281
|
+
class="dropdown-item d-flex align-items-center active"
|
|
282
|
+
data-bs-theme-value="auto"
|
|
283
|
+
aria-pressed="true"
|
|
284
|
+
>
|
|
285
|
+
<i class="bi bi-circle-half me-2"></i>
|
|
286
|
+
Auto
|
|
287
|
+
<i class="bi bi-check-lg ms-auto d-none"></i>
|
|
288
|
+
</button>
|
|
289
|
+
</li>
|
|
290
|
+
</ul>
|
|
291
|
+
</li>
|
|
292
|
+
<!--end::Color Mode Toggle-->
|
|
293
|
+
|
|
228
294
|
<!--begin::User Menu Dropdown-->
|
|
229
295
|
<li class="nav-item dropdown user-menu">
|
|
230
296
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
|
@@ -484,6 +550,36 @@
|
|
|
484
550
|
</li>
|
|
485
551
|
</ul>
|
|
486
552
|
</li>
|
|
553
|
+
<li class="nav-item">
|
|
554
|
+
<a href="#" class="nav-link">
|
|
555
|
+
<i class="nav-icon bi bi-envelope"></i>
|
|
556
|
+
<p>
|
|
557
|
+
Mailbox
|
|
558
|
+
<i class="nav-arrow bi bi-chevron-right"></i>
|
|
559
|
+
</p>
|
|
560
|
+
</a>
|
|
561
|
+
<ul class="nav nav-treeview">
|
|
562
|
+
<li class="nav-item">
|
|
563
|
+
<a href="../mailbox/inbox.html" class="nav-link">
|
|
564
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
565
|
+
<p>Inbox</p>
|
|
566
|
+
</a>
|
|
567
|
+
</li>
|
|
568
|
+
<li class="nav-item">
|
|
569
|
+
<a href="../mailbox/read.html" class="nav-link">
|
|
570
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
571
|
+
<p>Read Message</p>
|
|
572
|
+
</a>
|
|
573
|
+
</li>
|
|
574
|
+
<li class="nav-item">
|
|
575
|
+
<a href="../mailbox/compose.html" class="nav-link">
|
|
576
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
577
|
+
<p>Compose</p>
|
|
578
|
+
</a>
|
|
579
|
+
</li>
|
|
580
|
+
</ul>
|
|
581
|
+
</li>
|
|
582
|
+
|
|
487
583
|
<li class="nav-item">
|
|
488
584
|
<a href="#" class="nav-link">
|
|
489
585
|
<i class="nav-icon bi bi-pencil-square"></i>
|
|
@@ -494,9 +590,27 @@
|
|
|
494
590
|
</a>
|
|
495
591
|
<ul class="nav nav-treeview">
|
|
496
592
|
<li class="nav-item">
|
|
497
|
-
<a href="../forms/
|
|
593
|
+
<a href="../forms/elements.html" class="nav-link">
|
|
594
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
595
|
+
<p>Elements</p>
|
|
596
|
+
</a>
|
|
597
|
+
</li>
|
|
598
|
+
<li class="nav-item">
|
|
599
|
+
<a href="../forms/layout.html" class="nav-link">
|
|
600
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
601
|
+
<p>Layout</p>
|
|
602
|
+
</a>
|
|
603
|
+
</li>
|
|
604
|
+
<li class="nav-item">
|
|
605
|
+
<a href="../forms/validation.html" class="nav-link">
|
|
606
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
607
|
+
<p>Validation</p>
|
|
608
|
+
</a>
|
|
609
|
+
</li>
|
|
610
|
+
<li class="nav-item">
|
|
611
|
+
<a href="../forms/wizard.html" class="nav-link">
|
|
498
612
|
<i class="nav-icon bi bi-circle"></i>
|
|
499
|
-
<p>
|
|
613
|
+
<p>Wizard</p>
|
|
500
614
|
</a>
|
|
501
615
|
</li>
|
|
502
616
|
</ul>
|
|
@@ -516,6 +630,114 @@
|
|
|
516
630
|
<p>Simple Tables</p>
|
|
517
631
|
</a>
|
|
518
632
|
</li>
|
|
633
|
+
<li class="nav-item">
|
|
634
|
+
<a href="../tables/data.html" class="nav-link">
|
|
635
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
636
|
+
<p>Data Tables</p>
|
|
637
|
+
</a>
|
|
638
|
+
</li>
|
|
639
|
+
</ul>
|
|
640
|
+
</li>
|
|
641
|
+
|
|
642
|
+
<li class="nav-header">PAGES</li>
|
|
643
|
+
<li class="nav-item">
|
|
644
|
+
<a href="#" class="nav-link">
|
|
645
|
+
<i class="nav-icon bi bi-file-earmark-text"></i>
|
|
646
|
+
<p>
|
|
647
|
+
Pages
|
|
648
|
+
<i class="nav-arrow bi bi-chevron-right"></i>
|
|
649
|
+
</p>
|
|
650
|
+
</a>
|
|
651
|
+
<ul class="nav nav-treeview">
|
|
652
|
+
<li class="nav-item">
|
|
653
|
+
<a href="../pages/profile.html" class="nav-link">
|
|
654
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
655
|
+
<p>Profile</p>
|
|
656
|
+
</a>
|
|
657
|
+
</li>
|
|
658
|
+
<li class="nav-item">
|
|
659
|
+
<a href="../pages/settings.html" class="nav-link">
|
|
660
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
661
|
+
<p>Settings</p>
|
|
662
|
+
</a>
|
|
663
|
+
</li>
|
|
664
|
+
<li class="nav-item">
|
|
665
|
+
<a href="../pages/invoice.html" class="nav-link">
|
|
666
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
667
|
+
<p>Invoice</p>
|
|
668
|
+
</a>
|
|
669
|
+
</li>
|
|
670
|
+
<li class="nav-item">
|
|
671
|
+
<a href="../pages/calendar.html" class="nav-link">
|
|
672
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
673
|
+
<p>Calendar</p>
|
|
674
|
+
</a>
|
|
675
|
+
</li>
|
|
676
|
+
<li class="nav-item">
|
|
677
|
+
<a href="../pages/kanban.html" class="nav-link">
|
|
678
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
679
|
+
<p>Kanban</p>
|
|
680
|
+
</a>
|
|
681
|
+
</li>
|
|
682
|
+
<li class="nav-item">
|
|
683
|
+
<a href="../pages/chat.html" class="nav-link">
|
|
684
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
685
|
+
<p>Chat</p>
|
|
686
|
+
</a>
|
|
687
|
+
</li>
|
|
688
|
+
<li class="nav-item">
|
|
689
|
+
<a href="../pages/file-manager.html" class="nav-link">
|
|
690
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
691
|
+
<p>File Manager</p>
|
|
692
|
+
</a>
|
|
693
|
+
</li>
|
|
694
|
+
<li class="nav-item">
|
|
695
|
+
<a href="../pages/projects.html" class="nav-link">
|
|
696
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
697
|
+
<p>Projects</p>
|
|
698
|
+
</a>
|
|
699
|
+
</li>
|
|
700
|
+
<li class="nav-item">
|
|
701
|
+
<a href="../pages/pricing.html" class="nav-link">
|
|
702
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
703
|
+
<p>Pricing</p>
|
|
704
|
+
</a>
|
|
705
|
+
</li>
|
|
706
|
+
<li class="nav-item">
|
|
707
|
+
<a href="../pages/faq.html" class="nav-link">
|
|
708
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
709
|
+
<p>FAQ</p>
|
|
710
|
+
</a>
|
|
711
|
+
</li>
|
|
712
|
+
<li class="nav-item">
|
|
713
|
+
<a href="#" class="nav-link">
|
|
714
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
715
|
+
<p>
|
|
716
|
+
Error
|
|
717
|
+
<i class="nav-arrow bi bi-chevron-right"></i>
|
|
718
|
+
</p>
|
|
719
|
+
</a>
|
|
720
|
+
<ul class="nav nav-treeview">
|
|
721
|
+
<li class="nav-item">
|
|
722
|
+
<a href="../pages/404.html" class="nav-link">
|
|
723
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
724
|
+
<p>404</p>
|
|
725
|
+
</a>
|
|
726
|
+
</li>
|
|
727
|
+
<li class="nav-item">
|
|
728
|
+
<a href="../pages/500.html" class="nav-link">
|
|
729
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
730
|
+
<p>500</p>
|
|
731
|
+
</a>
|
|
732
|
+
</li>
|
|
733
|
+
<li class="nav-item">
|
|
734
|
+
<a href="../pages/maintenance.html" class="nav-link">
|
|
735
|
+
<i class="nav-icon bi bi-circle"></i>
|
|
736
|
+
<p>Maintenance</p>
|
|
737
|
+
</a>
|
|
738
|
+
</li>
|
|
739
|
+
</ul>
|
|
740
|
+
</li>
|
|
519
741
|
</ul>
|
|
520
742
|
</li>
|
|
521
743
|
|
|
@@ -584,126 +806,6 @@
|
|
|
584
806
|
</ul>
|
|
585
807
|
</li>
|
|
586
808
|
|
|
587
|
-
<li class="nav-header">DOCUMENTATIONS</li>
|
|
588
|
-
<li class="nav-item">
|
|
589
|
-
<a href="../docs/introduction.html" class="nav-link">
|
|
590
|
-
<i class="nav-icon bi bi-download"></i>
|
|
591
|
-
<p>Installation</p>
|
|
592
|
-
</a>
|
|
593
|
-
</li>
|
|
594
|
-
<li class="nav-item">
|
|
595
|
-
<a href="../docs/layout.html" class="nav-link">
|
|
596
|
-
<i class="nav-icon bi bi-grip-horizontal"></i>
|
|
597
|
-
<p>Layout</p>
|
|
598
|
-
</a>
|
|
599
|
-
</li>
|
|
600
|
-
<li class="nav-item">
|
|
601
|
-
<a href="../docs/color-mode.html" class="nav-link">
|
|
602
|
-
<i class="nav-icon bi bi-star-half"></i>
|
|
603
|
-
<p>Color Mode</p>
|
|
604
|
-
</a>
|
|
605
|
-
</li>
|
|
606
|
-
<li class="nav-item">
|
|
607
|
-
<a href="#" class="nav-link">
|
|
608
|
-
<i class="nav-icon bi bi-ui-checks-grid"></i>
|
|
609
|
-
<p>
|
|
610
|
-
Components
|
|
611
|
-
<i class="nav-arrow bi bi-chevron-right"></i>
|
|
612
|
-
</p>
|
|
613
|
-
</a>
|
|
614
|
-
<ul class="nav nav-treeview">
|
|
615
|
-
<li class="nav-item">
|
|
616
|
-
<a href="../docs/components/main-header.html" class="nav-link">
|
|
617
|
-
<i class="nav-icon bi bi-circle"></i>
|
|
618
|
-
<p>Main Header</p>
|
|
619
|
-
</a>
|
|
620
|
-
</li>
|
|
621
|
-
<li class="nav-item">
|
|
622
|
-
<a href="../docs/components/main-sidebar.html" class="nav-link">
|
|
623
|
-
<i class="nav-icon bi bi-circle"></i>
|
|
624
|
-
<p>Main Sidebar</p>
|
|
625
|
-
</a>
|
|
626
|
-
</li>
|
|
627
|
-
</ul>
|
|
628
|
-
</li>
|
|
629
|
-
<li class="nav-item">
|
|
630
|
-
<a href="#" class="nav-link">
|
|
631
|
-
<i class="nav-icon bi bi-filetype-js"></i>
|
|
632
|
-
<p>
|
|
633
|
-
Javascript
|
|
634
|
-
<i class="nav-arrow bi bi-chevron-right"></i>
|
|
635
|
-
</p>
|
|
636
|
-
</a>
|
|
637
|
-
<ul class="nav nav-treeview">
|
|
638
|
-
<li class="nav-item">
|
|
639
|
-
<a href="../docs/javascript/layout.html" class="nav-link">
|
|
640
|
-
<i class="nav-icon bi bi-circle"></i>
|
|
641
|
-
<p>Layout</p>
|
|
642
|
-
</a>
|
|
643
|
-
</li>
|
|
644
|
-
<li class="nav-item">
|
|
645
|
-
<a href="../docs/javascript/pushmenu.html" class="nav-link">
|
|
646
|
-
<i class="nav-icon bi bi-circle"></i>
|
|
647
|
-
<p>PushMenu</p>
|
|
648
|
-
</a>
|
|
649
|
-
</li>
|
|
650
|
-
<li class="nav-item">
|
|
651
|
-
<a href="../docs/javascript/treeview.html" class="nav-link">
|
|
652
|
-
<i class="nav-icon bi bi-circle"></i>
|
|
653
|
-
<p>Treeview</p>
|
|
654
|
-
</a>
|
|
655
|
-
</li>
|
|
656
|
-
<li class="nav-item">
|
|
657
|
-
<a href="../docs/javascript/card-widget.html" class="nav-link">
|
|
658
|
-
<i class="nav-icon bi bi-circle"></i>
|
|
659
|
-
<p>Card Widget</p>
|
|
660
|
-
</a>
|
|
661
|
-
</li>
|
|
662
|
-
<li class="nav-item">
|
|
663
|
-
<a href="../docs/javascript/direct-chat.html" class="nav-link">
|
|
664
|
-
<i class="nav-icon bi bi-circle"></i>
|
|
665
|
-
<p>Direct Chat</p>
|
|
666
|
-
</a>
|
|
667
|
-
</li>
|
|
668
|
-
<li class="nav-item">
|
|
669
|
-
<a href="../docs/javascript/fullscreen.html" class="nav-link">
|
|
670
|
-
<i class="nav-icon bi bi-circle"></i>
|
|
671
|
-
<p>Fullscreen</p>
|
|
672
|
-
</a>
|
|
673
|
-
</li>
|
|
674
|
-
<li class="nav-item">
|
|
675
|
-
<a href="../docs/javascript/accessibility.html" class="nav-link">
|
|
676
|
-
<i class="nav-icon bi bi-circle"></i>
|
|
677
|
-
<p>Accessibility</p>
|
|
678
|
-
</a>
|
|
679
|
-
</li>
|
|
680
|
-
</ul>
|
|
681
|
-
</li>
|
|
682
|
-
<li class="nav-item">
|
|
683
|
-
<a href="../docs/browser-support.html" class="nav-link">
|
|
684
|
-
<i class="nav-icon bi bi-browser-edge"></i>
|
|
685
|
-
<p>Browser Support</p>
|
|
686
|
-
</a>
|
|
687
|
-
</li>
|
|
688
|
-
<li class="nav-item">
|
|
689
|
-
<a href="../docs/how-to-contribute.html" class="nav-link">
|
|
690
|
-
<i class="nav-icon bi bi-hand-thumbs-up-fill"></i>
|
|
691
|
-
<p>How To Contribute</p>
|
|
692
|
-
</a>
|
|
693
|
-
</li>
|
|
694
|
-
<li class="nav-item">
|
|
695
|
-
<a href="../docs/faq.html" class="nav-link">
|
|
696
|
-
<i class="nav-icon bi bi-question-circle-fill"></i>
|
|
697
|
-
<p>FAQ</p>
|
|
698
|
-
</a>
|
|
699
|
-
</li>
|
|
700
|
-
<li class="nav-item">
|
|
701
|
-
<a href="../docs/license.html" class="nav-link">
|
|
702
|
-
<i class="nav-icon bi bi-patch-check-fill"></i>
|
|
703
|
-
<p>License</p>
|
|
704
|
-
</a>
|
|
705
|
-
</li>
|
|
706
|
-
|
|
707
809
|
<li class="nav-header">MULTI LEVEL EXAMPLE</li>
|
|
708
810
|
<li class="nav-item">
|
|
709
811
|
<a href="#" class="nav-link">
|
|
@@ -791,6 +893,17 @@
|
|
|
791
893
|
</li>
|
|
792
894
|
</ul>
|
|
793
895
|
<!--end::Sidebar Menu-->
|
|
896
|
+
|
|
897
|
+
<!-- Docs CTA (bottom of sidebar) -->
|
|
898
|
+
<div class="p-3 mt-3 border-top border-secondary border-opacity-25">
|
|
899
|
+
<a
|
|
900
|
+
href="../docs/introduction.html"
|
|
901
|
+
class="btn btn-sm btn-outline-light w-100 d-flex align-items-center justify-content-center gap-2"
|
|
902
|
+
>
|
|
903
|
+
<i class="bi bi-book" aria-hidden="true"></i>
|
|
904
|
+
View documentation
|
|
905
|
+
</a>
|
|
906
|
+
</div>
|
|
794
907
|
</nav>
|
|
795
908
|
</div>
|
|
796
909
|
<!--end::Sidebar Wrapper-->
|
|
@@ -2088,7 +2201,71 @@
|
|
|
2088
2201
|
}
|
|
2089
2202
|
});
|
|
2090
2203
|
</script>
|
|
2091
|
-
<!--end::OverlayScrollbars Configure-->
|
|
2204
|
+
<!--end::OverlayScrollbars Configure--><!--begin::Color Mode Toggle (#6010)-->
|
|
2205
|
+
<script>
|
|
2206
|
+
(() => {
|
|
2207
|
+
'use strict';
|
|
2208
|
+
|
|
2209
|
+
const STORAGE_KEY = 'lte-theme';
|
|
2210
|
+
|
|
2211
|
+
const getStoredTheme = () => localStorage.getItem(STORAGE_KEY);
|
|
2212
|
+
const setStoredTheme = (theme) => localStorage.setItem(STORAGE_KEY, theme);
|
|
2213
|
+
|
|
2214
|
+
const prefersDark = () => globalThis.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
2215
|
+
|
|
2216
|
+
const getPreferredTheme = () => {
|
|
2217
|
+
const stored = getStoredTheme();
|
|
2218
|
+
if (stored) return stored;
|
|
2219
|
+
return prefersDark() ? 'dark' : 'light';
|
|
2220
|
+
};
|
|
2221
|
+
|
|
2222
|
+
const setTheme = (theme) => {
|
|
2223
|
+
const resolved = theme === 'auto' ? (prefersDark() ? 'dark' : 'light') : theme;
|
|
2224
|
+
document.documentElement.setAttribute('data-bs-theme', resolved);
|
|
2225
|
+
};
|
|
2226
|
+
|
|
2227
|
+
setTheme(getPreferredTheme());
|
|
2228
|
+
|
|
2229
|
+
const showActiveTheme = (theme) => {
|
|
2230
|
+
// Highlight the active dropdown option
|
|
2231
|
+
document.querySelectorAll('[data-bs-theme-value]').forEach((el) => {
|
|
2232
|
+
el.classList.remove('active');
|
|
2233
|
+
el.setAttribute('aria-pressed', 'false');
|
|
2234
|
+
const check = el.querySelector('.bi-check-lg');
|
|
2235
|
+
if (check) check.classList.add('d-none');
|
|
2236
|
+
});
|
|
2237
|
+
const active = document.querySelector(`[data-bs-theme-value="${theme}"]`);
|
|
2238
|
+
if (active) {
|
|
2239
|
+
active.classList.add('active');
|
|
2240
|
+
active.setAttribute('aria-pressed', 'true');
|
|
2241
|
+
const check = active.querySelector('.bi-check-lg');
|
|
2242
|
+
if (check) check.classList.remove('d-none');
|
|
2243
|
+
}
|
|
2244
|
+
// Sync the topbar trigger icon
|
|
2245
|
+
document.querySelectorAll('[data-lte-theme-icon]').forEach((icon) => {
|
|
2246
|
+
icon.classList.toggle('d-none', icon.dataset.lteThemeIcon !== theme);
|
|
2247
|
+
});
|
|
2248
|
+
};
|
|
2249
|
+
|
|
2250
|
+
globalThis.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
|
2251
|
+
const stored = getStoredTheme();
|
|
2252
|
+
if (!stored || stored === 'auto') setTheme(getPreferredTheme());
|
|
2253
|
+
});
|
|
2254
|
+
|
|
2255
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
2256
|
+
showActiveTheme(getPreferredTheme());
|
|
2257
|
+
document.querySelectorAll('[data-bs-theme-value]').forEach((toggle) => {
|
|
2258
|
+
toggle.addEventListener('click', () => {
|
|
2259
|
+
const theme = toggle.getAttribute('data-bs-theme-value');
|
|
2260
|
+
setStoredTheme(theme);
|
|
2261
|
+
setTheme(theme);
|
|
2262
|
+
showActiveTheme(theme);
|
|
2263
|
+
});
|
|
2264
|
+
});
|
|
2265
|
+
});
|
|
2266
|
+
})();
|
|
2267
|
+
</script>
|
|
2268
|
+
<!--end::Color Mode Toggle-->
|
|
2092
2269
|
<!--begin::Bootstrap Tooltips-->
|
|
2093
2270
|
<script>
|
|
2094
2271
|
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
|