admin-lte 4.0.0-rc4 → 4.0.0-rc6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +1 -0
- package/.claude/settings.local.json +22 -17
- package/CHANGELOG.md +95 -0
- package/CLAUDE.md +61 -88
- package/README.md +76 -19
- package/SECURITY.md +99 -0
- package/dist/UI/general.html +219 -70
- package/dist/UI/icons.html +50 -12
- package/dist/UI/timeline.html +64 -18
- package/dist/css/adminlte.css +102 -112
- 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 +102 -112
- 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 +47 -11
- package/dist/docs/color-mode.html +63 -23
- package/dist/docs/components/main-header.html +67 -17
- package/dist/docs/components/main-sidebar.html +47 -11
- package/dist/docs/faq.html +47 -11
- package/dist/docs/how-to-contribute.html +47 -11
- package/dist/docs/introduction.html +47 -11
- package/dist/docs/javascript/pushmenu.html +876 -0
- package/dist/docs/javascript/treeview.html +47 -11
- package/dist/docs/layout.html +49 -11
- package/dist/docs/license.html +47 -11
- package/dist/examples/lockscreen.html +22 -2
- package/dist/examples/login-v2.html +30 -5
- package/dist/examples/login.html +30 -5
- package/dist/examples/register-v2.html +30 -5
- package/dist/examples/register.html +30 -5
- package/dist/forms/general.html +70 -17
- package/dist/generate/theme.html +58 -14
- package/dist/index.html +83 -14
- package/dist/index2.html +151 -31
- package/dist/index3.html +94 -23
- package/dist/js/adminlte.js +102 -16
- 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.html +47 -10
- package/dist/layout/fixed-complete.html +49 -13
- package/dist/layout/fixed-footer.html +48 -11
- package/dist/layout/fixed-header.html +48 -11
- package/dist/layout/fixed-sidebar.html +49 -11
- package/dist/layout/layout-custom-area.html +58 -13
- package/dist/layout/layout-rtl.html +48 -11
- package/dist/layout/logo-switch.html +43 -10
- package/dist/layout/sidebar-mini.html +47 -10
- package/dist/layout/unfixed-sidebar.html +48 -11
- package/dist/tables/simple.html +119 -34
- package/dist/widgets/cards.html +62 -11
- package/dist/widgets/info-box.html +134 -28
- package/dist/widgets/small-box.html +51 -11
- package/index.html +1 -1
- package/package.json +26 -26
- package/src/scss/_accessibility.scss +0 -6
- package/src/scss/_app-sidebar.scss +7 -1
- package/src/scss/_cards.scss +6 -4
- package/src/scss/_dropdown.scss +5 -28
- package/src/scss/adminlte.scss +1 -1
- package/src/ts/accessibility.ts +13 -5
- package/src/ts/adminlte.ts +1 -1
- package/src/ts/card-widget.ts +4 -2
- package/src/ts/push-menu.ts +81 -7
- package/src/ts/treeview.ts +19 -1
- package/README 2.md +0 -106
package/.browserslistrc
CHANGED
|
@@ -1,28 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"permissions": {
|
|
3
3
|
"allow": [
|
|
4
|
-
"
|
|
5
|
-
"Bash(npm run css-lint)",
|
|
4
|
+
"Bash(npm audit:*)",
|
|
6
5
|
"Bash(npm run build:*)",
|
|
7
|
-
"Bash(npm
|
|
8
|
-
"Bash(
|
|
9
|
-
"Bash(npm
|
|
6
|
+
"Bash(npm ls:*)",
|
|
7
|
+
"Bash(gh pr list:*)",
|
|
8
|
+
"Bash(npm outdated:*)",
|
|
10
9
|
"Bash(npm install:*)",
|
|
11
|
-
"Bash(
|
|
12
|
-
"
|
|
10
|
+
"Bash(gh pr view:*)",
|
|
11
|
+
"Bash(gh pr diff:*)",
|
|
13
12
|
"Bash(rm:*)",
|
|
14
|
-
"Bash(
|
|
15
|
-
"Bash(
|
|
16
|
-
"Bash(gh
|
|
17
|
-
"Bash(npm
|
|
18
|
-
"Bash(npm
|
|
19
|
-
"Bash(npm
|
|
13
|
+
"Bash(gh api:*)",
|
|
14
|
+
"Bash(gh issue list:*)",
|
|
15
|
+
"Bash(gh issue view:*)",
|
|
16
|
+
"Bash(npm run css:*)",
|
|
17
|
+
"Bash(npm run js:*)",
|
|
18
|
+
"Bash(npm run js-lint:*)",
|
|
19
|
+
"Bash(npm run css-lint:*)",
|
|
20
|
+
"Bash(npm run lint:*)",
|
|
21
|
+
"Bash(npm whoami:*)",
|
|
22
|
+
"Bash(npm run production:*)",
|
|
20
23
|
"Bash(git add:*)",
|
|
21
24
|
"Bash(git commit:*)",
|
|
22
|
-
"Bash(
|
|
23
|
-
"Bash(
|
|
25
|
+
"Bash(npm view:*)",
|
|
26
|
+
"Bash(cat:*)",
|
|
27
|
+
"Bash(npm pack:*)",
|
|
24
28
|
"Bash(npm publish:*)"
|
|
25
29
|
],
|
|
26
|
-
"deny": []
|
|
30
|
+
"deny": [],
|
|
31
|
+
"ask": []
|
|
27
32
|
}
|
|
28
|
-
}
|
|
33
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,101 @@ 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-rc6] - 2025-12-08
|
|
11
|
+
|
|
12
|
+
### Security
|
|
13
|
+
|
|
14
|
+
- **Fixed 4 Security Vulnerabilities:** Resolved all npm audit security issues
|
|
15
|
+
- Fixed high severity reflected XSS vulnerability in Astro server islands
|
|
16
|
+
- Fixed moderate severity authentication bypass via url.pathname in Astro
|
|
17
|
+
- Fixed moderate severity stored XSS in Astro Cloudflare adapter /_image endpoint
|
|
18
|
+
- Fixed moderate severity unsanitized class attribute in mdast-util-to-hast
|
|
19
|
+
- All vulnerabilities resolved by updating to Astro 5.16.4+
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- **Sidebar State Persistence:** New feature to remember sidebar collapsed/expanded state
|
|
24
|
+
- Sidebar state now persists across page refreshes using localStorage
|
|
25
|
+
- Configurable via `enablePersistence` option (default: `true`)
|
|
26
|
+
- SSR-safe implementation with proper environment checks
|
|
27
|
+
- Mobile-aware: doesn't restore state on small screens (respects responsive breakpoints)
|
|
28
|
+
- Graceful error handling for private browsing mode
|
|
29
|
+
- Storage key: `lte.sidebar.state`
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- **GitHub Actions:** Updated all workflows to Node.js 22 (from Node.js 18)
|
|
34
|
+
- Node.js 18 reached End-of-Life on April 30, 2025
|
|
35
|
+
- Node.js 22 is the current Active LTS (supported until April 2027)
|
|
36
|
+
- Updated `setup-node` action from v3 to v4 across all workflows
|
|
37
|
+
- Updated CodeQL actions from v2 to v3
|
|
38
|
+
- Added `FORCE_COLOR: 2` environment variable to codeql.yml for consistency
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- **Release Workflow:** Fixed zip command in release.yml
|
|
43
|
+
- Corrected `-d` flag to `-r` for recursive directory zipping
|
|
44
|
+
- Fixed filename inconsistency in release artifacts
|
|
45
|
+
- **Nested Card Expand Icon:** Fixed issue #5909 where nested collapsed cards didn't show expand icon
|
|
46
|
+
- Updated CSS selectors to use direct child (>) scoping for card state icons
|
|
47
|
+
- Collapse/expand icons now correctly display for nested cards independently
|
|
48
|
+
- Card body/footer display rules now only affect direct children, not nested cards
|
|
49
|
+
- **Card Widget JavaScript:** Fixed nested card collapse/expand affecting child cards
|
|
50
|
+
- Added `:scope >` selector to only target direct card-body/footer children
|
|
51
|
+
- Prevents parent card collapse from affecting nested card animations
|
|
52
|
+
|
|
53
|
+
### Updated
|
|
54
|
+
|
|
55
|
+
- **Dependencies:** Updated 15+ packages to latest versions
|
|
56
|
+
- @astrojs/check: 0.9.5 → 0.9.6
|
|
57
|
+
- @astrojs/mdx: 4.3.9 → 4.3.12
|
|
58
|
+
- @rollup/plugin-typescript: 12.1.3 → 12.3.0
|
|
59
|
+
- @typescript-eslint/eslint-plugin: 8.46.2 → 8.48.1
|
|
60
|
+
- @typescript-eslint/parser: 8.46.2 → 8.48.1
|
|
61
|
+
- astro: 5.15.6 → 5.16.4 (includes security fixes)
|
|
62
|
+
- autoprefixer: 10.4.21 → 10.4.22
|
|
63
|
+
- eslint: 9.39.0 → 9.39.1
|
|
64
|
+
- eslint-plugin-astro: 1.4.0 → 1.5.0
|
|
65
|
+
- nodemon: 3.1.10 → 3.1.11
|
|
66
|
+
- prettier: 3.5.3 → 3.7.4
|
|
67
|
+
- rimraf: 6.1.0 → 6.1.2
|
|
68
|
+
- rollup: 4.52.4 → 4.53.3
|
|
69
|
+
- sass: 1.93.2 → 1.94.2
|
|
70
|
+
- stylelint: 16.25.0 → 16.26.1
|
|
71
|
+
- terser: 5.44.0 → 5.44.1
|
|
72
|
+
|
|
73
|
+
## [4.0.0-rc5] - 2025-10-14
|
|
74
|
+
|
|
75
|
+
### Updated
|
|
76
|
+
- **Dependencies:** Updated 17+ packages to latest versions for improved security and performance
|
|
77
|
+
- @astrojs/mdx: 4.3.0 → 4.3.7
|
|
78
|
+
- @typescript-eslint/eslint-plugin: 8.36.0 → 8.46.1
|
|
79
|
+
- @typescript-eslint/parser: 8.36.0 → 8.46.1
|
|
80
|
+
- astro: 5.11.0 → 5.14.4
|
|
81
|
+
- bootstrap: 5.3.7 → 5.3.8
|
|
82
|
+
- concurrently: 9.2.0 → 9.2.1
|
|
83
|
+
- cross-env: 7.0.3 → 10.1.0 (major version)
|
|
84
|
+
- eslint: 9.30.1 → 9.37.0
|
|
85
|
+
- eslint-config-xo: 0.47.0 → 0.49.0
|
|
86
|
+
- eslint-config-xo-typescript: 8.0.1 → 9.0.0 (major version)
|
|
87
|
+
- eslint-plugin-unicorn: 59.0.1 → 61.0.2
|
|
88
|
+
- fs-extra: 11.3.0 → 11.3.2
|
|
89
|
+
- rollup: 4.44.2 → 4.52.4
|
|
90
|
+
- sass: 1.89.2 → 1.93.2
|
|
91
|
+
- stylelint: 16.21.1 → 16.25.0
|
|
92
|
+
- terser: 5.43.1 → 5.44.0
|
|
93
|
+
- typescript: 5.8.3 → 5.9.3
|
|
94
|
+
|
|
95
|
+
### Fixed
|
|
96
|
+
- **Security Vulnerabilities:** Resolved 2 security issues
|
|
97
|
+
- Fixed high severity DoS vulnerability in axios (updated to 0.30.2+)
|
|
98
|
+
- Fixed critical vulnerability in form-data random function (updated to 4.0.4+)
|
|
99
|
+
|
|
100
|
+
### Removed
|
|
101
|
+
- **Deprecated Files:** Removed `.eslintignore` file
|
|
102
|
+
- ESLint ignores are now properly configured in `eslint.config.js`
|
|
103
|
+
- Eliminates deprecation warnings in ESLint 9.x
|
|
104
|
+
|
|
10
105
|
## [4.0.0-rc4] - 2025-07-10
|
|
11
106
|
|
|
12
107
|
### Updated
|
package/CLAUDE.md
CHANGED
|
@@ -4,103 +4,76 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
4
4
|
|
|
5
5
|
## Project Overview
|
|
6
6
|
|
|
7
|
-
AdminLTE is a Bootstrap 5
|
|
7
|
+
AdminLTE is a Bootstrap 5 admin dashboard template (v4.0.0-rc5). It provides responsive UI components for building admin panels and control dashboards.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Build Commands
|
|
10
10
|
|
|
11
|
-
### Start Development
|
|
12
11
|
```bash
|
|
13
|
-
npm
|
|
14
|
-
npm
|
|
12
|
+
npm install # Install dependencies
|
|
13
|
+
npm start # Start dev server with file watching (http://localhost:3000)
|
|
14
|
+
npm run build # Build all assets (CSS, JS, docs)
|
|
15
|
+
npm run production # Full production build with linting and bundlewatch
|
|
16
|
+
npm run lint # Run all linters (JS, CSS, docs, lockfile)
|
|
15
17
|
```
|
|
16
18
|
|
|
17
|
-
### Build
|
|
18
|
-
```bash
|
|
19
|
-
npm run build # Quick development build (CSS + JS + assets + docs)
|
|
20
|
-
npm run production # Full production build with linting and optimization
|
|
21
|
-
npm run compile # Build all assets (CSS, JS, assets, docs)
|
|
22
|
-
```
|
|
19
|
+
### Individual Build Tasks
|
|
23
20
|
|
|
24
|
-
### Asset-Specific Commands
|
|
25
21
|
```bash
|
|
26
|
-
npm run css
|
|
27
|
-
npm run js
|
|
28
|
-
npm run
|
|
22
|
+
npm run css # Build CSS only (compile, prefix, rtl, minify)
|
|
23
|
+
npm run js # Build JavaScript only (compile, minify)
|
|
24
|
+
npm run css-lint # Lint SCSS files
|
|
25
|
+
npm run js-lint # Lint TypeScript/JavaScript files
|
|
29
26
|
```
|
|
30
27
|
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
npm run lint # Run all linters (JS, CSS, docs, lockfile)
|
|
34
|
-
npm run js-lint # ESLint for JavaScript/TypeScript
|
|
35
|
-
npm run css-lint # Stylelint for SCSS
|
|
36
|
-
npm run docs-lint # Astro check for documentation
|
|
37
|
-
```
|
|
28
|
+
## Architecture
|
|
38
29
|
|
|
39
|
-
###
|
|
40
|
-
```bash
|
|
41
|
-
npm run css-compile # Compile SCSS to CSS
|
|
42
|
-
npm run css-rtl # Generate RTL versions
|
|
43
|
-
npm run js-compile # Compile TypeScript to JavaScript
|
|
44
|
-
npm run docs-compile # Build documentation with Astro
|
|
45
|
-
```
|
|
30
|
+
### Source Structure
|
|
46
31
|
|
|
47
|
-
|
|
32
|
+
- **src/ts/** - TypeScript source files compiled via Rollup to `dist/js/adminlte.js`
|
|
33
|
+
- **src/scss/** - SCSS source files compiled via Sass to `dist/css/adminlte.css`
|
|
34
|
+
- **src/html/** - Astro-based documentation/demo pages
|
|
35
|
+
- **src/config/** - Build tool configurations (rollup, postcss, astro, assets)
|
|
36
|
+
- **src/assets/** - Static images copied to dist
|
|
37
|
+
|
|
38
|
+
### JavaScript Components (src/ts/)
|
|
39
|
+
|
|
40
|
+
Entry point: `adminlte.ts` exports all components:
|
|
41
|
+
- `Layout` - Core layout management and hold-transition behavior
|
|
42
|
+
- `PushMenu` - Sidebar toggle functionality
|
|
43
|
+
- `Treeview` - Hierarchical menu navigation
|
|
44
|
+
- `CardWidget` - Card collapse/expand/remove actions
|
|
45
|
+
- `DirectChat` - Chat widget toggle
|
|
46
|
+
- `FullScreen` - Fullscreen toggle functionality
|
|
47
|
+
- `initAccessibility` - WCAG 2.1 AA accessibility features
|
|
48
|
+
|
|
49
|
+
### SCSS Structure (src/scss/)
|
|
50
|
+
|
|
51
|
+
Entry point: `adminlte.scss` imports Bootstrap then AdminLTE components:
|
|
52
|
+
- `_bootstrap-variables.scss` - Bootstrap variable overrides
|
|
53
|
+
- `_variables.scss` / `_variables-dark.scss` - AdminLTE theme variables
|
|
54
|
+
- `parts/` - Organized component groups (core, components, extra-components, pages, miscellaneous)
|
|
55
|
+
- Individual component files (`_cards.scss`, `_app-sidebar.scss`, etc.)
|
|
56
|
+
|
|
57
|
+
### Documentation (src/html/)
|
|
58
|
+
|
|
59
|
+
Built with Astro framework:
|
|
60
|
+
- `pages/` - Demo pages and documentation
|
|
61
|
+
- `components/` - Reusable Astro components and MDX content
|
|
62
|
+
- Output goes to `dist/html/` then flattened to `dist/`
|
|
63
|
+
|
|
64
|
+
### Build Output (dist/)
|
|
65
|
+
|
|
66
|
+
Production assets:
|
|
67
|
+
- `dist/js/adminlte.min.js` - Compiled and minified JavaScript (UMD format)
|
|
68
|
+
- `dist/css/adminlte.min.css` - Compiled and minified CSS
|
|
69
|
+
- `dist/css/*.rtl.css` - RTL (right-to-left) variants
|
|
70
|
+
- `dist/assets/` - Static assets
|
|
71
|
+
|
|
72
|
+
## Key Technologies
|
|
48
73
|
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
- **dist/**: Built assets and documentation
|
|
56
|
-
|
|
57
|
-
### Key Components (src/ts/)
|
|
58
|
-
- **adminlte.ts**: Main entry point that initializes all components
|
|
59
|
-
- **layout.ts**: Core layout management and theme handling
|
|
60
|
-
- **accessibility.ts**: WCAG 2.1 AA compliance features
|
|
61
|
-
- **card-widget.ts**: Collapsible card functionality
|
|
62
|
-
- **treeview.ts**: Navigation tree component
|
|
63
|
-
- **push-menu.ts**: Sidebar menu toggle
|
|
64
|
-
- **direct-chat.ts**: Chat widget functionality
|
|
65
|
-
- **fullscreen.ts**: Fullscreen mode toggle
|
|
66
|
-
|
|
67
|
-
### Build System
|
|
68
|
-
- **Rollup**: JavaScript bundling (UMD format)
|
|
69
|
-
- **Sass**: SCSS compilation with Bootstrap integration
|
|
70
|
-
- **PostCSS**: CSS processing with autoprefixer and RTL support
|
|
71
|
-
- **Astro**: Static site generation for documentation
|
|
72
|
-
- **ESLint**: JavaScript/TypeScript linting with TypeScript ESLint, Unicorn, and Astro plugins
|
|
73
|
-
|
|
74
|
-
### Styling Architecture
|
|
75
|
-
- Built on Bootstrap 5.3.7 with custom variables
|
|
76
|
-
- Modular SCSS structure in parts/ directory
|
|
77
|
-
- Dark mode support with separate variable files
|
|
78
|
-
- RTL (Right-to-Left) language support
|
|
79
|
-
- Accessibility-focused styling
|
|
80
|
-
|
|
81
|
-
### Development Workflow
|
|
82
|
-
1. Source files are watched during development
|
|
83
|
-
2. CSS and JS are automatically compiled and copied to src/html/public/
|
|
84
|
-
3. Astro serves documentation with hot reloading
|
|
85
|
-
4. Production builds include minification and optimization
|
|
86
|
-
|
|
87
|
-
## Key Files and Configurations
|
|
88
|
-
|
|
89
|
-
### Build Configuration
|
|
90
|
-
- **src/config/rollup.config.js**: JavaScript bundling configuration
|
|
91
|
-
- **src/config/astro.config.mjs**: Documentation build configuration
|
|
92
|
-
- **src/config/postcss.config.mjs**: CSS processing configuration
|
|
93
|
-
- **eslint.config.js**: Linting rules and file ignores
|
|
94
|
-
|
|
95
|
-
### Main Entry Points
|
|
96
|
-
- **src/ts/adminlte.ts**: Main TypeScript entry point
|
|
97
|
-
- **src/scss/adminlte.scss**: Main SCSS entry point
|
|
98
|
-
- **dist/js/adminlte.min.js**: Built JavaScript for production
|
|
99
|
-
- **dist/css/adminlte.min.css**: Built CSS for production
|
|
100
|
-
|
|
101
|
-
### Development Notes
|
|
102
|
-
- The project uses ES modules (type: "module" in package.json)
|
|
103
|
-
- TypeScript configuration is in tsconfig.json
|
|
104
|
-
- File watching is handled by nodemon with specific patterns
|
|
105
|
-
- Assets are copied to src/html/public/ during build for Astro integration
|
|
106
|
-
- Production builds are flattened to dist/ root for deployment
|
|
74
|
+
- Bootstrap 5.3.x - CSS framework base
|
|
75
|
+
- TypeScript - JavaScript source language
|
|
76
|
+
- Sass - CSS preprocessor
|
|
77
|
+
- Rollup - JavaScript bundler
|
|
78
|
+
- Astro - Documentation site generator
|
|
79
|
+
- PostCSS with Autoprefixer and RTLCSS - CSS post-processing
|
package/README.md
CHANGED
|
@@ -9,23 +9,28 @@
|
|
|
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-rc6
|
|
13
13
|
|
|
14
|
-
**
|
|
14
|
+
**Security & Feature Release** - Important security fixes and new sidebar persistence feature:
|
|
15
15
|
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
- **FTP/Static Host Ready** - Perfect compatibility with traditional hosting and modern static platforms
|
|
16
|
+
- **Security Fixes** - Resolved 4 vulnerabilities (XSS in Astro, auth bypass, unsanitized attributes)
|
|
17
|
+
- **Sidebar State Persistence** - Sidebar now remembers collapsed/expanded state across page refreshes
|
|
18
|
+
- **Node.js 22** - Updated all GitHub Actions workflows to Node.js 22 LTS (supported until 2027)
|
|
19
|
+
- **Latest Dependencies** - 15+ packages updated including Astro 5.16.4, Prettier 3.7.4, Rollup 4.53.3
|
|
20
|
+
- **CI/CD Improvements** - Updated CodeQL actions to v3, fixed release workflow bugs
|
|
22
21
|
|
|
23
22
|
**Key Improvements:**
|
|
24
|
-
|
|
25
|
-
- ✅
|
|
26
|
-
- ✅ Sidebar
|
|
27
|
-
- ✅
|
|
28
|
-
- ✅
|
|
23
|
+
|
|
24
|
+
- ✅ Zero security vulnerabilities - all npm audit issues resolved
|
|
25
|
+
- ✅ Sidebar state persists in localStorage (configurable, SSR-safe, mobile-aware)
|
|
26
|
+
- ✅ GitHub Actions use Node.js 22 (Active LTS until April 2027)
|
|
27
|
+
- ✅ CodeQL security scanning updated to latest v3 actions
|
|
28
|
+
- ✅ Release workflow fixed for proper asset packaging
|
|
29
|
+
|
|
30
|
+
**Install the latest:**
|
|
31
|
+
```bash
|
|
32
|
+
npm install admin-lte@4.0.0-rc6
|
|
33
|
+
```
|
|
29
34
|
|
|
30
35
|
See the [CHANGELOG.md](CHANGELOG.md) for complete details.
|
|
31
36
|
|
|
@@ -69,7 +74,7 @@ To build for production:
|
|
|
69
74
|
|
|
70
75
|
AdminLTE supports all modern browsers with the latest Bootstrap 5.3.7:
|
|
71
76
|
- Chrome (latest)
|
|
72
|
-
- Firefox (latest)
|
|
77
|
+
- Firefox (latest)
|
|
73
78
|
- Safari (latest)
|
|
74
79
|
- Edge (latest)
|
|
75
80
|
|
|
@@ -82,6 +87,62 @@ AdminLTE v4 build scripts work cross-platform:
|
|
|
82
87
|
|
|
83
88
|
All npm scripts use cross-platform utilities to ensure consistent behavior across different operating systems.
|
|
84
89
|
|
|
90
|
+
## Security & Production Deployment
|
|
91
|
+
|
|
92
|
+
### Important Security Notice
|
|
93
|
+
|
|
94
|
+
AdminLTE is a **UI template** - when deploying to production, follow these critical guidelines:
|
|
95
|
+
|
|
96
|
+
**What to Deploy:**
|
|
97
|
+
- Only compiled production assets: `dist/js/adminlte.min.js` and `dist/css/adminlte.min.css`
|
|
98
|
+
- Your application-specific files
|
|
99
|
+
|
|
100
|
+
**What NOT to Deploy:**
|
|
101
|
+
- `node_modules/` directory
|
|
102
|
+
- Demo/example HTML files (index.html, index2.html, index3.html, etc.)
|
|
103
|
+
- Source files (`src/` directory)
|
|
104
|
+
- Development configuration files
|
|
105
|
+
|
|
106
|
+
**CVE-2021-36471 Notice:**
|
|
107
|
+
This CVE is **disputed** and does not represent a vulnerability in AdminLTE. It refers to demo pages being accessible when developers incorrectly deploy example files to production. AdminLTE v4 has a clear separation between development demos and production assets. See [SECURITY.md](SECURITY.md) for complete details.
|
|
108
|
+
|
|
109
|
+
**Production Build:**
|
|
110
|
+
```bash
|
|
111
|
+
npm run production # Builds optimized assets in dist/
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
For detailed security guidelines, authentication requirements, and best practices, see [SECURITY.md](SECURITY.md).
|
|
115
|
+
|
|
116
|
+
## Sponsorship
|
|
117
|
+
|
|
118
|
+
Support AdminLTE development by becoming a sponsor or donor.
|
|
119
|
+
|
|
120
|
+
<p align="center">
|
|
121
|
+
<a href="https://github.com/sponsors/danny007in">
|
|
122
|
+
<img src="https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86" alt="Sponsor on GitHub" />
|
|
123
|
+
</a>
|
|
124
|
+
|
|
125
|
+
<a href="https://www.paypal.me/daniel007in">
|
|
126
|
+
<img src="https://img.shields.io/static/v1?label=Donate&message=%E2%9D%A4&logo=PayPal&color=%2300457C" alt="Donate via PayPal" />
|
|
127
|
+
</a>
|
|
128
|
+
</p>
|
|
129
|
+
|
|
130
|
+
## Our Sponsors
|
|
131
|
+
|
|
132
|
+
<p align="center">
|
|
133
|
+
<a href="https://github.com/spizzo14"><img src="https://unavatar.io/github/spizzo14?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: spizzo14" loading="lazy" /></a>
|
|
134
|
+
<a href="https://github.com/tomhappyblock"><img src="https://unavatar.io/github/tomhappyblock?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: tomhappyblock" loading="lazy" /></a>
|
|
135
|
+
<a href="https://github.com/stefanmorderca"><img src="https://unavatar.io/github/stefanmorderca?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: stefanmorderca" loading="lazy" /></a>
|
|
136
|
+
<a href="https://github.com/tito10047"><img src="https://unavatar.io/github/tito10047?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: tito10047" loading="lazy" /></a>
|
|
137
|
+
<a href="https://github.com/sitchi"><img src="https://unavatar.io/github/sitchi?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: sitchi" loading="lazy" /></a>
|
|
138
|
+
<a href="https://github.com/npreee"><img src="https://unavatar.io/github/npreee?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: npreee" loading="lazy" /></a>
|
|
139
|
+
<a href="https://github.com/isaacmorais"><img src="https://unavatar.io/github/isaacmorais?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: isaacmorais" loading="lazy" /></a>
|
|
140
|
+
</p>
|
|
141
|
+
|
|
142
|
+
<p align="center">
|
|
143
|
+
<a href="https://github.com/sponsors/danny007in">Your avatar here? Become a sponsor</a>
|
|
144
|
+
</p>
|
|
145
|
+
|
|
85
146
|
## Contributing
|
|
86
147
|
|
|
87
148
|
- Highly welcome.
|
|
@@ -95,11 +156,6 @@ All npm scripts use cross-platform utilities to ensure consistent behavior acros
|
|
|
95
156
|
- After installation completes, run `npm start`
|
|
96
157
|
- Cool, Send your changes in PR to `master` branch.
|
|
97
158
|
|
|
98
|
-
## Sponsorship
|
|
99
|
-
|
|
100
|
-
Support AdminLTE development by becoming a sponsor.
|
|
101
|
-
[Github Sponsors](https://github.com/sponsors/danny007in) or
|
|
102
|
-
[PayPal](https://www.paypal.me/daniel007in)
|
|
103
159
|
|
|
104
160
|
## License
|
|
105
161
|
|
|
@@ -113,3 +169,4 @@ AdminLTE.io reserves the right to change the license of future releases.
|
|
|
113
169
|
- [Pickaface](https://pickaface.net/)
|
|
114
170
|
- [Unsplash](https://unsplash.com/)
|
|
115
171
|
- [Uifaces](http://uifaces.com/)
|
|
172
|
+
- [Unavatar](https://unavatar.io/)
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting Security Issues
|
|
4
|
+
|
|
5
|
+
If you discover a security vulnerability in AdminLTE, please report it by emailing the maintainers or opening a private security advisory on GitHub. We take security seriously and will respond promptly.
|
|
6
|
+
|
|
7
|
+
## Supported Versions
|
|
8
|
+
|
|
9
|
+
| Version | Supported |
|
|
10
|
+
| ------- | ------------------ |
|
|
11
|
+
| 4.x | :white_check_mark: |
|
|
12
|
+
| 3.x | :x: |
|
|
13
|
+
| < 3.0 | :x: |
|
|
14
|
+
|
|
15
|
+
## Security Best Practices
|
|
16
|
+
|
|
17
|
+
AdminLTE is a frontend admin dashboard template. When deploying applications built with AdminLTE, follow these security best practices:
|
|
18
|
+
|
|
19
|
+
### 1. Production Deployment
|
|
20
|
+
|
|
21
|
+
- **Never expose `node_modules` directory** in production environments
|
|
22
|
+
- **Remove demo/example files** (like `index2.html`, `index3.html`) from production builds
|
|
23
|
+
- **Use a proper build process** that only includes necessary production assets
|
|
24
|
+
- **Configure web server properly** to prevent directory traversal attacks
|
|
25
|
+
|
|
26
|
+
### 2. Build Process
|
|
27
|
+
|
|
28
|
+
When deploying to production:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Build only production assets
|
|
32
|
+
npm run production
|
|
33
|
+
|
|
34
|
+
# Deploy only the dist/ directory contents you need
|
|
35
|
+
# Typically: dist/js/adminlte.min.js and dist/css/adminlte.min.css
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 3. What NOT to Deploy
|
|
39
|
+
|
|
40
|
+
Do not deploy these to production:
|
|
41
|
+
- `node_modules/` directory
|
|
42
|
+
- Example/demo HTML files (`index.html`, `index2.html`, `index3.html`, etc.)
|
|
43
|
+
- Source files (`src/` directory)
|
|
44
|
+
- Development configuration files
|
|
45
|
+
- Documentation files
|
|
46
|
+
|
|
47
|
+
## Known CVE Issues
|
|
48
|
+
|
|
49
|
+
### CVE-2021-36471 (Disputed)
|
|
50
|
+
|
|
51
|
+
**Status**: This CVE is **disputed** and does not represent a vulnerability in AdminLTE itself.
|
|
52
|
+
|
|
53
|
+
**Issue**: CVE-2021-36471 claims AdminLTE 3.1.0 has a "Directory Traversal vulnerability" that allows remote attackers to view demo pages via `/admin/index2.html` and `/admin/index3.html`.
|
|
54
|
+
|
|
55
|
+
**Clarification**:
|
|
56
|
+
- The `index2.html` and `index3.html` files are **example/demo pages** intended for developer reference during development
|
|
57
|
+
- This is **not a vulnerability in AdminLTE** - it is a **deployment misconfiguration** by website developers
|
|
58
|
+
- The issue occurs when developers incorrectly deploy:
|
|
59
|
+
- Their entire `node_modules` folder publicly
|
|
60
|
+
- Demo/example files in production environments
|
|
61
|
+
- Without proper web server configuration
|
|
62
|
+
|
|
63
|
+
**Resolution**:
|
|
64
|
+
- AdminLTE 4.x has restructured the project architecture with clear separation between development demos and production assets
|
|
65
|
+
- Follow the production deployment best practices above
|
|
66
|
+
- Only deploy the compiled production assets from `dist/js/` and `dist/css/`
|
|
67
|
+
- The original CVE researcher acknowledged this should be classified as low/info severity, not critical
|
|
68
|
+
|
|
69
|
+
**For More Information**:
|
|
70
|
+
- [GitHub Issue #4948](https://github.com/ColorlibHQ/AdminLTE/issues/4948)
|
|
71
|
+
- [CVE Record](https://www.cve.org/CVERecord?id=CVE-2021-36471) (marked as disputed)
|
|
72
|
+
|
|
73
|
+
## Secure Development
|
|
74
|
+
|
|
75
|
+
### Content Security Policy (CSP)
|
|
76
|
+
|
|
77
|
+
When implementing AdminLTE in your application, consider adding appropriate Content Security Policy headers to prevent XSS attacks.
|
|
78
|
+
|
|
79
|
+
### Authentication & Authorization
|
|
80
|
+
|
|
81
|
+
AdminLTE is a **UI template only** and does not include authentication or authorization. You must:
|
|
82
|
+
- Implement proper authentication in your backend
|
|
83
|
+
- Secure all API endpoints
|
|
84
|
+
- Use HTTPS in production
|
|
85
|
+
- Implement proper session management
|
|
86
|
+
- Follow OWASP security guidelines
|
|
87
|
+
|
|
88
|
+
### Dependencies
|
|
89
|
+
|
|
90
|
+
- Keep AdminLTE and its dependencies up to date
|
|
91
|
+
- Regularly run `npm audit` to check for vulnerabilities
|
|
92
|
+
- Review security advisories for Bootstrap and other dependencies
|
|
93
|
+
|
|
94
|
+
## Contact
|
|
95
|
+
|
|
96
|
+
For security concerns, please contact the maintainers through:
|
|
97
|
+
- GitHub Issues (for general questions)
|
|
98
|
+
- GitHub Security Advisories (for sensitive security issues)
|
|
99
|
+
- Project maintainer email (check package.json)
|