diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml
index 0a6635a3..18b867b8 100644
--- a/.github/actions/build/action.yml
+++ b/.github/actions/build/action.yml
@@ -1,20 +1,20 @@
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@v4
+ - uses: actions/setup-node@v6
with:
- node-version: 22
- - uses: actions/cache@v4
+ node-version: 24
+ - uses: actions/cache@v5
with:
path: node_modules
key: node-modules-v1-${{ hashFiles('package-lock.json') }}
- - uses: actions/cache@v4
+ - uses: actions/cache@v5
with:
path: .angular/cache
key: build-artifacts-v1-${{ github.sha }}
restore-keys: build-artifacts-v1-
- - run: npm i
+ - run: npm ci
shell: bash
- run: npm run build-libs
shell: bash
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 32e0ab90..53d28a31 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -4,15 +4,16 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v7
- uses: ./.github/actions/build
+ - run: npx playwright install --with-deps
# - run: npm run test -- --no-watch --no-progress --browsers=ChromeHeadless
- run: npx tsx ./scripts/test-all.ts
lint:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v7
- uses: ./.github/actions/build
- run: npm run lint -- --quiet
diff --git a/.idea/runConfigurations/ng_vitest___build.xml b/.idea/runConfigurations/ng_vitest___build.xml
new file mode 100644
index 00000000..f7af8364
--- /dev/null
+++ b/.idea/runConfigurations/ng_vitest___build.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/ng_vitest___test_server.xml b/.idea/runConfigurations/ng_vitest___test_server.xml
new file mode 100644
index 00000000..5647c462
--- /dev/null
+++ b/.idea/runConfigurations/ng_vitest___test_server.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 18a94a58..e6e65cc6 100644
--- a/README.md
+++ b/README.md
@@ -13,5 +13,6 @@ This is a collection of libraries from Simonton Software, written in TypeScript
- [`ng-mat-core`](https://github.com/simontonsoftware/s-libs/tree/master/projects/ng-mat-core): Miscellaneous utilities for Angular Material
- [`signal-store`](https://github.com/simontonsoftware/s-libs/tree/master/projects/signal-store): A state management library based on Angular signals
- [`ng-dev`](https://github.com/simontonsoftware/s-libs/tree/master/projects/ng-dev): Miscellaneous utilities for Angular tests
+- [`ng-vitest`](https://github.com/simontonsoftware/s-libs/tree/master/projects/ng-vitest): Miscellaneous utilities for Angular tests that use the Vitest test runner
- [`ng-jasmine`](https://github.com/simontonsoftware/s-libs/tree/master/projects/ng-jasmine): Miscellaneous utilities for Angular tests that use the Karma test runner (which also uses Jasmine)
- [`eslint-config-ng`](https://github.com/simontonsoftware/s-libs/tree/master/projects/eslint-config-ng): Recommended default config for ESLint in an Angular project.
diff --git a/TODO.md b/TODO.md
deleted file mode 100644
index f4fcc4eb..00000000
--- a/TODO.md
+++ /dev/null
@@ -1,7 +0,0 @@
-- v12
- - Convert e2e tests to something.
-
-- Re-enable eslint rules to ban types in micro-dash. Figure it out.
-- landing page to link to all API docs
-- coveralls
- - help may be here, to combine multiple coverage runs into one report: https://github.com/angular/angular-cli/issues/11268
diff --git a/angular.json b/angular.json
index 26ae2172..92abff2a 100644
--- a/angular.json
+++ b/angular.json
@@ -26,7 +26,7 @@
"projectType": "library",
"root": "projects/app-state",
"sourceRoot": "projects/app-state/src",
- "prefix": "s",
+ "prefix": "sl",
"architect": {
"build": {
"builder": "@angular/build:ng-packagr",
@@ -68,7 +68,7 @@
},
"root": "projects/integration",
"sourceRoot": "projects/integration/src",
- "prefix": "s",
+ "prefix": "sl",
"architect": {
"build": {
"builder": "@angular/build:application",
@@ -143,7 +143,7 @@
"projectType": "library",
"root": "projects/js-core",
"sourceRoot": "projects/js-core/src",
- "prefix": "s",
+ "prefix": "sl",
"architect": {
"build": {
"builder": "@angular/build:ng-packagr",
@@ -180,7 +180,7 @@
"projectType": "library",
"root": "projects/micro-dash",
"sourceRoot": "projects/micro-dash/src",
- "prefix": "s",
+ "prefix": "sl",
"architect": {
"build": {
"builder": "@angular/build:ng-packagr",
@@ -334,7 +334,7 @@
"projectType": "library",
"root": "projects/ng-core",
"sourceRoot": "projects/ng-core/src",
- "prefix": "s",
+ "prefix": "sl",
"architect": {
"build": {
"builder": "@angular/build:ng-packagr",
@@ -371,7 +371,7 @@
"projectType": "library",
"root": "projects/ng-dev",
"sourceRoot": "projects/ng-dev/src",
- "prefix": "s",
+ "prefix": "sl",
"architect": {
"build": {
"builder": "@angular/build:ng-packagr",
@@ -408,7 +408,7 @@
"projectType": "library",
"root": "projects/ng-jasmine",
"sourceRoot": "projects/ng-jasmine/src",
- "prefix": "s",
+ "prefix": "sl",
"architect": {
"build": {
"builder": "@angular/build:ng-packagr",
@@ -482,7 +482,7 @@
"projectType": "library",
"root": "projects/rxjs-core",
"sourceRoot": "projects/rxjs-core/src",
- "prefix": "s",
+ "prefix": "sl",
"architect": {
"build": {
"builder": "@angular/build:ng-packagr",
@@ -519,7 +519,7 @@
"projectType": "library",
"root": "projects/signal-store",
"sourceRoot": "projects/signal-store/src",
- "prefix": "s",
+ "prefix": "sl",
"architect": {
"build": {
"builder": "@angular/build:ng-packagr",
@@ -551,6 +551,44 @@
}
}
}
+ },
+ "ng-vitest": {
+ "projectType": "library",
+ "root": "projects/ng-vitest",
+ "sourceRoot": "projects/ng-vitest/src",
+ "prefix": "sl",
+ "architect": {
+ "build": {
+ "builder": "@angular/build:ng-packagr",
+ "configurations": {
+ "production": {
+ "tsConfig": "projects/ng-vitest/tsconfig.lib.prod.json"
+ },
+ "development": {
+ "tsConfig": "projects/ng-vitest/tsconfig.lib.json"
+ }
+ },
+ "defaultConfiguration": "production"
+ },
+ "test": {
+ "builder": "@angular/build:unit-test",
+ "options": {
+ "tsConfig": "projects/ng-vitest/tsconfig.spec.json",
+ "browsers": ["chromium"],
+ "runnerConfig": true
+ }
+ },
+ "lint": {
+ "builder": "@angular-eslint/builder:lint",
+ "options": {
+ "lintFilePatterns": [
+ "projects/ng-vitest/**/*.ts",
+ "projects/ng-vitest/**/*.html"
+ ],
+ "eslintConfig": "projects/ng-vitest/eslint.config.js"
+ }
+ }
+ }
}
}
}
diff --git a/docs/ng-mat-core_sass/index.html b/docs/ng-mat-core_sass/index.html
index b51fee74..45e066e2 100644
--- a/docs/ng-mat-core_sass/index.html
+++ b/docs/ng-mat-core_sass/index.html
@@ -1,4 +1,4 @@
-
@s-libs/ng-mat-core - v21.0.0-next.1 Theming helpers for Angular Material are deprecated. Their latest API is much easier to use. We recommend updating to the latest techniques here: https://material.angular.dev/guide/theming . These helpers may be removed in a future major version of s-libs.
Theming
mixins
@s-libs/ng-mat-core - v21.0.0 Theming helpers for Angular Material are deprecated. Their latest API is much easier to use. We recommend updating to the latest techniques here: https://material.angular.dev/guide/theming . These helpers may be removed in a future major version of s-libs.
Theming
mixins
@mixin dark-theme-colors() { ... }Description Parameters None.
@mixin dark-theme() { ... }Description Parameters None.
@mixin light-theme() { ... }Description Parameters None.
\ No newline at end of file
+ }" data-collapsed="@mixin light-theme() { ... }">@mixin light-theme() { ... }Description Parameters None.