admin-lte 4.0.0-rc3 → 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.
Files changed (68) hide show
  1. package/.browserslistrc +1 -0
  2. package/.claude/settings.local.json +33 -0
  3. package/CHANGELOG.md +130 -0
  4. package/CLAUDE.md +79 -0
  5. package/README.md +85 -19
  6. package/SECURITY.md +99 -0
  7. package/dist/UI/general.html +226 -101
  8. package/dist/UI/icons.html +57 -43
  9. package/dist/UI/timeline.html +75 -53
  10. package/dist/css/adminlte.css +134 -114
  11. package/dist/css/adminlte.css.map +1 -1
  12. package/dist/css/adminlte.min.css +2 -2
  13. package/dist/css/adminlte.min.css.map +1 -1
  14. package/dist/css/adminlte.rtl.css +134 -114
  15. package/dist/css/adminlte.rtl.css.map +1 -1
  16. package/dist/css/adminlte.rtl.min.css +2 -2
  17. package/dist/css/adminlte.rtl.min.css.map +1 -1
  18. package/dist/docs/browser-support.html +54 -42
  19. package/dist/docs/color-mode.html +69 -53
  20. package/dist/docs/components/main-header.html +79 -53
  21. package/dist/docs/components/main-sidebar.html +54 -42
  22. package/dist/docs/faq.html +54 -42
  23. package/dist/docs/how-to-contribute.html +54 -42
  24. package/dist/docs/introduction.html +59 -47
  25. package/dist/docs/javascript/pushmenu.html +876 -0
  26. package/dist/docs/javascript/treeview.html +54 -42
  27. package/dist/docs/layout.html +56 -42
  28. package/dist/docs/license.html +54 -42
  29. package/dist/examples/lockscreen.html +24 -28
  30. package/dist/examples/login-v2.html +31 -30
  31. package/dist/examples/login.html +31 -30
  32. package/dist/examples/register-v2.html +31 -30
  33. package/dist/examples/register.html +31 -30
  34. package/dist/forms/general.html +77 -48
  35. package/dist/generate/theme.html +65 -45
  36. package/dist/index.html +99 -54
  37. package/dist/index2.html +179 -83
  38. package/dist/index3.html +104 -57
  39. package/dist/js/adminlte.js +112 -17
  40. package/dist/js/adminlte.js.map +1 -1
  41. package/dist/js/adminlte.min.js +2 -2
  42. package/dist/js/adminlte.min.js.map +1 -1
  43. package/dist/layout/collapsed-sidebar.html +54 -41
  44. package/dist/layout/fixed-complete.html +56 -44
  45. package/dist/layout/fixed-footer.html +55 -42
  46. package/dist/layout/fixed-header.html +55 -42
  47. package/dist/layout/fixed-sidebar.html +56 -42
  48. package/dist/layout/layout-custom-area.html +65 -44
  49. package/dist/layout/layout-rtl.html +55 -42
  50. package/dist/layout/logo-switch.html +51 -42
  51. package/dist/layout/sidebar-mini.html +54 -41
  52. package/dist/layout/unfixed-sidebar.html +55 -42
  53. package/dist/tables/simple.html +126 -65
  54. package/dist/widgets/cards.html +69 -42
  55. package/dist/widgets/info-box.html +141 -59
  56. package/dist/widgets/small-box.html +58 -42
  57. package/index.html +1 -1
  58. package/package.json +30 -29
  59. package/src/scss/_accessibility.scss +9 -8
  60. package/src/scss/_app-sidebar.scss +11 -1
  61. package/src/scss/_cards.scss +6 -4
  62. package/src/scss/_dropdown.scss +5 -28
  63. package/src/scss/adminlte.scss +1 -1
  64. package/src/ts/accessibility.ts +13 -5
  65. package/src/ts/adminlte.ts +1 -1
  66. package/src/ts/card-widget.ts +4 -2
  67. package/src/ts/push-menu.ts +94 -8
  68. package/src/ts/treeview.ts +19 -1
package/.browserslistrc CHANGED
@@ -14,3 +14,4 @@ not Explorer <= 11
14
14
  not ie 11
15
15
  not android 4.4.3
16
16
  not ios_saf < 15.4
