admin-lte 4.0.0-rc4 → 4.0.0-rc7

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 (81) hide show
  1. package/.browserslistrc +1 -0
  2. package/.claude/settings.local.json +27 -18
  3. package/CHANGELOG.md +143 -0
  4. package/CLAUDE.md +61 -88
  5. package/README.md +77 -20
  6. package/SECURITY.md +99 -0
  7. package/dist/UI/general.html +263 -72
  8. package/dist/UI/icons.html +94 -14
  9. package/dist/UI/timeline.html +108 -20
  10. package/dist/css/adminlte.css +162 -127
  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 +162 -127
  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 +91 -13
  19. package/dist/docs/color-mode.html +96 -14
  20. package/dist/docs/components/main-header.html +111 -19
  21. package/dist/docs/components/main-sidebar.html +91 -13
  22. package/dist/docs/faq.html +91 -13
  23. package/dist/docs/how-to-contribute.html +91 -13
  24. package/dist/docs/introduction.html +97 -19
  25. package/dist/docs/javascript/accessibility.html +1055 -0
  26. package/dist/docs/javascript/card-widget.html +999 -0
  27. package/dist/docs/javascript/direct-chat.html +969 -0
  28. package/dist/docs/javascript/fullscreen.html +949 -0
  29. package/dist/docs/javascript/layout.html +975 -0
  30. package/dist/docs/javascript/pushmenu.html +1028 -0
  31. package/dist/docs/javascript/treeview.html +91 -13
  32. package/dist/docs/layout.html +93 -13
  33. package/dist/docs/license.html +91 -13
  34. package/dist/examples/lockscreen.html +23 -3
  35. package/dist/examples/login-v2.html +30 -5
  36. package/dist/examples/login.html +30 -5
  37. package/dist/examples/register-v2.html +30 -5
  38. package/dist/examples/register.html +30 -5
  39. package/dist/forms/general.html +114 -19
  40. package/dist/generate/theme.html +59 -15
  41. package/dist/index.html +127 -16
  42. package/dist/index2.html +195 -33
  43. package/dist/index3.html +138 -25
  44. package/dist/js/adminlte.js +179 -272
  45. package/dist/js/adminlte.js.map +1 -1
  46. package/dist/js/adminlte.min.js +3 -3
  47. package/dist/js/adminlte.min.js.map +1 -1
  48. package/dist/layout/collapsed-sidebar-without-hover.html +943 -0
  49. package/dist/layout/collapsed-sidebar.html +91 -12
  50. package/dist/layout/fixed-complete.html +93 -15
  51. package/dist/layout/fixed-footer.html +92 -13
  52. package/dist/layout/fixed-header.html +92 -13
  53. package/dist/layout/fixed-sidebar.html +93 -13
  54. package/dist/layout/layout-custom-area.html +102 -15
  55. package/dist/layout/layout-rtl.html +92 -13
  56. package/dist/layout/logo-switch.html +44 -11
  57. package/dist/layout/sidebar-mini.html +91 -12
  58. package/dist/layout/unfixed-sidebar.html +92 -13
  59. package/dist/tables/simple.html +163 -36
  60. package/dist/widgets/cards.html +106 -13
  61. package/dist/widgets/info-box.html +178 -30
  62. package/dist/widgets/small-box.html +95 -13
  63. package/index.html +1 -1
  64. package/package.json +28 -28
  65. package/release.md +75 -0
  66. package/src/scss/_accessibility.scss +44 -6
  67. package/src/scss/_app-footer.scss +9 -0
  68. package/src/scss/_app-sidebar.scss +55 -44
  69. package/src/scss/_bootstrap-variables.scss +1 -1
  70. package/src/scss/_cards.scss +6 -4
  71. package/src/scss/_dropdown.scss +5 -28
  72. package/src/scss/adminlte.scss +1 -1
  73. package/src/scss/pages/_login_and_register.scss +1 -1
  74. package/src/ts/accessibility.ts +22 -12
  75. package/src/ts/adminlte.ts +2 -14
  76. package/src/ts/card-widget.ts +4 -2
  77. package/src/ts/layout.ts +34 -16
  78. package/src/ts/push-menu.ts +238 -72
  79. package/src/ts/treeview.ts +19 -1
  80. package/src/ts/util/index.ts +10 -0
  81. package/README 2.md +0 -106
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)
@@ -1,28 +1,37 @@
1
1
  {
2
2
  "permissions": {
3
3
  "allow": [
4
- "WebFetch(domain:github.com)",
5
- "Bash(npm run css-lint)",
4
+ "Bash(npm audit:*)",
6
5
  "Bash(npm run build:*)",
7
- "Bash(npm install)",
8
- "Bash(npm run:*)",
9
- "Bash(npm test:*)",
6
+ "Bash(npm ls:*)",
7
+ "Bash(gh pr list:*)",
8
+ "Bash(npm outdated:*)",
10
9
  "Bash(npm install:*)",
11
- "Bash(npm start)",
12
- "WebFetch(domain:adminlte.io)",
10
+ "Bash(gh pr view:*)",
11
+ "Bash(gh pr diff:*)",
13
12
  "Bash(rm:*)",
14
- "Bash(find:*)",
15
- "Bash(sed:*)",
16
- "Bash(gh pr list:*)",
17
- "Bash(npm audit:*)",
18
- "Bash(npm outdated)",
19
- "Bash(npm update:*)",
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(git tag:*)",
23
- "Bash(gh release create:*)",
24
- "Bash(npm publish:*)"
25
+ "Bash(npm view:*)",
26
+ "Bash(cat:*)",
27
+ "Bash(npm pack:*)",
28
+ "Bash(npm publish:*)",
29
+ "Bash(npm dist-tag add:*)",
30
+ "Bash(git init:*)",
31
+ "Bash(gh repo create:*)",
32
+ "Bash(git push)"
25
33
  ],
26
- "deny": []
34
+ "deny": [],
35
+ "ask": []
27
36
  }
28
- }
37
+ }
package/CHANGELOG.md CHANGED
@@ -7,6 +7,149 @@ 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-rc7] - 2026-03-10
11
+
12
+ ### Added
13
+
14
+ - **Sidebar Without Hover:** New `sidebar-without-hover` body class that prevents collapsed mini sidebar from expanding on hover (#5837)
15
+ - New demo page at `layout/collapsed-sidebar-without-hover.html`
16
+ - **JavaScript Documentation:** Added documentation pages for all JS components
17
+ - Layout, Card Widget, Direct Chat, Fullscreen, and Accessibility modules
18
+ - Updated PushMenu documentation with configuration options and responsive behavior
19
+ - All 7 JS components now fully documented in the sidebar navigation
20
+ - **Accessibility Module:** WCAG 2.1 AA compliance features (skip links, focus management, keyboard navigation, reduced motion, live announcements)
21
+ - **Print Layout Fix:** Sidebar and main content now both visible when printing (#5996)
22
+
23
+ ### Changed
24
+
25
+ - **Sidebar Persistence:** `enablePersistence` now defaults to `false` (was `true`). Opt in via `data-enable-persistence="true"` on `.app-sidebar`. **BREAKING CHANGE**
26
+ - **Layout Plugin Refactor:** Single Layout instance with persistent hold-transition timer, proper cleanup on resize (#5956)
27
+ - **PushMenu Plugin Refactor:** Single PushMenu instance with proper responsive logic, config from data attributes, mobile-aware state management (#5954)
28
+ - **Login/Register Box:** Increased width from 360px to 400px (#5963)
29
+
30
+ ### Fixed
31
+
32
+ - **Fixed Footer with Layout Fixed:** Footer now stays pinned at the bottom when using both `.fixed-footer` and `.layout-fixed` (#5805)
33
+ - **Mobile Sidebar Scroll Chaining:** Added `overscroll-behavior: contain` to prevent page scroll when scrolling sidebar on mobile (#5864)
34
+ - **Sidebar Flicker on Load:** Resolved by layout refactor fixing duplicate initialization and broken hold-transition timer (#5952)
35
+ - **Bootstrap Modal Escape Key:** Accessibility module no longer intercepts Escape key when a Bootstrap modal is open (#5993)
36
+ - **Pagination Border Radius:** Fixed `calc()` syntax in `_bootstrap-variables.scss` to match Bootstrap 5.3 format (#5951)
37
+ - **slideUp/slideDown at Duration 0:** Added early return guard for zero/near-zero animation durations (#5964)
38
+ - **TypeScript Comments in Build:** Added `removeComments: true` to tsconfig.json for smaller unminified bundles (#5953)
39
+
40
+ ### Updated
41
+
42
+ - **Dependencies:** Updated all packages to latest semver-compatible versions
43
+ - astro: 5.x → 6.0.0
44
+ - @astrojs/mdx: 4.x → 5.0.0
45
+ - @astrojs/check: 0.9.6 → 0.9.7
46
+ - @rollup/plugin-typescript: 12.3.0 → 12.3.1
47
+ - @typescript-eslint/eslint-plugin: 8.48.1 → 8.50.0
48
+ - @typescript-eslint/parser: 8.48.1 → 8.50.0
49
+ - autoprefixer: 10.4.22 → 10.4.23
50
+ - eslint: 9.39.1 → 9.39.4
51
+ - postcss: 8.5.7 → 8.5.8
52
+ - rollup: 4.53.3 → 4.59.0
53
+ - sass: 1.94.2 → 1.97.3
54
+ - terser: 5.44.1 → 5.44.3
55
+ - typescript: 5.9.2 → 5.9.3
56
+ - **Bundlewatch:** Updated adminlte.js size limit to 5.2 kB
57
+
58
+ ## [4.0.0-rc6] - 2025-12-08
59
+
60
+ ### Security
61
+
62
+ - **Fixed 4 Security Vulnerabilities:** Resolved all npm audit security issues
63
+ - Fixed high severity reflected XSS vulnerability in Astro server islands
64
+ - Fixed moderate severity authentication bypass via url.pathname in Astro
65
+ - Fixed moderate severity stored XSS in Astro Cloudflare adapter /_image endpoint
66
+ - Fixed moderate severity unsanitized class attribute in mdast-util-to-hast
67
+ - All vulnerabilities resolved by updating to Astro 5.16.4+
68
+
69
+ ### Added
70
+
71
+ - **Sidebar State Persistence:** New feature to remember sidebar collapsed/expanded state
72
+ - Sidebar state now persists across page refreshes using localStorage
73
+ - Configurable via `enablePersistence` option (default: `true`)
74
+ - SSR-safe implementation with proper environment checks
75
+ - Mobile-aware: doesn't restore state on small screens (respects responsive breakpoints)
76
+ - Graceful error handling for private browsing mode
77
+ - Storage key: `lte.sidebar.state`
78
+
79
+ ### Changed
80
+
81
+ - **GitHub Actions:** Updated all workflows to Node.js 22 (from Node.js 18)
82
+ - Node.js 18 reached End-of-Life on April 30, 2025
83
+ - Node.js 22 is the current Active LTS (supported until April 2027)
84
+ - Updated `setup-node` action from v3 to v4 across all workflows
85
+ - Updated CodeQL actions from v2 to v3
86
+ - Added `FORCE_COLOR: 2` environment variable to codeql.yml for consistency
87
+
88
+ ### Fixed
89
+
90
+ - **Release Workflow:** Fixed zip command in release.yml
91
+ - Corrected `-d` flag to `-r` for recursive directory zipping
92
+ - Fixed filename inconsistency in release artifacts
93
+ - **Nested Card Expand Icon:** Fixed issue #5909 where nested collapsed cards didn't show expand icon
94
+ - Updated CSS selectors to use direct child (>) scoping for card state icons
95
+ - Collapse/expand icons now correctly display for nested cards independently
96
+ - Card body/footer display rules now only affect direct children, not nested cards
97
+ - **Card Widget JavaScript:** Fixed nested card collapse/expand affecting child cards
98
+ - Added `:scope >` selector to only target direct card-body/footer children
99
+ - Prevents parent card collapse from affecting nested card animations
100
+
101
+ ### Updated
102
+
103
+ - **Dependencies:** Updated 15+ packages to latest versions
104
+ - @astrojs/check: 0.9.5 → 0.9.6
105
+ - @astrojs/mdx: 4.3.9 → 4.3.12
106
+ - @rollup/plugin-typescript: 12.1.3 → 12.3.0
107
+ - @typescript-eslint/eslint-plugin: 8.46.2 → 8.48.1
108
+ - @typescript-eslint/parser: 8.46.2 → 8.48.1
109
+ - astro: 5.15.6 → 5.16.4 (includes security fixes)
110
+ - autoprefixer: 10.4.21 → 10.4.22
111
+ - eslint: 9.39.0 → 9.39.1
112
+ - eslint-plugin-astro: 1.4.0 → 1.5.0
113
+ - nodemon: 3.1.10 → 3.1.11
114
+ - prettier: 3.5.3 → 3.7.4
115
+ - rimraf: 6.1.0 → 6.1.2
116
+ - rollup: 4.52.4 → 4.53.3
117
+ - sass: 1.93.2 → 1.94.2
118
+ - stylelint: 16.25.0 → 16.26.1
119
+ - terser: 5.44.0 → 5.44.1
120
+
121
+ ## [4.0.0-rc5] - 2025-10-14
122
+
123
+ ### Updated
124
+ - **Dependencies:** Updated 17+ packages to latest versions for improved security and performance
125
+ - @astrojs/mdx: 4.3.0 → 4.3.7
126
+ - @typescript-eslint/eslint-plugin: 8.36.0 → 8.46.1
127
+ - @typescript-eslint/parser: 8.36.0 → 8.46.1
128
+ - astro: 5.11.0 → 5.14.4
129
+ - bootstrap: 5.3.7 → 5.3.8
130
+ - concurrently: 9.2.0 → 9.2.1
131
+ - cross-env: 7.0.3 → 10.1.0 (major version)
132
+ - eslint: 9.30.1 → 9.37.0
133
+ - eslint-config-xo: 0.47.0 → 0.49.0
134
+ - eslint-config-xo-typescript: 8.0.1 → 9.0.0 (major version)
135
+ - eslint-plugin-unicorn: 59.0.1 → 61.0.2
136
+ - fs-extra: 11.3.0 → 11.3.2
137
+ - rollup: 4.44.2 → 4.52.4
138
+ - sass: 1.89.2 → 1.93.2
139
+ - stylelint: 16.21.1 → 16.25.0
140
+ - terser: 5.43.1 → 5.44.0
141
+ - typescript: 5.8.3 → 5.9.3
142
+
143
+ ### Fixed
144
+ - **Security Vulnerabilities:** Resolved 2 security issues
145
+ - Fixed high severity DoS vulnerability in axios (updated to 0.30.2+)
146
+ - Fixed critical vulnerability in form-data random function (updated to 4.0.4+)
147
+
148
+ ### Removed
149
+ - **Deprecated Files:** Removed `.eslintignore` file
150
+ - ESLint ignores are now properly configured in `eslint.config.js`
151
+ - Eliminates deprecation warnings in ESLint 9.x
152
+
10
153
  ## [4.0.0-rc4] - 2025-07-10
11
154
 
12
155
  ### 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-based admin dashboard template with TypeScript components and SCSS styling. The project uses Astro for documentation generation and includes comprehensive build tooling for development and production.
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
- ## Development Commands
9
+ ## Build Commands
10
10
 
11
- ### Start Development
12
11
  ```bash
13
- npm start # Start development server with file watching (opens http://localhost:3000)
14
- npm run dev # Same as npm start
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 Commands
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 # Build CSS only (compile + prefix + RTL + minify)
27
- npm run js # Build JavaScript only (compile + minify)
28
- npm run assets # Process assets only
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
- ### Linting and Quality
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
- ### Individual Build Steps
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
- ## Architecture
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
- ### Core Structure
50
- - **src/ts/**: TypeScript source files for UI components
51
- - **src/scss/**: SCSS source files for styling
52
- - **src/html/**: Astro-based documentation and examples
53
- - **src/config/**: Build configuration files
54
- - **src/assets/**: Static assets (images, etc.)
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-rc3
12
+ ## What's New in v4.0.0-rc7
13
13
 
14
- **Production Deployment & Cross-Platform Compatibility** - This release resolves critical production deployment issues:
14
+ **Bug Fixes, Refactors & Documentation** - Major plugin refactors, complete JS documentation, and new features:
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
+ - **Layout & PushMenu Refactors** - Single-instance architecture, proper responsive logic, configurable via data attributes
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
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
+ - Fixed footer now works correctly with `layout-fixed` (#5805)
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
29
+
30
+ **Install the latest:**
31
+ ```bash
32
+ npm install admin-lte@4.0.0-rc7
33
+ ```
29
34
 
30
35
  See the [CHANGELOG.md](CHANGELOG.md) for complete details.
31
36
 
@@ -67,9 +72,9 @@ To build for production:
67
72
 
68
73
  ## Browser Support
69
74
 
70
- AdminLTE supports all modern browsers with the latest Bootstrap 5.3.7:
75
+ AdminLTE supports all modern browsers with the latest Bootstrap 5.3.8:
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
+ &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
+
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)