Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .spelling.dic
Original file line number Diff line number Diff line change
Expand Up @@ -74,5 +74,6 @@ unelevated
unlinkable
unpair
unpairing
unrs
unsubscription
xmark
9 changes: 9 additions & 0 deletions .stylelintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@ module.exports = {
rules: {
// Fix later
'no-descending-specificity': null,
// Theme RGB tokens are emitted as space-separated channels so we can use
// the modern `rgb(var(--seed-*-rgb) / alpha)` form consistently.
'color-function-alias-notation': 'without-alpha',
'declaration-property-value-disallowed-list': {
'/.*/': [
/rgba\(var\(--seed-[^)]+-rgb\),/,
/rgb\(var\(--seed-[^)]+-rgb\),/,
]
},
'scss/at-rule-no-unknown': [
true,
{
Expand Down
41 changes: 13 additions & 28 deletions angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
"cli": {
"analytics": false,
"packageManager": "pnpm",
"schematicCollections": [
"angular-eslint"
]
"schematicCollections": ["angular-eslint"]
},
"newProjectRoot": "projects",
"projects": {
Expand All @@ -22,31 +20,25 @@
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser-esbuild",
"builder": "@angular/build:application",
"options": {
"baseHref": "/ng-app/",
"outputPath": "../../collected_static/ng-app",
"outputPath": {
"base": "../../collected_static/ng-app"
},
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": [
"zone.js"
],
"polyfills": ["zone.js"],
"tsConfig": "tsconfig.app.json",
"inlineStyleLanguage": "scss",
"allowedCommonJsDependencies": [
"hammerjs",
"swagger-ui-dist/swagger-ui-es-bundle"
],
"allowedCommonJsDependencies": ["hammerjs", "swagger-ui-dist/swagger-ui-es-bundle"],
"assets": [
{
"glob": "**/*",
"input": "public"
}
],
"stylePreprocessorOptions": {
"includePaths": [
"src/@seed/styles"
]
"includePaths": ["src/@seed/styles"]
},
"styles": [
"src/styles/splash-screen.scss",
Expand All @@ -57,7 +49,8 @@
"src/styles/styles.scss",
"src/styles/tailwind.scss"
],
"scripts": []
"scripts": [],
"browser": "src/main.ts"
},
"configurations": {
"production": {
Expand Down Expand Up @@ -106,10 +99,7 @@
"test": {
"builder": "@angular/build:karma",
"options": {
"polyfills": [
"zone.js",
"zone.js/testing"
],
"polyfills": ["zone.js", "zone.js/testing"],
"tsConfig": "tsconfig.spec.json",
"inlineStyleLanguage": "scss",
"assets": [
Expand All @@ -118,19 +108,14 @@
"input": "public"
}
],
"styles": [
"src/styles/styles.scss"
],
"styles": ["src/styles/styles.scss"],
"scripts": []
}
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
"lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
}
}
}
Expand Down
26 changes: 26 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ export default tseslint.config(
'@typescript-eslint/no-for-in-array': 'error',
'@typescript-eslint/no-non-null-assertion': 'error',
'@typescript-eslint/no-unused-vars': 'off',
// Enable later
'@typescript-eslint/no-useless-default-assignment': 'off',
'@typescript-eslint/no-use-before-define': 'error',
'@typescript-eslint/prefer-for-of': 'error',
'@typescript-eslint/restrict-template-expressions': ['error', {
Expand Down Expand Up @@ -158,6 +160,30 @@ export default tseslint.config(
'@typescript-eslint/no-explicit-any': 'off',
},
},
{
// Angular 20.2+ marks the entire legacy trigger-based animation DSL as deprecated.
// Keep the deprecation rule active project-wide, but don't block lint on the files
// that intentionally encapsulate the existing animation layer until a full
// animate.enter/animate.leave migration is scheduled.
files: [
'src/@seed/animations/**/*.ts',
'src/@seed/components/drawer/drawer.component.ts',
'src/@seed/components/navigation/vertical/vertical.component.ts',
'src/app/app.config.ts',
],
rules: {
'@typescript-eslint/no-deprecated': 'off',
},
},
{
// chroma-js exposes `contrast` at runtime, but its published typings still model the
// API around the default export. Keep the readable call site and suppress only this
// false-positive import rule for the helper.
files: ['src/@seed/tailwind/utils/generate-contrasts.ts'],
rules: {
'import/no-named-as-default-member': 'off',
},
},
{
files: ['**/*.html'],
extends: [
Expand Down
130 changes: 64 additions & 66 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,98 +25,96 @@
"test": "ng test",
"cspell": "cspell \"**/*\"",
"eslint": "ng lint",
"eslint:fix": "prettier -w \"src/**/*.ts\" && npm run eslint -- --fix",
"eslint:fix": "prettier \"src/**/*.ts\" --write && ng lint --fix",
"lint": "run-p -c eslint prettier stylelint",
"lint:fix": "run-p -c eslint:fix prettier:fix stylelint:fix",
"prettier": "prettier -c \"src/**/*.html\"",
"prettier:fix": "npm run prettier -- -w",
"prettier": "prettier \"src/**/*.html\" --check",
"prettier:fix": "prettier \"src/**/*.html\" --write",
"stylelint": "stylelint \"src/**/*.scss\"",
"stylelint:fix": "npm run stylelint -- --fix",
"update-translations": "node --env-file=.env --no-warnings update-translations.mts"
},
"dependencies": {
"@angular/animations": "^20.0.5",
"@angular/cdk": "^20.0.4",
"@angular/common": "^20.0.5",
"@angular/compiler": "^20.0.5",
"@angular/core": "^20.0.5",
"@angular/forms": "^20.0.5",
"@angular/material": "^20.0.4",
"@angular/material-luxon-adapter": "^20.0.4",
"@angular/platform-browser": "^20.0.5",
"@angular/platform-browser-dynamic": "^20.0.5",
"@angular/router": "^20.0.5",
"@fontsource-variable/fira-code": "^5.2.5",
"@fontsource-variable/inter": "^5.1.1",
"@jsverse/transloco": "^7.5.1",
"ag-grid-angular": "^33.1.1",
"ag-grid-community": "^33.1.1",
"@angular/animations": "^21.2.6",
"@angular/cdk": "^21.2.4",
"@angular/common": "^21.2.6",
"@angular/compiler": "^21.2.6",
"@angular/core": "^21.2.6",
"@angular/forms": "^21.2.6",
"@angular/material": "^21.2.4",
"@angular/material-luxon-adapter": "^21.2.4",
"@angular/platform-browser": "^21.2.6",
"@angular/platform-browser-dynamic": "^21.2.6",
"@angular/router": "^21.2.6",
"@fontsource-variable/fira-code": "^5.2.7",
"@fontsource-variable/inter": "^5.2.8",
"@jsverse/transloco": "^8.2.1",
"ag-grid-angular": "^35.2.0",
"ag-grid-community": "^35.2.0",
"chart.js": "^4.5.1",
"chartjs-plugin-annotation": "^3.1.0",
"chartjs-plugin-zoom": "^2.2.0",
"crypto-es": "^2.1.0",
"cspell": "^8.17.3",
"crypto-es": "^3.1.3",
"cspell": "^9.7.0",
"jwt-decode": "^4.0.0",
"lodash-es": "^4.17.23",
"luxon": "^3.5.0",
"lodash-es": "^4.18.0",
"luxon": "^3.7.2",
"material-icons": "^1.13.14",
"ngx-wig": "^19.1.1",
"ol": "^10.5.0",
"ol-ext": "^4.0.31",
"ngx-wig": "^21.0.0",
"ol": "^10.8.0",
"ol-ext": "^4.0.38",
"perfect-scrollbar": "^1.5.6",
"rxjs": "~7.8.1",
"swagger-ui-dist": "^5.25.2",
"rxjs": "~7.8.2",
"swagger-ui-dist": "^5.32.1",
"tslib": "^2.8.1",
"zone.js": "~0.15.0"
"zone.js": "~0.16.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^20.0.4",
"@angular/build": "^20.0.4",
"@angular/cli": "^20.0.4",
"@angular/compiler-cli": "^20.0.5",
"@cspell/cspell-types": "^8.17.3",
"@cspell/eslint-plugin": "^8.17.3",
"@dotenvx/dotenvx": "^1.34.0",
"@eslint/js": "^9.19.0",
"@lokalise/node-api": "^13.0.0",
"@stylistic/eslint-plugin": "^3.0.1",
"@tailwindcss/typography": "^0.5.16",
"@types/chroma-js": "^2.4.5",
"@angular/build": "^21.2.5",
"@angular/cli": "^21.2.5",
"@angular/compiler-cli": "^21.2.6",
"@cspell/cspell-types": "^9.7.0",
"@cspell/eslint-plugin": "^9.7.0",
"@dotenvx/dotenvx": "^1.59.1",
"@eslint/js": "^9.39.4",
"@lokalise/node-api": "^15.6.1",
"@stylistic/eslint-plugin": "^5.10.0",
"@tailwindcss/typography": "^0.5.19",
"@types/chroma-js": "^3.1.2",
"@types/decompress": "^4.2.7",
"@types/geojson": "^7946.0.16",
"@types/jasmine": "~5.1.5",
"@types/jasmine": "~6.0.0",
"@types/lodash-es": "^4.17.12",
"@types/luxon": "^3.4.2",
"@types/node": "^22.10.6",
"@types/ol-ext": "npm:@siedlerchr/types-ol-ext@^3.6.2",
"angular-eslint": "^20.1.1",
"autoprefixer": "^10.4.20",
"chroma-js": "2.4.2",
"@types/luxon": "^3.7.1",
"@types/node": "^24.12.0",
"@types/ol-ext": "npm:@siedlerchr/types-ol-ext@^3.6.7",
"angular-eslint": "^21.3.1",
"autoprefixer": "^10.4.27",
"chroma-js": "^3.2.0",
"decompress": "^4.2.1",
"eslint": "^9.19.0",
"eslint-import-resolver-typescript": "^3.7.0",
"eslint-plugin-github": "^5.1.5",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-perfectionist": "^4.7.0",
"eslint-plugin-unused-imports": "^4.1.4",
"jasmine-core": "~5.6.0",
"eslint": "^9.39.4",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-github": "^6.0.0",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-perfectionist": "^5.7.0",
"eslint-plugin-unused-imports": "^4.4.1",
"jasmine-core": "~6.1.0",
"karma": "~6.4.4",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.1",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"karma-jasmine-html-reporter": "~2.2.0",
"npm-run-all": "^4.1.5",
"ora": "^8.2.0",
"postcss": "^8.5.1",
"prettier": "^3.5.3",
"ora": "^9.3.0",
"postcss": "^8.5.8",
"prettier": "^3.8.1",
"prettier-plugin-organize-attributes": "^1.0.0",
"prettier-plugin-tailwindcss": "^0.6.11",
"stylelint": "^16.14.1",
"stylelint-config-standard-scss": "^14.0.0",
"tailwindcss": "^3.4.17",
"tsx": "^4.19.2",
"typescript": "~5.8.3",
"typescript-eslint": "^8.22.0"
"prettier-plugin-tailwindcss": "^0.7.2",
"stylelint": "^17.6.0",
"stylelint-config-standard-scss": "^17.0.0",
"tailwindcss": "^3.4.19",
"typescript": "~5.9.3",
"typescript-eslint": "^8.58.0"
},
"scarfSettings": {
"enabled": false
Expand Down
Loading
Loading