17
+ not kaios <= 2.5 # fix floating label issues in Firefox (see https://github.com/postcss/autoprefixer/issues/1533)
@@ -0,0 +1,33 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(npm audit:*)",
5
+ "Bash(npm run build:*)",
6
+ "Bash(npm ls:*)",
7
+ "Bash(gh pr list:*)",
8
+ "Bash(npm outdated:*)",
9
+ "Bash(npm install:*)",
10
+ "Bash(gh pr view:*)",
11
+ "Bash(gh pr diff:*)",
12
+ "Bash(rm:*)",
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:*)",
23
+ "Bash(git add:*)",
24
+ "Bash(git commit:*)",
25
+ "Bash(npm view:*)",
26
+ "Bash(cat:*)",
27
+ "Bash(npm pack:*)",
28
+ "Bash(npm publish:*)"
29
+ ],
30
+ "deny": [],
31
+ "ask": []
32
+ }
33
+ }
package/CHANGELOG.md CHANGED
@@ -5,6 +5,136 @@ All notable changes to AdminLTE will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [Unreleased]
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
+
105
+ ## [4.0.0-rc4] - 2025-07-10
106
+
107
+ ### Updated
108
+ - **Dependencies:** Updated 8 packages to latest versions
109
+ - @rollup/plugin-typescript: 12.1.3 → 12.1.4
110
+ - @typescript-eslint/eslint-plugin: 8.35.1 → 8.36.0
111
+ - @typescript-eslint/parser: 8.35.1 → 8.36.0
112
+ - astro: 5.10.0 → 5.11.0
113
+ - eslint: 9.30.0 → 9.30.1
114
+ - prettier: 3.5.3 → 3.6.2
115
+ - rollup: 4.44.0 → 4.44.2
116
+ - stylelint: 16.21.0 → 16.21.1
117
+
118
+ ### Fixed
119
+ - **Windows Build Compatibility:** Fixed npm scripts to work cross-platform by replacing Unix-specific shell commands with `shx`
120
+ - Updated `copy-assets` script to use `shx mkdir` and `shx cp` commands
121
+ - Updated `flatten-build` script to use `shx cp` and `shx rm` commands
122
+ - Added `shx` package as dev dependency for cross-platform shell command support
123
+ - Resolves build failures on Windows systems with "The syntax of the command is incorrect" errors
124
+ - **TeamViewer Modal Compatibility:** Fixed modal fade animations for remote desktop compatibility
125
+ - Updated accessibility CSS to use `transition: none` and `opacity: 1` instead of `display: block`
126
+ - Maintains WCAG 2.1 AA compliance while ensuring modals work properly in TeamViewer sessions
127
+ - Added specific transform overrides for modal dialogs in reduced motion mode
128
+ - **Mobile Sidebar Scrolling:** Fixed sidebar closing unexpectedly when scrolling on mobile devices
129
+ - Updated touch event handling to differentiate between tap and scroll gestures
130
+ - Added proper overflow properties to sidebar wrapper for mobile viewport
131
+ - Sidebar now remains open during scroll operations on touch devices
132
+ - Resolves issue where scrolling in sidebar would immediately close it on mobile browsers
133
+ - **Image Path Resolution:** Fixed mobile image loading by using relative paths in HTML
134
+ - **Root Cause:** Absolute paths like `/assets/img/user.jpg` caused 404 errors on mobile
135
+ - **Solution:** Generate relative image paths in Astro components based on page location
136
+ - **Result:** Images now load correctly on all devices and deployment scenarios
137
+
8
138
  ## [4.0.0-rc3] - 2025-06-24
9
139
 
10
140
  ### Production Deployment & Cross-Platform Compatibility
package/CLAUDE.md ADDED
@@ -0,0 +1,79 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
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
+
9
+ ## Build Commands
10
+
11
+ ```bash
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)
17
+ ```
18
+
19
+ ### Individual Build Tasks
20
+
21
+ ```bash
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
26
+ ```
27
+
28
+ ## Architecture
29
+
30
+ ### Source Structure
31
+
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
73
+
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-rc3
12
+ ## What's New in v4.0.0-rc6
13
13
 
14
- **Production Deployment & Cross-Platform Compatibility** - This release resolves critical production deployment issues:
14
+ **Security & Feature Release** - Important security fixes and new sidebar persistence feature:
15
15
 
16
- - **Fixed Production Builds** - Resolved CSS/JS path issues, sidebar navigation, and image loading in all deployment scenarios
17
- - **Smart Path Resolution** - Automatic relative path calculation works for root deployment, sub-folders, and CDN hosting
18
- - **RTL CSS Fix** - Eliminated rtlcss interference with standard LTR production builds
19
- - **Updated Dependencies** - Bootstrap 5.3.7, Bootstrap Icons 1.13.1, OverlayScrollbars 2.11.0
20
- - **Zero Console Errors** - Fixed all CDN integrity mismatches and runtime issues
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
- - ✅ Development and production environments now behave identically
25
- - ✅ Images, CSS, and JavaScript load correctly in any deployment structure
26
- - ✅ Sidebar navigation displays properly with badges and arrow indicators
27
- - ✅ All CDN resources load without console errors
28
- - ✅ Complete production build included in repository for easy deployment
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,10 +74,75 @@ 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
 
81
+ ## Platform Support
82
+
83
+ AdminLTE v4 build scripts work cross-platform:
84
+ - **Windows** - Command Prompt, PowerShell, Git Bash
85
+ - **macOS** - Terminal, iTerm2
86
+ - **Linux** - Bash, Zsh, and other Unix shells
87
+
88
+ All npm scripts use cross-platform utilities to ensure consistent behavior across different operating systems.
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
+ &nbsp;&nbsp;
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>&nbsp;&nbsp;
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>&nbsp;&nbsp;
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>&nbsp;&nbsp;
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>&nbsp;&nbsp;
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>&nbsp;&nbsp;
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>&nbsp;&nbsp;
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>&nbsp;&nbsp;
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
+
76
146
  ## Contributing
77
147
 
78
148
  - Highly welcome.
@@ -86,11 +156,6 @@ AdminLTE supports all modern browsers with the latest Bootstrap 5.3.7:
86
156
  - After installation completes, run `npm start`
87
157
  - Cool, Send your changes in PR to `master` branch.
88
158
 
89
- ## Sponsorship
90
-
91
- Support AdminLTE development by becoming a sponsor.
92
- [Github Sponsors](https://github.com/sponsors/danny007in) or
93
- [PayPal](https://www.paypal.me/daniel007in)
94
159
 
95
160
  ## License
96
161
 
@@ -104,3 +169,4 @@ AdminLTE.io reserves the right to change the license of future releases.
104
169
  - [Pickaface](https://pickaface.net/)
105
170
  - [Unsplash](https://unsplash.com/)
106
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)