diff --git a/.github/renovate.json b/.github/renovate.json
index 11059d43..bf23f491 100644
--- a/.github/renovate.json
+++ b/.github/renovate.json
@@ -1,10 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
- "extends": ["github>taiga-family/renovate-config"],
- "packageRules": [
- {
- "enabled": false,
- "matchPackagePatterns": ["^@taiga-ui/.*"]
- }
- ]
+ "extends": ["github>taiga-family/renovate-config"]
}
diff --git a/apps/demo/src/app/pages/platform/index.html b/apps/demo/src/app/pages/platform/index.html
index cd8ca723..37ba2d6a 100644
--- a/apps/demo/src/app/pages/platform/index.html
+++ b/apps/demo/src/app/pages/platform/index.html
@@ -1 +1,6 @@
+
+
+ isIos:
+ {{ isIos }}
+
diff --git a/apps/demo/src/app/pages/platform/index.ts b/apps/demo/src/app/pages/platform/index.ts
index e8443f54..595c2406 100644
--- a/apps/demo/src/app/pages/platform/index.ts
+++ b/apps/demo/src/app/pages/platform/index.ts
@@ -1,5 +1,6 @@
import {CommonModule} from '@angular/common';
-import {ChangeDetectionStrategy, Component} from '@angular/core';
+import {ChangeDetectionStrategy, Component, inject} from '@angular/core';
+import {WA_IS_IOS} from '@ng-web-apis/platform';
import {MarkdownModule} from 'ngx-markdown';
@Component({
@@ -7,9 +8,12 @@ import {MarkdownModule} from 'ngx-markdown';
selector: 'platform-page',
imports: [CommonModule, MarkdownModule],
templateUrl: './index.html',
+ styles: ['.example {max-inline-size: 50rem; margin: 2rem auto }'],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export default class CommonPage {
+ protected readonly isIos = inject(WA_IS_IOS);
+
protected readonly readme = import(
'../../../../../../libs/platform/README.md?raw'
).then((a) => a.default.replace('![logo](logo.svg) ', '')) as any as Promise;
diff --git a/libs/platform/README.md b/libs/platform/README.md
index 6acab397..2e730dec 100644
--- a/libs/platform/README.md
+++ b/libs/platform/README.md
@@ -6,5 +6,9 @@
npm i @ng-web-apis/platform
```
-- `isApple`
-- `isIos`
+## Tokens
+
+- `WA_IS_MOBILE`
+- `WA_IS_IOS`
+- `WA_IS_ANDROID`
+- `WA_IS_WEBKIT`
diff --git a/package-lock.json b/package-lock.json
index 59ae9190..41102611 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -35,24 +35,24 @@
"@nx/node": "20.0.5",
"@nx/rollup": "20.0.5",
"@nx/workspace": "20.0.5",
- "@taiga-ui/addon-doc": "4.10.0",
- "@taiga-ui/addon-mobile": "4.10.0",
+ "@taiga-ui/addon-doc": "4.12.0",
+ "@taiga-ui/addon-mobile": "4.12.0",
"@taiga-ui/auto-changelog-config": "0.222.5",
"@taiga-ui/browserslist-config": "0.222.5",
- "@taiga-ui/cdk": "4.10.0",
+ "@taiga-ui/cdk": "4.12.0",
"@taiga-ui/commitlint-config": "0.222.5",
- "@taiga-ui/core": "4.10.0",
+ "@taiga-ui/core": "4.12.0",
"@taiga-ui/cspell-config": "0.224.0",
"@taiga-ui/editor": "4.15.0",
"@taiga-ui/eslint-plugin-experience": "0.222.5",
"@taiga-ui/event-plugins": "4.3.1",
- "@taiga-ui/icons": "4.10.0",
- "@taiga-ui/kit": "4.10.0",
- "@taiga-ui/legacy": "4.10.0",
+ "@taiga-ui/icons": "4.12.0",
+ "@taiga-ui/kit": "4.12.0",
+ "@taiga-ui/legacy": "4.12.0",
"@taiga-ui/prettier-config": "0.222.5",
"@taiga-ui/release-it-config": "0.222.5",
"@taiga-ui/stylelint-config": "0.222.5",
- "@taiga-ui/styles": "4.10.0",
+ "@taiga-ui/styles": "4.12.0",
"@taiga-ui/syncer": "0.222.5",
"@taiga-ui/tsconfig": "0.222.5",
"@types/dom-speech-recognition": "0.0.4",
@@ -8803,13 +8803,13 @@
}
},
"node_modules/@taiga-ui/addon-doc": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@taiga-ui/addon-doc/-/addon-doc-4.10.0.tgz",
- "integrity": "sha512-qWEPgIUEsP3/BcVNfkSNZ3q/cBrsmjV6Bp4emE+hghzQh0ShoJ/9MAVwUJuG7wpn2FdmRwIlZRWZ96t3U0dtPQ==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/addon-doc/-/addon-doc-4.12.0.tgz",
+ "integrity": "sha512-LQlcSCOH6Sgl0R/7j4iKT3r9oOEbiAXkFl1ogvDcgdyn9ebF1l75pVjIGILg1Q2PW0NNrHtYLhorIFdg9CVGGg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "tslib": "^2.7.0"
+ "tslib": ">=2.8.0"
},
"peerDependencies": {
"@angular/cdk": ">=16.0.0",
@@ -8817,34 +8817,34 @@
"@angular/core": ">=16.0.0",
"@angular/forms": ">=16.0.0",
"@angular/router": ">=16.0.0",
- "@ng-web-apis/common": "^4.6.5",
- "@taiga-ui/addon-mobile": "^4.10.0",
- "@taiga-ui/cdk": "^4.10.0",
- "@taiga-ui/core": "^4.10.0",
- "@taiga-ui/kit": "^4.10.0",
- "@taiga-ui/legacy": "^4.10.0",
+ "@ng-web-apis/common": "^4.11.1",
+ "@taiga-ui/addon-mobile": "^4.12.0",
+ "@taiga-ui/cdk": "^4.12.0",
+ "@taiga-ui/core": "^4.12.0",
+ "@taiga-ui/kit": "^4.12.0",
+ "@taiga-ui/legacy": "^4.12.0",
"@taiga-ui/polymorpheus": "^4.7.4",
"markdown-it": ">=14.1.0",
"ngx-highlightjs": ">=10.0.0"
}
},
"node_modules/@taiga-ui/addon-mobile": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@taiga-ui/addon-mobile/-/addon-mobile-4.10.0.tgz",
- "integrity": "sha512-U9dkMSVY5+rUFxkdlHOPDnqQBX5/21Y5Kbw04G2Cg6Sp+KPXOAFxHQMMUYg6b0ITp0JAe+iBsK3Z83LfbDhh5Q==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/addon-mobile/-/addon-mobile-4.12.0.tgz",
+ "integrity": "sha512-Z71jjopdje0cA8GtMX0eivUIUJSt3I4NVWQwFDO3r/jqQBO0+6ApDHl42mBYOmoeJtLJd6x2LgMI7ANnfaLdYg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "tslib": "^2.7.0"
+ "tslib": ">=2.8.0"
},
"peerDependencies": {
"@angular/cdk": ">=16.0.0",
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
- "@ng-web-apis/common": "^4.6.5",
- "@taiga-ui/cdk": "^4.10.0",
- "@taiga-ui/core": "^4.10.0",
- "@taiga-ui/kit": "^4.10.0",
+ "@ng-web-apis/common": "^4.11.1",
+ "@taiga-ui/cdk": "^4.12.0",
+ "@taiga-ui/core": "^4.12.0",
+ "@taiga-ui/kit": "^4.12.0",
"@taiga-ui/polymorpheus": "^4.7.4",
"rxjs": ">=7.0.0"
}
@@ -8867,20 +8867,20 @@
"license": "Apache-2.0"
},
"node_modules/@taiga-ui/cdk": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-4.10.0.tgz",
- "integrity": "sha512-aeSiJ4HDdB9sICjlU0agC9JT2t/2kAlLG2p+YZw9QQkJxF6dAz+ttnsvGpY6PGa24GuzTNPa1GAiUNtJcEp9Xw==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-4.12.0.tgz",
+ "integrity": "sha512-imY9mVwYlDaiFPxn4XO2TQM7aaN9uYiNNlknOZXjfAaq2DGdzW5jTMlrIjsVb6PmVjG8VRcrSLJLerikUBTFJw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "tslib": "2.7.0"
+ "tslib": "2.8.0"
},
"optionalDependencies": {
"@angular-devkit/core": ">=16.0.0",
"@angular-devkit/schematics": ">=16.0.0",
"@schematics/angular": ">=16.0.0",
"ng-morph": "^4.8.4",
- "parse5": "^7.1.2"
+ "parse5": ">=7.2.0"
},
"peerDependencies": {
"@angular/animations": ">=16.0.0",
@@ -8888,21 +8888,16 @@
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@angular/forms": ">=16.0.0",
- "@ng-web-apis/common": "^4.6.5",
- "@ng-web-apis/mutation-observer": "^4.6.5",
- "@ng-web-apis/resize-observer": "^4.6.5",
- "@taiga-ui/event-plugins": "^4.2.4",
+ "@ng-web-apis/common": "^4.11.1",
+ "@ng-web-apis/mutation-observer": "^4.11.1",
+ "@ng-web-apis/platform": "^4.11.1",
+ "@ng-web-apis/resize-observer": "^4.11.1",
+ "@ng-web-apis/screen-orientation": "^4.11.1",
+ "@taiga-ui/event-plugins": "^4.3.1",
"@taiga-ui/polymorpheus": "^4.7.4",
"rxjs": ">=7.0.0"
}
},
- "node_modules/@taiga-ui/cdk/node_modules/tslib": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
- "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
- "dev": true,
- "license": "0BSD"
- },
"node_modules/@taiga-ui/commitlint-config": {
"version": "0.222.5",
"resolved": "https://registry.npmjs.org/@taiga-ui/commitlint-config/-/commitlint-config-0.222.5.tgz",
@@ -8915,13 +8910,13 @@
}
},
"node_modules/@taiga-ui/core": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-4.10.0.tgz",
- "integrity": "sha512-yWxSxnk4JnmPmhk1z7zhXipQZFqL/JsmuLfDjhtfQ0EH6TIwAvXbllqVhs2xPqdevsVDQ1+z7xjx3RRHxwnmLQ==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-4.12.0.tgz",
+ "integrity": "sha512-fXqWJOYVmLZYZ4r0vJVuyyDmt5POOT35jDVRdn4eDPn2mhY+0CdWsKTqQ+jTOGH9J75dFu7eGDxP7Irn7Nu0xA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "tslib": "^2.7.0"
+ "tslib": ">=2.8.0"
},
"peerDependencies": {
"@angular/animations": ">=16.0.0",
@@ -8930,11 +8925,11 @@
"@angular/forms": ">=16.0.0",
"@angular/platform-browser": ">=16.0.0",
"@angular/router": ">=16.0.0",
- "@ng-web-apis/common": "^4.6.5",
- "@ng-web-apis/mutation-observer": "^4.6.5",
- "@taiga-ui/cdk": "^4.10.0",
- "@taiga-ui/event-plugins": "^4.2.4",
- "@taiga-ui/i18n": "^4.10.0",
+ "@ng-web-apis/common": "^4.11.1",
+ "@ng-web-apis/mutation-observer": "^4.11.1",
+ "@taiga-ui/cdk": "^4.12.0",
+ "@taiga-ui/event-plugins": "^4.3.1",
+ "@taiga-ui/i18n": "^4.12.0",
"@taiga-ui/polymorpheus": "^4.7.4",
"rxjs": ">=7.0.0"
}
@@ -9098,9 +9093,9 @@
}
},
"node_modules/@taiga-ui/icons": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-4.10.0.tgz",
- "integrity": "sha512-J2+XhpTt9NISqUK9hDRxzZNNYJwZ11OSLLaaxmiKJsl1D2OEe371huFncvXr0Y+0rbWe1VkkB5JrwwBoGwmWGw==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-4.12.0.tgz",
+ "integrity": "sha512-MZhFm5BBuH7WdQ/0FSyPhUNYM1VGslmiuBUzAMZ6FD/cyja5JzJauZlIZ8M2M6fTyREopFRDJpfZmL2U9Ppsng==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -9108,42 +9103,42 @@
}
},
"node_modules/@taiga-ui/kit": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-4.10.0.tgz",
- "integrity": "sha512-+t5FNbiv/3zpjbAT6jAL2KJJfGIripTOrlLqYofitr2CwxI+2F/8HR923OxawhPkR87m/3yikQlSXSLWDh/O+Q==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-4.12.0.tgz",
+ "integrity": "sha512-g+JasNqR8UAk+HrxIE9ahozi3mCMWCU6Sz876wLEKIIS84UvFshZ7vh0lXtHxQbbX70JXfa4kNpf0HkmU4p3MA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "tslib": "^2.7.0"
+ "tslib": ">=2.8.0"
},
"peerDependencies": {
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@angular/forms": ">=16.0.0",
"@angular/router": ">=16.0.0",
- "@maskito/angular": "^3.0.3",
- "@maskito/core": "^3.0.3",
- "@maskito/kit": "^3.0.3",
- "@maskito/phone": "^3.0.3",
- "@ng-web-apis/common": "^4.6.5",
- "@ng-web-apis/intersection-observer": "^4.6.5",
- "@ng-web-apis/mutation-observer": "^4.6.5",
- "@ng-web-apis/resize-observer": "^4.6.5",
- "@taiga-ui/cdk": "^4.10.0",
- "@taiga-ui/core": "^4.10.0",
- "@taiga-ui/i18n": "^4.10.0",
+ "@maskito/angular": "^3.1.1",
+ "@maskito/core": "^3.1.1",
+ "@maskito/kit": "^3.1.1",
+ "@maskito/phone": "^3.1.1",
+ "@ng-web-apis/common": "^4.11.1",
+ "@ng-web-apis/intersection-observer": "^4.11.1",
+ "@ng-web-apis/mutation-observer": "^4.11.1",
+ "@ng-web-apis/resize-observer": "^4.11.1",
+ "@taiga-ui/cdk": "^4.12.0",
+ "@taiga-ui/core": "^4.12.0",
+ "@taiga-ui/i18n": "^4.12.0",
"@taiga-ui/polymorpheus": "^4.7.4",
"rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/legacy": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@taiga-ui/legacy/-/legacy-4.10.0.tgz",
- "integrity": "sha512-IQfVJLbfYwKQE+8cN2LQD+ExWZSlx7gRLzJQwIlVBmVcMYV8Sd6sPs5DWkJDd2eNigly0l+Os1ifx/lcVh8B0Q==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/legacy/-/legacy-4.12.0.tgz",
+ "integrity": "sha512-OYMWhi6+zG+3uRytMz64VIy62gVr0xaaksurPyWxvAZyctt2Faknw7f72kJmViUEhyuyJylSOqHdbO0kEhYQ+w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "tslib": "^2.7.0"
+ "tslib": ">=2.8.0"
},
"peerDependencies": {
"@angular/core": ">=16.0.0"
@@ -9207,14 +9202,14 @@
}
},
"node_modules/@taiga-ui/styles": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@taiga-ui/styles/-/styles-4.10.0.tgz",
- "integrity": "sha512-FkL6vF95aDluvWy5M5Jyn2cZfY+THOUS6cEkmDg4s6CvZ07UB3DJIHz0das0vGUMKJGCqDBVVBQe3tPqH7XkEw==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@taiga-ui/styles/-/styles-4.12.0.tgz",
+ "integrity": "sha512-7TblG/IbkGmMmpgC6Ym/SdAlqYjj5y3zac7n0fyS8x08WAZiqucRd3nxSsuIcNOBXoLdYU4mzc6LIEJvE9mVqw==",
"dev": true,
"peerDependencies": {
- "@taiga-ui/cdk": "^4.10.0",
- "@taiga-ui/core": "^4.10.0",
- "tslib": "^2.7.0"
+ "@taiga-ui/cdk": "^4.12.0",
+ "@taiga-ui/core": "^4.12.0",
+ "tslib": ">=2.8.0"
}
},
"node_modules/@taiga-ui/syncer": {
@@ -10192,9 +10187,9 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz",
- "integrity": "sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz",
+ "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -17189,9 +17184,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.45",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.45.tgz",
- "integrity": "sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==",
+ "version": "1.5.44",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.44.tgz",
+ "integrity": "sha512-Lz3POUa7wANQA8G+9btKAdH+cqkfWCBdkotvQZJVOqRXMYGm1tTD835Z01iCjWpEBf0RInPBWuPfzhGbxOCULw==",
"dev": true,
"license": "ISC"
},
@@ -32712,9 +32707,9 @@
}
},
"node_modules/prosemirror-commands": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.6.2.tgz",
- "integrity": "sha512-0nDHH++qcf/BuPLYvmqZTUUsPJUCPBUXt0J1ErTcDIS369CTp773itzLGIgIXG4LJXOlwYCr44+Mh4ii6MP1QA==",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.6.1.tgz",
+ "integrity": "sha512-tNy4uaGWzvuUYXDke7B28krndIrdQJhSh0OLpubtwtEwFbjItOj/eoAfPvstBJyyV0S2+b5t4G+4XPXdxar6pg==",
"dev": true,
"license": "MIT",
"peer": true,
diff --git a/package.json b/package.json
index a4e7f42c..25c20541 100644
--- a/package.json
+++ b/package.json
@@ -119,24 +119,24 @@
"@nx/node": "20.0.5",
"@nx/rollup": "20.0.5",
"@nx/workspace": "20.0.5",
- "@taiga-ui/addon-doc": "4.10.0",
- "@taiga-ui/addon-mobile": "4.10.0",
+ "@taiga-ui/addon-doc": "4.12.0",
+ "@taiga-ui/addon-mobile": "4.12.0",
"@taiga-ui/auto-changelog-config": "0.222.5",
"@taiga-ui/browserslist-config": "0.222.5",
- "@taiga-ui/cdk": "4.10.0",
+ "@taiga-ui/cdk": "4.12.0",
"@taiga-ui/commitlint-config": "0.222.5",
- "@taiga-ui/core": "4.10.0",
+ "@taiga-ui/core": "4.12.0",
"@taiga-ui/cspell-config": "0.224.0",
"@taiga-ui/editor": "4.15.0",
"@taiga-ui/eslint-plugin-experience": "0.222.5",
"@taiga-ui/event-plugins": "4.3.1",
- "@taiga-ui/icons": "4.10.0",
- "@taiga-ui/kit": "4.10.0",
- "@taiga-ui/legacy": "4.10.0",
+ "@taiga-ui/icons": "4.12.0",
+ "@taiga-ui/kit": "4.12.0",
+ "@taiga-ui/legacy": "4.12.0",
"@taiga-ui/prettier-config": "0.222.5",
"@taiga-ui/release-it-config": "0.222.5",
"@taiga-ui/stylelint-config": "0.222.5",
- "@taiga-ui/styles": "4.10.0",
+ "@taiga-ui/styles": "4.12.0",
"@taiga-ui/syncer": "0.222.5",
"@taiga-ui/tsconfig": "0.222.5",
"@types/dom-speech-recognition": "0.0.4",