Skip to content

Commit e13df78

Browse files
committed
chore(release): 4.10.1
1 parent 5e44b58 commit e13df78

240 files changed

Lines changed: 3821 additions & 4992 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/CONTRIBUTING.md‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@ Contributions are always **welcome and recommended**! Here is how for beginner's
1616
```
1717
* Create a new branch from `master`
1818
3. Compile dist files (Development) :
19-
* To compile the dist files you need Node.js 18 or higher/npm (node package manager)
20-
* `npm install` (install npm deps)
21-
* `npm run dev` (developer mode, autocompile with browsersync support for live demo)
19+
* To compile the dist files you need Node.js 22.22.3+, 24.16.0+, or 26.3.0+ and npm 10+
20+
* `npm ci` (install the locked dependency tree)
21+
* `npm run dev` (developer mode, asset watchers and Astro live demo at http://localhost:3000)
2222
* Make your changes only in `./src` Folder OR `package.json` in any files which are necessary for contribution
2323
* Do not make changes in `./dist/**` Because it contains compiled files and do not include in PR (Pull Request)
24-
* `npm run production` (compile css/js files and test all pages are perfectly working fine, before creating a pull request)
24+
* `npm test` (unit tests), then `npm run build` and `npm run test-browser` / `npm run test-a11y` (install browsers with `npx playwright install chromium`)
25+
* `npm run production` (lint, run unit tests, compile assets, and check gzip budgets before creating a pull request)
2526
4. Create a pull request to `master` branch
2627

2728
## Online one-click setup for contributing

‎.github/workflows/a11y.yml‎

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,18 @@ permissions:
1616
jobs:
1717
axe:
1818
runs-on: ubuntu-latest
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
color-scheme: [light, dark]
1923
steps:
2024
- name: Clone repository
21-
uses: actions/checkout@v6
25+
uses: actions/checkout@v7
2226
with:
2327
persist-credentials: false
2428

2529
- name: Set up Node.js
26-
uses: actions/setup-node@v6
30+
uses: actions/setup-node@v7
2731
with:
2832
node-version: "${{ env.NODE }}"
2933
cache: npm
@@ -32,14 +36,12 @@ jobs:
3236
run: npm ci
3337

3438
- name: Install Playwright Chromium
35-
# Kept out of devDependencies so the other workflows' npm ci stays
36-
# lean; --no-save leaves package.json and the lockfile untouched.
37-
run: |
38-
npm install --no-save playwright
39-
npx playwright install --with-deps chromium
39+
run: npx playwright install --with-deps chromium
4040

4141
- name: Build distribution files
4242
run: npm run build
4343

4444
- name: Run axe accessibility checks
4545
run: npm run test-a11y
46+
env:
47+
A11Y_COLOR_SCHEME: ${{ matrix.color-scheme }}

‎.github/workflows/bundlewatch.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ jobs:
2020

2121
steps:
2222
- name: Clone repository
23-
uses: actions/checkout@v6
23+
uses: actions/checkout@v7
2424
with:
2525
persist-credentials: false
2626

2727
- name: Set up Node.js
28-
uses: actions/setup-node@v6
28+
uses: actions/setup-node@v7
2929
with:
3030
node-version: "${{ env.NODE }}"
3131
cache: npm

‎.github/workflows/codeql.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@ jobs:
2626

2727
steps:
2828
- name: Checkout repository
29-
uses: actions/checkout@v6
29+
uses: actions/checkout@v7
3030
with:
3131
persist-credentials: false
3232

3333
# Initializes the CodeQL tools for scanning.
3434
- name: Initialize CodeQL
35-
uses: github/codeql-action/init@v3
35+
uses: github/codeql-action/init@v4
3636
with:
3737
languages: "javascript"
3838
config-file: ./.github/codeql/codeql-config.yml
3939
queries: +security-and-quality
4040

4141
- name: Autobuild
42-
uses: github/codeql-action/autobuild@v3
42+
uses: github/codeql-action/autobuild@v4
4343

4444
- name: Perform CodeQL Analysis
45-
uses: github/codeql-action/analyze@v3
45+
uses: github/codeql-action/analyze@v4
4646
with:
4747
category: "/language:javascript"

‎.github/workflows/docs.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ jobs:
2020

2121
steps:
2222
- name: Clone repository
23-
uses: actions/checkout@v6
23+
uses: actions/checkout@v7
2424
with:
2525
persist-credentials: false
2626

2727
- name: Set up Node.js
28-
uses: actions/setup-node@v6
28+
uses: actions/setup-node@v7
2929
with:
3030
node-version: "${{ env.NODE }}"
3131
cache: npm

‎.github/workflows/lint.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ jobs:
2020

2121
steps:
2222
- name: Clone repository
23-
uses: actions/checkout@v6
23+
uses: actions/checkout@v7
2424
with:
2525
persist-credentials: false
2626

2727
- name: Set up Node.js
28-
uses: actions/setup-node@v6
28+
uses: actions/setup-node@v7
2929
with:
3030
node-version: "${{ env.NODE }}"
3131
cache: npm

‎.github/workflows/release.yml‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,19 @@ env:
1212
jobs:
1313
build:
1414
runs-on: ubuntu-latest
15+
permissions:
16+
contents: write
1517
steps:
1618
- name: Clone repository
17-
uses: actions/checkout@v6
19+
uses: actions/checkout@v7
1820
with:
1921
persist-credentials: false
2022

2123
- name: Set env
2224
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
2325

2426
- name: Set up Node.js
25-
uses: actions/setup-node@v6
27+
uses: actions/setup-node@v7
2628
with:
2729
node-version: "${{ env.NODE }}"
2830
cache: npm
@@ -39,7 +41,7 @@ jobs:
3941
args: "zip -qq -r admin-lte-${{env.RELEASE_VERSION}}.zip dist"
4042

4143
- name: Release
42-
uses: softprops/action-gh-release@v2
44+
uses: softprops/action-gh-release@v3
4345
if: startsWith(github.ref, 'refs/tags/')
4446
with:
4547
# Let GitHub auto-generate the release notes from PRs / commits

‎.github/workflows/tests.yml‎

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
unit:
15+
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
node: [22, 24, 26]
20+
steps:
21+
- uses: actions/checkout@v7
22+
with:
23+
persist-credentials: false
24+
- uses: actions/setup-node@v7
25+
with:
26+
node-version: ${{ matrix.node }}
27+
cache: npm
28+
- run: npm ci
29+
- run: npm test
30+
- run: npm run js-types
31+
32+
browser:
33+
runs-on: ubuntu-latest
34+
timeout-minutes: 20
35+
strategy:
36+
fail-fast: false
37+
matrix:
38+
browser: [chromium, firefox, webkit]
39+
steps:
40+
- uses: actions/checkout@v7
41+
with:
42+
persist-credentials: false
43+
- uses: actions/setup-node@v7
44+
with:
45+
node-version: 22
46+
cache: npm
47+
- run: npm ci
48+
- run: npx playwright install --with-deps ${{ matrix.browser }}
49+
- run: npm run build
50+
- run: npm run test-browser
51+
env:
52+
BROWSERS: ${{ matrix.browser }}

‎AGENTS.md‎

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Repository Guidelines
2+
3+
## Project Structure & Module Organization
4+
5+
AdminLTE 4 is a Bootstrap 5 dashboard template with vanilla TypeScript components.
6+
7+
- `src/ts/`: component behavior; `adminlte.ts` is the library entry point, and `util/` holds shared helpers.
8+
- `src/scss/`: Sass styles, component partials, mixins, and optional color themes.
9+
- `src/html/`: Astro demo/documentation pages and reusable Astro/MDX components.
10+
- `src/assets/`: source images and other static assets.
11+
- `src/config/`: Rollup, Astro, PostCSS, and asset-build configuration.
12+
- `tests/unit/`: unit tests and shared setup; `tests/a11y.mjs` checks built pages.
13+
- `dist/` and `src/html/public/`: generated output. Edit source files; exclude compiled `dist/` changes from contributor PRs.
14+
15+
## Build, Test, and Development Commands
16+
17+
Use Node.js 22.22.3+, 24.16.0+, or 26.3.0+ and npm 10+. Install with `npm ci`.
18+
19+
- `npm start`: run asset watchers and the Astro dev server at `http://localhost:3000`.
20+
- `npm run build`: clean and rebuild CSS, JavaScript, declarations, assets, and demo/documentation HTML.
21+
- `npm run css` / `npm run js`: rebuild styles or JavaScript independently.
22+
- `npm run lint`: check ESLint, Stylelint, Astro, and lockfile rules.
23+
- `npm test`: run Vitest once; `npm run test-watch` enables watch mode.
24+
- `npm run production`: clean, lint, test, compile, and check local gzip budgets.
25+
26+
## Coding Style & Naming Conventions
27+
28+
Use two-space indentation, UTF-8, LF endings, and final newlines as defined in `.editorconfig`. Follow neighboring code and repository ESLint/Stylelint rules. Prettier is configured with single quotes, semicolons, and a 100-character line width; Astro has its own configuration.
29+
30+
Use strict TypeScript, PascalCase component classes, camelCase methods, and kebab-case component filenames such as `card-widget.ts`. Prefix Sass partials with `_`, and follow existing Bootstrap-compatible selectors and `data-lte-*` attributes.
31+
32+
## Testing Guidelines
33+
34+
Add behavior and regression tests as `tests/unit/<component>.test.ts`. Vitest uses `happy-dom` and `tests/unit/setup.ts`; no numeric coverage threshold is configured. Cover DOM state, events, and cleanup where relevant.
35+
36+
For UI changes, build first, then run `npm run test-a11y` and `npm run test-browser`. Install Chromium with `npx playwright install chromium`; set `BROWSERS=chromium,firefox,webkit` for all engines. Serious and critical axe violations fail the check. Review responsive layouts, dark mode, and RTL manually.
37+
38+
## Commit & Pull Request Guidelines
39+
40+
Follow the prevalent `type(scope): summary` commit format, for example `fix(header): prevent horizontal overflow`; common types include `feat`, `fix`, `docs`, and `chore`.
41+
42+
Branch from and target `master`. Keep PRs focused, describe the behavior change, link relevant issues, and report validation commands/results. Include screenshots for visual changes. Follow `.github/CONTRIBUTING.md` and ensure third-party contributions are appropriately licensed.

‎CHANGELOG.md‎

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,31 @@ All notable changes to AdminLTE will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [4.10.1] - 2026-10-08
9+
10+
### Changed
11+
12+
- Refresh build, lint, formatting, and testing dependencies to the latest compatible stable releases, including Astro 7.3.7, Rollup 4.64.2, Playwright 1.64.0, Vitest 5.0.3, Sass 1.105.1, and ESLint 10.12.0. Replace `npm-run-all` with the maintained `npm-run-all2` and declare the previously implicit `unist-util-visit` dependency.
13+
- Update pinned demo and integration libraries, including FullCalendar 7.1.1, Tabulator 6.6.1, OverlayScrollbars 2.16.0, jsVectorMap 1.7.0, and Tom Select 2.6.2. Migrate FullCalendar's stylesheet, Bootstrap theme, draggable, and event-colour APIs, and refresh existing CDN integrity hashes.
14+
- Building from source requires Node.js 22.22.3+, 24.16.0+, or 26.3.0+ and npm 10+, declared through `devEngines`; the published package retains its existing Node.js engine requirement. TypeScript remains on 6.0.3 because the latest Astro checker and TypeScript ESLint releases do not yet support TypeScript 7.
15+
16+
### Fixed
17+
18+
- Synchronize every fullscreen control, including when initializing a layout already in fullscreen, without changing public events or component APIs. Scope icon updates to fullscreen controls so they do not interfere with card-maximize buttons.
19+
- Prevent shared-header overflow at tablet widths, preserve local dates in calendar events, and tolerate an unavailable OverlayScrollbars CDN script.
20+
- Improve demo filter labels, grid semantics, product-link names, calendar accessible names, and light/dark contrast. Dark-mode outline buttons and documentation links now use theme-aware colour tokens; fixed palette swatches retain a white demonstration background.
21+
- Check Astro source pages explicitly, fix previously hidden palette typing errors, and repair the ESM Prettier configuration and Unicorn recommended preset.
22+
23+
### Added
24+
25+
- Playwright checks for every built HTML page, responsive light/dark layouts, RTL, and key plugin interactions, with Chromium, Firefox, and WebKit CI jobs.
26+
- Node.js 22/24/26 unit-test CI, light/dark accessibility CI, and fullscreen regression tests. Missing Playwright now fails accessibility checks rather than silently skipping them.
27+
- `npm run test-size` enforces all existing gzip budgets locally without an external reporting service; `npm run production` uses this check. Bundlewatch remains available for CI reporting.
28+
29+
### Security
30+
31+
- Refresh security overrides, including a patched PostCSS selector parser. Production dependencies audit clean. Development tooling still includes `braces@3.0.3`, affected by [GHSA-vfj7-8cjw-p6xm](https://github.com/advisories/GHSA-vfj7-8cjw-p6xm); no patched release is available. Its twenty propagated npm audit findings remain unresolved rather than downgrading the current toolchain.
32+
833
## [4.10.0] - 2026-10-01
934

1035
### Changed
@@ -992,4 +1017,4 @@ This release represents a complete modernization of the AdminLTE codebase, bring
9921017
1. Run `npm install` to get latest dependencies
9931018
2. Use `npm start` for development
9941019
3. Use `npm run production` for production builds
995-
4. Review any custom ESLint configurations for compatibility
1020+
4. Review any custom ESLint configurations for compatibility

0 commit comments

Comments
 (0)