@nx/angular 22.6.0-beta.1 → 22.6.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/migrations.json +172 -0
- package/package.json +9 -9
- package/src/executors/application/schema.json +8 -0
- package/src/executors/application/utils/validate-options.d.ts.map +1 -1
- package/src/executors/application/utils/validate-options.js +5 -0
- package/src/executors/unit-test/schema.json +4 -0
- package/src/executors/unit-test/unit-test.impl.d.ts.map +1 -1
- package/src/executors/unit-test/unit-test.impl.js +8 -2
- package/src/generators/application/files/nx-welcome/claimed/ng-module/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +336 -0
- package/src/generators/application/files/nx-welcome/claimed/standalone/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +336 -0
- package/src/generators/application/files/nx-welcome/not-configured/ng-module/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +336 -0
- package/src/generators/application/files/nx-welcome/not-configured/standalone/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +336 -0
- package/src/generators/application/files/nx-welcome/unclaimed/ng-module/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +336 -0
- package/src/generators/application/files/nx-welcome/unclaimed/standalone/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +336 -0
- package/src/generators/application/lib/update-tsconfig-files.d.ts.map +1 -1
- package/src/generators/application/lib/update-tsconfig-files.js +6 -1
- package/src/generators/utils/add-vitest.d.ts.map +1 -1
- package/src/generators/utils/add-vitest.js +1 -42
- package/src/utils/versions.d.ts +5 -5
- package/src/utils/versions.d.ts.map +1 -1
- package/src/utils/versions.js +5 -5
package/migrations.json
CHANGED
|
@@ -2241,6 +2241,178 @@
|
|
|
2241
2241
|
"alwaysAddToPackageJson": false
|
|
2242
2242
|
}
|
|
2243
2243
|
}
|
|
2244
|
+
},
|
|
2245
|
+
"22.6.0-angular-eslint": {
|
|
2246
|
+
"version": "22.6.0-beta.6",
|
|
2247
|
+
"requires": {
|
|
2248
|
+
"@angular/core": ">= 21.0.0 < 22.0.0",
|
|
2249
|
+
"typescript-eslint": "^8.0.0",
|
|
2250
|
+
"eslint": "^8.57.0 || ^9.0.0"
|
|
2251
|
+
},
|
|
2252
|
+
"packages": {
|
|
2253
|
+
"angular-eslint": {
|
|
2254
|
+
"version": "^21.2.0",
|
|
2255
|
+
"alwaysAddToPackageJson": false
|
|
2256
|
+
},
|
|
2257
|
+
"@angular-eslint/eslint-plugin": {
|
|
2258
|
+
"version": "^21.2.0",
|
|
2259
|
+
"alwaysAddToPackageJson": false
|
|
2260
|
+
},
|
|
2261
|
+
"@angular-eslint/eslint-plugin-template": {
|
|
2262
|
+
"version": "^21.2.0",
|
|
2263
|
+
"alwaysAddToPackageJson": false
|
|
2264
|
+
},
|
|
2265
|
+
"@angular-eslint/template-parser": {
|
|
2266
|
+
"version": "^21.2.0",
|
|
2267
|
+
"alwaysAddToPackageJson": false
|
|
2268
|
+
},
|
|
2269
|
+
"@angular-eslint/utils": {
|
|
2270
|
+
"version": "^21.2.0",
|
|
2271
|
+
"alwaysAddToPackageJson": false
|
|
2272
|
+
},
|
|
2273
|
+
"@angular-eslint/schematics": {
|
|
2274
|
+
"version": "^21.2.0",
|
|
2275
|
+
"alwaysAddToPackageJson": false
|
|
2276
|
+
},
|
|
2277
|
+
"@angular-eslint/test-utils": {
|
|
2278
|
+
"version": "^21.2.0",
|
|
2279
|
+
"alwaysAddToPackageJson": false
|
|
2280
|
+
},
|
|
2281
|
+
"@angular-eslint/builder": {
|
|
2282
|
+
"version": "^21.2.0",
|
|
2283
|
+
"alwaysAddToPackageJson": false
|
|
2284
|
+
},
|
|
2285
|
+
"@angular-eslint/bundled-angular-compiler": {
|
|
2286
|
+
"version": "^21.2.0",
|
|
2287
|
+
"alwaysAddToPackageJson": false
|
|
2288
|
+
}
|
|
2289
|
+
}
|
|
2290
|
+
},
|
|
2291
|
+
"22.6.0-@angular-eslint": {
|
|
2292
|
+
"version": "22.6.0-beta.6",
|
|
2293
|
+
"requires": {
|
|
2294
|
+
"@angular/core": ">= 21.0.0 < 22.0.0",
|
|
2295
|
+
"eslint": "^8.57.0 || ^9.0.0"
|
|
2296
|
+
},
|
|
2297
|
+
"packages": {
|
|
2298
|
+
"@angular-eslint/eslint-plugin": {
|
|
2299
|
+
"version": "^21.2.0",
|
|
2300
|
+
"alwaysAddToPackageJson": false
|
|
2301
|
+
},
|
|
2302
|
+
"@angular-eslint/eslint-plugin-template": {
|
|
2303
|
+
"version": "^21.2.0",
|
|
2304
|
+
"alwaysAddToPackageJson": false
|
|
2305
|
+
},
|
|
2306
|
+
"@angular-eslint/template-parser": {
|
|
2307
|
+
"version": "^21.2.0",
|
|
2308
|
+
"alwaysAddToPackageJson": false
|
|
2309
|
+
},
|
|
2310
|
+
"@angular-eslint/utils": {
|
|
2311
|
+
"version": "^21.2.0",
|
|
2312
|
+
"alwaysAddToPackageJson": false
|
|
2313
|
+
},
|
|
2314
|
+
"@angular-eslint/schematics": {
|
|
2315
|
+
"version": "^21.2.0",
|
|
2316
|
+
"alwaysAddToPackageJson": false
|
|
2317
|
+
},
|
|
2318
|
+
"@angular-eslint/test-utils": {
|
|
2319
|
+
"version": "^21.2.0",
|
|
2320
|
+
"alwaysAddToPackageJson": false
|
|
2321
|
+
},
|
|
2322
|
+
"@angular-eslint/builder": {
|
|
2323
|
+
"version": "^21.2.0",
|
|
2324
|
+
"alwaysAddToPackageJson": false
|
|
2325
|
+
},
|
|
2326
|
+
"@angular-eslint/bundled-angular-compiler": {
|
|
2327
|
+
"version": "^21.2.0",
|
|
2328
|
+
"alwaysAddToPackageJson": false
|
|
2329
|
+
}
|
|
2330
|
+
}
|
|
2331
|
+
},
|
|
2332
|
+
"22.6.0": {
|
|
2333
|
+
"version": "22.6.0-beta.6",
|
|
2334
|
+
"x-prompt": "Do you want to update the Angular version to v21.2?",
|
|
2335
|
+
"requires": {
|
|
2336
|
+
"@angular/core": ">=21.1.0 <21.2.0"
|
|
2337
|
+
},
|
|
2338
|
+
"packages": {
|
|
2339
|
+
"@angular/cli": {
|
|
2340
|
+
"version": "~21.2.0",
|
|
2341
|
+
"alwaysAddToPackageJson": false,
|
|
2342
|
+
"ignorePackageGroup": true,
|
|
2343
|
+
"ignoreMigrations": true
|
|
2344
|
+
},
|
|
2345
|
+
"@angular-devkit/build-angular": {
|
|
2346
|
+
"version": "~21.2.0",
|
|
2347
|
+
"alwaysAddToPackageJson": false
|
|
2348
|
+
},
|
|
2349
|
+
"@angular-devkit/core": {
|
|
2350
|
+
"version": "~21.2.0",
|
|
2351
|
+
"alwaysAddToPackageJson": false
|
|
2352
|
+
},
|
|
2353
|
+
"@angular-devkit/schematics": {
|
|
2354
|
+
"version": "~21.2.0",
|
|
2355
|
+
"alwaysAddToPackageJson": false
|
|
2356
|
+
},
|
|
2357
|
+
"@angular/build": {
|
|
2358
|
+
"version": "~21.2.0",
|
|
2359
|
+
"alwaysAddToPackageJson": false
|
|
2360
|
+
},
|
|
2361
|
+
"@angular/pwa": {
|
|
2362
|
+
"version": "~21.2.0",
|
|
2363
|
+
"alwaysAddToPackageJson": false
|
|
2364
|
+
},
|
|
2365
|
+
"@angular/ssr": {
|
|
2366
|
+
"version": "~21.2.0",
|
|
2367
|
+
"alwaysAddToPackageJson": false
|
|
2368
|
+
},
|
|
2369
|
+
"@schematics/angular": {
|
|
2370
|
+
"version": "~21.2.0",
|
|
2371
|
+
"alwaysAddToPackageJson": false
|
|
2372
|
+
},
|
|
2373
|
+
"@angular-devkit/architect": {
|
|
2374
|
+
"version": "~0.2102.0",
|
|
2375
|
+
"alwaysAddToPackageJson": false
|
|
2376
|
+
},
|
|
2377
|
+
"@angular-devkit/build-webpack": {
|
|
2378
|
+
"version": "~0.2102.0",
|
|
2379
|
+
"alwaysAddToPackageJson": false
|
|
2380
|
+
},
|
|
2381
|
+
"@angular/core": {
|
|
2382
|
+
"version": "~21.2.0",
|
|
2383
|
+
"alwaysAddToPackageJson": true
|
|
2384
|
+
},
|
|
2385
|
+
"@angular/material": {
|
|
2386
|
+
"version": "~21.2.0",
|
|
2387
|
+
"alwaysAddToPackageJson": false
|
|
2388
|
+
},
|
|
2389
|
+
"@angular/cdk": {
|
|
2390
|
+
"version": "~21.2.0",
|
|
2391
|
+
"alwaysAddToPackageJson": false
|
|
2392
|
+
},
|
|
2393
|
+
"@angular/google-maps": {
|
|
2394
|
+
"version": "~21.2.0",
|
|
2395
|
+
"alwaysAddToPackageJson": false
|
|
2396
|
+
},
|
|
2397
|
+
"ng-packagr": {
|
|
2398
|
+
"version": "~21.2.0",
|
|
2399
|
+
"alwaysAddToPackageJson": false
|
|
2400
|
+
}
|
|
2401
|
+
}
|
|
2402
|
+
},
|
|
2403
|
+
"22.6.0": {
|
|
2404
|
+
"version": "22.6.0-beta.10",
|
|
2405
|
+
"x-prompt": "Bump @module-federation packages to v2.x to resolve koa CVE-2026-27959 (via dts-plugin)",
|
|
2406
|
+
"packages": {
|
|
2407
|
+
"@module-federation/enhanced": {
|
|
2408
|
+
"version": "^2.1.0",
|
|
2409
|
+
"alwaysAddToPackageJson": false
|
|
2410
|
+
},
|
|
2411
|
+
"@module-federation/node": {
|
|
2412
|
+
"version": "^2.7.21",
|
|
2413
|
+
"alwaysAddToPackageJson": false
|
|
2414
|
+
}
|
|
2415
|
+
}
|
|
2244
2416
|
}
|
|
2245
2417
|
}
|
|
2246
2418
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/angular",
|
|
3
|
-
"version": "22.6.0-beta.
|
|
3
|
+
"version": "22.6.0-beta.11",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.",
|
|
6
6
|
"repository": {
|
|
@@ -62,14 +62,14 @@
|
|
|
62
62
|
"migrations": "./migrations.json"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@nx/devkit": "22.6.0-beta.
|
|
66
|
-
"@nx/eslint": "22.6.0-beta.
|
|
67
|
-
"@nx/js": "22.6.0-beta.
|
|
68
|
-
"@nx/module-federation": "22.6.0-beta.
|
|
69
|
-
"@nx/rspack": "22.6.0-beta.
|
|
70
|
-
"@nx/web": "22.6.0-beta.
|
|
71
|
-
"@nx/webpack": "22.6.0-beta.
|
|
72
|
-
"@nx/workspace": "22.6.0-beta.
|
|
65
|
+
"@nx/devkit": "22.6.0-beta.11",
|
|
66
|
+
"@nx/eslint": "22.6.0-beta.11",
|
|
67
|
+
"@nx/js": "22.6.0-beta.11",
|
|
68
|
+
"@nx/module-federation": "22.6.0-beta.11",
|
|
69
|
+
"@nx/rspack": "22.6.0-beta.11",
|
|
70
|
+
"@nx/web": "22.6.0-beta.11",
|
|
71
|
+
"@nx/webpack": "22.6.0-beta.11",
|
|
72
|
+
"@nx/workspace": "22.6.0-beta.11",
|
|
73
73
|
"@phenomnomnominal/tsquery": "~6.1.4",
|
|
74
74
|
"@typescript-eslint/type-utils": "^8.0.0",
|
|
75
75
|
"enquirer": "~2.3.6",
|
|
@@ -54,6 +54,14 @@
|
|
|
54
54
|
"type": "object",
|
|
55
55
|
"additionalProperties": false,
|
|
56
56
|
"properties": {
|
|
57
|
+
"allowedHosts": {
|
|
58
|
+
"description": "A list of hostnames that are allowed to access the server-side application. For more information, see https://angular.dev/best-practices/security#preventing-server-side-request-forgery-ssrf. _Note: this is only supported in Angular versions >= 21.2.0_.",
|
|
59
|
+
"type": "array",
|
|
60
|
+
"uniqueItems": true,
|
|
61
|
+
"items": {
|
|
62
|
+
"type": "string"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
57
65
|
"autoCsp": {
|
|
58
66
|
"description": "Enables automatic generation of a hash-based Strict Content Security Policy (https://web.dev/articles/strict-csp#choose-hash) based on scripts in index.html. Will default to true once we are out of experimental/preview phases.",
|
|
59
67
|
"default": false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-options.d.ts","sourceRoot":"","sources":["../../../../../../../packages/angular/src/executors/application/utils/validate-options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAE5D,wBAAgB,eAAe,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"validate-options.d.ts","sourceRoot":"","sources":["../../../../../../../packages/angular/src/executors/application/utils/validate-options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAE5D,wBAAgB,eAAe,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAkDzE"}
|
|
@@ -15,6 +15,11 @@ function validateOptions(options) {
|
|
|
15
15
|
throw new Error(`The "conditions" option requires Angular version 20.0.0 or greater. You are currently using version ${angularVersion}.`);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
if ((0, semver_1.lt)(angularVersion, '21.2.0')) {
|
|
19
|
+
if (options.security?.allowedHosts) {
|
|
20
|
+
throw new Error(`The "security.allowedHosts" option requires Angular version 21.2.0 or greater. You are currently using version ${angularVersion}.`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
18
23
|
if ((0, semver_1.lt)(angularVersion, '20.1.0')) {
|
|
19
24
|
if (options.loader) {
|
|
20
25
|
const invalidLoaders = Array.from(new Set(Object.values(options.loader).filter((l) => l === 'dataurl' || l === 'base64')));
|
|
@@ -38,6 +38,10 @@
|
|
|
38
38
|
"type": "string",
|
|
39
39
|
"pattern": "^\\d+x\\d+$"
|
|
40
40
|
},
|
|
41
|
+
"headless": {
|
|
42
|
+
"type": "boolean",
|
|
43
|
+
"description": "Forces all configured browsers to run in headless mode. When using the Vitest runner, this option is ignored if no browsers are configured. The Karma runner does not support this option. _Note: this is only supported in Angular versions >= 21.2.0_."
|
|
44
|
+
},
|
|
41
45
|
"include": {
|
|
42
46
|
"type": "array",
|
|
43
47
|
"items": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit-test.impl.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/executors/unit-test/unit-test.impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK/E,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"unit-test.impl.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/executors/unit-test/unit-test.impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK/E,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,YAAY,CAAC;AAY1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,wBAA+B,gBAAgB,CAC7C,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,eAAe,GACvB,aAAa,CAAC,aAAa,CAAC,CAyC9B"}
|
|
@@ -36,11 +36,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.default = unitTestExecutor;
|
|
37
37
|
const ngcli_adapter_1 = require("nx/src/adapter/ngcli-adapter");
|
|
38
38
|
const targets_1 = require("../../utils/targets");
|
|
39
|
+
const semver_1 = require("semver");
|
|
39
40
|
const angular_version_utils_1 = require("../utilities/angular-version-utils");
|
|
40
41
|
const builder_package_1 = require("../utilities/builder-package");
|
|
41
42
|
const esbuild_extensions_1 = require("../utilities/esbuild-extensions");
|
|
42
43
|
async function* unitTestExecutor(options, context) {
|
|
43
|
-
validateOptions();
|
|
44
|
+
validateOptions(options);
|
|
44
45
|
const { plugins: pluginPaths, indexHtmlTransformer: indexHtmlTransformerPath, ...delegateExecutorOptions } = options;
|
|
45
46
|
const plugins = await (0, esbuild_extensions_1.loadPlugins)(pluginPaths, options.tsConfig);
|
|
46
47
|
const indexHtmlTransformer = indexHtmlTransformerPath
|
|
@@ -61,11 +62,16 @@ async function* unitTestExecutor(options, context) {
|
|
|
61
62
|
indexHtmlTransformer,
|
|
62
63
|
});
|
|
63
64
|
}
|
|
64
|
-
function validateOptions() {
|
|
65
|
+
function validateOptions(options) {
|
|
65
66
|
const { version: angularVersion, major: angularMajorVersion } = (0, angular_version_utils_1.getInstalledAngularVersionInfo)();
|
|
66
67
|
if (angularMajorVersion < 21) {
|
|
67
68
|
throw new Error(`The "unit-test" executor is only available for Angular versions >= 21.0.0. You are currently using version ${angularVersion}.`);
|
|
68
69
|
}
|
|
70
|
+
if ((0, semver_1.lt)(angularVersion, '21.2.0')) {
|
|
71
|
+
if (options.headless !== undefined) {
|
|
72
|
+
throw new Error(`The "headless" option requires Angular version 21.2.0 or greater. You are currently using version ${angularVersion}.`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
69
75
|
}
|
|
70
76
|
/**
|
|
71
77
|
* The Angular CLI unit-test builder only accepts the `@angular/build:application`
|
|
@@ -11,6 +11,341 @@ import { Component, ViewEncapsulation } from '@angular/core';
|
|
|
11
11
|
Delete this file and get started with your project!
|
|
12
12
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
13
13
|
-->
|
|
14
|
+
<% if (style === 'sass') { %>
|
|
15
|
+
<style>
|
|
16
|
+
html
|
|
17
|
+
-webkit-text-size-adjust: 100%
|
|
18
|
+
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
|
|
19
|
+
'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,
|
|
20
|
+
'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
|
|
21
|
+
'Noto Color Emoji'
|
|
22
|
+
line-height: 1.5
|
|
23
|
+
tab-size: 4
|
|
24
|
+
scroll-behavior: smooth
|
|
25
|
+
body
|
|
26
|
+
font-family: inherit
|
|
27
|
+
line-height: inherit
|
|
28
|
+
margin: 0
|
|
29
|
+
h1, h2, p, pre
|
|
30
|
+
margin: 0
|
|
31
|
+
*, ::before, ::after
|
|
32
|
+
box-sizing: border-box
|
|
33
|
+
border-width: 0
|
|
34
|
+
border-style: solid
|
|
35
|
+
border-color: currentColor
|
|
36
|
+
h1, h2
|
|
37
|
+
font-size: inherit
|
|
38
|
+
font-weight: inherit
|
|
39
|
+
a
|
|
40
|
+
color: inherit
|
|
41
|
+
text-decoration: inherit
|
|
42
|
+
pre
|
|
43
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
|
|
44
|
+
'Liberation Mono', 'Courier New', monospace
|
|
45
|
+
svg
|
|
46
|
+
display: block
|
|
47
|
+
vertical-align: middle
|
|
48
|
+
svg
|
|
49
|
+
shape-rendering: auto
|
|
50
|
+
text-rendering: optimizeLegibility
|
|
51
|
+
pre
|
|
52
|
+
background-color: rgba(55, 65, 81, 1)
|
|
53
|
+
border-radius: 0.25rem
|
|
54
|
+
color: rgba(229, 231, 235, 1)
|
|
55
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
|
|
56
|
+
'Liberation Mono', 'Courier New', monospace
|
|
57
|
+
overflow: auto
|
|
58
|
+
padding: 0.5rem 0.75rem
|
|
59
|
+
.shadow
|
|
60
|
+
box-shadow: 0 0 #0000, 0 0 #0000, 0 10px 15px -3px rgba(0, 0, 0, 0.1),
|
|
61
|
+
0 4px 6px -2px rgba(0, 0, 0, 0.05)
|
|
62
|
+
.rounded
|
|
63
|
+
border-radius: 1.5rem
|
|
64
|
+
.wrapper
|
|
65
|
+
width: 100%
|
|
66
|
+
.container
|
|
67
|
+
margin-left: auto
|
|
68
|
+
margin-right: auto
|
|
69
|
+
max-width: 768px
|
|
70
|
+
padding-bottom: 3rem
|
|
71
|
+
padding-left: 1rem
|
|
72
|
+
padding-right: 1rem
|
|
73
|
+
color: rgba(55, 65, 81, 1)
|
|
74
|
+
width: 100%
|
|
75
|
+
#welcome
|
|
76
|
+
margin-top: 2.5rem
|
|
77
|
+
#welcome h1
|
|
78
|
+
font-size: 3rem
|
|
79
|
+
font-weight: 500
|
|
80
|
+
letter-spacing: -0.025em
|
|
81
|
+
line-height: 1
|
|
82
|
+
#welcome span
|
|
83
|
+
display: block
|
|
84
|
+
font-size: 1.875rem
|
|
85
|
+
font-weight: 300
|
|
86
|
+
line-height: 2.25rem
|
|
87
|
+
margin-bottom: 0.5rem
|
|
88
|
+
#hero
|
|
89
|
+
align-items: center
|
|
90
|
+
background-color: hsla(214, 62%, 21%, 1)
|
|
91
|
+
border: none
|
|
92
|
+
box-sizing: border-box
|
|
93
|
+
color: rgba(55, 65, 81, 1)
|
|
94
|
+
display: grid
|
|
95
|
+
grid-template-columns: 1fr
|
|
96
|
+
margin-top: 3.5rem
|
|
97
|
+
#hero .text-container
|
|
98
|
+
color: rgba(255, 255, 255, 1)
|
|
99
|
+
padding: 3rem 2rem
|
|
100
|
+
#hero .text-container h2
|
|
101
|
+
font-size: 1.5rem
|
|
102
|
+
line-height: 2rem
|
|
103
|
+
position: relative
|
|
104
|
+
#hero .text-container h2 svg
|
|
105
|
+
color: hsla(162, 47%, 50%, 1)
|
|
106
|
+
height: 2rem
|
|
107
|
+
left: -0.25rem
|
|
108
|
+
position: absolute
|
|
109
|
+
top: 0
|
|
110
|
+
width: 2rem
|
|
111
|
+
#hero .text-container h2 span
|
|
112
|
+
margin-left: 2.5rem
|
|
113
|
+
#hero .text-container a
|
|
114
|
+
background-color: rgba(255, 255, 255, 1)
|
|
115
|
+
border-radius: 0.75rem
|
|
116
|
+
color: rgba(55, 65, 81, 1)
|
|
117
|
+
display: inline-block
|
|
118
|
+
margin-top: 1.5rem
|
|
119
|
+
padding: 1rem 2rem
|
|
120
|
+
text-decoration: inherit
|
|
121
|
+
#hero .logo-container
|
|
122
|
+
display: none
|
|
123
|
+
justify-content: center
|
|
124
|
+
padding-left: 2rem
|
|
125
|
+
padding-right: 2rem
|
|
126
|
+
#hero .logo-container svg
|
|
127
|
+
color: rgba(255, 255, 255, 1)
|
|
128
|
+
width: 66.666667%
|
|
129
|
+
#middle-content
|
|
130
|
+
align-items: flex-start
|
|
131
|
+
display: grid
|
|
132
|
+
grid-template-columns: 1fr
|
|
133
|
+
margin-top: 3.5rem
|
|
134
|
+
#middle-content #middle-left-content
|
|
135
|
+
display: flex
|
|
136
|
+
flex-direction: column
|
|
137
|
+
gap: 2rem
|
|
138
|
+
#learning-materials
|
|
139
|
+
padding: 2.5rem 2rem
|
|
140
|
+
#learning-materials h2
|
|
141
|
+
font-weight: 500
|
|
142
|
+
font-size: 1.25rem
|
|
143
|
+
letter-spacing: -0.025em
|
|
144
|
+
line-height: 1.75rem
|
|
145
|
+
padding-left: 1rem
|
|
146
|
+
padding-right: 1rem
|
|
147
|
+
.list-item-link
|
|
148
|
+
align-items: center
|
|
149
|
+
border-radius: 0.75rem
|
|
150
|
+
display: flex
|
|
151
|
+
margin-top: 1rem
|
|
152
|
+
padding: 1rem
|
|
153
|
+
transition-property: background-color, border-color, color, fill, stroke,
|
|
154
|
+
opacity, box-shadow, transform, filter, backdrop-filter,
|
|
155
|
+
-webkit-backdrop-filter
|
|
156
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
|
|
157
|
+
transition-duration: 150ms
|
|
158
|
+
width: 100%
|
|
159
|
+
.list-item-link svg:first-child
|
|
160
|
+
margin-right: 1rem
|
|
161
|
+
height: 1.5rem
|
|
162
|
+
transition-property: background-color, border-color, color, fill, stroke,
|
|
163
|
+
opacity, box-shadow, transform, filter, backdrop-filter,
|
|
164
|
+
-webkit-backdrop-filter
|
|
165
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
|
|
166
|
+
transition-duration: 150ms
|
|
167
|
+
width: 1.5rem
|
|
168
|
+
.list-item-link > span
|
|
169
|
+
flex-grow: 1
|
|
170
|
+
font-weight: 400
|
|
171
|
+
transition-property: background-color, border-color, color, fill, stroke,
|
|
172
|
+
opacity, box-shadow, transform, filter, backdrop-filter,
|
|
173
|
+
-webkit-backdrop-filter
|
|
174
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
|
|
175
|
+
.list-item-link > span > span
|
|
176
|
+
color: rgba(107, 114, 128, 1)
|
|
177
|
+
display: block
|
|
178
|
+
flex-grow: 1
|
|
179
|
+
font-size: 0.75rem
|
|
180
|
+
font-weight: 300
|
|
181
|
+
line-height: 1rem
|
|
182
|
+
transition-property: background-color, border-color, color, fill, stroke,
|
|
183
|
+
opacity, box-shadow, transform, filter, backdrop-filter,
|
|
184
|
+
-webkit-backdrop-filter
|
|
185
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
|
|
186
|
+
.list-item-link svg:last-child
|
|
187
|
+
height: 1rem
|
|
188
|
+
transition-property: all
|
|
189
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
|
|
190
|
+
transition-duration: 150ms
|
|
191
|
+
width: 1rem
|
|
192
|
+
.list-item-link:hover
|
|
193
|
+
color: rgba(255, 255, 255, 1)
|
|
194
|
+
background-color: hsla(162, 55%, 33%, 1)
|
|
195
|
+
.list-item-link:hover > span > span
|
|
196
|
+
color: rgba(243, 244, 246, 1)
|
|
197
|
+
.list-item-link:hover svg:last-child
|
|
198
|
+
transform: translateX(0.25rem)
|
|
199
|
+
.button-pill
|
|
200
|
+
padding: 1.5rem 2rem
|
|
201
|
+
margin-bottom: 2rem
|
|
202
|
+
transition-duration: 300ms
|
|
203
|
+
transition-property: background-color, border-color, color, fill, stroke,
|
|
204
|
+
opacity, box-shadow, transform, filter, backdrop-filter,
|
|
205
|
+
-webkit-backdrop-filter
|
|
206
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
|
|
207
|
+
align-items: center
|
|
208
|
+
display: flex
|
|
209
|
+
.button-pill svg
|
|
210
|
+
transition-property: background-color, border-color, color, fill, stroke,
|
|
211
|
+
opacity, box-shadow, transform, filter, backdrop-filter,
|
|
212
|
+
-webkit-backdrop-filter
|
|
213
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
|
|
214
|
+
transition-duration: 150ms
|
|
215
|
+
flex-shrink: 0
|
|
216
|
+
width: 3rem
|
|
217
|
+
.button-pill > span
|
|
218
|
+
letter-spacing: -0.025em
|
|
219
|
+
font-weight: 400
|
|
220
|
+
font-size: 1.125rem
|
|
221
|
+
line-height: 1.75rem
|
|
222
|
+
padding-left: 1rem
|
|
223
|
+
padding-right: 1rem
|
|
224
|
+
.button-pill span span
|
|
225
|
+
display: block
|
|
226
|
+
font-size: 0.875rem
|
|
227
|
+
font-weight: 300
|
|
228
|
+
line-height: 1.25rem
|
|
229
|
+
.button-pill:hover svg, .button-pill:hover
|
|
230
|
+
color: rgba(255, 255, 255, 1) !important
|
|
231
|
+
.nx-console:hover
|
|
232
|
+
background-color: rgba(0, 122, 204, 1)
|
|
233
|
+
.nx-console svg
|
|
234
|
+
color: rgba(0, 122, 204, 1)
|
|
235
|
+
.nx-console-jetbrains
|
|
236
|
+
margin-top: 2rem
|
|
237
|
+
.nx-console-jetbrains:hover
|
|
238
|
+
background-color: rgba(255, 49, 140, 1)
|
|
239
|
+
.nx-console-jetbrains svg
|
|
240
|
+
color: rgba(255, 49, 140, 1)
|
|
241
|
+
#nx-repo:hover
|
|
242
|
+
background-color: rgba(24, 23, 23, 1)
|
|
243
|
+
#nx-repo svg
|
|
244
|
+
color: rgba(24, 23, 23, 1)
|
|
245
|
+
#nx-cloud
|
|
246
|
+
margin-bottom: 2rem
|
|
247
|
+
margin-top: 2rem
|
|
248
|
+
padding: 2.5rem 2rem
|
|
249
|
+
#nx-cloud > div
|
|
250
|
+
align-items: center
|
|
251
|
+
display: flex
|
|
252
|
+
#nx-cloud > div svg
|
|
253
|
+
border-radius: 0.375rem
|
|
254
|
+
flex-shrink: 0
|
|
255
|
+
width: 3rem
|
|
256
|
+
#nx-cloud > div h2
|
|
257
|
+
font-size: 1.125rem
|
|
258
|
+
font-weight: 400
|
|
259
|
+
letter-spacing: -0.025em
|
|
260
|
+
line-height: 1.75rem
|
|
261
|
+
padding-left: 1rem
|
|
262
|
+
padding-right: 1rem
|
|
263
|
+
#nx-cloud > div h2 span
|
|
264
|
+
display: block
|
|
265
|
+
font-size: 0.875rem
|
|
266
|
+
font-weight: 300
|
|
267
|
+
line-height: 1.25rem
|
|
268
|
+
#nx-cloud p
|
|
269
|
+
font-size: 1rem
|
|
270
|
+
line-height: 1.5rem
|
|
271
|
+
margin-top: 1rem
|
|
272
|
+
#nx-cloud pre
|
|
273
|
+
margin-top: 1rem
|
|
274
|
+
#nx-cloud a
|
|
275
|
+
border-radius: 0.75rem
|
|
276
|
+
color: white
|
|
277
|
+
background-color: hsla(214, 62%, 21%, 1)
|
|
278
|
+
display: inline-block
|
|
279
|
+
margin-top: 1.5rem
|
|
280
|
+
padding: 0.5rem 1rem
|
|
281
|
+
text-align:left
|
|
282
|
+
text-decoration: inherit
|
|
283
|
+
#commands
|
|
284
|
+
padding: 2.5rem 2rem
|
|
285
|
+
margin-top: 3.5rem
|
|
286
|
+
#commands h2
|
|
287
|
+
font-size: 1.25rem
|
|
288
|
+
font-weight: 400
|
|
289
|
+
letter-spacing: -0.025em
|
|
290
|
+
line-height: 1.75rem
|
|
291
|
+
padding-left: 1rem
|
|
292
|
+
padding-right: 1rem
|
|
293
|
+
#commands p
|
|
294
|
+
font-size: 1rem
|
|
295
|
+
font-weight: 300
|
|
296
|
+
line-height: 1.5rem
|
|
297
|
+
margin-top: 1rem
|
|
298
|
+
padding-left: 1rem
|
|
299
|
+
padding-right: 1rem
|
|
300
|
+
details
|
|
301
|
+
align-items: center
|
|
302
|
+
display: flex
|
|
303
|
+
margin-top: 1rem
|
|
304
|
+
padding-left: 1rem
|
|
305
|
+
padding-right: 1rem
|
|
306
|
+
width: 100%
|
|
307
|
+
details pre > span
|
|
308
|
+
color: rgba(181, 181, 181, 1)
|
|
309
|
+
summary
|
|
310
|
+
border-radius: 0.5rem
|
|
311
|
+
display: flex
|
|
312
|
+
font-weight: 400
|
|
313
|
+
padding: 0.5rem
|
|
314
|
+
cursor: pointer
|
|
315
|
+
transition-property: background-color, border-color, color, fill, stroke,
|
|
316
|
+
opacity, box-shadow, transform, filter, backdrop-filter,
|
|
317
|
+
-webkit-backdrop-filter
|
|
318
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
|
|
319
|
+
transition-duration: 150ms
|
|
320
|
+
summary:hover
|
|
321
|
+
background-color: rgba(243, 244, 246, 1)
|
|
322
|
+
summary svg
|
|
323
|
+
height: 1.5rem
|
|
324
|
+
margin-right: 1rem
|
|
325
|
+
width: 1.5rem
|
|
326
|
+
#love
|
|
327
|
+
color: rgba(107, 114, 128, 1)
|
|
328
|
+
font-size: 0.875rem
|
|
329
|
+
line-height: 1.25rem
|
|
330
|
+
margin-top: 3.5rem
|
|
331
|
+
opacity: 0.6
|
|
332
|
+
text-align: center
|
|
333
|
+
#love svg
|
|
334
|
+
color: rgba(252, 165, 165, 1)
|
|
335
|
+
width: 1.25rem
|
|
336
|
+
height: 1.25rem
|
|
337
|
+
display: inline
|
|
338
|
+
margin-top: -0.25rem
|
|
339
|
+
@media screen and (min-width: 768px)
|
|
340
|
+
#hero
|
|
341
|
+
grid-template-columns: repeat(2, minmax(0, 1fr))
|
|
342
|
+
#hero .logo-container
|
|
343
|
+
display: flex
|
|
344
|
+
#middle-content
|
|
345
|
+
grid-template-columns: repeat(2, minmax(0, 1fr))
|
|
346
|
+
gap: 4rem
|
|
347
|
+
</style>
|
|
348
|
+
<% } else { %>
|
|
14
349
|
<style>
|
|
15
350
|
html {
|
|
16
351
|
-webkit-text-size-adjust: 100%;
|
|
@@ -425,6 +760,7 @@ import { Component, ViewEncapsulation } from '@angular/core';
|
|
|
425
760
|
}
|
|
426
761
|
}
|
|
427
762
|
</style>
|
|
763
|
+
<% } %>
|
|
428
764
|
<div class="wrapper">
|
|
429
765
|
<div class="container">
|
|
430
766
|
<!-- WELCOME -->
|