diff --git a/web/package-lock.json b/web/package-lock.json
index a5ab3874a..e254e824b 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -23,17 +23,19 @@
"@start9labs/argon2": "^0.1.0",
"@start9labs/emver": "^0.1.5",
"@start9labs/start-sdk": "file:../sdk/dist",
- "@taiga-ui/addon-charts": "3.77.1",
- "@taiga-ui/addon-commerce": "3.77.1",
- "@taiga-ui/addon-mobile": "3.77.1",
- "@taiga-ui/cdk": "3.77.1",
- "@taiga-ui/core": "3.77.1",
- "@taiga-ui/experimental": "3.77.1",
- "@taiga-ui/icons": "3.77.1",
- "@taiga-ui/kit": "3.77.1",
- "@taiga-ui/styles": "3.77.1",
+ "@taiga-ui/addon-charts": "4.0.0-rc.5",
+ "@taiga-ui/addon-commerce": "4.0.0-rc.5",
+ "@taiga-ui/addon-mobile": "4.0.0-rc.5",
+ "@taiga-ui/cdk": "4.0.0-rc.5",
+ "@taiga-ui/core": "4.0.0-rc.5",
+ "@taiga-ui/event-plugins": "^4.0.1",
+ "@taiga-ui/experimental": "4.0.0-rc.5",
+ "@taiga-ui/icons": "4.0.0-rc.5",
+ "@taiga-ui/kit": "4.0.0-rc.5",
+ "@taiga-ui/layout": "4.0.0-rc.5",
+ "@taiga-ui/legacy": "4.0.0-rc.5",
+ "@taiga-ui/styles": "4.0.0-rc.5",
"@tinkoff/ng-dompurify": "4.0.0",
- "@tinkoff/ng-event-plugins": "3.2.0",
"ansi-to-html": "^0.7.2",
"base64-js": "^1.5.1",
"cbor": "npm:@jprochazk/cbor@^0.4.9",
@@ -56,7 +58,7 @@
"rxjs": "^7.5.6",
"swiper": "^8.2.4",
"ts-matches": "^5.2.1",
- "tslib": "^2.3.0",
+ "tslib": "^2.6.3",
"uuid": "^8.3.2",
"zone.js": "^0.14.2"
},
@@ -372,11 +374,12 @@
}
},
"../patch-db/client/node_modules/braces": {
- "version": "3.0.2",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -609,9 +612,10 @@
}
},
"../patch-db/client/node_modules/fill-range": {
- "version": "7.0.1",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -810,8 +814,9 @@
},
"../patch-db/client/node_modules/is-number": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -1491,9 +1496,10 @@
}
},
"../patch-db/client/node_modules/semver": {
- "version": "5.7.1",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver"
}
@@ -1659,8 +1665,9 @@
},
"../patch-db/client/node_modules/to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -2268,6 +2275,12 @@
"url": "https://opencollective.com/webpack"
}
},
+ "node_modules/@angular-devkit/build-angular/node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
+ },
"node_modules/@angular-devkit/build-angular/node_modules/webpack": {
"version": "5.90.3",
"dev": true,
@@ -4545,28 +4558,43 @@
}
},
"node_modules/@maskito/angular": {
- "version": "1.9.0",
- "license": "Apache-2.0",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@maskito/angular/-/angular-2.5.0.tgz",
+ "integrity": "sha512-xcQ8/N1wbZNnCIeioS8aZ7WXs5f0MRDeg8eOc512s82Q7LPdQ1zLqVMn3zPbED6D9UdmVnbTHTwiaZydP4zXdw==",
+ "peer": true,
"dependencies": {
- "tslib": "2.6.2"
+ "tslib": "2.6.3"
},
"peerDependencies": {
- "@angular/common": ">=12.0.0",
- "@angular/core": ">=12.0.0",
- "@angular/forms": ">=12.0.0",
- "@maskito/core": "^1.9.0",
- "rxjs": ">=6.0.0"
+ "@angular/core": ">=15.0.0",
+ "@angular/forms": ">=15.0.0",
+ "@maskito/core": "^2.5.0"
}
},
"node_modules/@maskito/core": {
- "version": "1.9.0",
- "license": "Apache-2.0"
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@maskito/core/-/core-2.5.0.tgz",
+ "integrity": "sha512-EeTeNOKIENFd8J0b1diQ5m8Rkz7WclFWtFPMpEtoE0yyH5JM4PKgrnpa4EbO7st9pY27vMo1tJiclWakLG4B8g==",
+ "peer": true
},
"node_modules/@maskito/kit": {
- "version": "1.9.0",
- "license": "Apache-2.0",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@maskito/kit/-/kit-2.5.0.tgz",
+ "integrity": "sha512-4PQXc/pJ1W+NW6cjVWFHhQlnjLs/4AHiZdisNsUsA6rN1+tMaOthm3Ppqmo9nNOH1F1Q2zQGvIdgaqRm2dq/tQ==",
+ "peer": true,
"peerDependencies": {
- "@maskito/core": "^1.9.0"
+ "@maskito/core": "^2.5.0"
+ }
+ },
+ "node_modules/@maskito/phone": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@maskito/phone/-/phone-2.5.0.tgz",
+ "integrity": "sha512-sP/myNz5FlEesmwy3tVDw/ELG/os8IdC0QeGGu+jCa7BFyTUjn7hIeUM6g+oUPkArkjft6tK7JPo+j3zvBbTkQ==",
+ "peer": true,
+ "peerDependencies": {
+ "@maskito/core": "^2.5.0",
+ "@maskito/kit": "^2.5.0",
+ "libphonenumber-js": ">=1.0.0"
}
},
"node_modules/@materia-ui/ngx-monaco-editor": {
@@ -4581,48 +4609,56 @@
}
},
"node_modules/@ng-web-apis/common": {
- "version": "3.0.6",
- "license": "Apache-2.0",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/@ng-web-apis/common/-/common-4.1.2.tgz",
+ "integrity": "sha512-8SO4JrQK8MZAzveafOEjI3M5zKC2VkM3Q9Movh0KiGQHOqZuT/jdZO4PqT6ydwJHcALiWT2pQRTwjp6oEimaog==",
+ "peer": true,
"dependencies": {
- "tslib": "^2.2.0"
+ "tslib": "^2.3.0"
},
"peerDependencies": {
- "@angular/common": ">=12.0.0",
- "@angular/core": ">=12.0.0",
- "rxjs": ">=6.4.0"
+ "@angular/common": ">=16.0.0",
+ "@angular/core": ">=16.0.0",
+ "rxjs": ">=7.0.0"
}
},
"node_modules/@ng-web-apis/intersection-observer": {
- "version": "3.2.0",
- "license": "Apache-2.0",
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/@ng-web-apis/intersection-observer/-/intersection-observer-4.1.3.tgz",
+ "integrity": "sha512-/VPw63EmFhY9Gro47IuwjCv9tYNR0ZxCP6jJykZOn4t/fS230JY9U79xvYWY9cMjMbk7LIv0H1A6qYT8hQzhVw==",
+ "peer": true,
"dependencies": {
- "tslib": "^2.2.0"
+ "tslib": "^2.3.0"
},
"peerDependencies": {
- "@angular/core": ">=12.0.0",
- "@ng-web-apis/common": ">=2.0.0"
+ "@angular/core": ">=16.0.0",
+ "@ng-web-apis/common": ">=4.1.2"
}
},
"node_modules/@ng-web-apis/mutation-observer": {
- "version": "3.1.0",
- "license": "Apache-2.0",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/@ng-web-apis/mutation-observer/-/mutation-observer-4.1.2.tgz",
+ "integrity": "sha512-psvxEE7WN/2KGUOwS7NNXOV8EG70h4FM77B8NmLuKwkh0z5d+sxmgJ9BjbKJB4F144DpQtXFAuJAaVkT882g/w==",
+ "peer": true,
"dependencies": {
- "tslib": "^2.2.0"
+ "tslib": "^2.3.0"
},
"peerDependencies": {
- "@angular/core": ">=12.0.0",
- "@ng-web-apis/common": ">=2.0.0"
+ "@angular/core": ">=16.0.0",
+ "@ng-web-apis/common": ">=4.0.0"
}
},
"node_modules/@ng-web-apis/resize-observer": {
- "version": "3.0.6",
- "license": "Apache-2.0",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/@ng-web-apis/resize-observer/-/resize-observer-4.1.2.tgz",
+ "integrity": "sha512-T8Vsr/AlnVzrDCko+BpzPWGIq0mFvE1zExY5zxbjTyraIL2VO0Le2wkU/v6UH64nRfp+xY5VDnOADNpTQCS8Zg==",
+ "peer": true,
"dependencies": {
- "tslib": "^2.2.0"
+ "tslib": "^2.3.0"
},
"peerDependencies": {
- "@angular/core": ">=12.0.0",
- "@ng-web-apis/common": ">=2.0.0"
+ "@angular/core": ">=16.0.0",
+ "@ng-web-apis/common": ">=4.0.0"
}
},
"node_modules/@ngtools/webpack": {
@@ -5085,192 +5121,241 @@
"link": true
},
"node_modules/@taiga-ui/addon-charts": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/addon-charts/-/addon-charts-3.77.1.tgz",
- "integrity": "sha512-yk9cvMewoRRVxTv1sIorVgO9GBkleQyRzkT774RPQACQHizGS2Sq5dQMtetwD3usPmLR2GblDR6NM+iOyHhMIA==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/addon-charts/-/addon-charts-4.0.0-rc.5.tgz",
+ "integrity": "sha512-xAlSOndt7peL3SOPJcGvntEseY09QyZcRoMGsd7XZsaCHf0vQnKtwfoTd3nHqYYgcuIS9/aBlznual3RWyl+SA==",
"dependencies": {
- "tslib": "^2.6.2"
+ "tslib": "^2.6.3"
},
"peerDependencies": {
- "@angular/common": ">=12.0.0",
- "@angular/core": ">=12.0.0",
- "@ng-web-apis/common": "^3.0.6",
- "@taiga-ui/cdk": "^3.77.1",
- "@taiga-ui/core": "^3.77.1",
- "@tinkoff/ng-polymorpheus": "^4.3.0"
+ "@angular/common": ">=16.0.0",
+ "@angular/core": ">=16.0.0",
+ "@ng-web-apis/common": "^4.1.2",
+ "@taiga-ui/cdk": "^4.0.0-rc.5",
+ "@taiga-ui/core": "^4.0.0-rc.5",
+ "@taiga-ui/polymorpheus": "^4.6.4"
}
},
"node_modules/@taiga-ui/addon-commerce": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/addon-commerce/-/addon-commerce-3.77.1.tgz",
- "integrity": "sha512-4qNgDZfxyzTHQdKaerw28xP8d2PCuumLM9xjlRbNE5XcnhUI+rccgZOV9MtZtQoNBl++OBPmbaT2/9+zbSqbxg==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/addon-commerce/-/addon-commerce-4.0.0-rc.5.tgz",
+ "integrity": "sha512-XkJ4SKzmPi4EFqAo5YQfU7l7FRWclzW0SrcJTdukTOvfTgPuzvNb7/nQEy9cCqmXvddQCgEmFzISHBI0lCnrUg==",
"dependencies": {
- "tslib": "^2.6.2"
+ "tslib": "^2.6.3"
},
"peerDependencies": {
- "@angular/common": ">=12.0.0",
- "@angular/core": ">=12.0.0",
- "@angular/forms": ">=12.0.0",
- "@maskito/angular": "^1.9.0",
- "@maskito/core": "^1.9.0",
- "@maskito/kit": "^1.9.0",
- "@ng-web-apis/common": "^3.0.6",
- "@taiga-ui/cdk": "^3.77.1",
- "@taiga-ui/core": "^3.77.1",
- "@taiga-ui/i18n": "^3.77.1",
- "@taiga-ui/kit": "^3.77.1",
- "@tinkoff/ng-polymorpheus": "^4.3.0",
- "rxjs": ">=6.0.0"
+ "@angular/common": ">=16.0.0",
+ "@angular/core": ">=16.0.0",
+ "@angular/forms": ">=16.0.0",
+ "@maskito/angular": "^2.5.0",
+ "@maskito/core": "^2.5.0",
+ "@maskito/kit": "^2.5.0",
+ "@ng-web-apis/common": "^4.1.2",
+ "@taiga-ui/cdk": "^4.0.0-rc.5",
+ "@taiga-ui/core": "^4.0.0-rc.5",
+ "@taiga-ui/i18n": "^4.0.0-rc.5",
+ "@taiga-ui/kit": "^4.0.0-rc.5",
+ "@taiga-ui/polymorpheus": "^4.6.4",
+ "rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/addon-mobile": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/addon-mobile/-/addon-mobile-3.77.1.tgz",
- "integrity": "sha512-kRa9uNdnY9Tyz8FdGXqgbL7cKZ1Z43K3Kjey9tX3uf4BEkODPNVuQFTNzuZvOt6/ql+XtPxi/hU19ii5rvKz3A==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/addon-mobile/-/addon-mobile-4.0.0-rc.5.tgz",
+ "integrity": "sha512-P6QvsaAUfhBwhyo+Z80J0mwq9RExwDT2mK3MKgZAIerXAsojGHz1e43/TAZrucJfsNEh0fyUpOplgiFy9MLnyw==",
"dependencies": {
- "tslib": "^2.6.2"
+ "tslib": "^2.6.3"
},
"peerDependencies": {
- "@angular/cdk": ">=12.0.0",
- "@angular/common": ">=12.0.0",
- "@angular/core": ">=12.0.0",
- "@ng-web-apis/common": "^3.0.6",
- "@taiga-ui/cdk": "^3.77.1",
- "@taiga-ui/core": "^3.77.1",
- "@taiga-ui/kit": "^3.77.1",
- "@tinkoff/ng-polymorpheus": "^4.3.0",
- "rxjs": ">=6.0.0"
+ "@angular/cdk": ">=16.0.0",
+ "@angular/common": ">=16.0.0",
+ "@angular/core": ">=16.0.0",
+ "@ng-web-apis/common": "^4.1.2",
+ "@taiga-ui/cdk": "^4.0.0-rc.5",
+ "@taiga-ui/core": "^4.0.0-rc.5",
+ "@taiga-ui/kit": "^4.0.0-rc.5",
+ "@taiga-ui/polymorpheus": "^4.6.4",
+ "rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/cdk": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-3.77.1.tgz",
- "integrity": "sha512-mqT1Rz/JWqah4aNVRD3iEND4XdkfsOxV100D0gbdFD5/aaiMTyL6oMEP2GGE0lSsuk1mRCixkDW0qPCbhG21yQ==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-4.0.0-rc.5.tgz",
+ "integrity": "sha512-WSNNNd/b+Dil/kIpN7cEnnHjp0/IKRrylbDzyMkJlyaMAwoVR0mChrJ7neYy3iRN5LndAFa/kRR8CCIOIBzf4g==",
"dependencies": {
- "@ng-web-apis/common": "3.0.6",
- "@ng-web-apis/mutation-observer": "3.1.0",
- "@ng-web-apis/resize-observer": "3.0.6",
- "@tinkoff/ng-event-plugins": "3.2.0",
- "@tinkoff/ng-polymorpheus": "4.3.0",
- "tslib": "2.6.2"
+ "tslib": "2.6.3"
},
"optionalDependencies": {
- "ng-morph": "4.0.5",
- "parse5": "6.0.1"
+ "@angular-devkit/core": ">=16.0.0",
+ "@angular-devkit/schematics": ">=16.0.0",
+ "@schematics/angular": ">=16.0.0",
+ "ng-morph": "^4.5.2",
+ "parse5": "^7.1.2"
},
"peerDependencies": {
- "@angular/animations": ">=12.0.0",
- "@angular/common": ">=12.0.0",
- "@angular/core": ">=12.0.0",
- "@angular/forms": ">=12.0.0",
- "rxjs": ">=6.0.0"
+ "@angular/animations": ">=16.0.0",
+ "@angular/cdk": ">=16.0.0",
+ "@angular/common": ">=16.0.0",
+ "@angular/core": ">=16.0.0",
+ "@angular/forms": ">=16.0.0",
+ "@ng-web-apis/common": "^4.1.2",
+ "@ng-web-apis/mutation-observer": "^4.1.2",
+ "@ng-web-apis/resize-observer": "^4.1.2",
+ "@taiga-ui/event-plugins": "^4.0.1",
+ "@taiga-ui/polymorpheus": "^4.6.4",
+ "rxjs": ">=7.0.0"
}
},
- "node_modules/@taiga-ui/cdk/node_modules/parse5": {
- "version": "6.0.1",
- "license": "MIT",
- "optional": true
- },
"node_modules/@taiga-ui/core": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-3.77.1.tgz",
- "integrity": "sha512-RjrOZtkQbb+Hw+7wMTt8j76OkGiLrCDb2Ol1rmngFQfzPX5OlaRkBtNhCNoyBtI9rl4CCX2/ViCGnGmrIkHu6g==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-4.0.0-rc.5.tgz",
+ "integrity": "sha512-kpmwHfa1KHkDb2DpmKBO4h1YFnxE9Bz5Gu6ryWtKLSFG7zID/w10qjmPdEVaE3kUNMg4imbjna0F7C0d3mPwUw==",
"dependencies": {
- "@taiga-ui/i18n": "^3.77.1",
- "tslib": "^2.6.2"
+ "@taiga-ui/i18n": "^4.0.0-rc.5",
+ "tslib": "^2.6.3"
},
"peerDependencies": {
- "@angular/animations": ">=12.0.0",
- "@angular/common": ">=12.0.0",
- "@angular/core": ">=12.0.0",
- "@angular/forms": ">=12.0.0",
- "@angular/platform-browser": ">=12.0.0",
- "@angular/router": ">=12.0.0",
- "@ng-web-apis/common": "^3.0.6",
- "@ng-web-apis/mutation-observer": "^3.1.0",
- "@taiga-ui/cdk": "^3.77.1",
- "@taiga-ui/i18n": "^3.77.1",
- "@tinkoff/ng-event-plugins": "^3.2.0",
- "@tinkoff/ng-polymorpheus": "^4.3.0",
+ "@angular/animations": ">=16.0.0",
+ "@angular/common": ">=16.0.0",
+ "@angular/core": ">=16.0.0",
+ "@angular/forms": ">=16.0.0",
+ "@angular/platform-browser": ">=16.0.0",
+ "@angular/router": ">=16.0.0",
+ "@ng-web-apis/common": "^4.1.2",
+ "@ng-web-apis/mutation-observer": "^4.1.2",
+ "@taiga-ui/cdk": "^4.0.0-rc.5",
+ "@taiga-ui/event-plugins": "^4.0.1",
+ "@taiga-ui/i18n": "^4.0.0-rc.5",
+ "@taiga-ui/polymorpheus": "^4.6.4",
+ "rxjs": ">=7.0.0"
+ }
+ },
+ "node_modules/@taiga-ui/event-plugins": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/event-plugins/-/event-plugins-4.0.1.tgz",
+ "integrity": "sha512-qy9AMUVakgZ1e2H7G6dSHtBccveHCi/SG5EhNNjMjhMGkSywIDn+HLJ9kCtDmrJDRtFAPgZ3J0C/UwrsEzCvdQ==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "peerDependencies": {
+ "@angular/core": ">=15.0.0",
+ "@angular/platform-browser": ">=15.0.0",
"rxjs": ">=6.0.0"
}
},
"node_modules/@taiga-ui/experimental": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/experimental/-/experimental-3.77.1.tgz",
- "integrity": "sha512-UVmP0y1w9VvOoQoTH4VByZ3m45OcC0Lw//rsrNMicPCX9b5IJxgEjUAmJ+PZ/ecsgnDVKO0HD18cZt5uCVdy7w==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/experimental/-/experimental-4.0.0-rc.5.tgz",
+ "integrity": "sha512-tJ/tngKnGWfm29lIectuN4sYJAxyWd7QqZLEYIwKEwIc7hghlfoYIK9tNkuGTJ+jAHuTxhm77Cn02Ks7dEfJgA==",
"dependencies": {
- "tslib": "^2.6.2"
+ "tslib": "^2.6.3"
},
"peerDependencies": {
- "@angular/common": ">=12.0.0",
- "@angular/core": ">=12.0.0",
- "@taiga-ui/addon-commerce": "^3.77.1",
- "@taiga-ui/cdk": "^3.77.1",
- "@taiga-ui/core": "^3.77.1",
- "@taiga-ui/kit": "^3.77.1",
- "@tinkoff/ng-polymorpheus": "^4.3.0",
- "rxjs": ">=6.0.0"
+ "@angular/common": ">=16.0.0",
+ "@angular/core": ">=16.0.0",
+ "@taiga-ui/addon-commerce": "^4.0.0-rc.5",
+ "@taiga-ui/cdk": "^4.0.0-rc.5",
+ "@taiga-ui/core": "^4.0.0-rc.5",
+ "@taiga-ui/kit": "^4.0.0-rc.5",
+ "@taiga-ui/polymorpheus": "^4.6.4",
+ "rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/i18n": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/i18n/-/i18n-3.77.1.tgz",
- "integrity": "sha512-rC2RYMFyaRHKcoU5WUKMe2DU0urRNh0daKvRIhp8t5AnTQE1MDZHRJYVCpysr8sfXvtJdr5oHoZccavzvqjqOQ==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/i18n/-/i18n-4.0.0-rc.5.tgz",
+ "integrity": "sha512-pq1rZaGYYBKuk1pd6F+EzcHJQy0DGbmTq3k9OwI+J9f5ls0oWJU21clh7oybMd2AklLMAd2BQdNzpFS1bvqCKQ==",
"dependencies": {
- "tslib": "^2.6.2"
+ "tslib": "^2.6.3"
},
"peerDependencies": {
- "@angular/core": ">=12.0.0",
- "@ng-web-apis/common": "^3.0.6",
- "rxjs": ">=6.0.0"
+ "@angular/core": ">=16.0.0",
+ "@ng-web-apis/common": "^4.1.2",
+ "rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/icons": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-3.77.1.tgz",
- "integrity": "sha512-e9NXwxOktKM9TVDVePVkTFAuAs9jlhZCKzpAOfrme1bHVQJ1MEhD2hdj74Yn7IGKOCFjrUDQnxJ9w9POh6H9Vg==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-4.0.0-rc.5.tgz",
+ "integrity": "sha512-rO8g39hRcNqWkrcZc31k9tam7fbpbpypfyLqcfwvtsJ6I4YxQXCMlhpSh2mCTGBVfOpUi+89lqLUJPY0dVaigg==",
"dependencies": {
- "tslib": "^2.6.2"
- },
- "peerDependencies": {
- "@taiga-ui/cdk": "^3.77.1"
+ "tslib": "^2.3.0"
}
},
"node_modules/@taiga-ui/kit": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-3.77.1.tgz",
- "integrity": "sha512-Pyk44wDF61VZiMQHehQ3KEEBj5AsO3et8QccKwmqr13jaQzmH6ljwbbYJOwPpEVsdZbqfiI56OVxp86mi6F8mw==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-4.0.0-rc.5.tgz",
+ "integrity": "sha512-LvbOheE6J7pprmjlLIyA0CWiBPi/5Fmj87oqm8Ucj18+hGoc9QS8uaZnblpWZ61WyFzoDUtg5c/4dYMfZ0GNdg==",
"dependencies": {
- "@maskito/angular": "1.9.0",
- "@maskito/core": "1.9.0",
- "@maskito/kit": "1.9.0",
- "@ng-web-apis/intersection-observer": "3.2.0",
- "text-mask-core": "5.1.2",
- "tslib": "^2.6.2"
+ "tslib": "^2.6.3"
},
"peerDependencies": {
- "@angular/common": ">=12.0.0",
- "@angular/core": ">=12.0.0",
- "@angular/forms": ">=12.0.0",
- "@angular/router": ">=12.0.0",
- "@ng-web-apis/common": "3.0.6",
- "@ng-web-apis/mutation-observer": "^3.1.0",
- "@ng-web-apis/resize-observer": "^3.0.6",
- "@taiga-ui/cdk": "^3.77.1",
- "@taiga-ui/core": "^3.77.1",
- "@taiga-ui/i18n": "^3.77.1",
- "@tinkoff/ng-polymorpheus": "^4.3.0",
- "rxjs": ">=6.0.0"
+ "@angular/common": ">=16.0.0",
+ "@angular/core": ">=16.0.0",
+ "@angular/forms": ">=16.0.0",
+ "@angular/router": ">=16.0.0",
+ "@maskito/angular": "^2.5.0",
+ "@maskito/core": "^2.5.0",
+ "@maskito/kit": "^2.5.0",
+ "@maskito/phone": "^2.5.0",
+ "@ng-web-apis/common": "^4.1.2",
+ "@ng-web-apis/intersection-observer": "^4.1.2",
+ "@ng-web-apis/mutation-observer": "^4.1.2",
+ "@ng-web-apis/resize-observer": "^4.1.2",
+ "@taiga-ui/cdk": "^4.0.0-rc.5",
+ "@taiga-ui/core": "^4.0.0-rc.5",
+ "@taiga-ui/i18n": "^4.0.0-rc.5",
+ "@taiga-ui/polymorpheus": "^4.6.4",
+ "rxjs": ">=7.0.0"
+ }
+ },
+ "node_modules/@taiga-ui/layout": {
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/layout/-/layout-4.0.0-rc.5.tgz",
+ "integrity": "sha512-iebBX/G1bXLHhNYDR7fjmDpvF4FJXubtDkRedWvnUnOOmI46yKpKohwQuEReRIRxVASK9DvG6VLtz3Ho2JjyrQ==",
+ "dependencies": {
+ "tslib": "^2.6.3"
+ },
+ "peerDependencies": {
+ "@angular/common": ">=16.0.0",
+ "@angular/core": ">=16.0.0",
+ "@taiga-ui/cdk": "^4.0.0-rc.5",
+ "@taiga-ui/core": "^4.0.0-rc.5",
+ "@taiga-ui/polymorpheus": "^4.6.4",
+ "rxjs": ">=7.0.0"
+ }
+ },
+ "node_modules/@taiga-ui/legacy": {
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/legacy/-/legacy-4.0.0-rc.5.tgz",
+ "integrity": "sha512-zS6h+ivYxHeiSScVc5hTj612f5tv7xY+4eJyJbEtjNsHErf1FWL72IJbl1QK3bkodefznFxwhfEsNkka70Sf3w==",
+ "dependencies": {
+ "tslib": "2.6.3"
+ },
+ "peerDependencies": {
+ "@angular/core": ">=16.0.0"
+ }
+ },
+ "node_modules/@taiga-ui/polymorpheus": {
+ "version": "4.6.4",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/polymorpheus/-/polymorpheus-4.6.4.tgz",
+ "integrity": "sha512-rlMNWfhImLaMEDWXU1TG7a+YYkVA528poq7lNQ8d+61HyXvbjgs/WAeJQwdabjeLxTUyDozSBJVwSwU69tYprg==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.6.3"
+ },
+ "peerDependencies": {
+ "@angular/core": ">=16.0.0",
+ "@angular/platform-browser": ">=16.0.0"
}
},
"node_modules/@taiga-ui/styles": {
- "version": "3.77.1",
- "resolved": "https://registry.npmjs.org/@taiga-ui/styles/-/styles-3.77.1.tgz",
- "integrity": "sha512-YoPXqY1pz+13vYhHnE6hskjRtnDDGgjnZIPtx05ChN8/TDIJ6NiaWKI5Es/G4fq3vKJnq2yIZ9D2Ghm/aPItGw==",
+ "version": "4.0.0-rc.5",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/styles/-/styles-4.0.0-rc.5.tgz",
+ "integrity": "sha512-+1o+lcKyQAnoIWQrqJGJB2oBKOOI6yNKfm2IPohgCsIxEWi7ljgejjy2ym1w8e4z1hWrqRFmnck5nhT3ERA2FA==",
"peerDependencies": {
- "@taiga-ui/cdk": "^3.77.1",
- "tslib": "^2.6.2"
+ "@taiga-ui/cdk": "^4.0.0-rc.5",
+ "tslib": "^2.6.3"
}
},
"node_modules/@tinkoff/ng-dompurify": {
@@ -5286,44 +5371,22 @@
"dompurify": ">= 2.3.0"
}
},
- "node_modules/@tinkoff/ng-event-plugins": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@tinkoff/ng-event-plugins/-/ng-event-plugins-3.2.0.tgz",
- "integrity": "sha512-n56R5xNfiytabh2WmWdQXfNU6m7dfOo3LLxlARE+DX7f5yciW2xBdDkuEHX74q8dlCuAVlW9aslSfz8c//ymwA==",
- "dependencies": {
- "tslib": "^2.2.0"
- },
- "peerDependencies": {
- "@angular/core": ">=12.0.0",
- "@angular/platform-browser": ">=12.0.0",
- "rxjs": ">=6.0.0"
- }
- },
- "node_modules/@tinkoff/ng-polymorpheus": {
- "version": "4.3.0",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "2.6.2"
- },
- "peerDependencies": {
- "@angular/core": ">=12.0.0",
- "@angular/platform-browser": ">=12.0.0"
- }
- },
"node_modules/@ts-morph/common": {
- "version": "0.22.0",
- "license": "MIT",
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.24.0.tgz",
+ "integrity": "sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==",
"optional": true,
"dependencies": {
"fast-glob": "^3.3.2",
- "minimatch": "^9.0.3",
+ "minimatch": "^9.0.4",
"mkdirp": "^3.0.1",
"path-browserify": "^1.0.1"
}
},
"node_modules/@ts-morph/common/node_modules/mkdirp": {
"version": "3.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
+ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
"optional": true,
"bin": {
"mkdirp": "dist/cjs/src/bin.js"
@@ -5500,7 +5563,8 @@
},
"node_modules/@types/minimatch": {
"version": "3.0.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
"optional": true
},
"node_modules/@types/mustache": {
@@ -6007,7 +6071,8 @@
},
"node_modules/array-differ": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
+ "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
"optional": true,
"engines": {
"node": ">=8"
@@ -6020,7 +6085,8 @@
},
"node_modules/array-union": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"optional": true,
"engines": {
"node": ">=8"
@@ -6028,7 +6094,8 @@
},
"node_modules/arrify": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
"optional": true,
"engines": {
"node": ">=8"
@@ -6333,11 +6400,12 @@
}
},
"node_modules/braces": {
- "version": "3.0.2",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"devOptional": true,
- "license": "MIT",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -6771,8 +6839,9 @@
}
},
"node_modules/code-block-writer": {
- "version": "12.0.0",
- "license": "MIT",
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.1.tgz",
+ "integrity": "sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==",
"optional": true
},
"node_modules/color-convert": {
@@ -7839,9 +7908,10 @@
"license": "Apache-2.0"
},
"node_modules/express": {
- "version": "4.19.1",
+ "version": "4.19.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
+ "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
@@ -7981,9 +8051,10 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"devOptional": true,
- "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -9128,8 +9199,9 @@
},
"node_modules/is-number": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"devOptional": true,
- "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -9458,6 +9530,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/libphonenumber-js": {
+ "version": "1.11.4",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.4.tgz",
+ "integrity": "sha512-F/R50HQuWWYcmU/esP5jrH5LiWYaN7DpN0a/99U8+mnGGtnx8kmRE+649dQh3v+CowXXZc8vpkf5AmYkO0AQ7Q==",
+ "peer": true
+ },
"node_modules/license-webpack-plugin": {
"version": "4.0.2",
"dev": true,
@@ -10164,9 +10242,10 @@
"license": "ISC"
},
"node_modules/minimatch": {
- "version": "9.0.3",
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"devOptional": true,
- "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -10396,7 +10475,8 @@
},
"node_modules/multimatch": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
+ "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
"optional": true,
"dependencies": {
"@types/minimatch": "^3.0.3",
@@ -10414,7 +10494,8 @@
},
"node_modules/multimatch/node_modules/brace-expansion": {
"version": "1.1.11",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"optional": true,
"dependencies": {
"balanced-match": "^1.0.0",
@@ -10423,7 +10504,8 @@
},
"node_modules/multimatch/node_modules/minimatch": {
"version": "3.1.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"optional": true,
"dependencies": {
"brace-expansion": "^1.1.7"
@@ -10512,26 +10594,43 @@
"license": "MIT"
},
"node_modules/ng-morph": {
- "version": "4.0.5",
- "license": "Apache-2.0",
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/ng-morph/-/ng-morph-4.5.4.tgz",
+ "integrity": "sha512-g7asHMUZR05bOw/kX5nIVEFs8SDcuH0t5WjdMuVBlJEvl0mY1gDlz1LoIhGlzcbRleMg9n1J0PdrrmYJchWJ9g==",
"optional": true,
"dependencies": {
- "jsonc-parser": "3.2.0",
- "minimatch": "9.0.3",
+ "jsonc-parser": "3.3.1",
+ "minimatch": "10.0.1",
"multimatch": "5.0.0",
- "ts-morph": "21.0.1",
- "tslib": "2.6.2"
+ "ts-morph": "23.0.0"
},
"peerDependencies": {
- "@angular-devkit/core": ">=11.0.0",
- "@angular-devkit/schematics": ">=11.0.0"
+ "@angular-devkit/core": ">=16.0.0",
+ "@angular-devkit/schematics": ">=16.0.0",
+ "tslib": "^2.6.3"
}
},
"node_modules/ng-morph/node_modules/jsonc-parser": {
- "version": "3.2.0",
- "license": "MIT",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
"optional": true
},
+ "node_modules/ng-morph/node_modules/minimatch": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
+ "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
+ "optional": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/ng-packagr": {
"version": "17.3.0",
"dev": true,
@@ -11379,7 +11478,8 @@
},
"node_modules/path-browserify": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
"optional": true
},
"node_modules/path-exists": {
@@ -13232,9 +13332,10 @@
}
},
"node_modules/tar": {
- "version": "6.2.0",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
"devOptional": true,
- "license": "ISC",
"dependencies": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
@@ -13434,10 +13535,6 @@
"node": "*"
}
},
- "node_modules/text-mask-core": {
- "version": "5.1.2",
- "license": "Unlicense"
- },
"node_modules/thunky": {
"version": "1.1.0",
"dev": true,
@@ -13464,8 +13561,9 @@
},
"node_modules/to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"devOptional": true,
- "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -13502,12 +13600,13 @@
"license": "MIT"
},
"node_modules/ts-morph": {
- "version": "21.0.1",
- "license": "MIT",
+ "version": "23.0.0",
+ "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-23.0.0.tgz",
+ "integrity": "sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==",
"optional": true,
"dependencies": {
- "@ts-morph/common": "~0.22.0",
- "code-block-writer": "^12.0.0"
+ "@ts-morph/common": "~0.24.0",
+ "code-block-writer": "^13.0.1"
}
},
"node_modules/ts-node": {
@@ -13553,8 +13652,9 @@
}
},
"node_modules/tslib": {
- "version": "2.6.2",
- "license": "0BSD"
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+ "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
},
"node_modules/tslint": {
"version": "6.1.3",
@@ -14255,9 +14355,10 @@
}
},
"node_modules/webpack-dev-server/node_modules/ws": {
- "version": "8.16.0",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10.0.0"
},
@@ -14540,9 +14641,10 @@
"license": "ISC"
},
"node_modules/ws": {
- "version": "7.5.9",
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8.3.0"
},
diff --git a/web/package.json b/web/package.json
index dea30cefb..243c1fde1 100644
--- a/web/package.json
+++ b/web/package.json
@@ -45,17 +45,19 @@
"@start9labs/argon2": "^0.1.0",
"@start9labs/emver": "^0.1.5",
"@start9labs/start-sdk": "file:../sdk/dist",
- "@taiga-ui/addon-charts": "3.77.1",
- "@taiga-ui/addon-commerce": "3.77.1",
- "@taiga-ui/addon-mobile": "3.77.1",
- "@taiga-ui/cdk": "3.77.1",
- "@taiga-ui/core": "3.77.1",
- "@taiga-ui/experimental": "3.77.1",
- "@taiga-ui/icons": "3.77.1",
- "@taiga-ui/kit": "3.77.1",
- "@taiga-ui/styles": "3.77.1",
+ "@taiga-ui/addon-charts": "4.0.0-rc.5",
+ "@taiga-ui/addon-commerce": "4.0.0-rc.5",
+ "@taiga-ui/addon-mobile": "4.0.0-rc.5",
+ "@taiga-ui/cdk": "4.0.0-rc.5",
+ "@taiga-ui/core": "4.0.0-rc.5",
+ "@taiga-ui/event-plugins": "^4.0.1",
+ "@taiga-ui/experimental": "4.0.0-rc.5",
+ "@taiga-ui/icons": "4.0.0-rc.5",
+ "@taiga-ui/kit": "4.0.0-rc.5",
+ "@taiga-ui/layout": "4.0.0-rc.5",
+ "@taiga-ui/legacy": "4.0.0-rc.5",
+ "@taiga-ui/styles": "4.0.0-rc.5",
"@tinkoff/ng-dompurify": "4.0.0",
- "@tinkoff/ng-event-plugins": "3.2.0",
"ansi-to-html": "^0.7.2",
"base64-js": "^1.5.1",
"cbor": "npm:@jprochazk/cbor@^0.4.9",
@@ -78,7 +80,7 @@
"rxjs": "^7.5.6",
"swiper": "^8.2.4",
"ts-matches": "^5.2.1",
- "tslib": "^2.3.0",
+ "tslib": "^2.6.3",
"uuid": "^8.3.2",
"zone.js": "^0.14.2"
},
diff --git a/web/projects/install-wizard/src/app/app.component.html b/web/projects/install-wizard/src/app/app.component.html
index be4da9ab2..c8150797b 100644
--- a/web/projects/install-wizard/src/app/app.component.html
+++ b/web/projects/install-wizard/src/app/app.component.html
@@ -9,7 +9,7 @@
appearance="flat"
size="m"
class="back"
- iconLeft="tuiIconChevronLeft"
+ iconStart="@tui.chevron-left"
[style.border-radius.rem]="10"
(click)="selected = null"
>
@@ -17,7 +17,7 @@
}
{{ selected ? 'Install Type' : 'Select Disk' }}
- {{ error }}
+ {{ error }}
@@ -28,9 +28,9 @@
@if (guid) {
@@ -93,26 +88,23 @@
+ />
diff --git a/web/projects/marketplace/src/components/menu/menu.component.module.ts b/web/projects/marketplace/src/components/menu/menu.component.module.ts
index c4c6e314e..ecd5ae71b 100644
--- a/web/projects/marketplace/src/components/menu/menu.component.module.ts
+++ b/web/projects/marketplace/src/components/menu/menu.component.module.ts
@@ -3,13 +3,12 @@ import { NgModule } from '@angular/core'
import { SharedPipesModule } from '@start9labs/shared'
import { MenuComponent } from './menu.component'
-import { TuiButtonModule, TuiLoaderModule } from '@taiga-ui/core'
-import { TuiActiveZoneModule, TuiLetModule } from '@taiga-ui/cdk'
-import { TuiSidebarModule } from '@taiga-ui/addon-mobile'
+import { TuiLoader, TuiIcon, TuiButton, TuiAppearance } from '@taiga-ui/core'
+import { TuiActiveZone, TuiLet } from '@taiga-ui/cdk'
+import { TuiSidebar } from '@taiga-ui/addon-mobile'
import { SearchModule } from '../../pages/list/search/search.module'
import { CategoriesModule } from '../../pages/list/categories/categories.module'
import { StoreIconComponentModule } from '../store-icon/store-icon.component.module'
-import { TuiAppearanceModule, TuiIconModule } from '@taiga-ui/experimental'
@NgModule({
imports: [
@@ -17,15 +16,15 @@ import { TuiAppearanceModule, TuiIconModule } from '@taiga-ui/experimental'
SharedPipesModule,
SearchModule,
CategoriesModule,
- TuiActiveZoneModule,
- TuiSidebarModule,
- TuiLoaderModule,
- TuiButtonModule,
+ TuiActiveZone,
+ ...TuiSidebar,
+ TuiLoader,
+ TuiButton,
CategoriesModule,
StoreIconComponentModule,
- TuiLetModule,
- TuiAppearanceModule,
- TuiIconModule,
+ TuiLet,
+ TuiAppearance,
+ TuiIcon,
],
declarations: [MenuComponent],
exports: [MenuComponent],
diff --git a/web/projects/marketplace/src/pages/list/categories/categories.component.ts b/web/projects/marketplace/src/pages/list/categories/categories.component.ts
index d59032378..24bc62fe6 100644
--- a/web/projects/marketplace/src/pages/list/categories/categories.component.ts
+++ b/web/projects/marketplace/src/pages/list/categories/categories.component.ts
@@ -30,30 +30,30 @@ export class CategoriesComponent {
determineIcon(category: string): string {
switch (category.toLowerCase()) {
case 'all':
- return 'tuiIconGridLarge'
+ return '@tui.layout-grid'
case 'bitcoin':
- return 'assets/img/icons/logo-bitcoin.svg'
+ return '@tui.bitcoin'
case 'messaging':
case 'communications':
- return 'tuiIconMessageCircleLarge'
+ return '@tui.message-circle'
case 'data':
- return 'tuiIconFileTextLarge'
+ return '@tui.file-text'
case 'developer tools':
- return 'tuiIconTableSplitLarge'
+ return '@tui.table-split'
case 'featured':
- return 'tuiIconStarLarge'
+ return '@tui.star'
case 'lightning':
- return 'tuiIconZapLarge'
+ return '@tui.zap'
case 'media':
- return 'tuiIconPlayCircleLarge'
+ return '@tui.circle-play'
case 'networking':
- return 'tuiIconGlobeLarge'
+ return '@tui.globe'
case 'social':
- return 'tuiIconUsersLarge'
+ return '@tui.users'
case 'ai':
- return 'tuiIconCpuLarge'
+ return '@tui.cpu'
default:
- return 'tuiIconBoxLarge'
+ return '@tui.box'
}
}
}
diff --git a/web/projects/marketplace/src/pages/list/categories/categories.module.ts b/web/projects/marketplace/src/pages/list/categories/categories.module.ts
index 27aeccee1..935d91f82 100644
--- a/web/projects/marketplace/src/pages/list/categories/categories.module.ts
+++ b/web/projects/marketplace/src/pages/list/categories/categories.module.ts
@@ -1,12 +1,12 @@
+import { TuiIcon, TuiAppearance } from '@taiga-ui/core'
import { CommonModule } from '@angular/common'
import { NgModule } from '@angular/core'
import { CategoriesComponent } from './categories.component'
-import { TuiAppearanceModule, TuiIconModule } from '@taiga-ui/experimental'
import { RouterModule } from '@angular/router'
@NgModule({
- imports: [RouterModule, CommonModule, TuiAppearanceModule, TuiIconModule],
+ imports: [RouterModule, CommonModule, TuiAppearance, TuiIcon],
declarations: [CategoriesComponent],
exports: [CategoriesComponent],
})
diff --git a/web/projects/marketplace/src/pages/list/item/item.module.ts b/web/projects/marketplace/src/pages/list/item/item.module.ts
index 329ac0b4d..9822ab966 100644
--- a/web/projects/marketplace/src/pages/list/item/item.module.ts
+++ b/web/projects/marketplace/src/pages/list/item/item.module.ts
@@ -2,8 +2,8 @@ import { CommonModule } from '@angular/common'
import { NgModule } from '@angular/core'
import { RouterModule } from '@angular/router'
import { SharedPipesModule, TickerModule } from '@start9labs/shared'
+import { TuiLet } from '@taiga-ui/cdk'
import { ItemComponent } from './item.component'
-import { TuiLetModule } from '@taiga-ui/cdk'
@NgModule({
declarations: [ItemComponent],
@@ -13,7 +13,7 @@ import { TuiLetModule } from '@taiga-ui/cdk'
RouterModule,
SharedPipesModule,
TickerModule,
- TuiLetModule,
+ TuiLet,
],
})
export class ItemModule {}
diff --git a/web/projects/marketplace/src/pages/list/search/search.component.html b/web/projects/marketplace/src/pages/list/search/search.component.html
index e901583d2..fd5b63b6d 100644
--- a/web/projects/marketplace/src/pages/list/search/search.component.html
+++ b/web/projects/marketplace/src/pages/list/search/search.component.html
@@ -1,5 +1,5 @@
-
+
-
`,
styles: [
@@ -25,7 +26,11 @@ import { TuiLineClampModule } from '@taiga-ui/kit'
background-color: rgb(113 113 122 / 0.1);
}
- tui-svg {
+ [tuiSubtitle] {
+ color: var(--tui-text-secondary);
+ }
+
+ tui-icon {
opacity: 0.7;
}
}
@@ -38,7 +43,7 @@ import { TuiLineClampModule } from '@taiga-ui/kit'
],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiSvgModule, TuiLineClampModule, TuiLabelModule],
+ imports: [CommonModule, TuiLineClamp, TuiLabel, TuiIcon, TuiTitle],
})
export class MarketplaceAdditionalItemComponent {
@Input({ required: true })
diff --git a/web/projects/marketplace/src/pages/show/additional/additional.component.html b/web/projects/marketplace/src/pages/show/additional/additional.component.html
index c47d71dbb..cb4525858 100644
--- a/web/projects/marketplace/src/pages/show/additional/additional.component.html
+++ b/web/projects/marketplace/src/pages/show/additional/additional.component.html
@@ -15,14 +15,15 @@
(click)="copyService.copy(gitHash)"
[data]="gitHash"
label="Git Hash"
- icon="tuiIconCopyLarge"
+ icon="@tui.copy"
class="item-copy"
- button
- detail="false"
>
- Unknown
+
+ Git Hash
+ Unknown
+
@@ -30,7 +31,7 @@
(click)="presentModalMd('License')"
[data]="pkg.manifest.license"
label="License"
- icon="tuiIconChevronRightLarge"
+ icon="@tui.chevron-right"
class="item-pointer"
>
@@ -38,38 +39,38 @@
(click)="presentModalMd('Instructions')"
data="Click to view instructions"
label="Instructions"
- icon="tuiIconChevronRightLarge"
+ icon="@tui.chevron-right"
class="item-pointer"
>
-
+
diff --git a/web/projects/marketplace/src/pages/show/additional/additional.component.ts b/web/projects/marketplace/src/pages/show/additional/additional.component.ts
index aa80f9d23..516747121 100644
--- a/web/projects/marketplace/src/pages/show/additional/additional.component.ts
+++ b/web/projects/marketplace/src/pages/show/additional/additional.component.ts
@@ -6,7 +6,7 @@ import {
} from '@angular/core'
import { ActivatedRoute } from '@angular/router'
import { TuiDialogService } from '@taiga-ui/core'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
import { CopyService, MarkdownComponent } from '@start9labs/shared'
import { MarketplacePkg } from '../../../types'
import { AbstractMarketplaceService } from '../../../services/marketplace.service'
diff --git a/web/projects/marketplace/src/pages/show/additional/additional.module.ts b/web/projects/marketplace/src/pages/show/additional/additional.module.ts
index 4416cfad2..174127e04 100644
--- a/web/projects/marketplace/src/pages/show/additional/additional.module.ts
+++ b/web/projects/marketplace/src/pages/show/additional/additional.module.ts
@@ -1,17 +1,18 @@
import { CommonModule } from '@angular/common'
import { NgModule } from '@angular/core'
import { AdditionalComponent } from './additional.component'
-import { TuiButtonModule, TuiLabelModule } from '@taiga-ui/core'
+import { TuiButton, TuiLabel, TuiTitle } from '@taiga-ui/core'
import { MarketplaceAdditionalItemComponent } from './additional-item.component'
import { MarketplaceAdditionalLinkComponent } from './additional-link.component'
@NgModule({
imports: [
CommonModule,
- TuiButtonModule,
- TuiLabelModule,
+ TuiButton,
+ TuiLabel,
MarketplaceAdditionalItemComponent,
MarketplaceAdditionalLinkComponent,
+ TuiTitle,
],
declarations: [AdditionalComponent],
exports: [AdditionalComponent],
diff --git a/web/projects/marketplace/src/pages/show/dependencies/dependency-item.component.ts b/web/projects/marketplace/src/pages/show/dependencies/dependency-item.component.ts
index e37e31cc8..68c9e76af 100644
--- a/web/projects/marketplace/src/pages/show/dependencies/dependency-item.component.ts
+++ b/web/projects/marketplace/src/pages/show/dependencies/dependency-item.component.ts
@@ -5,11 +5,11 @@ import {
Input,
inject,
} from '@angular/core'
-import { EmverPipesModule } from '@start9labs/shared'
-import { Dependency, MarketplacePkg, StoreIdentity } from '../../../types'
import { RouterModule } from '@angular/router'
-import { TuiAvatarModule, TuiLineClampModule } from '@taiga-ui/kit'
-import { TuiLetModule } from '@taiga-ui/cdk'
+import { EmverPipesModule } from '@start9labs/shared'
+import { TuiLet } from '@taiga-ui/cdk'
+import { TuiAvatar, TuiLineClamp } from '@taiga-ui/kit'
+import { Dependency, MarketplacePkg, StoreIdentity } from '../../../types'
import { AbstractMarketplaceService } from '../../../services/marketplace.service'
@Component({
@@ -18,15 +18,11 @@ import { AbstractMarketplaceService } from '../../../services/marketplace.servic
+ size="l"
+ [src]="getImage(dep.key, marketplace)"
+ />
-
+
@@ -44,7 +40,7 @@ import { AbstractMarketplaceService } from '../../../services/marketplace.servic
[linesLimit]="2"
[content]="descContent"
class="description"
- >
+ />
{{ dep.value.description }}
@@ -107,10 +103,10 @@ import { AbstractMarketplaceService } from '../../../services/marketplace.servic
imports: [
CommonModule,
RouterModule,
- TuiAvatarModule,
+ TuiAvatar,
EmverPipesModule,
- TuiLineClampModule,
- TuiLetModule,
+ TuiLineClamp,
+ TuiLet,
],
})
export class MarketplaceDepItemComponent {
diff --git a/web/projects/marketplace/src/pages/show/hero/hero.component.ts b/web/projects/marketplace/src/pages/show/hero/hero.component.ts
index 7a26cc51f..16167e181 100644
--- a/web/projects/marketplace/src/pages/show/hero/hero.component.ts
+++ b/web/projects/marketplace/src/pages/show/hero/hero.component.ts
@@ -2,13 +2,13 @@ import { CommonModule } from '@angular/common'
import {
ChangeDetectionStrategy,
Component,
- Input,
inject,
+ Input,
} from '@angular/core'
import { SharedPipesModule, TickerModule } from '@start9labs/shared'
-import { MarketplacePkg, StoreIdentity } from '../../../types'
-import { TuiLetModule } from '@taiga-ui/cdk'
+import { TuiLet } from '@taiga-ui/cdk'
import { AbstractMarketplaceService } from '../../../services/marketplace.service'
+import { MarketplacePkg, StoreIdentity } from '../../../types'
@Component({
selector: 'marketplace-package-hero',
@@ -41,7 +41,7 @@ import { AbstractMarketplaceService } from '../../../services/marketplace.servic
-
+
`,
@@ -53,7 +53,7 @@ import { AbstractMarketplaceService } from '../../../services/marketplace.servic
margin-top: 2.5rem;
@media (min-width: 768px) {
- margin-top: 0px;
+ margin-top: 0;
}
}
@@ -129,8 +129,8 @@ import { AbstractMarketplaceService } from '../../../services/marketplace.servic
position: absolute;
width: 100%;
height: 100%;
- top: 0px;
- left: 0px;
+ top: 0;
+ left: 0;
z-index: -50;
border-radius: 1.5rem;
@@ -161,7 +161,7 @@ import { AbstractMarketplaceService } from '../../../services/marketplace.servic
],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, SharedPipesModule, TickerModule, TuiLetModule],
+ imports: [CommonModule, SharedPipesModule, TickerModule, TuiLet],
})
export class MarketplacePackageHeroComponent {
@Input({ required: true })
diff --git a/web/projects/marketplace/src/pages/show/screenshots/screenshots.component.ts b/web/projects/marketplace/src/pages/show/screenshots/screenshots.component.ts
index bc9b2c929..8d5827637 100644
--- a/web/projects/marketplace/src/pages/show/screenshots/screenshots.component.ts
+++ b/web/projects/marketplace/src/pages/show/screenshots/screenshots.component.ts
@@ -1,3 +1,4 @@
+import { TuiCarousel } from '@taiga-ui/kit'
import { CommonModule } from '@angular/common'
import {
ChangeDetectionStrategy,
@@ -6,14 +7,9 @@ import {
Input,
} from '@angular/core'
import { TUI_IS_MOBILE } from '@taiga-ui/cdk'
-import {
- TuiButtonModule,
- TuiDialogContext,
- TuiDialogService,
-} from '@taiga-ui/core'
-import { TuiCarouselModule } from '@taiga-ui/kit'
+import { TuiDialogContext, TuiDialogService, TuiButton } from '@taiga-ui/core'
import { MarketplacePkg } from '../../../types'
-import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus'
+import { PolymorpheusContent } from '@taiga-ui/polymorpheus'
@Component({
selector: 'marketplace-package-screenshots',
@@ -22,7 +18,7 @@ import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus'
@@ -125,7 +121,7 @@ import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus'
],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiCarouselModule, TuiButtonModule],
+ imports: [CommonModule, TuiCarousel, TuiButton],
})
export class MarketplacePackageScreenshotComponent {
private readonly dialogs = inject(TuiDialogService)
diff --git a/web/projects/setup-wizard/src/app/app.component.ts b/web/projects/setup-wizard/src/app/app.component.ts
index 3f88d6f89..f5e7ad52c 100644
--- a/web/projects/setup-wizard/src/app/app.component.ts
+++ b/web/projects/setup-wizard/src/app/app.component.ts
@@ -5,10 +5,7 @@ import { ApiService } from 'src/app/services/api.service'
@Component({
selector: 'app-root',
- template: `
-
-
- `,
+ template: '
',
})
export class AppComponent {
private readonly api = inject(ApiService)
diff --git a/web/projects/setup-wizard/src/app/app.module.ts b/web/projects/setup-wizard/src/app/app.module.ts
index fbe56a356..a8a52a69c 100644
--- a/web/projects/setup-wizard/src/app/app.module.ts
+++ b/web/projects/setup-wizard/src/app/app.module.ts
@@ -3,20 +3,13 @@ import { NgModule } from '@angular/core'
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'
import { PreloadAllModules, RouterModule } from '@angular/router'
import {
- LoadingModule,
provideSetupLogsService,
provideSetupService,
RELATIVE_URL,
WorkspaceConfig,
} from '@start9labs/shared'
-import {
- TuiAlertModule,
- TuiDialogModule,
- TuiModeModule,
- TuiRootModule,
- TuiThemeNightModule,
-} from '@taiga-ui/core'
-import { tuiButtonOptionsProvider } from '@taiga-ui/experimental'
+import { tuiButtonOptionsProvider, TuiRoot } from '@taiga-ui/core'
+import { NG_EVENT_PLUGINS } from '@taiga-ui/event-plugins'
import { ApiService } from 'src/app/services/api.service'
import { LiveApiService } from 'src/app/services/live-api.service'
import { MockApiService } from 'src/app/services/mock-api.service'
@@ -37,14 +30,10 @@ const {
preloadingStrategy: PreloadAllModules,
initialNavigation: 'disabled',
}),
- LoadingModule,
- TuiRootModule,
- TuiDialogModule,
- TuiAlertModule,
- TuiModeModule,
- TuiThemeNightModule,
+ TuiRoot,
],
providers: [
+ NG_EVENT_PLUGINS,
provideSetupService(ApiService),
provideSetupLogsService(ApiService),
tuiButtonOptionsProvider({ size: 'm' }),
diff --git a/web/projects/setup-wizard/src/app/components/cifs.component.ts b/web/projects/setup-wizard/src/app/components/cifs.component.ts
index 5cef71283..43a687f6a 100644
--- a/web/projects/setup-wizard/src/app/components/cifs.component.ts
+++ b/web/projects/setup-wizard/src/app/components/cifs.component.ts
@@ -1,3 +1,4 @@
+import { TuiInputModule, TuiInputPasswordModule } from '@taiga-ui/legacy'
import { CommonModule } from '@angular/common'
import { Component, inject, Inject } from '@angular/core'
import {
@@ -9,18 +10,13 @@ import {
} from '@angular/forms'
import { LoadingService, StartOSDiskInfo } from '@start9labs/shared'
import {
- TuiButtonModule,
TuiDialogContext,
TuiDialogService,
- TuiErrorModule,
+ TuiError,
+ TuiButton,
} from '@taiga-ui/core'
-import {
- TUI_VALIDATION_ERRORS,
- TuiFieldErrorPipeModule,
- TuiInputModule,
- TuiInputPasswordModule,
-} from '@taiga-ui/kit'
-import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus'
+import { TUI_VALIDATION_ERRORS, TuiFieldErrorPipe } from '@taiga-ui/kit'
+import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus'
import { PASSWORD } from 'src/app/components/password.component'
import {
ApiService,
@@ -40,7 +36,7 @@ interface Context {
Hostname
@@ -51,7 +47,7 @@ interface Context {
Path
-
+
Username
-
+
Enter Password
-
+
@if (storageDrive) {
Retype Password
-
+
}
@@ -67,9 +63,9 @@ interface DialogData {
imports: [
FormsModule,
ReactiveFormsModule,
- TuiButtonModule,
+ TuiButton,
TuiInputPasswordModule,
- TuiErrorModule,
+ TuiError,
],
})
export class PasswordComponent {
diff --git a/web/projects/setup-wizard/src/app/components/recover.component.ts b/web/projects/setup-wizard/src/app/components/recover.component.ts
index 765034ab7..8af676576 100644
--- a/web/projects/setup-wizard/src/app/components/recover.component.ts
+++ b/web/projects/setup-wizard/src/app/components/recover.component.ts
@@ -1,17 +1,14 @@
+import { TuiCell } from '@taiga-ui/layout'
+import { TuiIcon, TuiTitle } from '@taiga-ui/core'
import { Component, Input } from '@angular/core'
import { RouterModule } from '@angular/router'
-import {
- TuiCellModule,
- TuiIconModule,
- TuiTitleModule,
-} from '@taiga-ui/experimental'
@Component({
standalone: true,
selector: 'app-recover',
template: `
-
+
Use Existing Drive
@@ -20,7 +17,7 @@ import {
-
+
Transfer
@@ -30,14 +27,14 @@ import {
-
+
Restore From Backup (Disaster Recovery)
Restore StartOS data from an encrypted backup
`,
- imports: [RouterModule, TuiIconModule, TuiCellModule, TuiTitleModule],
+ imports: [RouterModule, TuiIcon, TuiCell, TuiTitle],
})
export class RecoverComponent {
@Input() disabled = false
diff --git a/web/projects/setup-wizard/src/app/pages/attach.page.ts b/web/projects/setup-wizard/src/app/pages/attach.page.ts
index 005bbc7c2..15e0f5e6a 100644
--- a/web/projects/setup-wizard/src/app/pages/attach.page.ts
+++ b/web/projects/setup-wizard/src/app/pages/attach.page.ts
@@ -7,12 +7,8 @@ import {
LoadingService,
toGuid,
} from '@start9labs/shared'
-import { TuiDialogService, TuiLoaderModule } from '@taiga-ui/core'
-import {
- TuiButtonModule,
- TuiCardModule,
- TuiCellModule,
-} from '@taiga-ui/experimental'
+import { TuiButton, TuiDialogService, TuiLoader } from '@taiga-ui/core'
+import { TuiCardLarge, TuiCell } from '@taiga-ui/layout'
import { PASSWORD } from 'src/app/components/password.component'
import { ApiService } from 'src/app/services/api.service'
import { StateService } from 'src/app/services/state.service'
@@ -34,19 +30,13 @@ import { StateService } from 'src/app/services/state.service'
valid StartOS data drive (not a backup) and is firmly connected, then
refresh the page.
}
-
+
Refresh
}
`,
- imports: [
- TuiButtonModule,
- TuiCardModule,
- TuiCellModule,
- TuiLoaderModule,
- DriveComponent,
- ],
+ imports: [TuiButton, TuiCardLarge, TuiCell, TuiLoader, DriveComponent],
})
export default class AttachPage {
private readonly apiService = inject(ApiService)
diff --git a/web/projects/setup-wizard/src/app/pages/home.page.ts b/web/projects/setup-wizard/src/app/pages/home.page.ts
index e7927b151..37aa652de 100644
--- a/web/projects/setup-wizard/src/app/pages/home.page.ts
+++ b/web/projects/setup-wizard/src/app/pages/home.page.ts
@@ -2,14 +2,8 @@ import { CommonModule } from '@angular/common'
import { Component, inject, OnInit } from '@angular/core'
import { RouterModule } from '@angular/router'
import { ErrorService } from '@start9labs/shared'
-import {
- TuiButtonModule,
- TuiCardModule,
- TuiCellModule,
- TuiIconModule,
- TuiIconsModule,
- TuiTitleModule,
-} from '@taiga-ui/experimental'
+import { TuiButton, TuiIcon, TuiTitle } from '@taiga-ui/core'
+import { TuiCardLarge, TuiCell } from '@taiga-ui/layout'
import { RecoverComponent } from 'src/app/components/recover.component'
import { ApiService } from 'src/app/services/api.service'
import { StateService } from 'src/app/services/state.service'
@@ -26,7 +20,7 @@ import { StateService } from 'src/app/services/state.service'
tuiIconButton
appearance="flat"
class="back"
- iconLeft="tuiIconChevronLeft"
+ iconStart="@tui.chevron-left"
(click)="recover = false"
>
Back
@@ -37,7 +31,7 @@ import { StateService } from 'src/app/services/state.service'
-
+
Start Fresh
@@ -50,7 +44,7 @@ import { StateService } from 'src/app/services/state.service'
[disabled]="error || recover"
(click)="recover = true"
>
-
+
Recover
@@ -111,12 +105,11 @@ import { StateService } from 'src/app/services/state.service'
imports: [
CommonModule,
RouterModule,
- TuiCardModule,
- TuiButtonModule,
- TuiIconsModule,
- TuiCellModule,
- TuiIconModule,
- TuiTitleModule,
+ TuiCardLarge,
+ TuiButton,
+ TuiCell,
+ TuiIcon,
+ TuiTitle,
RecoverComponent,
],
})
diff --git a/web/projects/setup-wizard/src/app/pages/recover.page.ts b/web/projects/setup-wizard/src/app/pages/recover.page.ts
index 8792ee7c2..0a6647202 100644
--- a/web/projects/setup-wizard/src/app/pages/recover.page.ts
+++ b/web/projects/setup-wizard/src/app/pages/recover.page.ts
@@ -1,15 +1,15 @@
import { Component, inject } from '@angular/core'
import { Router } from '@angular/router'
import { DriveComponent, ErrorService } from '@start9labs/shared'
-import { TuiDialogService, TuiLoaderModule } from '@taiga-ui/core'
import {
- TuiButtonModule,
- TuiCardModule,
- TuiCellModule,
- TuiIconModule,
- TuiTitleModule,
-} from '@taiga-ui/experimental'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+ TuiButton,
+ TuiDialogService,
+ TuiIcon,
+ TuiLoader,
+ TuiTitle,
+} from '@taiga-ui/core'
+import { TuiCardLarge, TuiCell } from '@taiga-ui/layout'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
import { filter } from 'rxjs'
import { CifsComponent } from 'src/app/components/cifs.component'
import { PASSWORD } from 'src/app/components/password.component'
@@ -33,7 +33,7 @@ import { StateService } from 'src/app/services/state.service'
to the same network as your server.
-
+
Open
@@ -51,29 +51,29 @@ import { StateService } from 'src/app/services/state.service'
@if (empty(d)) {
-
+
No StartOS backup
} @else {
-
+
StartOS backup detected
}
}
-
+
Refresh
}
`,
imports: [
- TuiCardModule,
- TuiLoaderModule,
- TuiButtonModule,
- TuiCellModule,
- TuiIconModule,
- TuiTitleModule,
+ TuiCardLarge,
+ TuiLoader,
+ TuiButton,
+ TuiCell,
+ TuiIcon,
+ TuiTitle,
DriveComponent,
],
})
diff --git a/web/projects/setup-wizard/src/app/pages/storage.page.ts b/web/projects/setup-wizard/src/app/pages/storage.page.ts
index 6622d4083..982b4c6c0 100644
--- a/web/projects/setup-wizard/src/app/pages/storage.page.ts
+++ b/web/projects/setup-wizard/src/app/pages/storage.page.ts
@@ -7,13 +7,9 @@ import {
LoadingService,
toGuid,
} from '@start9labs/shared'
-import { TuiDialogService, TuiLoaderModule } from '@taiga-ui/core'
-import {
- TuiButtonModule,
- TuiCardModule,
- TuiCellModule,
-} from '@taiga-ui/experimental'
-import { TUI_PROMPT } from '@taiga-ui/kit'
+import { TuiButton, TuiDialogService, TuiLoader } from '@taiga-ui/core'
+import { TUI_CONFIRM } from '@taiga-ui/kit'
+import { TuiCardLarge, TuiCell } from '@taiga-ui/layout'
import { filter, of, switchMap } from 'rxjs'
import { PASSWORD } from 'src/app/components/password.component'
import {
@@ -48,18 +44,12 @@ import { StateService } from 'src/app/services/state.service'
}
-
+
Refresh
`,
- imports: [
- TuiCardModule,
- TuiLoaderModule,
- TuiCellModule,
- TuiButtonModule,
- DriveComponent,
- ],
+ imports: [TuiCardLarge, TuiLoader, TuiCell, TuiButton, DriveComponent],
})
export default class StoragePage {
private readonly api = inject(ApiService)
@@ -125,7 +115,7 @@ export default class StoragePage {
switchMap(unused =>
unused
? of(true)
- : this.dialogs.open(TUI_PROMPT, {
+ : this.dialogs.open(TUI_CONFIRM, {
label: 'Warning',
size: 's',
data: {
diff --git a/web/projects/setup-wizard/src/app/pages/success.page.ts b/web/projects/setup-wizard/src/app/pages/success.page.ts
index 867118142..c527268cc 100644
--- a/web/projects/setup-wizard/src/app/pages/success.page.ts
+++ b/web/projects/setup-wizard/src/app/pages/success.page.ts
@@ -7,12 +7,8 @@ import {
ViewChild,
} from '@angular/core'
import { DownloadHTMLService, ErrorService } from '@start9labs/shared'
-import {
- TuiButtonModule,
- TuiCardModule,
- TuiIconModule,
- TuiSurfaceModule,
-} from '@taiga-ui/experimental'
+import { TuiButton, TuiIcon, TuiSurface } from '@taiga-ui/core'
+import { TuiCardLarge } from '@taiga-ui/layout'
import { DocumentationComponent } from 'src/app/components/documentation.component'
import { MatrixComponent } from 'src/app/components/matrix.component'
import { ApiService } from 'src/app/services/api.service'
@@ -25,17 +21,17 @@ import { StateService } from 'src/app/services/state.service'
@if (isKiosk) {
-
+
Setup Complete!
-
+
Continue to Login
} @else if (lanAddress) {
-
+
Setup Complete!
@if (stateService.setupType === 'restore') {
@@ -51,7 +47,7 @@ import { StateService } from 'src/app/services/state.service'
Download
-
+
@@ -68,7 +64,7 @@ import { StateService } from 'src/app/services/state.service'
Open
-
+
@@ -93,7 +89,7 @@ import { StateService } from 'src/app/services/state.service'
}
[tuiCardLarge] {
- color: var(--tui-text-01);
+ color: var(--tui-text-primary);
text-decoration: none;
text-align: center;
}
@@ -104,10 +100,10 @@ import { StateService } from 'src/app/services/state.service'
}
`,
imports: [
- TuiCardModule,
- TuiIconModule,
- TuiButtonModule,
- TuiSurfaceModule,
+ TuiCardLarge,
+ TuiIcon,
+ TuiButton,
+ TuiSurface,
MatrixComponent,
DocumentationComponent,
],
diff --git a/web/projects/setup-wizard/src/app/pages/transfer.page.ts b/web/projects/setup-wizard/src/app/pages/transfer.page.ts
index eca9b8820..6f1f206f9 100644
--- a/web/projects/setup-wizard/src/app/pages/transfer.page.ts
+++ b/web/projects/setup-wizard/src/app/pages/transfer.page.ts
@@ -7,16 +7,13 @@ import {
toGuid,
} from '@start9labs/shared'
import {
+ TuiButton,
TuiDialogOptions,
TuiDialogService,
- TuiLoaderModule,
+ TuiLoader,
} from '@taiga-ui/core'
-import {
- TuiButtonModule,
- TuiCardModule,
- TuiCellModule,
-} from '@taiga-ui/experimental'
-import { TUI_PROMPT, TuiPromptData } from '@taiga-ui/kit'
+import { TUI_CONFIRM, TuiConfirmData } from '@taiga-ui/kit'
+import { TuiCardLarge, TuiCell } from '@taiga-ui/layout'
import { filter } from 'rxjs'
import { ApiService } from 'src/app/services/api.service'
import { StateService } from 'src/app/services/state.service'
@@ -33,18 +30,12 @@ import { StateService } from 'src/app/services/state.service'
@for (drive of drives; track drive) {
}
-
+
Refresh
`,
- imports: [
- TuiCardModule,
- TuiCellModule,
- TuiButtonModule,
- TuiLoaderModule,
- DriveComponent,
- ],
+ imports: [TuiCardLarge, TuiCell, TuiButton, TuiLoader, DriveComponent],
})
export default class TransferPage {
private readonly apiService = inject(ApiService)
@@ -81,7 +72,7 @@ export default class TransferPage {
select(drive: DiskInfo) {
this.dialogs
- .open(TUI_PROMPT, OPTIONS)
+ .open(TUI_CONFIRM, OPTIONS)
.pipe(filter(Boolean))
.subscribe(() => {
this.stateService.recoverySource = {
@@ -93,7 +84,7 @@ export default class TransferPage {
}
}
-const OPTIONS: Partial> = {
+const OPTIONS: Partial> = {
label: 'Warning',
size: 's',
data: {
diff --git a/web/projects/setup-wizard/src/styles.scss b/web/projects/setup-wizard/src/styles.scss
index 5ff5bd3c4..21cf6739d 100644
--- a/web/projects/setup-wizard/src/styles.scss
+++ b/web/projects/setup-wizard/src/styles.scss
@@ -24,7 +24,7 @@ router-outlet + * {
[tuiCardLarge] {
width: 100%;
- background: var(--tui-base-02);
+ background: var(--tui-background-base-alt);
margin: auto;
}
}
@@ -43,7 +43,7 @@ header {
p {
font: var(--tui-font-text-m);
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
}
@@ -53,17 +53,17 @@ h2 {
}
.g-success {
- color: var(--tui-success-fill);
+ color: var(--tui-status-positive);
}
.g-warning {
- color: var(--tui-warning-fill);
+ color: var(--tui-status-warning);
}
.g-error {
- color: var(--tui-error-fill);
+ color: var(--tui-status-negative);
}
.g-info {
- color: var(--tui-info-fill);
+ color: var(--tui-status-info);
}
diff --git a/web/projects/shared/assets/taiga-ui/icons/tuiIconBitcoinOutline.svg b/web/projects/shared/assets/taiga-ui/icons/tuiIconBitcoinOutline.svg
deleted file mode 100644
index 89958abb0..000000000
--- a/web/projects/shared/assets/taiga-ui/icons/tuiIconBitcoinOutline.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/web/projects/shared/assets/taiga-ui/icons/tuiIconCheckCircleOutline.svg b/web/projects/shared/assets/taiga-ui/icons/tuiIconCheckCircleOutline.svg
deleted file mode 100644
index 3dab4ce82..000000000
--- a/web/projects/shared/assets/taiga-ui/icons/tuiIconCheckCircleOutline.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-
diff --git a/web/projects/shared/assets/taiga-ui/icons/tuiIconRocketOutline.svg b/web/projects/shared/assets/taiga-ui/icons/tuiIconRocketOutline.svg
deleted file mode 100644
index 2f95becf6..000000000
--- a/web/projects/shared/assets/taiga-ui/icons/tuiIconRocketOutline.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/web/projects/shared/package.json b/web/projects/shared/package.json
index 272da854d..60d930945 100644
--- a/web/projects/shared/package.json
+++ b/web/projects/shared/package.json
@@ -5,12 +5,12 @@
"@angular/common": "^17.0.6",
"@angular/core": "^17.0.6",
"@angular/router": "^17.0.6",
- "@ng-web-apis/mutation-observer": ">=2.0.0",
- "@ng-web-apis/resize-observer": ">=2.0.0",
+ "@ng-web-apis/mutation-observer": ">=4.0.0",
+ "@ng-web-apis/resize-observer": ">=4.0.0",
"@start9labs/emver": "^0.1.5",
- "@taiga-ui/cdk": ">=3.0.0",
- "@taiga-ui/core": ">=3.0.0",
- "@taiga-ui/experimental": ">=3.0.0",
+ "@taiga-ui/cdk": "4.0.0-rc.5",
+ "@taiga-ui/core": "4.0.0-rc.5",
+ "@taiga-ui/experimental": "4.0.0-rc.5",
"@tinkoff/ng-dompurify": ">=4.0.0",
"ansi-to-html": "^0.7.2"
},
diff --git a/web/projects/shared/src/components/drive.component.ts b/web/projects/shared/src/components/drive.component.ts
index 59ff90727..d3c05ed08 100644
--- a/web/projects/shared/src/components/drive.component.ts
+++ b/web/projects/shared/src/components/drive.component.ts
@@ -1,12 +1,12 @@
+import { TuiIcon, TuiTitle } from '@taiga-ui/core'
import { Component, Input } from '@angular/core'
-import { TuiIconModule, TuiTitleModule } from '@taiga-ui/experimental'
import { UnitConversionPipesModule } from '../pipes/unit-conversion/unit-conversion.module'
@Component({
standalone: true,
selector: 'button[drive]',
template: `
-
+
{{ drive.logicalname }}
@@ -17,7 +17,7 @@ import { UnitConversionPipesModule } from '../pipes/unit-conversion/unit-convers
`,
- imports: [TuiIconModule, TuiTitleModule, UnitConversionPipesModule],
+ imports: [TuiIcon, TuiTitle, UnitConversionPipesModule],
})
export class DriveComponent {
@Input() drive!: {
diff --git a/web/projects/shared/src/components/initializing/initializing.component.ts b/web/projects/shared/src/components/initializing/initializing.component.ts
index 6d28baa5d..180019682 100644
--- a/web/projects/shared/src/components/initializing/initializing.component.ts
+++ b/web/projects/shared/src/components/initializing/initializing.component.ts
@@ -1,3 +1,4 @@
+import { TuiLet } from '@taiga-ui/cdk'
import { CommonModule } from '@angular/common'
import {
ChangeDetectionStrategy,
@@ -6,8 +7,7 @@ import {
Input,
Output,
} from '@angular/core'
-import { TuiLetModule } from '@taiga-ui/cdk'
-import { TuiProgressModule } from '@taiga-ui/kit'
+import { TuiProgress } from '@taiga-ui/kit'
import { delay, filter } from 'rxjs'
import { LogsWindowComponent } from './logs-window.component'
import { SetupService } from '../../services/setup.service'
@@ -44,7 +44,7 @@ import { SetupService } from '../../services/setup.service'
/* TODO: Theme */
background: #e0e0e0;
color: #333;
- --tui-clear-inverse: rgba(0, 0, 0, 0.1);
+ --tui-background-neutral-1: rgba(0, 0, 0, 0.1);
}
logs-window {
@@ -60,7 +60,7 @@ import { SetupService } from '../../services/setup.service'
background: #181818;
}
`,
- imports: [CommonModule, LogsWindowComponent, TuiLetModule, TuiProgressModule],
+ imports: [CommonModule, LogsWindowComponent, TuiLet, TuiProgress],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class InitializingComponent {
diff --git a/web/projects/shared/src/components/initializing/logs-window.component.ts b/web/projects/shared/src/components/initializing/logs-window.component.ts
index 131fd1709..9da12fa94 100644
--- a/web/projects/shared/src/components/initializing/logs-window.component.ts
+++ b/web/projects/shared/src/components/initializing/logs-window.component.ts
@@ -1,11 +1,11 @@
+import { TuiScrollbar } from '@taiga-ui/core'
import { AsyncPipe } from '@angular/common'
import { Component, ElementRef, inject } from '@angular/core'
import {
- IntersectionObserverModule,
+ WaIntersectionObserver,
INTERSECTION_ROOT,
} from '@ng-web-apis/intersection-observer'
-import { MutationObserverModule } from '@ng-web-apis/mutation-observer'
-import { TuiScrollbarModule } from '@taiga-ui/core'
+import { WaMutationObserver } from '@ng-web-apis/mutation-observer'
import { NgDompurifyModule } from '@tinkoff/ng-dompurify'
import { SetupLogsService } from '../../services/setup-logs.service'
@@ -27,10 +27,10 @@ import { SetupLogsService } from '../../services/setup-logs.service'
`,
imports: [
AsyncPipe,
- MutationObserverModule,
- IntersectionObserverModule,
+ WaMutationObserver,
+ WaIntersectionObserver,
NgDompurifyModule,
- TuiScrollbarModule,
+ TuiScrollbar,
],
providers: [
{
diff --git a/web/projects/shared/src/components/loading/loading.component.scss b/web/projects/shared/src/components/loading/loading.component.scss
index 9a7d10100..a827774b0 100644
--- a/web/projects/shared/src/components/loading/loading.component.scss
+++ b/web/projects/shared/src/components/loading/loading.component.scss
@@ -1,17 +1,16 @@
@import '@taiga-ui/core/styles/taiga-ui-local';
:host {
- @include shadow(3);
-
display: flex;
align-items: center;
max-width: 80%;
margin: auto;
padding: 1.5rem;
- background: var(--tui-elevation-01);
+ background: var(--tui-background-elevation-1);
border-radius: var(--tui-radius-m);
+ box-shadow: var(--tui-shadow-popup);
- --tui-primary: var(--tui-warning-fill);
+ --tui-background-accent-1: var(--tui-status-warning);
}
tui-loader {
diff --git a/web/projects/shared/src/components/loading/loading.component.ts b/web/projects/shared/src/components/loading/loading.component.ts
index 373f013a1..02df1d8d8 100644
--- a/web/projects/shared/src/components/loading/loading.component.ts
+++ b/web/projects/shared/src/components/loading/loading.component.ts
@@ -1,15 +1,16 @@
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
+import { TuiLoader } from '@taiga-ui/core'
import {
POLYMORPHEUS_CONTEXT,
PolymorpheusContent,
-} from '@tinkoff/ng-polymorpheus'
+} from '@taiga-ui/polymorpheus'
@Component({
- template: `
-
- `,
+ standalone: true,
+ template: '',
styleUrls: ['./loading.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
+ imports: [TuiLoader],
})
export class LoadingComponent {
readonly content: PolymorpheusContent =
diff --git a/web/projects/shared/src/components/loading/loading.module.ts b/web/projects/shared/src/components/loading/loading.module.ts
deleted file mode 100644
index 4a3798041..000000000
--- a/web/projects/shared/src/components/loading/loading.module.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { NgModule } from '@angular/core'
-import { TuiLoaderModule } from '@taiga-ui/core'
-import { tuiAsDialog } from '@taiga-ui/cdk'
-import { LoadingComponent } from './loading.component'
-import { LoadingService } from './loading.service'
-
-@NgModule({
- imports: [TuiLoaderModule],
- declarations: [LoadingComponent],
- exports: [LoadingComponent],
- providers: [tuiAsDialog(LoadingService)],
-})
-export class LoadingModule {}
diff --git a/web/projects/shared/src/components/loading/loading.service.ts b/web/projects/shared/src/components/loading/loading.service.ts
index 96ab4301f..46cbfbb65 100644
--- a/web/projects/shared/src/components/loading/loading.service.ts
+++ b/web/projects/shared/src/components/loading/loading.service.ts
@@ -1,10 +1,11 @@
+import { TuiPopoverService } from '@taiga-ui/cdk'
import { Injectable } from '@angular/core'
-import { AbstractTuiDialogService } from '@taiga-ui/cdk'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { TUI_DIALOGS } from '@taiga-ui/core'
+
import { LoadingComponent } from './loading.component'
-@Injectable({ providedIn: `root` })
-export class LoadingService extends AbstractTuiDialogService {
- protected readonly component = new PolymorpheusComponent(LoadingComponent)
- protected readonly defaultOptions = {}
-}
+@Injectable({
+ providedIn: `root`,
+ useFactory: () => new LoadingService(TUI_DIALOGS, LoadingComponent),
+})
+export class LoadingService extends TuiPopoverService {}
diff --git a/web/projects/shared/src/components/markdown/markdown.component.module.ts b/web/projects/shared/src/components/markdown/markdown.component.module.ts
index ddb1722bc..0666dce63 100644
--- a/web/projects/shared/src/components/markdown/markdown.component.module.ts
+++ b/web/projects/shared/src/components/markdown/markdown.component.module.ts
@@ -1,10 +1,10 @@
-import { NgModule } from '@angular/core'
import { CommonModule } from '@angular/common'
-import { TuiLoaderModule, TuiNotificationModule } from '@taiga-ui/core'
+import { NgModule } from '@angular/core'
+import { TuiLoader, TuiNotification } from '@taiga-ui/core'
import { NgDompurifyModule } from '@tinkoff/ng-dompurify'
+import { SafeLinksDirective } from '../../directives/safe-links.directive'
import { MarkdownPipeModule } from '../../pipes/markdown/markdown.module'
-import { SafeLinksDirective } from '../../directives/safe-links.directive'
import { MarkdownComponent } from './markdown.component'
@NgModule({
@@ -14,8 +14,8 @@ import { MarkdownComponent } from './markdown.component'
MarkdownPipeModule,
SafeLinksDirective,
NgDompurifyModule,
- TuiLoaderModule,
- TuiNotificationModule,
+ TuiLoader,
+ TuiNotification,
],
exports: [MarkdownComponent],
})
diff --git a/web/projects/shared/src/components/markdown/markdown.component.ts b/web/projects/shared/src/components/markdown/markdown.component.ts
index 922ad645c..21d8ad322 100644
--- a/web/projects/shared/src/components/markdown/markdown.component.ts
+++ b/web/projects/shared/src/components/markdown/markdown.component.ts
@@ -1,6 +1,6 @@
import { Component, Inject } from '@angular/core'
import { TuiDialogContext } from '@taiga-ui/core'
-import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus'
+import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus'
import {
catchError,
ignoreElements,
diff --git a/web/projects/shared/src/components/ticker/ticker.component.ts b/web/projects/shared/src/components/ticker/ticker.component.ts
index 84326cc25..f8de4c93a 100644
--- a/web/projects/shared/src/components/ticker/ticker.component.ts
+++ b/web/projects/shared/src/components/ticker/ticker.component.ts
@@ -8,7 +8,7 @@ import {
@Component({
selector: '[ticker]',
- template: '',
+ template: '',
styleUrls: ['./ticker.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
})
diff --git a/web/projects/shared/src/public-api.ts b/web/projects/shared/src/public-api.ts
index 78ba1abd8..d6becfcc3 100644
--- a/web/projects/shared/src/public-api.ts
+++ b/web/projects/shared/src/public-api.ts
@@ -8,7 +8,6 @@ export * from './classes/rpc-error'
export * from './components/initializing/logs-window.component'
export * from './components/initializing/initializing.component'
export * from './components/loading/loading.component'
-export * from './components/loading/loading.module'
export * from './components/loading/loading.service'
export * from './components/markdown/markdown.component'
export * from './components/markdown/markdown.component.module'
diff --git a/web/projects/shared/src/services/error.service.ts b/web/projects/shared/src/services/error.service.ts
index 45891e0f4..b530298ac 100644
--- a/web/projects/shared/src/services/error.service.ts
+++ b/web/projects/shared/src/services/error.service.ts
@@ -1,5 +1,5 @@
import { ErrorHandler, inject, Injectable } from '@angular/core'
-import { TuiAlertService, TuiNotification } from '@taiga-ui/core'
+import { TuiAlertService } from '@taiga-ui/core'
import { HttpError } from '../classes/http-error'
// TODO: Enable this as ErrorHandler
@@ -15,8 +15,7 @@ export class ErrorService extends ErrorHandler {
this.alerts
.open(getErrorMessage(error, link), {
label: 'Error',
- autoClose: false,
- status: TuiNotification.Error,
+ status: 'error',
})
.subscribe()
}
diff --git a/web/projects/shared/styles/taiga.scss b/web/projects/shared/styles/taiga.scss
index ed33a88ac..396879c01 100644
--- a/web/projects/shared/styles/taiga.scss
+++ b/web/projects/shared/styles/taiga.scss
@@ -1,40 +1,40 @@
@import '@taiga-ui/core/styles/taiga-ui-local';
:root {
- --tui-primary: #3880ff;
- --tui-primary-hover: #4c8dff;
- --tui-primary-active: #3171e0;
+ --tui-background-accent-1: #3880ff;
+ --tui-background-accent-1-hover: #4c8dff;
+ --tui-background-accent-1-pressed: #3171e0;
}
/* stylelint-disable order/order */
[tuiAppearance][data-appearance='secondary-warning'] {
- background: var(--tui-warning-bg);
- color: var(--tui-text-01);
+ background: var(--tui-status-warning-pale);
+ color: var(--tui-text-primary);
@include appearance-hover {
- background: var(--tui-warning-bg-hover);
+ background: var(--tui-status-warning-pale-hover);
}
@include appearance-active {
- background: var(--tui-warning-bg-hover);
+ background: var(--tui-status-warning-pale-hover);
}
}
[tuiAppearance][data-appearance='icon-success'] {
- color: var(--tui-success-fill);
+ color: var(--tui-status-positive);
}
[tuiAppearance][data-appearance='icon-warning'] {
- color: var(--tui-warning-fill);
+ color: var(--tui-status-warning);
}
[tuiAppearance][data-appearance='icon-error'] {
- color: var(--tui-error-fill);
+ color: var(--tui-status-negative);
}
[tuiAppearance][data-appearance='flat'],
[tuiAppearance][data-appearance='outline'] {
- color: var(--tui-text-01);
+ color: var(--tui-text-primary);
}
[tuiAppearance][data-appearance='primary'] {
@@ -134,7 +134,7 @@
}
}
-[tuiWrapper][data-appearance='input-file'] {
+[tuiAppearance][data-appearance='input-file'] {
&:hover,
&:active {
background: transparent !important;
@@ -150,7 +150,7 @@ tui-dialog {
}
tui-opt-group[data-label^='⚠️']::before {
- color: var(--tui-warning-fill);
+ color: var(--tui-status-warning);
}
tui-hint[data-appearance='onDark'] {
@@ -159,10 +159,10 @@ tui-hint[data-appearance='onDark'] {
}
[tuiLink] {
- color: var(--tui-link) !important;
+ color: var(--tui-text-action) !important;
&:hover {
- color: var(--tui-link-hover) !important;
+ color: var(--tui-text-action-hover) !important;
}
}
@@ -172,7 +172,7 @@ tui-hint[data-appearance='onDark'] {
border-radius: 10rem;
&._focused::after {
- color: var(--tui-primary);
+ color: var(--tui-background-accent-1);
}
}
@@ -182,12 +182,12 @@ tui-dropdown[data-appearance='start-os'][data-appearance='start-os'] {
backdrop-filter: blur(0.25rem);
box-shadow: 0 0.25rem 0.25rem rgb(0 0 0 / 25%);
border-radius: 0.325rem;
- // TODO: Replace --tui-elevation-02 when Taiga UI is updated
+ // TODO: Replace --tui-background-elevation-2 when Taiga UI is updated
background: rgb(63 63 63 / 80%);
tui-opt-group {
&::before {
- background: var(--tui-clear);
+ background: var(--tui-background-neutral-1);
height: 1px;
}
diff --git a/web/projects/ui/src/app/app.component.html b/web/projects/ui/src/app/app.component.html
index 1174d755c..69be6a4f2 100644
--- a/web/projects/ui/src/app/app.component.html
+++ b/web/projects/ui/src/app/app.component.html
@@ -1,18 +1,6 @@
-
-
+
-
-
-@if (auth.isVerified$ | async) {
- @switch (theme$ | async) {
- @case ('Dark') {
-
- }
- }
-} @else {
-
-}
diff --git a/web/projects/ui/src/app/app.module.ts b/web/projects/ui/src/app/app.module.ts
index f31c6e9ba..130ebe126 100644
--- a/web/projects/ui/src/app/app.module.ts
+++ b/web/projects/ui/src/app/app.module.ts
@@ -2,15 +2,7 @@ import { HttpClientModule } from '@angular/common/http'
import { NgModule } from '@angular/core'
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'
import { ServiceWorkerModule } from '@angular/service-worker'
-import { LoadingModule } from '@start9labs/shared'
-import { TuiSheetDialogModule } from '@taiga-ui/addon-mobile'
-import {
- TuiAlertModule,
- TuiDialogModule,
- TuiModeModule,
- TuiRootModule,
- TuiThemeNightModule,
-} from '@taiga-ui/core'
+import { TuiRoot } from '@taiga-ui/core'
import { SidebarHostComponent } from 'src/app/components/sidebar-host.component'
import { SvgDefinitionsComponent } from 'src/app/components/svg-definitions.component'
import { ToastContainerComponent } from 'src/app/components/toast-container.component'
@@ -26,19 +18,13 @@ import { RoutingModule } from './routing.module'
BrowserAnimationsModule,
RoutingModule,
ToastContainerComponent,
- TuiRootModule,
- TuiDialogModule,
- TuiSheetDialogModule,
- TuiAlertModule,
- TuiModeModule,
- TuiThemeNightModule,
+ TuiRoot,
ServiceWorkerModule.register('ngsw-worker.js', {
enabled: environment.useServiceWorker,
// Register the ServiceWorker as soon as the application is stable
// or after 30 seconds (whichever comes first).
registrationStrategy: 'registerWhenStable:30000',
}),
- LoadingModule,
SidebarHostComponent,
SvgDefinitionsComponent,
],
diff --git a/web/projects/ui/src/app/app.providers.ts b/web/projects/ui/src/app/app.providers.ts
index e8e2febdf..c045151bc 100644
--- a/web/projects/ui/src/app/app.providers.ts
+++ b/web/projects/ui/src/app/app.providers.ts
@@ -7,17 +7,18 @@ import {
FilterPackagesPipe,
} from '@start9labs/marketplace'
import { RELATIVE_URL, THEME, WorkspaceConfig } from '@start9labs/shared'
-import { TUI_DATE_FORMAT, TUI_DATE_SEPARATOR } from '@taiga-ui/cdk'
import {
+ TUI_DATE_FORMAT,
+ tuiButtonOptionsProvider,
tuiDropdownOptionsProvider,
tuiNumberFormatProvider,
- tuiTextfieldOptionsProvider,
} from '@taiga-ui/core'
-import { tuiButtonOptionsProvider } from '@taiga-ui/experimental'
+import { NG_EVENT_PLUGINS } from '@taiga-ui/event-plugins'
import {
TUI_DATE_TIME_VALUE_TRANSFORMER,
TUI_DATE_VALUE_TRANSFORMER,
} from '@taiga-ui/kit'
+import { tuiTextfieldOptionsProvider } from '@taiga-ui/legacy'
import { PATCH_DB_PROVIDERS } from 'src/app/services/patch-db/patch-db.providers'
import { ApiService } from './services/api/embassy-api.service'
import { LiveApiService } from './services/api/embassy-live-api.service'
@@ -37,6 +38,7 @@ const {
export const APP_PROVIDERS: Provider[] = [
PATCH_DB_PROVIDERS,
+ NG_EVENT_PLUGINS,
FilterPackagesPipe,
UntypedFormBuilder,
tuiNumberFormatProvider({ decimalSeparator: '.', thousandSeparator: '' }),
@@ -45,11 +47,10 @@ export const APP_PROVIDERS: Provider[] = [
tuiDropdownOptionsProvider({ appearance: 'start-os' }),
{
provide: TUI_DATE_FORMAT,
- useValue: 'MDY',
- },
- {
- provide: TUI_DATE_SEPARATOR,
- useValue: '/',
+ useValue: {
+ mode: 'MDY',
+ separator: '/',
+ },
},
{
provide: TUI_DATE_VALUE_TRANSFORMER,
diff --git a/web/projects/ui/src/app/components/notifications-toast.component.ts b/web/projects/ui/src/app/components/notifications-toast.component.ts
index 6ec48d9c6..0fef23d3b 100644
--- a/web/projects/ui/src/app/components/notifications-toast.component.ts
+++ b/web/projects/ui/src/app/components/notifications-toast.component.ts
@@ -1,9 +1,9 @@
import { AsyncPipe } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { RouterLink } from '@angular/router'
-import { TuiAlertModule } from '@taiga-ui/core'
+import { TuiAlert } from '@taiga-ui/core'
import { PatchDB } from 'patch-db-client'
-import { Observable, Subject, merge, pairwise, map, endWith } from 'rxjs'
+import { endWith, map, merge, Observable, pairwise, Subject } from 'rxjs'
import { DataModel } from 'src/app/services/patch-db/data-model'
@Component({
@@ -20,7 +20,7 @@ import { DataModel } from 'src/app/services/patch-db/data-model'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [TuiAlertModule, RouterLink, AsyncPipe],
+ imports: [TuiAlert, RouterLink, AsyncPipe],
})
export class NotificationsToastComponent {
private readonly dismiss$ = new Subject()
diff --git a/web/projects/ui/src/app/components/refresh-alert.component.ts b/web/projects/ui/src/app/components/refresh-alert.component.ts
index 4c8c58d85..57e7f9f0a 100644
--- a/web/projects/ui/src/app/components/refresh-alert.component.ts
+++ b/web/projects/ui/src/app/components/refresh-alert.component.ts
@@ -2,9 +2,8 @@ import { AsyncPipe } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { SwUpdate } from '@angular/service-worker'
import { Emver, LoadingService } from '@start9labs/shared'
-import { TuiAutoFocusModule } from '@taiga-ui/cdk'
-import { TuiDialogModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
+import { TuiAutoFocus } from '@taiga-ui/cdk'
+import { TuiButton, TuiDialog } from '@taiga-ui/core'
import { PatchDB } from 'patch-db-client'
import { debounceTime, endWith, map, merge, Subject } from 'rxjs'
import { ConfigService } from 'src/app/services/config.service'
@@ -43,7 +42,7 @@ import { DataModel } from 'src/app/services/patch-db/data-model'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [TuiDialogModule, AsyncPipe, TuiButtonModule, TuiAutoFocusModule],
+ imports: [TuiDialog, AsyncPipe, TuiButton, TuiAutoFocus],
})
export class RefreshAlertComponent {
private readonly updates = inject(SwUpdate)
diff --git a/web/projects/ui/src/app/components/report.component.ts b/web/projects/ui/src/app/components/report.component.ts
index 3a4c30dca..eb4b1e0bd 100644
--- a/web/projects/ui/src/app/components/report.component.ts
+++ b/web/projects/ui/src/app/components/report.component.ts
@@ -1,10 +1,10 @@
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
-import { TuiDialogContext, TuiSvgModule } from '@taiga-ui/core'
+import { TuiDialogContext, TuiIcon } from '@taiga-ui/core'
import {
POLYMORPHEUS_CONTEXT,
PolymorpheusComponent,
-} from '@tinkoff/ng-polymorpheus'
+} from '@taiga-ui/polymorpheus'
import { BackupReport } from 'src/app/services/api/api.types'
@Component({
@@ -15,7 +15,7 @@ import { BackupReport } from 'src/app/services/api/api.types'
System data
{{ system.result }}
-
+
@@ -24,15 +24,15 @@ import { BackupReport } from 'src/app/services/api/api.types'
{{ pkg.value.error ? 'Failed: ' + pkg.value.error : 'Succeeded' }}
-
+ />
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiSvgModule],
+ imports: [CommonModule, TuiIcon],
})
export class BackupsReportModal {
private readonly context =
@@ -51,34 +51,34 @@ export class BackupsReportModal {
}
getColor(error: unknown) {
- return error ? 'var(--tui-negative)' : 'var(--tui-positive)'
+ return error ? 'var(--tui-text-negative)' : 'var(--tui-text-positive)'
}
getIcon(error: unknown) {
- return error ? 'tuiIconMinusCircleLarge' : 'tuiIconCheckLarge'
+ return error ? '@tui.circle-minus' : '@tui.check'
}
private getSystem() {
if (!this.report.server.attempted) {
return {
result: 'Not Attempted',
- icon: 'tuiIconMinusLarge',
- color: 'var(--tui-text-02)',
+ icon: '@tui.minus',
+ color: 'var(--tui-text-secondary)',
}
}
if (this.report.server.error) {
return {
result: `Failed: ${this.report.server.error}`,
- icon: 'tuiIconMinusCircleLarge',
- color: 'var(--tui-negative)',
+ icon: '@tui.circle-minus',
+ color: 'var(--tui-text-negative)',
}
}
return {
result: 'Succeeded',
- icon: 'tuiIconCheckLarge',
- color: 'var(--tui-positive)',
+ icon: '@tui.check',
+ color: 'var(--tui-text-positive)',
}
}
}
diff --git a/web/projects/ui/src/app/components/sidebar-host.component.ts b/web/projects/ui/src/app/components/sidebar-host.component.ts
index b8585d56e..bbea6f3d8 100644
--- a/web/projects/ui/src/app/components/sidebar-host.component.ts
+++ b/web/projects/ui/src/app/components/sidebar-host.component.ts
@@ -1,24 +1,19 @@
+import { TuiDropdownService } from '@taiga-ui/core'
import {
ChangeDetectionStrategy,
Component,
Directive,
Injectable,
} from '@angular/core'
-import {
- AbstractTuiPortalHostComponent,
- AbstractTuiPortalService,
- TuiDropdownPortalService,
-} from '@taiga-ui/cdk'
+import { TuiPortals, TuiPortalService } from '@taiga-ui/cdk'
@Injectable({ providedIn: `root` })
-export class SidebarService extends AbstractTuiPortalService {}
+export class SidebarService extends TuiPortalService {}
@Directive({
selector: '[tuiSidebar]',
standalone: true,
- providers: [
- { provide: TuiDropdownPortalService, useExisting: SidebarService },
- ],
+ providers: [{ provide: TuiDropdownService, useExisting: SidebarService }],
})
export class SidebarDirective {}
@@ -28,8 +23,6 @@ export class SidebarDirective {}
styles: [':host { position: fixed; top: 0; }'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- providers: [
- { provide: AbstractTuiPortalService, useExisting: SidebarService },
- ],
+ providers: [{ provide: TuiPortalService, useExisting: SidebarService }],
})
-export class SidebarHostComponent extends AbstractTuiPortalHostComponent {}
+export class SidebarHostComponent extends TuiPortals {}
diff --git a/web/projects/ui/src/app/components/update-toast.component.ts b/web/projects/ui/src/app/components/update-toast.component.ts
index c5a43a6c8..91f7e83cd 100644
--- a/web/projects/ui/src/app/components/update-toast.component.ts
+++ b/web/projects/ui/src/app/components/update-toast.component.ts
@@ -1,8 +1,7 @@
import { AsyncPipe } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { ErrorService, LoadingService } from '@start9labs/shared'
-import { TuiAlertModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
+import { TuiAlert, TuiButton } from '@taiga-ui/core'
import { PatchDB } from 'patch-db-client'
import {
distinctUntilChanged,
@@ -24,7 +23,7 @@ import { DataModel } from 'src/app/services/patch-db/data-model'
[tuiAlertOptions]="{
label: 'StartOS download complete!',
status: 'success',
- autoClose: false
+ autoClose: 0
}"
(tuiAlertChange)="onDismiss()"
>
@@ -44,7 +43,7 @@ import { DataModel } from 'src/app/services/patch-db/data-model'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [TuiButtonModule, TuiAlertModule, AsyncPipe],
+ imports: [TuiButton, TuiAlert, AsyncPipe],
})
export class UpdateToastComponent {
private readonly api = inject(ApiService)
diff --git a/web/projects/ui/src/app/components/welcome.component.ts b/web/projects/ui/src/app/components/welcome.component.ts
index cdec034d8..00d42795a 100644
--- a/web/projects/ui/src/app/components/welcome.component.ts
+++ b/web/projects/ui/src/app/components/welcome.component.ts
@@ -1,7 +1,6 @@
import { Component, inject, Inject } from '@angular/core'
-import { TuiDialogContext } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
-import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus'
+import { TuiDialogContext, TuiButton } from '@taiga-ui/core'
+import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus'
@Component({
standalone: true,
@@ -42,7 +41,7 @@ import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus'
`,
styles: 'li { margin-bottom: 0.5rem }',
- imports: [TuiButtonModule],
+ imports: [TuiButton],
})
export class WelcomeComponent {
readonly context = inject(POLYMORPHEUS_CONTEXT)
diff --git a/web/projects/ui/src/app/routes/diagnostic/home/home.module.ts b/web/projects/ui/src/app/routes/diagnostic/home/home.module.ts
index 530fccaa2..10c8d2a8e 100644
--- a/web/projects/ui/src/app/routes/diagnostic/home/home.module.ts
+++ b/web/projects/ui/src/app/routes/diagnostic/home/home.module.ts
@@ -1,7 +1,7 @@
+import { TuiButton } from '@taiga-ui/core'
import { NgModule } from '@angular/core'
import { CommonModule } from '@angular/common'
import { RouterModule, Routes } from '@angular/router'
-import { TuiButtonModule } from '@taiga-ui/experimental'
import { HomePage } from './home.page'
const ROUTES: Routes = [
@@ -12,7 +12,7 @@ const ROUTES: Routes = [
]
@NgModule({
- imports: [CommonModule, TuiButtonModule, RouterModule.forChild(ROUTES)],
+ imports: [CommonModule, TuiButton, RouterModule.forChild(ROUTES)],
declarations: [HomePage],
})
export class HomePageModule {}
diff --git a/web/projects/ui/src/app/routes/diagnostic/home/home.page.scss b/web/projects/ui/src/app/routes/diagnostic/home/home.page.scss
index 52f6f34c8..69b937d32 100644
--- a/web/projects/ui/src/app/routes/diagnostic/home/home.page.scss
+++ b/web/projects/ui/src/app/routes/diagnostic/home/home.page.scss
@@ -2,7 +2,7 @@
display: block;
padding: 2rem;
overflow: auto;
- background: var(--tui-base-01);
+ background: var(--tui-background-base);
}
.title {
@@ -20,14 +20,14 @@
.code {
display: block;
- color: var(--tui-success-fill);
+ color: var(--tui-status-positive);
background: rgb(69, 69, 69);
padding: 1px 1rem;
margin-bottom: 2rem;
}
.warning {
- color: var(--tui-warning-fill);
+ color: var(--tui-status-warning);
}
.buttons {
diff --git a/web/projects/ui/src/app/routes/diagnostic/home/home.page.ts b/web/projects/ui/src/app/routes/diagnostic/home/home.page.ts
index 8af9be855..56262f5d2 100644
--- a/web/projects/ui/src/app/routes/diagnostic/home/home.page.ts
+++ b/web/projects/ui/src/app/routes/diagnostic/home/home.page.ts
@@ -1,8 +1,8 @@
+import { TUI_CONFIRM } from '@taiga-ui/kit'
import { Component, Inject } from '@angular/core'
import { WINDOW } from '@ng-web-apis/common'
import { LoadingService } from '@start9labs/shared'
import { TuiDialogService } from '@taiga-ui/core'
-import { TUI_PROMPT } from '@taiga-ui/kit'
import { filter } from 'rxjs'
import { DiagnosticService } from '../services/diagnostic.service'
@@ -118,7 +118,7 @@ export class HomePage {
async presentAlertSystemRebuild() {
this.dialogs
- .open(TUI_PROMPT, {
+ .open(TUI_CONFIRM, {
label: 'Warning',
size: 's',
data: {
@@ -140,7 +140,7 @@ export class HomePage {
async presentAlertRepairDisk() {
this.dialogs
- .open(TUI_PROMPT, {
+ .open(TUI_CONFIRM, {
label: 'Warning',
size: 's',
data: {
diff --git a/web/projects/ui/src/app/routes/diagnostic/logs/logs.module.ts b/web/projects/ui/src/app/routes/diagnostic/logs/logs.module.ts
index 97c1b8f90..e3e498efb 100644
--- a/web/projects/ui/src/app/routes/diagnostic/logs/logs.module.ts
+++ b/web/projects/ui/src/app/routes/diagnostic/logs/logs.module.ts
@@ -1,10 +1,10 @@
-import { NgModule } from '@angular/core'
import { CommonModule } from '@angular/common'
-import { Routes, RouterModule } from '@angular/router'
-import { IntersectionObserverModule } from '@ng-web-apis/intersection-observer'
-import { MutationObserverModule } from '@ng-web-apis/mutation-observer'
-import { TuiLoaderModule, TuiScrollbarModule } from '@taiga-ui/core'
-import { TuiBadgeModule, TuiButtonModule } from '@taiga-ui/experimental'
+import { NgModule } from '@angular/core'
+import { RouterModule, Routes } from '@angular/router'
+import { WaIntersectionObserver } from '@ng-web-apis/intersection-observer'
+import { WaMutationObserver } from '@ng-web-apis/mutation-observer'
+import { TuiButton, TuiLoader, TuiScrollbar } from '@taiga-ui/core'
+import { TuiBadge } from '@taiga-ui/kit'
import { NgDompurifyModule } from '@tinkoff/ng-dompurify'
import { LogsPage } from './logs.page'
@@ -19,13 +19,13 @@ const ROUTES: Routes = [
imports: [
CommonModule,
RouterModule.forChild(ROUTES),
- IntersectionObserverModule,
- MutationObserverModule,
+ ...WaIntersectionObserver,
+ WaMutationObserver,
NgDompurifyModule,
- TuiBadgeModule,
- TuiButtonModule,
- TuiLoaderModule,
- TuiScrollbarModule,
+ TuiBadge,
+ TuiButton,
+ TuiLoader,
+ TuiScrollbar,
],
declarations: [LogsPage],
})
diff --git a/web/projects/ui/src/app/routes/diagnostic/logs/logs.page.html b/web/projects/ui/src/app/routes/diagnostic/logs/logs.page.html
index 129d34713..86a5b7303 100644
--- a/web/projects/ui/src/app/routes/diagnostic/logs/logs.page.html
+++ b/web/projects/ui/src/app/routes/diagnostic/logs/logs.page.html
@@ -1,7 +1,7 @@
diff --git a/web/projects/ui/src/app/routes/diagnostic/logs/logs.page.ts b/web/projects/ui/src/app/routes/diagnostic/logs/logs.page.ts
index 1c16bab4f..fb3a3d76b 100644
--- a/web/projects/ui/src/app/routes/diagnostic/logs/logs.page.ts
+++ b/web/projects/ui/src/app/routes/diagnostic/logs/logs.page.ts
@@ -1,7 +1,7 @@
import { Component, ElementRef, inject, OnInit, ViewChild } from '@angular/core'
import { INTERSECTION_ROOT } from '@ng-web-apis/intersection-observer'
import { convertAnsi, ErrorService } from '@start9labs/shared'
-import { TuiScrollbarComponent } from '@taiga-ui/core'
+import { TuiScrollbar } from '@taiga-ui/core'
import { DiagnosticService } from 'src/app/routes/diagnostic/services/diagnostic.service'
@Component({
@@ -15,7 +15,7 @@ import { DiagnosticService } from 'src/app/routes/diagnostic/services/diagnostic
justify-content: flex-start;
padding: 1rem;
gap: 1rem;
- background: var(--tui-base-01);
+ background: var(--tui-background-base);
}
`,
providers: [
@@ -26,7 +26,7 @@ import { DiagnosticService } from 'src/app/routes/diagnostic/services/diagnostic
],
})
export class LogsPage implements OnInit {
- @ViewChild(TuiScrollbarComponent, { read: ElementRef })
+ @ViewChild(TuiScrollbar, { read: ElementRef })
private readonly scrollbar?: ElementRef
private readonly api = inject(DiagnosticService)
private readonly errorService = inject(ErrorService)
diff --git a/web/projects/ui/src/app/routes/login/ca-wizard/ca-wizard.component.html b/web/projects/ui/src/app/routes/login/ca-wizard/ca-wizard.component.html
index adf9c75ed..4cb52b8bc 100644
--- a/web/projects/ui/src/app/routes/login/ca-wizard/ca-wizard.component.html
+++ b/web/projects/ui/src/app/routes/login/ca-wizard/ca-wizard.component.html
@@ -4,7 +4,7 @@
tuiSurface="elevated"
class="card"
>
-
+
Trust Your Root CA
Download and trust your server's Root Certificate Authority to establish a
@@ -29,7 +29,7 @@
tuiButton
size="s"
appearance="tertiary-solid"
- iconRight="tuiIconDownload"
+ iconEnd="@tui.download"
href="/eos/local.crt"
>
Download
@@ -47,7 +47,7 @@
href="https://docs.start9.com/0.3.5.x/user-manual/trust-ca"
target="_blank"
rel="noreferrer"
- iconRight="tuiIconExternalLink"
+ iconEnd="@tui.external-link"
>
View Instructions
@@ -62,7 +62,7 @@
size="s"
class="refresh"
appearance="success-solid"
- iconRight="tuiIconRefreshCw"
+ iconEnd="@tui.refresh-cw"
(click)="refresh()"
>
Refresh
@@ -73,7 +73,7 @@
tuiButton
size="s"
appearance="flat"
- iconRight="tuiIconExternalLink"
+ iconEnd="@tui.external-link"
(click)="launchHttps()"
[disabled]="caTrusted"
>
@@ -85,7 +85,7 @@
@@ -97,7 +97,7 @@
Go to login
diff --git a/web/projects/ui/src/app/routes/login/ca-wizard/ca-wizard.component.ts b/web/projects/ui/src/app/routes/login/ca-wizard/ca-wizard.component.ts
index 0d6b71b6b..f206d071e 100644
--- a/web/projects/ui/src/app/routes/login/ca-wizard/ca-wizard.component.ts
+++ b/web/projects/ui/src/app/routes/login/ca-wizard/ca-wizard.component.ts
@@ -1,13 +1,8 @@
import { CommonModule, DOCUMENT } from '@angular/common'
import { Component, inject } from '@angular/core'
import { RELATIVE_URL } from '@start9labs/shared'
-import {
- TuiAppearanceModule,
- TuiButtonModule,
- TuiCardModule,
- TuiIconModule,
- TuiSurfaceModule,
-} from '@taiga-ui/experimental'
+import { TuiAppearance, TuiButton, TuiIcon, TuiSurface } from '@taiga-ui/core'
+import { TuiCardLarge } from '@taiga-ui/layout'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { ConfigService } from 'src/app/services/config.service'
@@ -18,11 +13,11 @@ import { ConfigService } from 'src/app/services/config.service'
styleUrls: ['./ca-wizard.component.scss'],
imports: [
CommonModule,
- TuiIconModule,
- TuiButtonModule,
- TuiAppearanceModule,
- TuiCardModule,
- TuiSurfaceModule,
+ TuiIcon,
+ TuiButton,
+ TuiAppearance,
+ TuiCardLarge,
+ TuiSurface,
],
})
export class CAWizardComponent {
diff --git a/web/projects/ui/src/app/routes/login/login.module.ts b/web/projects/ui/src/app/routes/login/login.module.ts
index 9d2dcb3b5..deca017ff 100644
--- a/web/projects/ui/src/app/routes/login/login.module.ts
+++ b/web/projects/ui/src/app/routes/login/login.module.ts
@@ -2,13 +2,12 @@ import { CommonModule } from '@angular/common'
import { NgModule } from '@angular/core'
import { FormsModule } from '@angular/forms'
import { RouterModule, Routes } from '@angular/router'
-import { TuiErrorModule, TuiTextfieldControllerModule } from '@taiga-ui/core'
+import { TuiButton, TuiError } from '@taiga-ui/core'
+import { TuiCardLarge } from '@taiga-ui/layout'
import {
- TuiButtonModule,
- TuiCardModule,
- TuiSurfaceModule,
-} from '@taiga-ui/experimental'
-import { TuiInputPasswordModule } from '@taiga-ui/kit'
+ TuiInputPasswordModule,
+ TuiTextfieldControllerModule,
+} from '@taiga-ui/legacy'
import { CAWizardComponent } from './ca-wizard/ca-wizard.component'
import { LoginPage } from './login.page'
@@ -24,12 +23,11 @@ const routes: Routes = [
CommonModule,
FormsModule,
CAWizardComponent,
- TuiButtonModule,
- TuiCardModule,
- TuiSurfaceModule,
+ TuiButton,
+ TuiCardLarge,
TuiInputPasswordModule,
TuiTextfieldControllerModule,
- TuiErrorModule,
+ TuiError,
RouterModule.forChild(routes),
],
declarations: [LoginPage],
diff --git a/web/projects/ui/src/app/routes/login/login.page.html b/web/projects/ui/src/app/routes/login/login.page.html
index 0cfb4e20e..497063ba4 100644
--- a/web/projects/ui/src/app/routes/login/login.page.html
+++ b/web/projects/ui/src/app/routes/login/login.page.html
@@ -3,12 +3,12 @@
-
+
@for (address of addresses; track $index) {
} @empty {
@@ -39,7 +39,7 @@ import { AddressDetails, AddressesService } from './interface.utils'
}
`,
- imports: [AddressItemComponent, TuiButtonModule],
+ imports: [AddressItemComponent, TuiButton],
changeDetection: ChangeDetectionStrategy.OnPush,
styles: `
.icon-add-btn {
diff --git a/web/projects/ui/src/app/routes/portal/components/interfaces/address-item.component.ts b/web/projects/ui/src/app/routes/portal/components/interfaces/address-item.component.ts
index c81471f96..ed6c35bf1 100644
--- a/web/projects/ui/src/app/routes/portal/components/interfaces/address-item.component.ts
+++ b/web/projects/ui/src/app/routes/portal/components/interfaces/address-item.component.ts
@@ -1,3 +1,5 @@
+import { TuiCell } from '@taiga-ui/layout'
+import { TuiBadge } from '@taiga-ui/kit'
import { NgIf } from '@angular/common'
import {
ChangeDetectionStrategy,
@@ -7,14 +9,8 @@ import {
} from '@angular/core'
import { WINDOW } from '@ng-web-apis/common'
import { CopyService } from '@start9labs/shared'
-import { TuiDialogService } from '@taiga-ui/core'
-import {
- TuiBadgeModule,
- TuiButtonModule,
- TuiCellModule,
- TuiTitleModule,
-} from '@taiga-ui/experimental'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { TuiDialogService, TuiTitle, TuiButton } from '@taiga-ui/core'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
import { QRModal } from 'src/app/routes/portal/modals/qr.component'
import { mask } from 'src/app/utils/mask'
import { InterfaceComponent } from './interface.component'
@@ -36,7 +32,7 @@ import { AddressesService } from './interface.utils'
@@ -44,7 +40,7 @@ import { AddressesService } from './interface.utils'
@@ -52,7 +48,7 @@ import { AddressesService } from './interface.utils'
@@ -60,7 +56,7 @@ import { AddressesService } from './interface.utils'
@@ -68,13 +64,7 @@ import { AddressesService } from './interface.utils'
`,
- imports: [
- NgIf,
- TuiCellModule,
- TuiTitleModule,
- TuiButtonModule,
- TuiBadgeModule,
- ],
+ imports: [NgIf, TuiCell, TuiTitle, TuiButton, TuiBadge],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class AddressItemComponent {
diff --git a/web/projects/ui/src/app/routes/portal/components/interfaces/interface.component.ts b/web/projects/ui/src/app/routes/portal/components/interfaces/interface.component.ts
index 93ca52f3c..f6435d9b0 100644
--- a/web/projects/ui/src/app/routes/portal/components/interfaces/interface.component.ts
+++ b/web/projects/ui/src/app/routes/portal/components/interfaces/interface.component.ts
@@ -6,14 +6,15 @@ import {
Input,
} from '@angular/core'
import { T } from '@start9labs/start-sdk'
-import { TuiCardModule, TuiSurfaceModule } from '@taiga-ui/experimental'
+import { TuiSurface } from '@taiga-ui/core'
+import { TuiCardLarge } from '@taiga-ui/layout'
import { PatchDB } from 'patch-db-client'
import { AddressGroupComponent } from 'src/app/routes/portal/components/interfaces/address-group.component'
import { DataModel } from 'src/app/services/patch-db/data-model'
-import { AddressDetails } from './interface.utils'
import { ClearnetAddressesDirective } from './directives/clearnet.directive'
import { LocalAddressesDirective } from './directives/local.directive'
import { TorAddressesDirective } from './directives/tor.directive'
+import { AddressDetails } from './interface.utils'
@Component({
standalone: true,
@@ -86,8 +87,8 @@ import { TorAddressesDirective } from './directives/tor.directive'
imports: [
CommonModule,
AddressGroupComponent,
- TuiCardModule,
- TuiSurfaceModule,
+ TuiCardLarge,
+ TuiSurface,
ClearnetAddressesDirective,
TorAddressesDirective,
LocalAddressesDirective,
diff --git a/web/projects/ui/src/app/routes/portal/components/interfaces/interface.utils.ts b/web/projects/ui/src/app/routes/portal/components/interfaces/interface.utils.ts
index b8607d97f..881978a33 100644
--- a/web/projects/ui/src/app/routes/portal/components/interfaces/interface.utils.ts
+++ b/web/projects/ui/src/app/routes/portal/components/interfaces/interface.utils.ts
@@ -1,6 +1,6 @@
import { CB, CT, T } from '@start9labs/start-sdk'
import { TuiDialogOptions } from '@taiga-ui/core'
-import { TuiPromptData } from '@taiga-ui/kit'
+import { TuiConfirmData } from '@taiga-ui/kit'
import { NetworkInfo } from 'src/app/services/patch-db/data-model'
import { configBuilderToSpec } from 'src/app/utils/configBuilderToSpec'
@@ -9,7 +9,7 @@ export abstract class AddressesService {
abstract remove(): Promise
}
-export const REMOVE: Partial> = {
+export const REMOVE: Partial> = {
label: 'Confirm',
size: 's',
data: {
diff --git a/web/projects/ui/src/app/routes/portal/components/logs/logs.component.html b/web/projects/ui/src/app/routes/portal/components/logs/logs.component.html
index 0f1424d0b..66bfaacfc 100644
--- a/web/projects/ui/src/app/routes/portal/components/logs/logs.component.html
+++ b/web/projects/ui/src/app/routes/portal/components/logs/logs.component.html
@@ -50,7 +50,7 @@
Scroll to bottom
@@ -58,7 +58,7 @@
Download
diff --git a/web/projects/ui/src/app/routes/portal/components/logs/logs.component.scss b/web/projects/ui/src/app/routes/portal/components/logs/logs.component.scss
index cdca063f1..d2aef6bd6 100644
--- a/web/projects/ui/src/app/routes/portal/components/logs/logs.component.scss
+++ b/web/projects/ui/src/app/routes/portal/components/logs/logs.component.scss
@@ -27,15 +27,15 @@
align-items: center;
justify-content: space-between;
padding-top: 1rem;
- border-top: 1px solid var(--tui-clear);
+ border-top: 1px solid var(--tui-background-neutral-1);
}
[data-status='reconnecting'] {
- color: var(--tui-success-fill);
+ color: var(--tui-status-positive);
}
[data-status='disconnected'] {
- color: var(--tui-warning-fill);
+ color: var(--tui-status-warning);
}
pre {
diff --git a/web/projects/ui/src/app/routes/portal/components/logs/logs.component.ts b/web/projects/ui/src/app/routes/portal/components/logs/logs.component.ts
index ce36eed3a..00005d859 100644
--- a/web/projects/ui/src/app/routes/portal/components/logs/logs.component.ts
+++ b/web/projects/ui/src/app/routes/portal/components/logs/logs.component.ts
@@ -2,16 +2,11 @@ import { CommonModule } from '@angular/common'
import { Component, ElementRef, Input, ViewChild } from '@angular/core'
import {
INTERSECTION_ROOT,
- IntersectionObserverModule,
+ WaIntersectionObserver,
} from '@ng-web-apis/intersection-observer'
-import { MutationObserverModule } from '@ng-web-apis/mutation-observer'
+import { WaMutationObserver } from '@ng-web-apis/mutation-observer'
import { FetchLogsReq, FetchLogsRes } from '@start9labs/shared'
-import {
- TuiLoaderModule,
- TuiScrollbarComponent,
- TuiScrollbarModule,
-} from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
+import { TuiLoader, TuiScrollbar, TuiButton } from '@taiga-ui/core'
import { NgDompurifyModule } from '@tinkoff/ng-dompurify'
import { RR } from 'src/app/services/api/api.types'
import { LogsDownloadDirective } from './logs-download.directive'
@@ -26,12 +21,12 @@ import { BehaviorSubject } from 'rxjs'
styleUrls: ['./logs.component.scss'],
imports: [
CommonModule,
- IntersectionObserverModule,
- MutationObserverModule,
+ WaIntersectionObserver,
+ WaMutationObserver,
NgDompurifyModule,
- TuiButtonModule,
- TuiLoaderModule,
- TuiScrollbarModule,
+ TuiButton,
+ TuiLoader,
+ TuiScrollbar,
LogsDownloadDirective,
LogsFetchDirective,
LogsPipe,
@@ -47,7 +42,7 @@ export class LogsComponent {
@ViewChild('bottom')
private readonly bottom?: ElementRef
- @ViewChild(TuiScrollbarComponent, { read: ElementRef })
+ @ViewChild(TuiScrollbar, { read: ElementRef })
private readonly scrollbar?: ElementRef
@Input({ required: true }) followLogs!: (
diff --git a/web/projects/ui/src/app/routes/portal/components/logs/logs.pipe.ts b/web/projects/ui/src/app/routes/portal/components/logs/logs.pipe.ts
index 2c4e28224..55f7042f4 100644
--- a/web/projects/ui/src/app/routes/portal/components/logs/logs.pipe.ts
+++ b/web/projects/ui/src/app/routes/portal/components/logs/logs.pipe.ts
@@ -80,7 +80,7 @@ export class LogsPipe implements PipeTransform {
function getMessage(success: boolean): string {
return `${
success ? 'Reconnected' : 'Disconnected'
} at ${toLocalIsoString(new Date())}
`
diff --git a/web/projects/ui/src/app/routes/portal/components/tabs.component.ts b/web/projects/ui/src/app/routes/portal/components/tabs.component.ts
index 55ba80774..0a8c2f0db 100644
--- a/web/projects/ui/src/app/routes/portal/components/tabs.component.ts
+++ b/web/projects/ui/src/app/routes/portal/components/tabs.component.ts
@@ -7,12 +7,9 @@ import {
} from '@angular/core'
import { toSignal } from '@angular/core/rxjs-interop'
import { RouterLink, RouterLinkActive } from '@angular/router'
-import { TuiSheetDialogService, TuiTabBarModule } from '@taiga-ui/addon-mobile'
-import { TuiDialogService } from '@taiga-ui/core'
-import {
- TuiBadgeNotificationModule,
- TuiIconModule,
-} from '@taiga-ui/experimental'
+import { TuiSheetDialogService, TuiTabBar } from '@taiga-ui/addon-mobile'
+import { TuiDialogService, TuiIcon } from '@taiga-ui/core'
+import { TuiBadgeNotification } from '@taiga-ui/kit'
import { ABOUT } from 'src/app/routes/portal/components/header/about.component'
import { BadgeService } from 'src/app/services/badge.service'
import { RESOURCES } from 'src/app/utils/resources'
@@ -27,7 +24,7 @@ const FILTER = ['/portal/system/settings', '/portal/system/marketplace']
@@ -62,7 +61,7 @@ import {
styles: [
`
.warning {
- color: var(--tui-warning-fill);
+ color: var(--tui-status-warning);
}
.button {
@@ -79,9 +78,9 @@ import {
CommonModule,
FormsModule,
TuiInputModule,
- TuiButtonModule,
+ TuiButton,
TuiTextfieldControllerModule,
- TuiAutoFocusModule,
+ TuiAutoFocus,
],
changeDetection: ChangeDetectionStrategy.OnPush,
})
diff --git a/web/projects/ui/src/app/routes/portal/modals/qr.component.ts b/web/projects/ui/src/app/routes/portal/modals/qr.component.ts
index 7aa4bf0f0..e94fc4b42 100644
--- a/web/projects/ui/src/app/routes/portal/modals/qr.component.ts
+++ b/web/projects/ui/src/app/routes/portal/modals/qr.component.ts
@@ -1,6 +1,6 @@
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { TuiDialogContext } from '@taiga-ui/core'
-import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus'
+import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus'
import { QrCodeModule } from 'ng-qrcode'
@Component({
diff --git a/web/projects/ui/src/app/routes/portal/portal.component.ts b/web/projects/ui/src/app/routes/portal/portal.component.ts
index 162839cc5..d57b31d40 100644
--- a/web/projects/ui/src/app/routes/portal/portal.component.ts
+++ b/web/projects/ui/src/app/routes/portal/portal.component.ts
@@ -1,8 +1,8 @@
+import { TuiScrollbar } from '@taiga-ui/core'
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'
import { NavigationEnd, Router, RouterOutlet } from '@angular/router'
-import { TuiScrollbarModule } from '@taiga-ui/core'
import { PatchDB } from 'patch-db-client'
import { filter } from 'rxjs'
import { TabsComponent } from 'src/app/routes/portal/components/tabs.component'
@@ -44,7 +44,7 @@ import { HeaderComponent } from './components/header/header.component'
RouterOutlet,
HeaderComponent,
TabsComponent,
- TuiScrollbarModule,
+ TuiScrollbar,
],
})
export class PortalComponent {
diff --git a/web/projects/ui/src/app/routes/portal/routes/dashboard/controls.component.ts b/web/projects/ui/src/app/routes/portal/routes/dashboard/controls.component.ts
index 307e023ad..2429dae26 100644
--- a/web/projects/ui/src/app/routes/portal/routes/dashboard/controls.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/dashboard/controls.component.ts
@@ -6,11 +6,8 @@ import {
inject,
input,
} from '@angular/core'
-import { TuiLetModule } from '@taiga-ui/cdk'
-import {
- TuiButtonModule,
- tuiButtonOptionsProvider,
-} from '@taiga-ui/experimental'
+import { TuiLet } from '@taiga-ui/cdk'
+import { TuiButton, tuiButtonOptionsProvider } from '@taiga-ui/core'
import { map } from 'rxjs'
import { UILaunchComponent } from 'src/app/routes/portal/routes/dashboard/ui.component'
import { ActionsService } from 'src/app/services/actions.service'
@@ -25,7 +22,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
@if (pkg().status.main.status === 'running') {
Stop
@@ -33,7 +30,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
Restart
@@ -42,7 +39,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
@@ -51,7 +48,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
Configure
@@ -61,7 +58,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [TuiButtonModule, UILaunchComponent, TuiLetModule, AsyncPipe],
+ imports: [TuiButton, UILaunchComponent, TuiLet, AsyncPipe],
providers: [tuiButtonOptionsProvider({ size: 's', appearance: 'none' })],
styles: `
:host {
diff --git a/web/projects/ui/src/app/routes/portal/routes/dashboard/dashboard.component.ts b/web/projects/ui/src/app/routes/portal/routes/dashboard/dashboard.component.ts
index 506a0cee2..f3c4861c8 100644
--- a/web/projects/ui/src/app/routes/portal/routes/dashboard/dashboard.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/dashboard/dashboard.component.ts
@@ -1,6 +1,6 @@
+import { TuiIcon } from '@taiga-ui/core'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { toSignal } from '@angular/core/rxjs-interop'
-import { TuiIconModule } from '@taiga-ui/experimental'
import { ToManifestPipe } from 'src/app/routes/portal/pipes/to-manifest'
import { ServiceComponent } from 'src/app/routes/portal/routes/dashboard/service.component'
import { ServicesService } from 'src/app/routes/portal/routes/dashboard/services.service'
@@ -10,7 +10,7 @@ import { DepErrorService } from 'src/app/services/dep-error.service'
standalone: true,
template: `
-
+
Services
@@ -86,12 +86,12 @@ import { DepErrorService } from 'src/app/services/dep-error.service'
}
tr:not(:last-child) {
- box-shadow: inset 0 -1px var(--tui-clear);
+ box-shadow: inset 0 -1px var(--tui-background-neutral-1);
}
th {
text-transform: uppercase;
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
font: var(--tui-font-text-s);
font-weight: bold;
text-align: left;
@@ -118,7 +118,7 @@ import { DepErrorService } from 'src/app/services/dep-error.service'
}
}
`,
- imports: [TuiIconModule, ServiceComponent, ToManifestPipe],
+ imports: [TuiIcon, ServiceComponent, ToManifestPipe],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DashboardComponent {
diff --git a/web/projects/ui/src/app/routes/portal/routes/dashboard/service.component.ts b/web/projects/ui/src/app/routes/portal/routes/dashboard/service.component.ts
index 5f59d9fed..7589e1066 100644
--- a/web/projects/ui/src/app/routes/portal/routes/dashboard/service.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/dashboard/service.component.ts
@@ -50,7 +50,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
cursor: pointer;
&:hover {
- background: var(--tui-clear);
+ background: var(--tui-background-neutral-1);
}
}
@@ -66,7 +66,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
}
a {
- color: var(--tui-text-01);
+ color: var(--tui-text-primary);
font-weight: bold;
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/dashboard/status.component.ts b/web/projects/ui/src/app/routes/portal/routes/dashboard/status.component.ts
index c201f91a8..35d2b52fb 100644
--- a/web/projects/ui/src/app/routes/portal/routes/dashboard/status.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/dashboard/status.component.ts
@@ -1,3 +1,4 @@
+import { TuiLoader, TuiIcon } from '@taiga-ui/core'
import {
ChangeDetectionStrategy,
Component,
@@ -5,8 +6,6 @@ import {
Input,
} from '@angular/core'
import { tuiPure } from '@taiga-ui/cdk'
-import { TuiLoaderModule } from '@taiga-ui/core'
-import { TuiIconModule } from '@taiga-ui/experimental'
import { PackageDataEntry } from 'src/app/services/patch-db/data-model'
import { renderPkgStatus } from 'src/app/services/pkg-status-rendering.service'
import { InstallingProgressDisplayPipe } from '../service/pipes/install-progress.pipe'
@@ -19,9 +18,9 @@ import { InstallingProgressDisplayPipe } from '../service/pipes/install-progress
} @else {
@if (healthy) {
-
+
} @else {
-
+
}
}
{{ status }}
@@ -46,7 +45,7 @@ import { InstallingProgressDisplayPipe } from '../service/pipes/install-progress
}
`,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [TuiIconModule, TuiLoaderModule],
+ imports: [TuiIcon, TuiLoader],
providers: [InstallingProgressDisplayPipe],
})
export class StatusComponent {
@@ -69,7 +68,7 @@ export class StatusComponent {
}
get loading(): boolean {
- return this.color === 'var(--tui-info-fill)'
+ return this.color === 'var(--tui-status-info)'
}
@tuiPure
@@ -111,9 +110,9 @@ export class StatusComponent {
get color(): string {
switch (this.getStatus(this.pkg).primary) {
case 'running':
- return 'var(--tui-success-fill)'
+ return 'var(--tui-status-positive)'
case 'needsConfig':
- return 'var(--tui-warning-fill)'
+ return 'var(--tui-status-warning)'
case 'installing':
case 'updating':
case 'stopping':
@@ -122,10 +121,10 @@ export class StatusComponent {
case 'restarting':
case 'removing':
case 'restoring':
- return 'var(--tui-info-fill)'
+ return 'var(--tui-status-info)'
// stopped
default:
- return 'var(--tui-text-02)'
+ return 'var(--tui-text-secondary)'
}
}
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/dashboard/ui.component.ts b/web/projects/ui/src/app/routes/portal/routes/dashboard/ui.component.ts
index 490856eba..b35df52ef 100644
--- a/web/projects/ui/src/app/routes/portal/routes/dashboard/ui.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/dashboard/ui.component.ts
@@ -6,8 +6,7 @@ import {
} from '@angular/core'
import { T } from '@start9labs/start-sdk'
import { tuiPure } from '@taiga-ui/cdk'
-import { TuiDataListModule, TuiHostedDropdownModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
+import { TuiDataList, TuiDropdown, TuiButton } from '@taiga-ui/core'
import { ConfigService } from 'src/app/services/config.service'
import { PackageDataEntry } from 'src/app/services/patch-db/data-model'
@@ -16,38 +15,38 @@ import { PackageDataEntry } from 'src/app/services/patch-db/data-model'
selector: 'app-ui-launch',
template: `
@if (interfaces.length > 1) {
-
-
- Launch UI
-
-
-
- @for (interface of interfaces; track $index) {
-
- {{ interface.name }}
-
- }
-
-
-
+
+ Launch UI
+
+
+
+ @for (interface of interfaces; track $index) {
+
+ {{ interface.name }}
+
+ }
+
+
} @else {
- {{ interfaces[0]?.name }}
+ {{ first?.name }}
}
`,
@@ -57,7 +56,7 @@ import { PackageDataEntry } from 'src/app/services/patch-db/data-model'
}
`,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [TuiButtonModule, TuiHostedDropdownModule, TuiDataListModule],
+ imports: [TuiButton, TuiDropdown, TuiDataList],
})
export class UILaunchComponent {
private readonly config = inject(ConfigService)
@@ -73,6 +72,10 @@ export class UILaunchComponent {
return this.pkg.status.main.status === 'running'
}
+ get first(): T.ServiceInterfaceWithHostInfo | undefined {
+ return this.interfaces[0]
+ }
+
@tuiPure
getInterfaces(pkg?: PackageDataEntry): T.ServiceInterfaceWithHostInfo[] {
return pkg
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/action-success.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/action-success.component.ts
index d89fc63a7..7aeaf215e 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/action-success.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/action-success.component.ts
@@ -1,9 +1,8 @@
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { CopyService } from '@start9labs/shared'
-import { TuiDialogContext } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
-import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus'
+import { TuiDialogContext, TuiButton } from '@taiga-ui/core'
+import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus'
import { QrCodeModule } from 'ng-qrcode'
import { ActionResponse } from 'src/app/services/api/api.types'
@@ -22,7 +21,7 @@ import { ActionResponse } from 'src/app/services/api/api.types'
*ngIf="context.data.copyable"
tuiIconButton
appearance="flat"
- iconLeft="tuiIconCopyLarge"
+ iconStart="@tui.copy"
(click)="copyService.copy(context.data.value)"
>
Copy
@@ -48,7 +47,7 @@ import { ActionResponse } from 'src/app/services/api/api.types'
],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, QrCodeModule, TuiButtonModule],
+ imports: [CommonModule, QrCodeModule, TuiButton],
})
export class ServiceActionSuccessComponent {
readonly copyService = inject(CopyService)
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/action.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/action.component.ts
index caf55c80b..7eb65fbb6 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/action.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/action.component.ts
@@ -1,6 +1,5 @@
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
-import { TuiSvgModule } from '@taiga-ui/core'
-import { TuiIconModule } from '@taiga-ui/experimental'
+import { TuiIcon } from '@taiga-ui/core'
interface ActionItem {
readonly icon: string
@@ -19,7 +18,7 @@ interface ActionItem {
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiIconModule],
+ imports: [TuiIcon],
})
export class ServiceActionComponent {
@Input({ required: true })
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/actions.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/actions.component.ts
index 9714aa464..28f92887c 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/actions.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/actions.component.ts
@@ -1,3 +1,4 @@
+import { TuiButton } from '@taiga-ui/core'
import {
ChangeDetectionStrategy,
Component,
@@ -6,10 +7,7 @@ import {
} from '@angular/core'
import { T } from '@start9labs/start-sdk'
import { tuiPure } from '@taiga-ui/cdk'
-import {
- TuiButtonModule,
- tuiButtonOptionsProvider,
-} from '@taiga-ui/experimental'
+import { tuiButtonOptionsProvider } from '@taiga-ui/core'
import { DependencyInfo } from 'src/app/routes/portal/routes/service/types/dependency-info'
import { ActionsService } from 'src/app/services/actions.service'
import { PackageDataEntry } from 'src/app/services/patch-db/data-model'
@@ -22,7 +20,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
Stop
@@ -30,7 +28,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
Restart
@@ -40,7 +38,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
@if (pkg.status.main.status === 'stopped' && isConfigured) {
Start
@@ -51,7 +49,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
Configure
@@ -70,7 +68,7 @@ import { getManifest } from 'src/app/utils/get-package-data'
],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiButtonModule],
+ imports: [TuiButton],
providers: [tuiButtonOptionsProvider({ size: 's' })],
})
export class ServiceActionsComponent {
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/backups.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/backups.component.ts
index 48a3aea47..815b884cf 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/backups.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/backups.component.ts
@@ -1,3 +1,4 @@
+import { TuiButton } from '@taiga-ui/core'
import { I18nPluralPipe } from '@angular/common'
import {
ChangeDetectionStrategy,
@@ -7,7 +8,6 @@ import {
} from '@angular/core'
import { RouterLink } from '@angular/router'
import { T } from '@start9labs/start-sdk'
-import { TuiButtonModule } from '@taiga-ui/experimental'
@Component({
selector: 'service-backups',
@@ -23,7 +23,7 @@ import { TuiButtonModule } from '@taiga-ui/experimental'
-
- {{ dep.actionText }}
-
-
+ @if (dep.actionText) {
+
+ {{ dep.actionText }}
+
+
+ }
`,
styles: [
`
@@ -35,15 +34,14 @@ import { DependencyInfo } from '../types/dependency-info'
border-radius: 100%;
}
- tui-svg {
- width: 1rem;
- height: 1rem;
+ tui-icon {
+ font-size: 1rem;
}
`,
],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [EmverPipesModule, CommonModule, TuiSvgModule],
+ imports: [EmverPipesModule, TuiIcon],
})
export class ServiceDependencyComponent {
@Input({ required: true, alias: 'serviceDependency' })
@@ -51,7 +49,7 @@ export class ServiceDependencyComponent {
get color(): string {
return this.dep.errorText
- ? 'var(--tui-warning-fill)'
- : 'var(--tui-success-fill)'
+ ? 'var(--tui-status-warning)'
+ : 'var(--tui-status-positive)'
}
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/health-check.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/health-check.component.ts
index 024e5262c..90f60a9c6 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/health-check.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/health-check.component.ts
@@ -1,23 +1,22 @@
-import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
import { T } from '@start9labs/start-sdk'
-import { TuiLoaderModule, TuiSvgModule } from '@taiga-ui/core'
+import { TuiIcon, TuiLoader } from '@taiga-ui/core'
@Component({
selector: 'service-health-check',
template: `
-
-
-
+ } @else {
+
-
+ />
+ }
{{ check.name }}
@@ -39,7 +38,7 @@ import { TuiLoaderModule, TuiSvgModule } from '@taiga-ui/core'
],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiLoaderModule, TuiSvgModule],
+ imports: [TuiLoader, TuiIcon],
})
export class ServiceHealthCheckComponent {
@Input({ required: true })
@@ -57,26 +56,26 @@ export class ServiceHealthCheckComponent {
get icon(): string {
switch (this.check.result) {
case 'success':
- return 'tuiIconCheckLarge'
+ return '@tui.check'
case 'failure':
- return 'tuiIconAlertTriangleLarge'
+ return '@tui.triangle-alert'
default:
- return 'tuiIconMinusLarge'
+ return '@tui.minus'
}
}
get color(): string {
switch (this.check.result) {
case 'success':
- return 'var(--tui-success-fill)'
+ return 'var(--tui-status-positive)'
case 'failure':
- return 'var(--tui-warning-fill)'
+ return 'var(--tui-status-warning)'
case 'starting':
case 'loading':
- return 'var(--tui-primary)'
+ return 'var(--tui-background-accent-1)'
// disabled
default:
- return 'var(--tui-text-02)'
+ return 'var(--tui-text-secondary)'
}
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/interface-list-item.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/interface-list-item.component.ts
index 0e52abd64..26d64536d 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/interface-list-item.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/interface-list-item.component.ts
@@ -1,3 +1,5 @@
+import { TuiLet } from '@taiga-ui/cdk'
+import { TuiLoader, TuiIcon, TuiButton } from '@taiga-ui/core'
import { CommonModule } from '@angular/common'
import {
ChangeDetectionStrategy,
@@ -5,9 +7,6 @@ import {
inject,
Input,
} from '@angular/core'
-import { TuiLetModule } from '@taiga-ui/cdk'
-import { TuiLoaderModule } from '@taiga-ui/core'
-import { TuiButtonModule, TuiIconModule } from '@taiga-ui/experimental'
import { map, timer } from 'rxjs'
import { ConfigService } from 'src/app/services/config.service'
import { ExtendedInterfaceInfo } from '../pipes/interface-info.pipe'
@@ -21,7 +20,7 @@ import { ExtendedInterfaceInfo } from '../pipes/interface-info.pipe'
} @else if (check === '') {
} @else {
-
+
}
{{ info.name }}
@@ -39,7 +38,7 @@ import { ExtendedInterfaceInfo } from '../pipes/interface-info.pipe'
-
+
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiIconModule],
+ imports: [TuiIcon],
})
export class ServiceMenuItemComponent {
@Input({ required: true, alias: 'serviceMenuItem' })
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/menu.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/menu.component.ts
index aea62aefd..9549ac1ca 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/menu.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/menu.component.ts
@@ -38,7 +38,7 @@ export class ServiceMenuComponent {
get color(): string {
return this.pkg.outboundProxy
- ? 'var(--tui-success-fill)'
- : 'var(--tui-warning-fill)'
+ ? 'var(--tui-status-positive)'
+ : 'var(--tui-status-warning)'
}
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/progress.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/progress.component.ts
index 85456a455..8146d86b7 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/progress.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/progress.component.ts
@@ -1,20 +1,21 @@
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
import { T } from '@start9labs/start-sdk'
-import { TuiProgressModule } from '@taiga-ui/kit'
+import { TuiProgress } from '@taiga-ui/kit'
import { InstallingProgressPipe } from 'src/app/routes/portal/routes/service/pipes/install-progress.pipe'
@Component({
selector: '[progress]',
template: `
-
+
@if (progress | installingProgress; as decimal) {
: {{ decimal * 100 }}%
@@ -23,7 +24,7 @@ import { InstallingProgressPipe } from 'src/app/routes/portal/routes/service/pip
styles: [':host { line-height: 2rem }'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiProgressModule, InstallingProgressPipe],
+ imports: [TuiProgress, InstallingProgressPipe],
})
export class ServiceProgressComponent {
@Input({ required: true }) progress!: T.Progress
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/property.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/property.component.ts
index 87fe5aa3e..651bd7381 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/property.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/property.component.ts
@@ -5,20 +5,20 @@ import {
Input,
} from '@angular/core'
import { CopyService } from '@start9labs/shared'
+import { TuiButton, TuiLabel, TuiTitle } from '@taiga-ui/core'
import { mask } from 'src/app/utils/mask'
-import { TuiLabelModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
@Component({
selector: 'service-property',
template: `
-
+
+ {{ label }}
{{ masked ? mask : value }}
Toggle
@@ -26,7 +26,7 @@ import { TuiButtonModule } from '@taiga-ui/experimental'
Copy
@@ -39,14 +39,14 @@ import { TuiButtonModule } from '@taiga-ui/experimental'
padding: 0.5rem 0;
&:not(:last-of-type) {
- box-shadow: 0 1px var(--tui-clear);
+ box-shadow: 0 1px var(--tui-background-neutral-1);
}
}
`,
],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiButtonModule, TuiLabelModule],
+ imports: [TuiButton, TuiLabel, TuiTitle],
})
export class ServicePropertyComponent {
@Input()
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/components/status.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/components/status.component.ts
index 16fc7e9bd..ed24b70a6 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/components/status.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/components/status.component.ts
@@ -1,3 +1,4 @@
+import { TuiLoader, TuiIcon } from '@taiga-ui/core'
import { CommonModule } from '@angular/common'
import {
ChangeDetectionStrategy,
@@ -5,8 +6,6 @@ import {
HostBinding,
Input,
} from '@angular/core'
-import { TuiLoaderModule } from '@taiga-ui/core'
-import { TuiIconModule } from '@taiga-ui/experimental'
import { StatusRendering } from 'src/app/services/pkg-status-rendering.service'
import { InstallingProgressDisplayPipe } from '../pipes/install-progress.pipe'
import { InstallingInfo } from 'src/app/services/patch-db/data-model'
@@ -41,7 +40,7 @@ import { UnitConversionPipesModule } from '@start9labs/shared'
white-space: nowrap;
margin: auto 0;
min-height: 2.75rem;
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
tui-loader {
@@ -52,7 +51,7 @@ import { UnitConversionPipesModule } from '@start9labs/shared'
div {
font-size: 1rem;
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
margin: 1rem 0;
}
`,
@@ -63,8 +62,8 @@ import { UnitConversionPipesModule } from '@start9labs/shared'
CommonModule,
InstallingProgressDisplayPipe,
UnitConversionPipesModule,
- TuiIconModule,
- TuiLoaderModule,
+ TuiIcon,
+ TuiLoader,
],
})
export class ServiceStatusComponent {
@@ -98,19 +97,19 @@ export class ServiceStatusComponent {
}
get icon(): string {
- if (!this.connected) return 'tuiIconCircle'
+ if (!this.connected) return '@tui.circle'
switch (this.rendering.color) {
case 'danger':
- return 'tuiIconXCircle'
+ return '@tui.circle-x'
case 'warning':
- return 'tuiIconAlertCircle'
+ return '@tui.circle-alert'
case 'success':
- return 'tuiIconCheckCircle'
+ return '@tui.circle-check'
case 'primary':
- return 'tuiIconMinusCircle'
+ return '@tui.circle-minus'
default:
- return 'tuiIconCircle'
+ return '@tui.circle'
}
}
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/modals/additional-item.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/modals/additional-item.component.ts
index 3244b8705..c5258bc3e 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/modals/additional-item.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/modals/additional-item.component.ts
@@ -1,6 +1,5 @@
-import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
-import { TuiSvgModule } from '@taiga-ui/core'
+import { TuiIcon } from '@taiga-ui/core'
import {
AdditionalItem,
FALLBACK_URL,
@@ -13,7 +12,9 @@ import {
{{ additionalItem.name }}
{{ additionalItem.description }}
-
+ @if (icon) {
+
+ }
`,
styles: [
`
@@ -32,7 +33,7 @@ import {
},
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiSvgModule],
+ imports: [TuiIcon],
})
export class ServiceAdditionalItemComponent {
@Input({ required: true })
@@ -44,7 +45,7 @@ export class ServiceAdditionalItemComponent {
get icon(): string | undefined {
return this.additionalItem.description.startsWith('http')
- ? 'tuiIconExternalLinkLarge'
+ ? '@tui.external-link'
: this.additionalItem.icon
}
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/modals/additional.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/modals/additional.component.ts
index 98723f4f9..c36d8e312 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/modals/additional.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/modals/additional.component.ts
@@ -5,7 +5,7 @@ import {
Input,
} from '@angular/core'
import { TuiDialogOptions } from '@taiga-ui/core'
-import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus'
+import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus'
import { PackageDataEntry } from 'src/app/services/patch-db/data-model'
import { ToAdditionalPipe } from 'src/app/routes/portal/routes/service/pipes/to-additional.pipe'
import { ServiceAdditionalItemComponent } from './additional-item.component'
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/modals/properties.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/modals/properties.component.ts
index 7c9b21717..c7ead1737 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/modals/properties.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/modals/properties.component.ts
@@ -1,9 +1,8 @@
+import { TuiLoader, TuiButton } from '@taiga-ui/core'
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { ErrorService } from '@start9labs/shared'
-import { TuiLoaderModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
-import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus'
+import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus'
import { BehaviorSubject } from 'rxjs'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { ServicePropertyComponent } from '../components/property.component'
@@ -19,7 +18,7 @@ import { ServicePropertyComponent } from '../components/property.component'
No properties
}
}
-
+
Refresh
`,
@@ -33,12 +32,7 @@ import { ServicePropertyComponent } from '../components/property.component'
],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [
- CommonModule,
- TuiButtonModule,
- ServicePropertyComponent,
- TuiLoaderModule,
- ],
+ imports: [CommonModule, TuiButton, ServicePropertyComponent, TuiLoader],
})
export class ServicePropertiesModal {
private readonly api = inject(ApiService)
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/pipes/interface-info.pipe.ts b/web/projects/ui/src/app/routes/portal/routes/service/pipes/interface-info.pipe.ts
index a525bf509..9a831ad7a 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/pipes/interface-info.pipe.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/pipes/interface-info.pipe.ts
@@ -23,18 +23,18 @@ export class InterfaceInfoPipe implements PipeTransform {
switch (val.type) {
case 'ui':
- color = 'var(--tui-primary)'
- icon = 'tuiIconMonitor'
+ color = 'var(--tui-background-accent-1)'
+ icon = '@tui.monitor'
typeDetail = 'User Interface (UI)'
break
case 'p2p':
- color = 'var(--tui-info-fill)'
- icon = 'tuiIconUsers'
+ color = 'var(--tui-status-info)'
+ icon = '@tui.users'
typeDetail = 'Peer-To-Peer Interface (P2P)'
break
case 'api':
- color = 'var(--tui-support-09)'
- icon = 'tuiIconTerminal'
+ color = 'var(--tui-chart-categorical-09)'
+ icon = '@tui.terminal'
typeDetail = 'Application Program Interface (API)'
break
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/pipes/to-additional.pipe.ts b/web/projects/ui/src/app/routes/portal/routes/service/pipes/to-additional.pipe.ts
index a1f1f61b0..dfaa39140 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/pipes/to-additional.pipe.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/pipes/to-additional.pipe.ts
@@ -2,7 +2,7 @@ import { inject, Pipe, PipeTransform } from '@angular/core'
import { CopyService, MarkdownComponent } from '@start9labs/shared'
import { T } from '@start9labs/start-sdk'
import { TuiDialogService } from '@taiga-ui/core'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
import { from } from 'rxjs'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { PackageDataEntry } from 'src/app/services/patch-db/data-model'
@@ -39,14 +39,14 @@ export class ToAdditionalPipe implements PipeTransform {
{
name: 'Git Hash',
description: manifest.gitHash || 'Unknown',
- icon: manifest.gitHash ? 'tuiIconCopyLarge' : '',
+ icon: manifest.gitHash ? '@tui.copy' : '',
action: () =>
manifest.gitHash && this.copyService.copy(manifest.gitHash),
},
{
name: 'License',
description: manifest.license,
- icon: 'tuiIconChevronRightLarge',
+ icon: '@tui.chevron-right',
action: () => this.showLicense(manifest),
},
{
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/pipes/to-menu.pipe.ts b/web/projects/ui/src/app/routes/portal/routes/service/pipes/to-menu.pipe.ts
index 5883cd2fd..cd438ddcc 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/pipes/to-menu.pipe.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/pipes/to-menu.pipe.ts
@@ -3,7 +3,7 @@ import { Params } from '@angular/router'
import { MarkdownComponent } from '@start9labs/shared'
import { T } from '@start9labs/start-sdk'
import { TuiDialogService } from '@taiga-ui/core'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
import { from } from 'rxjs'
import {
ConfigModal,
@@ -41,19 +41,19 @@ export class ToMenuPipe implements PipeTransform {
return [
{
- icon: 'tuiIconList',
+ icon: '@tui.list',
name: 'Instructions',
description: `Understand how to use ${manifest.title}`,
action: () => this.showInstructions(manifest),
},
{
- icon: 'tuiIconSliders',
+ icon: '@tui.sliders-vertical',
name: 'Config',
description: `Customize ${manifest.title}`,
action: () => this.openConfig(manifest),
},
{
- icon: 'tuiIconKey',
+ icon: '@tui.key',
name: 'Properties',
description: `Runtime information, credentials, and other values of interest`,
action: () =>
@@ -65,13 +65,13 @@ export class ToMenuPipe implements PipeTransform {
.subscribe(),
},
{
- icon: 'tuiIconZap',
+ icon: '@tui.zap',
name: 'Actions',
description: `Uninstall and other commands specific to ${manifest.title}`,
routerLink: `actions`,
},
{
- icon: 'tuiIconShield',
+ icon: '@tui.shield',
name: 'Outbound Proxy',
description: `Proxy all outbound traffic from ${manifest.title}`,
action: () =>
@@ -81,13 +81,13 @@ export class ToMenuPipe implements PipeTransform {
),
},
{
- icon: 'tuiIconFileText',
+ icon: '@tui.file-text',
name: 'Logs',
description: `Raw, unfiltered logs`,
routerLink: 'logs',
},
{
- icon: 'tuiIconInfo',
+ icon: '@tui.info',
name: 'Additional Info',
description: `View package details`,
action: () =>
@@ -100,14 +100,14 @@ export class ToMenuPipe implements PipeTransform {
},
pkg.marketplaceUrl
? {
- icon: 'tuiIconShoppingBag',
+ icon: '@tui.shopping-bag',
name: 'Marketplace Listing',
description: `View ${manifest.title} on the Marketplace`,
routerLink: `/portal/system/marketplace`,
params: { url: pkg.marketplaceUrl, id: manifest.id },
}
: {
- icon: 'tuiIconShoppingBag',
+ icon: '@tui.shopping-bag',
name: 'Marketplace Listing',
description: `This package was not installed from the marketplace`,
},
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/routes/actions.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/routes/actions.component.ts
index af7080f62..c78b2be08 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/routes/actions.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/routes/actions.component.ts
@@ -1,3 +1,4 @@
+import { TUI_CONFIRM } from '@taiga-ui/kit'
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router'
@@ -9,8 +10,7 @@ import {
getPkgId,
} from '@start9labs/shared'
import { TuiDialogService } from '@taiga-ui/core'
-import { TUI_PROMPT } from '@taiga-ui/kit'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
import { PatchDB } from 'patch-db-client'
import { filter, switchMap, timer } from 'rxjs'
import { FormComponent } from 'src/app/routes/portal/components/form.component'
@@ -50,7 +50,7 @@ import { getAllPackages, getManifest } from 'src/app/utils/get-package-data'
[action]="{
name: action.name,
description: action.description,
- icon: 'tuiIconPlayCircle'
+ icon: '@tui.circle-play'
}"
(click)="handleAction(action)"
>
@@ -75,7 +75,7 @@ export class ServiceActionsRoute {
.pipe(filter(pkg => pkg.stateInfo.state === 'installed'))
readonly action = {
- icon: 'tuiIconTrash2',
+ icon: '@tui.trash-2',
name: 'Uninstall',
description:
'This will uninstall the service from StartOS and delete all data permanently.',
@@ -116,7 +116,7 @@ export class ServiceActionsRoute {
})
} else {
this.dialogs
- .open(TUI_PROMPT, {
+ .open(TUI_CONFIRM, {
label: 'Confirm',
size: 's',
data: {
@@ -145,7 +145,7 @@ export class ServiceActionsRoute {
}
this.dialogs
- .open(TUI_PROMPT, {
+ .open(TUI_CONFIRM, {
label: 'Warning',
size: 's',
data: {
diff --git a/web/projects/ui/src/app/routes/portal/routes/service/routes/service.component.ts b/web/projects/ui/src/app/routes/portal/routes/service/routes/service.component.ts
index 6e2c97ed7..d169e3ccc 100644
--- a/web/projects/ui/src/app/routes/portal/routes/service/routes/service.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/service/routes/service.component.ts
@@ -128,8 +128,8 @@ import { DependencyInfo } from '../types/dependency-info'
width: 100%;
padding: 1rem 1.5rem 0.5rem;
border-radius: 0.5rem;
- background: var(--tui-clear);
- box-shadow: inset 0 7rem 0 -4rem var(--tui-clear);
+ background: var(--tui-background-neutral-1);
+ box-shadow: inset 0 7rem 0 -4rem var(--tui-background-neutral-1);
clip-path: polygon(0 1.5rem, 1.5rem 0, 100% 0, 100% 100%, 0 100%);
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/backups/backups.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/backups/backups.component.ts
index 2778a68c8..cde17e2d2 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/backups/backups.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/backups/backups.component.ts
@@ -1,6 +1,5 @@
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
-import { TuiDialogService } from '@taiga-ui/core'
-import { TuiIconModule } from '@taiga-ui/experimental'
+import { TuiDialogService, TuiIcon } from '@taiga-ui/core'
import { BackupsUpcomingComponent } from './components/upcoming.component'
import { HISTORY } from './modals/history.component'
import { JOBS } from './modals/jobs.component'
@@ -28,7 +27,7 @@ import { BackupsRestoreService } from './services/restore.service'
host: { class: 'g-page' },
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [BackupsUpcomingComponent, TuiIconModule],
+ imports: [BackupsUpcomingComponent, TuiIcon],
})
export default class BackupsComponent {
private readonly dialogs = inject(TuiDialogService)
@@ -36,19 +35,19 @@ export default class BackupsComponent {
readonly options = [
{
name: 'Create a Backup',
- icon: 'tuiIconPlusLarge',
+ icon: '@tui.plus',
description: 'Create a one-time backup',
action: inject(BackupsCreateService).handle,
},
{
name: 'Restore from Backup',
- icon: 'tuiIconShareLarge',
+ icon: '@tui.share',
description: 'Restore services from a backup',
action: inject(BackupsRestoreService).handle,
},
{
name: 'Jobs',
- icon: 'tuiIconToolLarge',
+ icon: '@tui.wrench',
description: 'Manage backup jobs',
action: () =>
this.dialogs
@@ -57,7 +56,7 @@ export default class BackupsComponent {
},
{
name: 'Targets',
- icon: 'tuiIconDatabaseLarge',
+ icon: '@tui.database',
description: 'Manage backup targets',
action: () =>
this.dialogs
@@ -66,7 +65,7 @@ export default class BackupsComponent {
},
{
name: 'History',
- icon: 'tuiIconArchiveLarge',
+ icon: '@tui.archive',
description: 'View your entire backup history',
action: () =>
this.dialogs
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/backups/components/physical.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/backups/components/physical.component.ts
index 3031fb28f..6f34444fc 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/backups/components/physical.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/backups/components/physical.component.ts
@@ -1,4 +1,3 @@
-import { CommonModule } from '@angular/common'
import {
ChangeDetectionStrategy,
Component,
@@ -6,10 +5,8 @@ import {
Input,
Output,
} from '@angular/core'
-import { TuiForModule } from '@taiga-ui/cdk'
-import { TuiSvgModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
import { UnitConversionPipesModule } from '@start9labs/shared'
+import { TuiButton } from '@taiga-ui/core'
import { UnknownDisk } from 'src/app/services/api/api.types'
@Component({
@@ -40,7 +37,7 @@ import { UnknownDisk } from 'src/app/services/api/api.types'
Save
@@ -76,7 +73,7 @@ import { UnknownDisk } from 'src/app/services/api/api.types'
.model {
order: 1;
white-space: nowrap;
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
.actions {
@@ -112,7 +109,7 @@ import { UnknownDisk } from 'src/app/services/api/api.types'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiButtonModule, UnitConversionPipesModule],
+ imports: [TuiButton, UnitConversionPipesModule],
})
export class BackupsPhysicalComponent {
@Input()
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/backups/components/status.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/backups/components/status.component.ts
index d8c58b8aa..db296a08f 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/backups/components/status.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/backups/components/status.component.ts
@@ -5,20 +5,20 @@ import {
Input,
} from '@angular/core'
import { Emver } from '@start9labs/shared'
-import { TuiSvgModule } from '@taiga-ui/core'
+import { TuiIcon } from '@taiga-ui/core'
import { BackupTarget } from 'src/app/services/api/api.types'
import { BackupType } from '../types/backup-type'
@Component({
selector: 'backups-status',
template: `
-
+
{{ status.text }}
`,
styles: [':host { display: flex; gap: 0.5rem; align-items: center }'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiSvgModule],
+ imports: [TuiIcon],
})
export class BackupsStatusComponent {
private readonly emver = inject(Emver)
@@ -29,16 +29,16 @@ export class BackupsStatusComponent {
get status() {
if (!this.target.mountable) {
return {
- icon: 'tuiIconBarChartLarge',
- color: 'var(--tui-negative)',
+ icon: '@tui.bar-chart',
+ color: 'var(--tui-text-negative)',
text: 'Unable to connect',
}
}
if (this.type === 'create') {
return {
- icon: 'tuiIconCloudLarge',
- color: 'var(--tui-positive)',
+ icon: '@tui.cloud',
+ color: 'var(--tui-text-positive)',
text: this.hasBackup
? 'Available, contains existing backup'
: 'Available for fresh backup',
@@ -47,15 +47,15 @@ export class BackupsStatusComponent {
if (this.hasBackup) {
return {
- icon: 'tuiIconCloudLarge',
- color: 'var(--tui-positive)',
+ icon: '@tui.cloud',
+ color: 'var(--tui-text-positive)',
text: 'Embassy backup detected',
}
}
return {
- icon: 'tuiIconCloudOffLarge',
- color: 'var(--tui-negative)',
+ icon: '@tui.cloud-off',
+ color: 'var(--tui-text-negative)',
text: 'No Embassy backup',
}
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/backups/components/targets.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/backups/components/targets.component.ts
index 1c51e0cf5..21b184aa9 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/backups/components/targets.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/backups/components/targets.component.ts
@@ -6,9 +6,13 @@ import {
Input,
Output,
} from '@angular/core'
-import { TuiDialogOptions, TuiDialogService } from '@taiga-ui/core'
-import { TuiButtonModule, TuiIconModule } from '@taiga-ui/experimental'
-import { TUI_PROMPT, TuiPromptData } from '@taiga-ui/kit'
+import {
+ TuiDialogOptions,
+ TuiDialogService,
+ TuiIcon,
+ TuiButton,
+} from '@taiga-ui/core'
+import { TuiConfirmData, TUI_CONFIRM } from '@taiga-ui/kit'
import { filter, map, Subject, switchMap } from 'rxjs'
import { BackupTarget } from 'src/app/services/api/api.types'
import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
@@ -35,7 +39,7 @@ import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
|
@@ -45,7 +49,7 @@ import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
tuiIconButton
size="xs"
appearance="icon"
- iconLeft="tuiIconEdit2"
+ iconStart="@tui.pencil"
(click)="update.emit(target)"
>
Update
@@ -54,7 +58,7 @@ import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
tuiIconButton
size="xs"
appearance="icon"
- iconLeft="tuiIconTrash2"
+ iconStart="@tui.trash-2"
(click)="delete$.next(target.id)"
>
Delete
@@ -93,7 +97,7 @@ import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
.type {
order: 1;
text-transform: capitalize;
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
grid-column: span 3;
tui-icon {
@@ -119,7 +123,7 @@ import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
.path {
order: 5;
- color: var(--tui-text-03);
+ color: var(--tui-text-tertiary);
grid-column: span 2;
overflow: hidden;
text-overflow: ellipsis;
@@ -128,7 +132,7 @@ import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiButtonModule, GetBackupIconPipe, TuiIconModule],
+ imports: [TuiButton, GetBackupIconPipe, TuiIcon],
})
export class BackupsTargetsComponent {
private readonly dialogs = inject(TuiDialogService)
@@ -144,7 +148,7 @@ export class BackupsTargetsComponent {
@Output()
readonly delete = this.delete$.pipe(
switchMap(id =>
- this.dialogs.open(TUI_PROMPT, OPTIONS).pipe(
+ this.dialogs.open(TUI_CONFIRM, OPTIONS).pipe(
filter(Boolean),
map(() => id),
),
@@ -152,7 +156,7 @@ export class BackupsTargetsComponent {
)
}
-const OPTIONS: Partial> = {
+const OPTIONS: Partial> = {
label: 'Confirm',
size: 's',
data: {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/backups/components/upcoming.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/backups/components/upcoming.component.ts
index 4a56e25af..375a0b827 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/backups/components/upcoming.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/backups/components/upcoming.component.ts
@@ -1,7 +1,7 @@
+import { TuiIcon } from '@taiga-ui/core'
import { DatePipe } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { toSignal } from '@angular/core/rxjs-interop'
-import { TuiIconModule } from '@taiga-ui/experimental'
import { CronJob } from 'cron'
import { PatchDB } from 'patch-db-client'
import { from, map } from 'rxjs'
@@ -26,7 +26,7 @@ import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
@if (current.id === job.id) {
- Running
+ Running
} @else {
{{ job.next | date: 'medium' }}
}
@@ -76,7 +76,7 @@ import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
:host-context(tui-root._mobile) {
.date {
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
.name {
@@ -91,7 +91,7 @@ import { GetBackupIconPipe } from '../pipes/get-backup-icon.pipe'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [GetBackupIconPipe, DatePipe, TuiIconModule],
+ imports: [GetBackupIconPipe, DatePipe, TuiIcon],
})
export class BackupsUpcomingComponent {
readonly current = toSignal(
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/backup.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/backup.component.ts
index feea40f97..7387f2361 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/backup.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/backup.component.ts
@@ -1,19 +1,17 @@
-import { CommonModule } from '@angular/common'
import { Component, inject } from '@angular/core'
import { FormsModule } from '@angular/forms'
-import { TuiForModule } from '@taiga-ui/cdk'
import {
+ TuiButton,
TuiDialogContext,
TuiDialogOptions,
- TuiGroupModule,
- TuiLoaderModule,
+ TuiGroup,
+ TuiLoader,
} from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
-import { TuiCheckboxBlockModule } from '@taiga-ui/kit'
+import { TuiBlock, TuiCheckbox } from '@taiga-ui/kit'
import {
POLYMORPHEUS_CONTEXT,
PolymorpheusComponent,
-} from '@tinkoff/ng-polymorpheus'
+} from '@taiga-ui/polymorpheus'
import { PatchDB } from 'patch-db-client'
import { firstValueFrom, map } from 'rxjs'
import { DataModel } from 'src/app/services/patch-db/data-model'
@@ -29,27 +27,35 @@ interface Package {
@Component({
template: `
-
-
-
- ![]()
- {{ pkg.title }}
-
-
-
- No services installed!
+
+ @if (pkgs) {
+ @for (pkg of pkgs; track $index) {
+
+
+ ![]()
+ {{ pkg.title }}
+
+
+
+ } @empty {
+ No services installed!
+ }
+ } @else {
+
+ }
`,
@@ -68,20 +74,12 @@ interface Package {
`,
],
standalone: true,
- imports: [
- CommonModule,
- FormsModule,
- TuiForModule,
- TuiButtonModule,
- TuiGroupModule,
- TuiCheckboxBlockModule,
- TuiLoaderModule,
- ],
+ imports: [FormsModule, TuiButton, TuiGroup, TuiLoader, TuiBlock, TuiCheckbox],
})
export class BackupsBackupModal {
private readonly patch = inject(PatchDB )
readonly context =
- inject>(
+ inject>(
POLYMORPHEUS_CONTEXT,
)
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/edit.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/edit.component.ts
index 5bdd6c7b9..082dd893a 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/edit.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/edit.component.ts
@@ -1,22 +1,18 @@
+import {
+ TuiWrapperModule,
+ TuiInputModule,
+ TuiInputNumberModule,
+} from '@taiga-ui/legacy'
import { CommonModule } from '@angular/common'
import { Component, inject } from '@angular/core'
import { FormsModule } from '@angular/forms'
import { ErrorService, LoadingService } from '@start9labs/shared'
-import {
- TuiDialogContext,
- TuiDialogService,
- TuiWrapperModule,
-} from '@taiga-ui/core'
-import { TuiBadgeModule, TuiButtonModule } from '@taiga-ui/experimental'
-import {
- TuiInputModule,
- TuiInputNumberModule,
- TuiToggleModule,
-} from '@taiga-ui/kit'
+import { TuiDialogContext, TuiDialogService, TuiButton } from '@taiga-ui/core'
+import { TuiBadge, TuiSwitch } from '@taiga-ui/kit'
import {
POLYMORPHEUS_CONTEXT,
PolymorpheusComponent,
-} from '@tinkoff/ng-polymorpheus'
+} from '@taiga-ui/polymorpheus'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { BackupJob, BackupTarget } from 'src/app/services/api/api.types'
import { TARGET, TARGET_CREATE } from './target.component'
@@ -29,7 +25,7 @@ import { ToHumanCronPipe } from '../pipes/to-human-cron.pipe'
|
@if (run.report | hasError) {
-
+
} @else {
-
+
}
Report
|
@@ -141,7 +137,7 @@ import { HasErrorPipe } from '../pipes/has-error.pipe'
.date,
.duration {
order: 1;
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
.duration,
@@ -155,13 +151,13 @@ import { HasErrorPipe } from '../pipes/has-error.pipe'
imports: [
CommonModule,
FormsModule,
- TuiButtonModule,
- TuiIconModule,
- TuiLinkModule,
+ TuiButton,
+ TuiIcon,
+ TuiLink,
DurationPipe,
HasErrorPipe,
GetBackupIconPipe,
- TuiCheckboxModule,
+ TuiCheckbox,
],
})
export class BackupsHistoryModal {
@@ -194,7 +190,7 @@ export class BackupsHistoryModal {
async ngOnInit() {
try {
this.runs.set(await this.api.getBackupRuns({}))
- this.selected = this.runs()?.map(ALWAYS_FALSE_HANDLER) || []
+ this.selected = this.runs()?.map(TUI_FALSE_HANDLER) || []
} catch (e: any) {
this.runs.set([])
this.errorService.handleError(e)
@@ -210,7 +206,7 @@ export class BackupsHistoryModal {
try {
await this.api.deleteBackupRuns({ ids })
this.runs.set(this.runs()?.filter(r => !ids.includes(r.id)) || [])
- this.selected = this.runs()?.map(ALWAYS_FALSE_HANDLER) || []
+ this.selected = this.runs()?.map(TUI_FALSE_HANDLER) || []
} catch (e: any) {
this.errorService.handleError(e)
} finally {
@@ -232,9 +228,9 @@ export class BackupsHistoryModal {
toggle() {
if (this.all) {
- this.selected = this.selected.map(ALWAYS_FALSE_HANDLER)
+ this.selected = this.selected.map(TUI_FALSE_HANDLER)
} else {
- this.selected = this.selected.map(ALWAYS_TRUE_HANDLER)
+ this.selected = this.selected.map(TUI_TRUE_HANDLER)
}
}
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/jobs.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/jobs.component.ts
index 7c7a5bb42..5d4f428d7 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/jobs.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/jobs.component.ts
@@ -3,11 +3,12 @@ import { ErrorService, LoadingService } from '@start9labs/shared'
import {
TuiDialogOptions,
TuiDialogService,
- TuiNotificationModule,
+ TuiIcon,
+ TuiButton,
+ TuiNotification,
} from '@taiga-ui/core'
-import { TuiButtonModule, TuiIconModule } from '@taiga-ui/experimental'
-import { TUI_PROMPT, TuiPromptData } from '@taiga-ui/kit'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { TuiConfirmData, TUI_CONFIRM } from '@taiga-ui/kit'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
import { BehaviorSubject, filter } from 'rxjs'
import { BackupJob } from 'src/app/services/api/api.types'
import { ApiService } from 'src/app/services/api/embassy-api.service'
@@ -32,7 +33,7 @@ import { EDIT } from './edit.component'
Saved Jobs
-
+
Create New Job
@@ -61,14 +62,14 @@ import { EDIT } from './edit.component'
tuiIconButton
appearance="icon"
size="xs"
- iconLeft="tuiIconEdit2"
+ iconStart="@tui.pencil"
(click)="update(job)"
>
@@ -126,15 +127,15 @@ import { EDIT } from './edit.component'
.schedule {
order: 5;
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
}
`,
standalone: true,
imports: [
- TuiNotificationModule,
- TuiButtonModule,
- TuiIconModule,
+ TuiNotification,
+ TuiButton,
+ TuiIcon,
ToHumanCronPipe,
GetBackupIconPipe,
],
@@ -188,7 +189,7 @@ export class BackupsJobsModal implements OnInit {
delete(id: string) {
this.dialogs
- .open(TUI_PROMPT, PROMPT_OPTIONS)
+ .open(TUI_CONFIRM, PROMPT_OPTIONS)
.pipe(filter(Boolean))
.subscribe(async () => {
const loader = this.loader.open('Deleting...').subscribe()
@@ -205,7 +206,7 @@ export class BackupsJobsModal implements OnInit {
}
}
-const PROMPT_OPTIONS: Partial> = {
+const PROMPT_OPTIONS: Partial> = {
label: 'Confirm',
size: 's',
data: {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/recover.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/recover.component.ts
index 850c8ec5e..6017365f0 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/recover.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/backups/modals/recover.component.ts
@@ -2,44 +2,52 @@ import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { FormsModule } from '@angular/forms'
import { ErrorService, LoadingService } from '@start9labs/shared'
-import { TuiDialogContext, TuiGroupModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
-import { TuiCheckboxBlockModule } from '@taiga-ui/kit'
+import { TuiMapperPipe } from '@taiga-ui/cdk'
+import { TuiButton, TuiDialogContext, TuiGroup } from '@taiga-ui/core'
+import { TuiBlock, TuiCheckbox } from '@taiga-ui/kit'
import {
POLYMORPHEUS_CONTEXT,
PolymorpheusComponent,
-} from '@tinkoff/ng-polymorpheus'
+} from '@taiga-ui/polymorpheus'
import { PatchDB } from 'patch-db-client'
import { take } from 'rxjs'
+import { PackageBackupInfo } from 'src/app/services/api/api.types'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { DataModel } from 'src/app/services/patch-db/data-model'
-import { PackageBackupInfo } from 'src/app/services/api/api.types'
import { ToOptionsPipe } from '../pipes/to-options.pipe'
-import { RecoverOption } from '../types/recover-option'
import { RecoverData } from '../types/recover-data'
-import { TuiMapperPipeModule } from '@taiga-ui/cdk'
+import { RecoverOption } from '../types/recover-option'
@Component({
template: `
-
-
-
-
{{ option.title }}
-
Version {{ option.version }}
-
Backup made: {{ option.timestamp | date: 'medium' }}
-
- {{ message.text }}
+
+ @for (option of options; track $index) {
+
+
+
{{ option.title }}
+
Version {{ option.version }}
+
Backup made: {{ option.timestamp | date: 'medium' }}
+
+ {{ message.text }}
+
-
-
+
+
+ }
@@ -76,45 +76,40 @@ import { NotificationItemComponent } from './item.component'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [
- FormsModule,
- TuiCheckboxModule,
- TuiLineClampModule,
- NotificationItemComponent,
- ],
+ imports: [FormsModule, TuiCheckbox, TuiLineClamp, NotificationItemComponent],
})
export class NotificationsTableComponent implements OnChanges {
- @Input() notifications: ServerNotifications | null = null
+ @Input() notifications?: ServerNotifications
get all(): boolean | null {
- if (!this.notifications?.length || !this.selected$.value.length) {
+ if (!this.notifications?.length || !this.selected().length) {
return false
}
- if (this.notifications?.length === this.selected$.value.length) {
+ if (this.notifications?.length === this.selected().length) {
return true
}
return null
}
- readonly selected$ = new BehaviorSubject([])
+ readonly selected = signal([])
ngOnChanges() {
- this.selected$.next([])
+ this.selected.set([])
}
onAll(selected: boolean) {
- this.selected$.next((selected && this.notifications) || [])
+ this.selected.set((selected && this.notifications) || [])
}
handleToggle(notification: ServerNotification) {
- const selected = this.selected$.value
+ const selected = this.selected()
if (selected.some(s => s.id === notification.id)) {
- this.selected$.next(selected.filter(s => s.id !== notification.id))
+ this.selected.set(selected.filter(s => s.id !== notification.id))
} else {
- this.selected$.next([...selected, notification])
+ this.selected.set([...selected, notification])
}
}
}
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/components/button.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/components/button.component.ts
index 6ef8e9da2..ae18078ec 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/components/button.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/components/button.component.ts
@@ -1,7 +1,7 @@
+import { TuiIcon, TuiTitle } from '@taiga-ui/core'
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
import { RouterLink } from '@angular/router'
-import { TuiIconModule, TuiTitleModule } from '@taiga-ui/experimental'
import { SettingBtn } from '../settings.types'
@Component({
@@ -24,13 +24,13 @@ import { SettingBtn } from '../settings.types'
{{ button.description }}
-
+
`,
styles: `
:host:not(:last-child) {
display: block;
- box-shadow: 0 1px var(--tui-clear);
+ box-shadow: 0 1px var(--tui-background-neutral-1);
}
button {
@@ -39,7 +39,7 @@ import { SettingBtn } from '../settings.types'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiIconModule, TuiTitleModule, RouterLink],
+ imports: [CommonModule, TuiIcon, TuiTitle, RouterLink],
})
export class SettingsButtonComponent {
@Input({ required: true })
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/components/menu.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/components/menu.component.ts
index d13a0e74f..79475d981 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/components/menu.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/components/menu.component.ts
@@ -1,7 +1,6 @@
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
-import { TuiAlertService, TuiLoaderModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
+import { TuiAlertService, TuiLoader, TuiButton } from '@taiga-ui/core'
import { PatchDB } from 'patch-db-client'
import { DataModel } from 'src/app/services/patch-db/data-model'
import { ClientStorageService } from 'src/app/services/client-storage.service'
@@ -28,8 +27,8 @@ import { SettingsUpdateComponent } from './update.component'
tuiSubtitle
[style.color]="
!server.network.outboundProxy
- ? 'var(--tui-warning-fill)'
- : 'var(--tui-success-fill)'
+ ? 'var(--tui-status-warning)'
+ : 'var(--tui-status-positive)'
"
>
{{ server.network.outboundProxy || 'None' }}
@@ -58,8 +57,8 @@ import { SettingsUpdateComponent } from './update.component'
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
CommonModule,
- TuiLoaderModule,
- TuiButtonModule,
+ TuiLoader,
+ TuiButton,
SettingsSyncComponent,
SettingsButtonComponent,
SettingsUpdateComponent,
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/components/sync.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/components/sync.component.ts
index 3c066a4ad..20e728962 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/components/sync.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/components/sync.component.ts
@@ -1,10 +1,6 @@
+import { TuiCell } from '@taiga-ui/layout'
+import { TuiTitle, TuiButton, TuiNotification } from '@taiga-ui/core'
import { ChangeDetectionStrategy, Component } from '@angular/core'
-import { TuiNotificationModule } from '@taiga-ui/core'
-import {
- TuiButtonModule,
- TuiCellModule,
- TuiTitleModule,
-} from '@taiga-ui/experimental'
@Component({
selector: 'settings-sync',
@@ -21,7 +17,7 @@ import {
-
+
Software Update
Get the latest version of StartOS
Update Complete. Restart to apply changes
-
-
+
+
Update Available
-
-
+
+
Check for updates
@@ -50,7 +49,7 @@ import { UPDATE } from '../modals/update.component'
styles: `
:host {
display: block;
- box-shadow: 0 1px var(--tui-clear);
+ box-shadow: 0 1px var(--tui-background-neutral-1);
}
button {
@@ -63,7 +62,7 @@ import { UPDATE } from '../modals/update.component'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiIconModule, TuiTitleModule],
+ imports: [CommonModule, TuiIcon, TuiTitle],
})
export class SettingsUpdateComponent {
private readonly dialogs = inject(TuiDialogService)
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/modals/update.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/modals/update.component.ts
index b0da46104..0078b1db3 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/modals/update.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/modals/update.component.ts
@@ -1,3 +1,4 @@
+import { TuiAutoFocus } from '@taiga-ui/cdk'
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'
import {
@@ -9,10 +10,8 @@ import {
import {
POLYMORPHEUS_CONTEXT,
PolymorpheusComponent,
-} from '@tinkoff/ng-polymorpheus'
-import { TuiAutoFocusModule } from '@taiga-ui/cdk'
-import { TuiDialogContext, TuiScrollbarModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
+} from '@taiga-ui/polymorpheus'
+import { TuiDialogContext, TuiScrollbar, TuiButton } from '@taiga-ui/core'
import { NgDompurifyModule } from '@tinkoff/ng-dompurify'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { EOSService } from 'src/app/services/eos.service'
@@ -20,7 +19,7 @@ import { EOSService } from 'src/app/services/eos.service'
@Component({
template: `
StartOS {{ versions[0].version }}
-
+
Release Notes
@@ -42,9 +41,9 @@ import { EOSService } from 'src/app/services/eos.service'
MarkdownPipeModule,
NgDompurifyModule,
SafeLinksDirective,
- TuiAutoFocusModule,
- TuiButtonModule,
- TuiScrollbarModule,
+ TuiAutoFocus,
+ TuiButton,
+ TuiScrollbar,
],
})
export class SettingsUpdateModal {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/domains.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/domains.component.ts
index 921212733..1d0c1b47b 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/domains.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/domains.component.ts
@@ -1,9 +1,8 @@
+import { TUI_CONFIRM } from '@taiga-ui/kit'
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { ErrorService, LoadingService } from '@start9labs/shared'
-import { TuiDialogOptions, TuiDialogService } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
-import { TUI_PROMPT } from '@taiga-ui/kit'
+import { TuiDialogOptions, TuiDialogService, TuiButton } from '@taiga-ui/core'
import { PatchDB } from 'patch-db-client'
import { filter, firstValueFrom, map } from 'rxjs'
import {
@@ -27,7 +26,7 @@ import { DomainsTableComponent } from './table.component'
*ngIf="!domains.start9To.length"
tuiButton
size="xs"
- iconLeft="tuiIconPlus"
+ iconStart="@tui.plus"
(click)="claim()"
>
Claim
@@ -41,7 +40,7 @@ import { DomainsTableComponent } from './table.component'
Custom Domains
-
+
Add Domain
@@ -56,7 +55,7 @@ import { DomainsTableComponent } from './table.component'
standalone: true,
imports: [
CommonModule,
- TuiButtonModule,
+ TuiButton,
DomainsTableComponent,
DomainsInfoComponent,
],
@@ -88,7 +87,7 @@ export class SettingsDomainsComponent {
delete(hostname?: string) {
this.dialogs
- .open(TUI_PROMPT, {
+ .open(TUI_CONFIRM, {
label: 'Confirm',
size: 's',
data: {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/info.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/info.component.ts
index ee788140b..658ac512e 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/info.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/info.component.ts
@@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Component } from '@angular/core'
-import { TuiNotificationModule } from '@taiga-ui/core'
+import { TuiNotification } from '@taiga-ui/core'
@Component({
selector: 'domains-info',
@@ -17,6 +17,6 @@ import { TuiNotificationModule } from '@taiga-ui/core'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiNotificationModule],
+ imports: [TuiNotification],
})
export class DomainsInfoComponent {}
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/table.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/table.component.ts
index c6a0a70d9..288d9ff53 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/table.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/domains/table.component.ts
@@ -7,8 +7,7 @@ import {
Input,
Output,
} from '@angular/core'
-import { TuiDialogService, TuiLinkModule } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
+import { TuiDialogService, TuiLink, TuiButton } from '@taiga-ui/core'
import { Domain } from 'src/app/services/patch-db/data-model'
@Component({
@@ -43,7 +42,7 @@ import { Domain } from 'src/app/services/patch-db/data-model'
tuiIconButton
size="xs"
appearance="icon"
- iconLeft="tuiIconTrash2"
+ iconStart="@tui.trash-2"
(click)="delete.emit(domain)"
>
Delete
@@ -82,7 +81,7 @@ import { Domain } from 'src/app/services/patch-db/data-model'
&::before {
content: 'Strategy: ';
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
}
@@ -91,7 +90,7 @@ import { Domain } from 'src/app/services/patch-db/data-model'
&::before {
content: 'DDNS: ';
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
}
@@ -107,7 +106,7 @@ import { Domain } from 'src/app/services/patch-db/data-model'
`,
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [CommonModule, TuiButtonModule, TuiLinkModule],
+ imports: [CommonModule, TuiButton, TuiLink],
})
export class DomainsTableComponent {
private readonly dialogs = inject(TuiDialogService)
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/email/email.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/email/email.component.ts
index f939f9fab..2a6ecd5a8 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/email/email.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/email/email.component.ts
@@ -5,19 +5,18 @@ import {
ReactiveFormsModule,
UntypedFormGroup,
} from '@angular/forms'
-import { TuiDialogService } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
-import { TuiInputModule } from '@taiga-ui/kit'
import { ErrorService, LoadingService } from '@start9labs/shared'
+import { config, CT } from '@start9labs/start-sdk'
+import { TuiButton, TuiDialogService } from '@taiga-ui/core'
+import { TuiInputModule } from '@taiga-ui/legacy'
import { PatchDB } from 'patch-db-client'
import { switchMap } from 'rxjs'
import { FormModule } from 'src/app/routes/portal/components/form/form.module'
-import { configBuilderToSpec } from 'src/app/utils/configBuilderToSpec'
-import { DataModel } from 'src/app/services/patch-db/data-model'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { FormService } from 'src/app/services/form.service'
+import { DataModel } from 'src/app/services/patch-db/data-model'
+import { configBuilderToSpec } from 'src/app/utils/configBuilderToSpec'
import { EmailInfoComponent } from './info.component'
-import { CT, config } from '@start9labs/start-sdk'
@Component({
template: `
@@ -45,7 +44,7 @@ import { CT, config } from '@start9labs/start-sdk'
[ngModelOptions]="{ standalone: true }"
>
Firstname Lastname <email@example.com>
-
+
-
+
Reset Tor
@@ -30,7 +35,7 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
-
+
{{ server.zram ? 'Disable' : 'Enable' }} zram
@@ -51,9 +56,10 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
Optionally wipe state to forcibly acquire new guard nodes. It is
recommended to try without wiping state first.
-
+
+
Wipe state
-
+
`,
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -61,9 +67,10 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
imports: [
CommonModule,
FormsModule,
- TuiTitleModule,
- TuiIconModule,
- TuiCheckboxLabeledModule,
+ TuiTitle,
+ TuiIcon,
+ TuiLabel,
+ TuiCheckbox,
],
})
export class SettingsExperimentalComponent {
@@ -81,7 +88,7 @@ export class SettingsExperimentalComponent {
reset(content: TemplateRef
) {
this.wipe = false
this.dialogs
- .open(TUI_PROMPT, {
+ .open(TUI_CONFIRM, {
label: this.isTor ? 'Warning' : 'Confirm',
data: {
content,
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/constants.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/constants.ts
index 35e967348..f90445611 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/constants.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/constants.ts
@@ -1,8 +1,8 @@
import { CB } from '@start9labs/start-sdk'
import { TuiDialogOptions } from '@taiga-ui/core'
-import { TuiPromptData } from '@taiga-ui/kit'
+import { TuiConfirmData } from '@taiga-ui/kit'
-export const DELETE_OPTIONS: Partial> = {
+export const DELETE_OPTIONS: Partial> = {
label: 'Confirm',
size: 's',
data: {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/info.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/info.component.ts
index 36c181f30..3cd1a9556 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/info.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/info.component.ts
@@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Component } from '@angular/core'
-import { TuiNotificationModule } from '@taiga-ui/core'
+import { TuiNotification } from '@taiga-ui/core'
@Component({
selector: 'proxies-info',
@@ -35,6 +35,6 @@ import { TuiNotificationModule } from '@taiga-ui/core'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiNotificationModule],
+ imports: [TuiNotification],
})
export class ProxiesInfoComponent {}
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/proxies.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/proxies.component.ts
index fc8912bff..fb6490457 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/proxies.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/proxies.component.ts
@@ -1,8 +1,7 @@
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { ErrorService, LoadingService } from '@start9labs/shared'
-import { TuiDialogOptions } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
+import { TuiDialogOptions, TuiButton } from '@taiga-ui/core'
import { PatchDB } from 'patch-db-client'
import {
FormComponent,
@@ -20,7 +19,7 @@ import { wireguardSpec, WireguardSpec } from './constants'
Proxies
-
+
Add Proxy
@@ -30,7 +29,7 @@ import { wireguardSpec, WireguardSpec } from './constants'
standalone: true,
imports: [
CommonModule,
- TuiButtonModule,
+ TuiButton,
ProxiesInfoComponent,
ProxiesTableComponent,
],
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/table.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/table.component.ts
index 9d67be0fc..f57c9d2ad 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/table.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/proxies/table.component.ts
@@ -8,13 +8,12 @@ import {
import { ErrorService, LoadingService } from '@start9labs/shared'
import { CB } from '@start9labs/start-sdk'
import {
- TuiDataListModule,
+ TuiButton,
TuiDialogOptions,
TuiDialogService,
- TuiLinkModule,
+ TuiLink,
} from '@taiga-ui/core'
-import { TuiButtonModule, TuiIconsModule } from '@taiga-ui/experimental'
-import { TUI_PROMPT } from '@taiga-ui/kit'
+import { TUI_CONFIRM } from '@taiga-ui/kit'
import { filter } from 'rxjs'
import {
FormComponent,
@@ -58,7 +57,7 @@ import { Proxy } from 'src/app/services/patch-db/data-model'
tuiIconButton
appearance="icon"
size="xs"
- iconLeft="tuiIconEdit2"
+ iconStart="@tui.pencil"
(click)="rename(proxy)"
>
Rename
@@ -67,7 +66,7 @@ import { Proxy } from 'src/app/services/patch-db/data-model'
tuiIconButton
appearance="icon"
size="xs"
- iconLeft="tuiIconTrash2"
+ iconStart="@tui.trash-2"
(click)="delete(proxy)"
>
Delete
@@ -123,7 +122,7 @@ import { Proxy } from 'src/app/services/patch-db/data-model'
`,
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [CommonModule, TuiLinkModule, TuiIconsModule, TuiButtonModule],
+ imports: [CommonModule, TuiLink, TuiButton],
})
export class ProxiesTableComponent {
private readonly dialogs = inject(TuiDialogService)
@@ -157,7 +156,7 @@ export class ProxiesTableComponent {
delete({ id }: Proxy) {
this.dialogs
- .open(TUI_PROMPT, DELETE_OPTIONS)
+ .open(TUI_CONFIRM, DELETE_OPTIONS)
.pipe(filter(Boolean))
.subscribe(async () => {
const loader = this.loader.open('Deleting...').subscribe()
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/info.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/info.component.ts
index de821d556..8db8aae9e 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/info.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/info.component.ts
@@ -1,6 +1,6 @@
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
-import { TuiNotificationModule } from '@taiga-ui/core'
import { CommonModule } from '@angular/common'
+import { TuiNotification } from '@taiga-ui/core'
@Component({
selector: 'router-info',
@@ -45,7 +45,7 @@ import { CommonModule } from '@angular/common'
styles: ['strong { font-size: 1rem }'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiNotificationModule],
+ imports: [CommonModule, TuiNotification],
})
export class RouterInfoComponent {
@Input()
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/router.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/router.component.ts
index ffee1e7ae..5e95cb05b 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/router.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/router.component.ts
@@ -1,6 +1,6 @@
+import { TuiTextfieldControllerModule } from '@taiga-ui/legacy'
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
-import { TuiTextfieldControllerModule } from '@taiga-ui/core'
import { PatchDB } from 'patch-db-client'
import { DataModel } from 'src/app/services/patch-db/data-model'
import { RouterInfoComponent } from './info.component'
@@ -47,11 +47,11 @@ import { RouterPortComponent } from './table.component'
min-width: 30rem;
max-width: 40rem;
table-layout: fixed;
- background: var(--tui-base-02);
+ background: var(--tui-background-base-alt);
border-radius: 0.75rem;
font-size: 1rem;
margin: 2rem 0;
- box-shadow: 0 1rem var(--tui-base-02);
+ box-shadow: 0 1rem var(--tui-background-base-alt);
}
`,
],
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/table.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/table.component.ts
index 2b5ec5812..994914503 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/table.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/router/table.component.ts
@@ -8,11 +8,14 @@ import {
} from '@angular/core'
import { FormsModule } from '@angular/forms'
import { CopyService, ErrorService, LoadingService } from '@start9labs/shared'
-import { TuiTextfieldControllerModule } from '@taiga-ui/core'
-import { TuiButtonModule, TuiIconModule } from '@taiga-ui/experimental'
-import { TuiInputModule, TuiInputNumberModule } from '@taiga-ui/kit'
-import { PortForward } from 'src/app/services/patch-db/data-model'
+import { TuiButton, TuiIcon, TuiNumberFormat } from '@taiga-ui/core'
+import {
+ TuiInputModule,
+ TuiInputNumberModule,
+ TuiTextfieldControllerModule,
+} from '@taiga-ui/legacy'
import { ApiService } from 'src/app/services/api/embassy-api.service'
+import { PortForward } from 'src/app/services/patch-db/data-model'
@Component({
selector: 'tr[portForward]',
@@ -20,29 +23,32 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
-
+
|
-
+
@@ -52,7 +58,7 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
@@ -61,7 +67,7 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
@@ -90,11 +96,12 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
imports: [
CommonModule,
FormsModule,
- TuiIconModule,
+ TuiIcon,
TuiInputModule,
- TuiButtonModule,
+ TuiButton,
TuiInputNumberModule,
TuiTextfieldControllerModule,
+ TuiNumberFormat,
],
})
export class RouterPortComponent implements OnChanges {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/platform-info.pipe.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/platform-info.pipe.ts
index da11bf2f7..0398dbbf1 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/platform-info.pipe.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/platform-info.pipe.ts
@@ -12,15 +12,15 @@ export class PlatformInfoPipe implements PipeTransform {
} {
const info = {
name: '',
- icon: 'tuiIconSmartphone',
+ icon: '@tui.smartphone',
}
if (platforms.includes('cli')) {
info.name = 'CLI'
- info.icon = 'tuiIconTerminal'
+ info.icon = '@tui.terminal'
} else if (platforms.includes('desktop')) {
info.name = 'Desktop/Laptop'
- info.icon = 'tuiIconMonitor'
+ info.icon = '@tui.monitor'
} else if (platforms.includes('android')) {
info.name = 'Android Device'
} else if (platforms.includes('iphone')) {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/sessions.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/sessions.component.ts
index 673f0a8b7..eaa045021 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/sessions.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/sessions.component.ts
@@ -1,12 +1,12 @@
+import { TuiLet } from '@taiga-ui/cdk'
+import { TuiButton } from '@taiga-ui/core'
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { ErrorService, LoadingService } from '@start9labs/shared'
-import { TuiButtonModule } from '@taiga-ui/experimental'
import { from, map, merge, Observable, Subject } from 'rxjs'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { Session } from 'src/app/services/api/api.types'
import { SSHTableComponent } from './table.component'
-import { TuiLetModule } from '@taiga-ui/cdk'
@Component({
template: `
@@ -36,7 +36,7 @@ import { TuiLetModule } from '@taiga-ui/cdk'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiButtonModule, SSHTableComponent, TuiLetModule],
+ imports: [CommonModule, TuiButton, SSHTableComponent, TuiLet],
})
export class SettingsSessionsComponent {
private readonly loader = inject(LoadingService)
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/table.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/table.component.ts
index e6b085877..a0a4d4c23 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/table.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/sessions/table.component.ts
@@ -1,3 +1,4 @@
+import { TuiCheckbox, TuiFade } from '@taiga-ui/kit'
import { CommonModule } from '@angular/common'
import {
ChangeDetectionStrategy,
@@ -6,13 +7,7 @@ import {
OnChanges,
} from '@angular/core'
import { FormsModule } from '@angular/forms'
-import { TuiLinkModule } from '@taiga-ui/core'
-import {
- TuiButtonModule,
- TuiCheckboxModule,
- TuiFadeModule,
- TuiIconModule,
-} from '@taiga-ui/experimental'
+import { TuiIcon, TuiLink, TuiButton } from '@taiga-ui/core'
import { BehaviorSubject } from 'rxjs'
import { Session } from 'src/app/services/api/api.types'
import { PlatformInfoPipe } from './platform-info.pipe'
@@ -112,7 +107,7 @@ import { PlatformInfoPipe } from './platform-info.pipe'
}
.date {
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
}
`,
@@ -123,11 +118,11 @@ import { PlatformInfoPipe } from './platform-info.pipe'
CommonModule,
FormsModule,
PlatformInfoPipe,
- TuiButtonModule,
- TuiLinkModule,
- TuiIconModule,
- TuiCheckboxModule,
- TuiFadeModule,
+ TuiButton,
+ TuiLink,
+ TuiIcon,
+ TuiCheckbox,
+ TuiFade,
],
})
export class SSHTableComponent implements OnChanges {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/info.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/info.component.ts
index c5544b1ff..790de0bdd 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/info.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/info.component.ts
@@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Component } from '@angular/core'
-import { TuiNotificationModule } from '@taiga-ui/core'
+import { TuiNotification } from '@taiga-ui/core'
@Component({
selector: 'ssh-info',
@@ -18,6 +18,6 @@ import { TuiNotificationModule } from '@taiga-ui/core'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiNotificationModule],
+ imports: [TuiNotification],
})
export class SSHInfoComponent {}
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/ssh.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/ssh.component.ts
index a191ac4eb..5272eff38 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/ssh.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/ssh.component.ts
@@ -1,7 +1,7 @@
+import { TuiButton } from '@taiga-ui/core'
import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { ErrorService } from '@start9labs/shared'
-import { TuiButtonModule } from '@taiga-ui/experimental'
import { catchError, defer, of } from 'rxjs'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { SSHInfoComponent } from './info.component'
@@ -15,7 +15,7 @@ import { SSHTableComponent } from './table.component'
Add Key
@@ -25,7 +25,7 @@ import { SSHTableComponent } from './table.component'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, TuiButtonModule, SSHTableComponent, SSHInfoComponent],
+ imports: [CommonModule, TuiButton, SSHTableComponent, SSHInfoComponent],
})
export class SettingsSSHComponent {
private readonly errorService = inject(ErrorService)
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/table.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/table.component.ts
index 45475981d..649ef561d 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/table.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/ssh/table.component.ts
@@ -7,9 +7,8 @@ import {
Input,
} from '@angular/core'
import { ErrorService, LoadingService } from '@start9labs/shared'
-import { TuiDialogOptions, TuiDialogService } from '@taiga-ui/core'
-import { TuiButtonModule, TuiFadeModule } from '@taiga-ui/experimental'
-import { TUI_PROMPT, TuiPromptData } from '@taiga-ui/kit'
+import { TuiDialogOptions, TuiDialogService, TuiButton } from '@taiga-ui/core'
+import { TuiConfirmData, TuiFade, TUI_CONFIRM } from '@taiga-ui/kit'
import { filter, take } from 'rxjs'
import { PROMPT } from 'src/app/routes/portal/modals/prompt.component'
import { SSHKey } from 'src/app/services/api/api.types'
@@ -39,7 +38,7 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
tuiIconButton
size="xs"
appearance="icon"
- iconLeft="tuiIconTrash2"
+ iconStart="@tui.trash-2"
(click)="delete(key)"
>
Delete
@@ -88,7 +87,7 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
.date {
order: 4;
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
.algorithm {
@@ -97,14 +96,14 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
&::before {
content: 'Algorithm: ';
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
}
}
`,
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [CommonModule, TuiButtonModule, TuiFadeModule],
+ imports: [CommonModule, TuiButton, TuiFade],
})
export class SSHTableComponent {
private readonly loader = inject(LoadingService)
@@ -134,7 +133,7 @@ export class SSHTableComponent {
delete(key: SSHKey) {
this.dialogs
- .open(TUI_PROMPT, DELETE_OPTIONS)
+ .open(TUI_CONFIRM, DELETE_OPTIONS)
.pipe(filter(Boolean))
.subscribe(async () => {
const loader = this.loader.open('Deleting...').subscribe()
@@ -160,7 +159,7 @@ const ADD_OPTIONS: Partial> = {
},
}
-const DELETE_OPTIONS: Partial> = {
+const DELETE_OPTIONS: Partial> = {
label: 'Confirm',
size: 's',
data: {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/wifi/info.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/wifi/info.component.ts
index 99cc01289..4030aa6ad 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/wifi/info.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/wifi/info.component.ts
@@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Component } from '@angular/core'
-import { TuiNotificationModule } from '@taiga-ui/core'
+import { TuiNotification } from '@taiga-ui/core'
@Component({
selector: 'wifi-info',
@@ -19,6 +19,6 @@ import { TuiNotificationModule } from '@taiga-ui/core'
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [TuiNotificationModule],
+ imports: [TuiNotification],
})
export class WifiInfoComponent {}
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/wifi/table.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/wifi/table.component.ts
index 70c8e0bad..6dff8594b 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/wifi/table.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/routes/wifi/table.component.ts
@@ -7,14 +7,9 @@ import {
Input,
} from '@angular/core'
import { ErrorService, LoadingService } from '@start9labs/shared'
-import { TuiDialogOptions } from '@taiga-ui/core'
-import {
- TuiBadgeModule,
- TuiButtonModule,
- TuiCellModule,
- TuiIconModule,
- TuiTitleModule,
-} from '@taiga-ui/experimental'
+import { TuiButton, TuiDialogOptions, TuiIcon, TuiTitle } from '@taiga-ui/core'
+import { TuiBadge } from '@taiga-ui/kit'
+import { TuiCell } from '@taiga-ui/layout'
import {
FormComponent,
FormContext,
@@ -32,11 +27,7 @@ import { SettingsWifiComponent } from './wifi.component'
{{ network.ssid }}
-
+
Connected
@@ -55,7 +46,7 @@ import { SettingsWifiComponent } from './wifi.component'
tuiIconButton
size="s"
appearance="icon"
- iconLeft="tuiIconTrash2"
+ iconStart="@tui.trash-2"
(click)="forget(network)"
>
Forget
@@ -63,7 +54,7 @@ import { SettingsWifiComponent } from './wifi.component'
![]()
@@ -81,11 +79,11 @@ import { wifiSpec } from './wifi.const'
imports: [
CommonModule,
FormsModule,
- TuiButtonModule,
- TuiToggleModule,
- TuiLetModule,
- TuiCardModule,
- TuiLoaderModule,
+ TuiButton,
+ TuiSwitch,
+ TuiLet,
+ TuiCardLarge,
+ TuiLoader,
SharedPipesModule,
WifiInfoComponent,
WifiTableComponent,
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/settings.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/settings.component.ts
index 2878646f2..df62824f8 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/settings.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/settings.component.ts
@@ -1,6 +1,6 @@
+import { TuiIcon } from '@taiga-ui/core'
import { ChangeDetectionStrategy, Component } from '@angular/core'
import { RouterModule } from '@angular/router'
-import { TuiIconModule } from '@taiga-ui/experimental'
import { SettingsMenuComponent } from './components/menu.component'
@Component({
@@ -39,6 +39,6 @@ import { SettingsMenuComponent } from './components/menu.component'
host: { class: 'g-page' },
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [RouterModule, TuiIconModule, SettingsMenuComponent],
+ imports: [RouterModule, TuiIcon, SettingsMenuComponent],
})
export class SettingsComponent {}
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/settings/settings.service.ts b/web/projects/ui/src/app/routes/portal/routes/system/settings/settings.service.ts
index c15290d75..a805661e0 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/settings/settings.service.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/settings/settings.service.ts
@@ -9,15 +9,12 @@ import {
TuiAlertService,
TuiDialogOptions,
TuiDialogService,
+ TuiLabel,
} from '@taiga-ui/core'
import * as argon2 from '@start9labs/argon2'
import { ErrorService, LoadingService } from '@start9labs/shared'
-import {
- TUI_PROMPT,
- TuiCheckboxLabeledModule,
- TuiPromptData,
-} from '@taiga-ui/kit'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { TuiConfirmData, TUI_CONFIRM, TuiCheckbox } from '@taiga-ui/kit'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
import { PatchDB } from 'patch-db-client'
import { filter, firstValueFrom, from, take } from 'rxjs'
import { switchMap } from 'rxjs/operators'
@@ -55,13 +52,13 @@ export class SettingsService {
title: 'Email',
description:
'Connect to an external SMTP server to send yourself emails',
- icon: 'tuiIconMail',
+ icon: '@tui.mail',
routerLink: 'email',
},
{
title: 'Change Master Password',
description: `Change your StartOS master password`,
- icon: 'tuiIconKey',
+ icon: '@tui.key',
action: () => this.promptNewPassword(),
},
],
@@ -69,31 +66,31 @@ export class SettingsService {
{
title: 'Domains',
description: 'Manage domains for clearnet connectivity',
- icon: 'tuiIconGlobe',
+ icon: '@tui.globe',
routerLink: 'domains',
},
{
title: 'Proxies',
description: 'Manage proxies for inbound and outbound connections',
- icon: 'tuiIconShuffle',
+ icon: '@tui.shuffle',
routerLink: 'proxies',
},
{
title: 'Router Config',
description: 'Connect or configure your router for clearnet',
- icon: 'tuiIconRadio',
+ icon: '@tui.radio',
routerLink: 'router',
},
{
title: 'WiFi',
description: 'Add or remove WiFi networks',
- icon: 'tuiIconWifi',
+ icon: '@tui.wifi',
routerLink: 'wifi',
},
{
title: 'Reset Tor',
description: `May help resolve Tor connectivity issues`,
- icon: 'tuiIconRefreshCw',
+ icon: '@tui.refresh-cw',
action: () => this.promptResetTor(),
},
],
@@ -101,30 +98,30 @@ export class SettingsService {
{
title: 'Browser Tab Title',
description: `Customize the display name of your browser tab`,
- icon: 'tuiIconTag',
+ icon: '@tui.tag',
action: () => this.setBrowserTab(),
},
{
title: 'Web Addresses',
description: 'View and manage web addresses for accessing this UI',
- icon: 'tuiIconMonitor',
+ icon: '@tui.monitor',
routerLink: 'ui',
},
{
title: 'Restart',
- icon: 'tuiIconRefreshCw',
+ icon: '@tui.refresh-cw',
description: 'Restart Start OS server',
action: () => this.promptPower('Restart'),
},
{
title: 'Shutdown',
- icon: 'tuiIconPower',
+ icon: '@tui.power',
description: 'Turn Start OS server off',
action: () => this.promptPower('Shutdown'),
},
{
title: 'Logout',
- icon: 'tuiIconLogOut',
+ icon: '@tui.log-out',
description: 'Log off from Start OS',
action: () => {
this.api.logout({}).catch(e => console.error('Failed to log out', e))
@@ -136,20 +133,20 @@ export class SettingsService {
{
title: 'Outbound Proxy',
description: 'Proxy outbound traffic from the StartOS main process',
- icon: 'tuiIconShield',
+ icon: '@tui.shield',
action: () => this.setOutboundProxy(),
},
{
title: 'SSH',
description:
'Manage your SSH keys to access your server from the command line',
- icon: 'tuiIconTerminal',
+ icon: '@tui.terminal',
routerLink: 'ssh',
},
{
title: 'Active Sessions',
description: 'View and manage device access',
- icon: 'tuiIconClock',
+ icon: '@tui.clock',
routerLink: 'sessions',
},
],
@@ -165,7 +162,7 @@ export class SettingsService {
private promptResetTor() {
this.wipe = false
this.dialogs
- .open(TUI_PROMPT, {
+ .open(TUI_CONFIRM, {
label: this.isTor ? 'Warning' : 'Confirm',
data: {
content: new PolymorpheusComponent(WipeComponent),
@@ -179,7 +176,7 @@ export class SettingsService {
private async promptPower(action: 'Restart' | 'Shutdown') {
this.dialogs
- .open(TUI_PROMPT, getOptions(action))
+ .open(TUI_CONFIRM, getOptions(action))
.pipe(filter(Boolean))
.subscribe(async () => {
const loader = this.loader.open(`Beginning ${action}...`).subscribe()
@@ -244,7 +241,7 @@ export class SettingsService {
private promptNewPassword() {
this.dialogs
- .open(TUI_PROMPT, {
+ .open(TUI_CONFIRM, {
label: 'Warning',
size: 's',
data: {
@@ -333,12 +330,13 @@ export class SettingsService {
Optionally wipe state to forcibly acquire new guard nodes. It is
recommended to try without wiping state first.
-
+
+
Wipe state
-
+
`,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [TuiCheckboxLabeledModule, FormsModule],
+ imports: [TuiLabel, FormsModule, TuiCheckbox],
})
class WipeComponent {
readonly isTor = inject(ConfigService).isTor()
@@ -347,7 +345,7 @@ class WipeComponent {
function getOptions(
operation: 'Restart' | 'Shutdown',
-): Partial > {
+): Partial> {
return operation === 'Restart'
? {
label: 'Restart',
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/sideload/package.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/sideload/package.component.ts
index 84c7cdf3e..4bfbdea48 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/sideload/package.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/sideload/package.component.ts
@@ -1,3 +1,4 @@
+import { TuiLet } from '@taiga-ui/cdk'
import { CommonModule } from '@angular/common'
import { Component, inject, Input } from '@angular/core'
import { Router, RouterLink } from '@angular/router'
@@ -14,9 +15,7 @@ import {
LoadingService,
SharedPipesModule,
} from '@start9labs/shared'
-import { TuiLetModule } from '@taiga-ui/cdk'
-import { TuiAlertService } from '@taiga-ui/core'
-import { TuiButtonModule } from '@taiga-ui/experimental'
+import { TuiAlertService, TuiButton } from '@taiga-ui/core'
import { PatchDB } from 'patch-db-client'
import { combineLatest, map } from 'rxjs'
import { DataModel } from 'src/app/services/patch-db/data-model'
@@ -82,8 +81,8 @@ import { getManifest } from 'src/app/utils/get-package-data'
SharedPipesModule,
AboutModule,
AdditionalModule,
- TuiButtonModule,
- TuiLetModule,
+ TuiButton,
+ TuiLet,
MarketplacePackageHeroComponent,
MarketplaceDependenciesComponent,
],
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/sideload/sideload.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/sideload/sideload.component.ts
index b18c34d7d..24aece782 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/sideload/sideload.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/sideload/sideload.component.ts
@@ -2,17 +2,17 @@ import { CommonModule } from '@angular/common'
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { FormsModule } from '@angular/forms'
import { MarketplacePkg } from '@start9labs/marketplace'
-import { TuiLinkModule, TuiWrapperModule } from '@taiga-ui/core'
-import { TuiAvatarModule, TuiButtonModule } from '@taiga-ui/experimental'
+import { TuiButton, TuiLink } from '@taiga-ui/core'
import {
- TuiInputFilesModule,
+ TuiAvatar,
+ TuiFiles,
tuiInputFilesOptionsProvider,
} from '@taiga-ui/kit'
import { Subject } from 'rxjs'
import { ConfigService } from 'src/app/services/config.service'
+import { SideloadPackageComponent } from './package.component'
import { parseS9pk, validateS9pk } from './sideload.utils'
-import { SideloadPackageComponent } from './package.component'
@Component({
template: `
@@ -25,7 +25,7 @@ import { SideloadPackageComponent } from './package.component'
-
-
+
+
-
- Invalid package file
+
+
+ Invalid package file
+
Try again
-
+
Upload .s9pk package file
-
+
Tip: switch to LAN for faster uploads
Upload
-
+
`,
host: { class: 'g-page', '[style.padding-top.rem]': '2' },
styles: [
`
- tui-input-files {
+ label {
height: 100%;
max-width: 40rem;
margin: 0 auto;
@@ -80,10 +75,6 @@ import { SideloadPackageComponent } from './package.component'
button {
margin-bottom: 2rem;
-
- @media (min-width: 768px) {
- margin-bottom: 4rem;
- }
}
`,
],
@@ -93,11 +84,10 @@ import { SideloadPackageComponent } from './package.component'
imports: [
CommonModule,
FormsModule,
- TuiInputFilesModule,
- TuiLinkModule,
- TuiAvatarModule,
- TuiWrapperModule,
- TuiButtonModule,
+ TuiFiles,
+ TuiLink,
+ TuiAvatar,
+ TuiButton,
SideloadPackageComponent,
],
})
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/updates/item.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/updates/item.component.ts
index aba7e93d6..0b72e3344 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/updates/item.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/updates/item.component.ts
@@ -12,18 +12,16 @@ import {
} from '@start9labs/shared'
import {
TuiDialogService,
- TuiLinkModule,
- TuiLoaderModule,
+ TuiLoader,
+ TuiIcon,
+ TuiLink,
+ TuiButton,
} from '@taiga-ui/core'
import {
- TuiAvatarModule,
- TuiButtonModule,
- TuiIconModule,
-} from '@taiga-ui/experimental'
-import {
- TUI_PROMPT,
- TuiAccordionModule,
- TuiProgressModule,
+ TuiProgress,
+ TuiAccordion,
+ TuiAvatar,
+ TUI_CONFIRM,
} from '@taiga-ui/kit'
import { NgDompurifyModule } from '@tinkoff/ng-dompurify'
import { PatchDB } from 'patch-db-client'
@@ -50,12 +48,12 @@ import { hasCurrentDeps } from 'src/app/utils/has-deps'
{{ marketplacePkg.manifest.title }}
{{ localPkg.stateInfo.manifest.version | displayEmver }}
-
-
+
+
{{ marketplacePkg.manifest.version | displayEmver }}
- {{ errors }}
+ {{ errors }}
@if (localPkg.stateInfo.state === 'updating') {
@@ -106,10 +104,10 @@ import { hasCurrentDeps } from 'src/app/utils/has-deps'
`
:host {
display: block;
- --tui-base-03: transparent;
+ --tui-background-neutral-1-hover: transparent;
&:not(:last-child) {
- border-bottom: 1px solid var(--tui-clear);
+ border-bottom: 1px solid var(--tui-background-neutral-1);
}
}
`,
@@ -122,13 +120,13 @@ import { hasCurrentDeps } from 'src/app/utils/has-deps'
NgDompurifyModule,
SafeLinksDirective,
SharedPipesModule,
- TuiProgressModule,
- TuiAccordionModule,
- TuiAvatarModule,
- TuiIconModule,
- TuiButtonModule,
- TuiLinkModule,
- TuiLoaderModule,
+ TuiProgress,
+ TuiAccordion,
+ TuiAvatar,
+ TuiIcon,
+ TuiButton,
+ TuiLink,
+ TuiLoader,
InstallingProgressPipe,
],
})
@@ -194,7 +192,7 @@ export class UpdatesItemComponent {
private async alert(): Promise {
return new Promise(async resolve => {
this.dialogs
- .open(TUI_PROMPT, {
+ .open(TUI_CONFIRM, {
label: 'Warning',
size: 's',
data: {
diff --git a/web/projects/ui/src/app/routes/portal/routes/system/updates/updates.component.ts b/web/projects/ui/src/app/routes/portal/routes/system/updates/updates.component.ts
index 9ea850963..00e2f0f81 100644
--- a/web/projects/ui/src/app/routes/portal/routes/system/updates/updates.component.ts
+++ b/web/projects/ui/src/app/routes/portal/routes/system/updates/updates.component.ts
@@ -4,9 +4,13 @@ import {
AbstractMarketplaceService,
StoreIconComponentModule,
} from '@start9labs/marketplace'
-import { TuiAvatarModule, TuiCellModule } from '@taiga-ui/experimental'
+import { TuiAvatar } from '@taiga-ui/kit'
+import { TuiCell } from '@taiga-ui/layout'
import { PatchDB } from 'patch-db-client'
-import { combineLatest, map, scan } from 'rxjs'
+import { combineLatest, map } from 'rxjs'
+import { FilterUpdatesPipe } from 'src/app/routes/portal/routes/system/updates/filter-updates.pipe'
+import { UpdatesItemComponent } from 'src/app/routes/portal/routes/system/updates/item.component'
+import { ConfigService } from 'src/app/services/config.service'
import { MarketplaceService } from 'src/app/services/marketplace.service'
import {
DataModel,
@@ -14,9 +18,6 @@ import {
PackageDataEntry,
UpdatingState,
} from 'src/app/services/patch-db/data-model'
-import { ConfigService } from 'src/app/services/config.service'
-import { FilterUpdatesPipe } from 'src/app/routes/portal/routes/system/updates/filter-updates.pipe'
-import { UpdatesItemComponent } from 'src/app/routes/portal/routes/system/updates/item.component'
import { isInstalled, isUpdating } from 'src/app/utils/get-package-data'
@Component({
@@ -59,8 +60,8 @@ import { isInstalled, isUpdating } from 'src/app/utils/get-package-data'
standalone: true,
imports: [
CommonModule,
- TuiCellModule,
- TuiAvatarModule,
+ TuiCell,
+ TuiAvatar,
StoreIconComponentModule,
FilterUpdatesPipe,
UpdatesItemComponent,
diff --git a/web/projects/ui/src/app/services/actions.service.ts b/web/projects/ui/src/app/services/actions.service.ts
index e0e685023..8bc2e2ebc 100644
--- a/web/projects/ui/src/app/services/actions.service.ts
+++ b/web/projects/ui/src/app/services/actions.service.ts
@@ -2,7 +2,7 @@ import { inject, Injectable } from '@angular/core'
import { ErrorService, LoadingService } from '@start9labs/shared'
import { T } from '@start9labs/start-sdk'
import { TuiDialogOptions, TuiDialogService } from '@taiga-ui/core'
-import { TUI_PROMPT, TuiPromptData } from '@taiga-ui/kit'
+import { TuiConfirmData, TUI_CONFIRM } from '@taiga-ui/kit'
import { PatchDB } from 'patch-db-client'
import { defaultIfEmpty, filter, firstValueFrom } from 'rxjs'
import {
@@ -54,7 +54,7 @@ export class ActionsService {
if (content) {
this.dialogs
- .open(TUI_PROMPT, getOptions(content, 'Stop'))
+ .open(TUI_CONFIRM, getOptions(content, 'Stop'))
.pipe(filter(Boolean))
.subscribe(() => this.doStop(id))
} else {
@@ -66,7 +66,7 @@ export class ActionsService {
if (hasCurrentDeps(id, await getAllPackages(this.patch))) {
this.dialogs
.open(
- TUI_PROMPT,
+ TUI_CONFIRM,
getOptions(
`Services that depend on ${title} may temporarily experiences issues`,
'Restart',
@@ -118,7 +118,7 @@ export class ActionsService {
private alert(content: string): Promise {
return firstValueFrom(
this.dialogs
- .open(TUI_PROMPT, getOptions(content))
+ .open(TUI_CONFIRM, getOptions(content))
.pipe(defaultIfEmpty(false)),
)
}
@@ -127,7 +127,7 @@ export class ActionsService {
function getOptions(
content: string,
yes = 'Continue',
-): Partial> {
+): Partial> {
return {
label: 'Warning',
size: 's',
diff --git a/web/projects/ui/src/app/services/date-transformer.service.ts b/web/projects/ui/src/app/services/date-transformer.service.ts
index 8d1639f72..ceb0c758d 100644
--- a/web/projects/ui/src/app/services/date-transformer.service.ts
+++ b/web/projects/ui/src/app/services/date-transformer.service.ts
@@ -1,14 +1,11 @@
import { Injectable } from '@angular/core'
-import { AbstractTuiValueTransformer, TuiDay } from '@taiga-ui/cdk'
+import { TuiDay, TuiValueTransformer } from '@taiga-ui/cdk'
type From = TuiDay | null
type To = string | null
@Injectable()
-export class DateTransformerService extends AbstractTuiValueTransformer<
- From,
- To
-> {
+export class DateTransformerService extends TuiValueTransformer {
fromControlValue(controlValue: To): From {
return controlValue ? TuiDay.jsonParse(controlValue) : null
}
diff --git a/web/projects/ui/src/app/services/datetime-transformer.service.ts b/web/projects/ui/src/app/services/datetime-transformer.service.ts
index 4ffb851c4..270fb79f7 100644
--- a/web/projects/ui/src/app/services/datetime-transformer.service.ts
+++ b/web/projects/ui/src/app/services/datetime-transformer.service.ts
@@ -1,14 +1,11 @@
import { Injectable } from '@angular/core'
-import { AbstractTuiValueTransformer, TuiDay, TuiTime } from '@taiga-ui/cdk'
+import { TuiDay, TuiTime, TuiValueTransformer } from '@taiga-ui/cdk'
type From = [TuiDay | null, TuiTime | null] | null
type To = string | null
@Injectable()
-export class DatetimeTransformerService extends AbstractTuiValueTransformer<
- From,
- To
-> {
+export class DatetimeTransformerService extends TuiValueTransformer {
fromControlValue(controlValue: To): From {
if (!controlValue) {
return null
diff --git a/web/projects/ui/src/app/services/form-dialog.service.ts b/web/projects/ui/src/app/services/form-dialog.service.ts
index 69df946bb..7891a7a0b 100644
--- a/web/projects/ui/src/app/services/form-dialog.service.ts
+++ b/web/projects/ui/src/app/services/form-dialog.service.ts
@@ -1,9 +1,9 @@
import { inject, Injectable, Injector, Type } from '@angular/core'
import { TuiDialogOptions, TuiDialogService } from '@taiga-ui/core'
-import { TuiDialogFormService, TuiPromptData } from '@taiga-ui/kit'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { TuiConfirmData, TuiConfirmService } from '@taiga-ui/kit'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
-const PROMPT: Partial> = {
+const PROMPT: Partial> = {
label: 'Unsaved Changes',
data: {
content: 'You have unsaved changes. Are you sure you want to leave?',
@@ -15,13 +15,13 @@ const PROMPT: Partial> = {
@Injectable({ providedIn: 'root' })
export class FormDialogService {
private readonly dialogs = inject(TuiDialogService)
- private readonly formService = new TuiDialogFormService(this.dialogs)
- private readonly prompt = this.formService.withPrompt(PROMPT)
+ private readonly formService = new TuiConfirmService()
+ private readonly prompt = this.formService.withConfirm(PROMPT)
private readonly injector = Injector.create({
parent: inject(Injector),
providers: [
{
- provide: TuiDialogFormService,
+ provide: TuiConfirmService,
useValue: this.formService,
},
],
diff --git a/web/projects/ui/src/app/services/notification.service.ts b/web/projects/ui/src/app/services/notification.service.ts
index 95d7abd11..f3fd635d8 100644
--- a/web/projects/ui/src/app/services/notification.service.ts
+++ b/web/projects/ui/src/app/services/notification.service.ts
@@ -64,13 +64,13 @@ export class NotificationService {
getColor(notification: ServerNotification): string {
switch (notification.level) {
case NotificationLevel.Info:
- return 'var(--tui-info-fill)'
+ return 'var(--tui-status-info)'
case NotificationLevel.Success:
- return 'var(--tui-success-fill)'
+ return 'var(--tui-status-positive)'
case NotificationLevel.Warning:
- return 'var(--tui-warning-fill)'
+ return 'var(--tui-status-warning)'
case NotificationLevel.Error:
- return 'var(--tui-error-fill)'
+ return 'var(--tui-status-negative)'
default:
return ''
}
@@ -79,12 +79,12 @@ export class NotificationService {
getIcon(notification: ServerNotification): string {
switch (notification.level) {
case NotificationLevel.Info:
- return 'tuiIconInfo'
+ return '@tui.info'
case NotificationLevel.Success:
- return 'tuiIconCheckCircle'
+ return '@tui.circle-check'
case NotificationLevel.Warning:
case NotificationLevel.Error:
- return 'tuiIconAlertCircle'
+ return '@tui.circle-alert'
default:
return ''
}
diff --git a/web/projects/ui/src/app/services/patch-data.service.ts b/web/projects/ui/src/app/services/patch-data.service.ts
index 69ea3bfbc..f150a71d0 100644
--- a/web/projects/ui/src/app/services/patch-data.service.ts
+++ b/web/projects/ui/src/app/services/patch-data.service.ts
@@ -10,7 +10,7 @@ import { ConfigService } from 'src/app/services/config.service'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { MarketplaceService } from 'src/app/services/marketplace.service'
import { ConnectionService } from 'src/app/services/connection.service'
-import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus'
+import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'
// Get data from PatchDb after is starts and act upon it
@Injectable({
diff --git a/web/projects/ui/src/app/utils/resources.ts b/web/projects/ui/src/app/utils/resources.ts
index fab5f36ef..1c5096261 100644
--- a/web/projects/ui/src/app/utils/resources.ts
+++ b/web/projects/ui/src/app/utils/resources.ts
@@ -1,17 +1,17 @@
export const RESOURCES = [
{
name: 'User Manual',
- icon: 'tuiIconBookOpen',
+ icon: '@tui.book-open',
href: 'https://docs.start9.com/0.3.5.x/user-manual',
},
{
name: 'Contact Support',
- icon: 'tuiIconHeadphones',
+ icon: '@tui.headphones',
href: 'https://start9.com/contact',
},
{
name: 'Donate to Start9',
- icon: 'tuiIconDollarSign',
+ icon: '@tui.dollar-sign',
href: 'https://donate.start9.com',
},
]
diff --git a/web/projects/ui/src/app/utils/system-utilities.ts b/web/projects/ui/src/app/utils/system-utilities.ts
index e9eee5a89..825904955 100644
--- a/web/projects/ui/src/app/utils/system-utilities.ts
+++ b/web/projects/ui/src/app/utils/system-utilities.ts
@@ -5,35 +5,35 @@ import { BadgeService } from 'src/app/services/badge.service'
export const SYSTEM_UTILITIES: Record =
{
'/portal/system/notifications': {
- icon: 'tuiIconBell',
+ icon: '@tui.bell',
title: 'Notifications',
},
'/portal/system/marketplace': {
- icon: 'tuiIconShoppingCart',
+ icon: '@tui.shopping-cart',
title: 'Marketplace',
},
'/portal/system/updates': {
- icon: 'tuiIconGlobe',
+ icon: '@tui.globe',
title: 'Updates',
},
'/portal/system/sideload': {
- icon: 'tuiIconUpload',
+ icon: '@tui.upload',
title: 'Sideload',
},
'/portal/system/logs': {
- icon: 'tuiIconFileText',
+ icon: '@tui.file-text',
title: 'Logs',
},
'/portal/system/metrics': {
- icon: 'tuiIconActivity',
+ icon: '@tui.activity',
title: 'Metrics',
},
'/portal/system/backups': {
- icon: 'tuiIconSave',
+ icon: '@tui.save',
title: 'Backups',
},
'/portal/system/settings': {
- icon: 'tuiIconTool',
+ icon: '@tui.wrench',
title: 'Settings',
},
}
diff --git a/web/projects/ui/src/styles.scss b/web/projects/ui/src/styles.scss
index a121c8d45..e75a774d4 100644
--- a/web/projects/ui/src/styles.scss
+++ b/web/projects/ui/src/styles.scss
@@ -16,7 +16,7 @@ ul {
hr {
height: 0;
background: transparent;
- border-bottom: 1px solid var(--tui-clear);
+ border-bottom: 1px solid var(--tui-background-neutral-1);
}
:root {
@@ -77,12 +77,12 @@ hr {
text-align: left;
height: 2rem;
padding: 0 0.25rem;
- box-shadow: inset 0 -1px var(--tui-clear);
+ box-shadow: inset 0 -1px var(--tui-background-neutral-1);
text-overflow: ellipsis;
}
th {
- background: var(--tui-clear);
+ background: var(--tui-background-neutral-1);
font-weight: bold;
}
@@ -114,7 +114,7 @@ tui-root._mobile .g-table {
}
tr:has(:checked) {
- box-shadow: inset 0 0 0 0.125rem var(--tui-primary);
+ box-shadow: inset 0 0 0 0.125rem var(--tui-background-accent-1);
}
td,
@@ -140,7 +140,7 @@ tui-root._mobile .g-table {
font-size: 1rem;
line-height: 1.5rem;
margin: 2rem 0 1rem;
- color: var(--tui-text-02);
+ color: var(--tui-text-secondary);
}
.g-buttons {
@@ -152,7 +152,7 @@ tui-root._mobile .g-table {
.g-action {
@include transition(background);
- @include clearbtn();
+ @include button-clear();
display: flex;
align-items: center;
@@ -164,7 +164,7 @@ tui-root._mobile .g-table {
margin: 0 -1rem;
line-height: 1.25rem;
border-radius: 0.5rem;
- color: var(--tui-text-01);
+ color: var(--tui-text-primary);
}
a.g-action,
@@ -177,7 +177,7 @@ button.g-action {
}
&:hover {
- background: var(--tui-clear);
+ background: var(--tui-background-neutral-1);
}
&:not(:last-child) {
@@ -190,12 +190,12 @@ button.g-action {
display: flex;
align-items: center;
padding: 0 1rem;
- box-shadow: inset 0 0 0 1px var(--tui-base-03);
+ box-shadow: inset 0 0 0 1px var(--tui-background-neutral-1-hover);
font: var(--tui-font-text-l);
font-weight: bold;
border-radius: var(--tui-radius-m);
- tui-toggle {
+ input {
margin-left: auto;
}
}
@@ -206,19 +206,19 @@ button.g-action {
}
.g-success.g-success {
- color: var(--tui-success-fill);
+ color: var(--tui-status-positive);
}
.g-warning.g-warning {
- color: var(--tui-warning-fill);
+ color: var(--tui-status-warning);
}
.g-error.g-error {
- color: var(--tui-error-fill);
+ color: var(--tui-status-negative);
}
.g-info.g-info {
- color: var(--tui-info-fill);
+ color: var(--tui-status-info);
}
ng-component {
|