[pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/executablebooks/mdformat: 0.7.19 → 0.7.21](https://github.com/executablebooks/mdformat/compare/0.7.19...0.7.21)
- [github.com/astral-sh/ruff-pre-commit: v0.8.3 → v0.8.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.8.3...v0.8.4)
- [github.com/pre-commit/mirrors-mypy: v1.13.0 → v1.14.0](https://github.com/pre-commit/mirrors-mypy/compare/v1.13.0...v1.14.0)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 8d3976a..86a3803 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -4,7 +4,7 @@
 repos:
   - repo: https://github.com/executablebooks/mdformat
     # Do this before other tools "fixing" the line endings
-    rev: 0.7.19
+    rev: 0.7.21
     hooks:
       - id: mdformat
         name: Format Markdown
@@ -58,7 +58,7 @@
           - -d
           - "{extends: relaxed, rules: {line-length: {max: 90}}}"
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.8.3
+    rev: v0.8.4
     hooks:
       - id: ruff
       - id: ruff-format
@@ -79,7 +79,7 @@
     hooks:
       - id: validate-pyproject
   - repo: https://github.com/pre-commit/mirrors-mypy
-    rev: v1.13.0
+    rev: v1.14.0
     hooks:
       - id: mypy
         args: ["--config-file", "pyproject.toml"]