@angular/core 21.0.0-next.8 → 21.0.0-rc.0

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.
Files changed (84) hide show
  1. package/fesm2022/_attribute-chunk.mjs +2 -14
  2. package/fesm2022/_attribute-chunk.mjs.map +1 -1
  3. package/fesm2022/_debug_node-chunk.mjs +15214 -28375
  4. package/fesm2022/_debug_node-chunk.mjs.map +1 -1
  5. package/fesm2022/_effect-chunk.mjs +402 -120
  6. package/fesm2022/_effect-chunk.mjs.map +1 -1
  7. package/fesm2022/_effect-chunk2.mjs +2951 -0
  8. package/fesm2022/_effect-chunk2.mjs.map +1 -0
  9. package/fesm2022/_not_found-chunk.mjs +18 -35
  10. package/fesm2022/_not_found-chunk.mjs.map +1 -1
  11. package/fesm2022/_resource-chunk.mjs +316 -563
  12. package/fesm2022/_resource-chunk.mjs.map +1 -1
  13. package/fesm2022/_untracked-chunk.mjs +96 -0
  14. package/fesm2022/_untracked-chunk.mjs.map +1 -0
  15. package/fesm2022/_weak_ref-chunk.mjs +2 -4
  16. package/fesm2022/_weak_ref-chunk.mjs.map +1 -1
  17. package/fesm2022/core.mjs +2466 -4309
  18. package/fesm2022/core.mjs.map +1 -1
  19. package/fesm2022/primitives-di.mjs +9 -9
  20. package/fesm2022/primitives-di.mjs.map +1 -1
  21. package/fesm2022/primitives-event-dispatch.mjs +626 -1460
  22. package/fesm2022/primitives-event-dispatch.mjs.map +1 -1
  23. package/fesm2022/primitives-signals.mjs +157 -191
  24. package/fesm2022/primitives-signals.mjs.map +1 -1
  25. package/fesm2022/rxjs-interop.mjs +208 -308
  26. package/fesm2022/rxjs-interop.mjs.map +1 -1
  27. package/fesm2022/testing.mjs +2305 -3164
  28. package/fesm2022/testing.mjs.map +1 -1
  29. package/package.json +8 -2
  30. package/resources/best-practices.md +56 -0
  31. package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +7 -25
  32. package/schematics/bundles/application-config-core.cjs +8 -19
  33. package/schematics/bundles/{apply_import_manager-CBLmogDD.cjs → apply_import_manager-1Zs_gpB6.cjs} +4 -5
  34. package/schematics/bundles/bootstrap-options-migration.cjs +93 -132
  35. package/schematics/bundles/cleanup-unused-imports.cjs +9 -13
  36. package/schematics/bundles/common-to-standalone-migration.cjs +381 -0
  37. package/schematics/bundles/{compiler_host-T6xncpiw.cjs → compiler_host-DBwYMlTo.cjs} +10 -11
  38. package/schematics/bundles/control-flow-migration.cjs +29 -31
  39. package/schematics/bundles/{imports-DwPXlGFl.cjs → imports-DP72APSx.cjs} +1 -23
  40. package/schematics/bundles/{index-DWSaRJdz.cjs → index-B7I9sIUx.cjs} +36 -37
  41. package/schematics/bundles/inject-migration.cjs +9 -26
  42. package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
  43. package/schematics/bundles/{migrate_ts_type_references-Cu-FR4L5.cjs → migrate_ts_type_references-UGIUl7En.cjs} +458 -24
  44. package/schematics/bundles/{ng_component_template-BkWiUuGG.cjs → ng_component_template-Dsuq1Lw7.cjs} +4 -5
  45. package/schematics/bundles/{ng_decorators-BI0uV7KI.cjs → ng_decorators-DSFlWYQY.cjs} +2 -2
  46. package/schematics/bundles/ngclass-to-class-migration.cjs +16 -19
  47. package/schematics/bundles/ngstyle-to-style-migration.cjs +15 -18
  48. package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
  49. package/schematics/bundles/output-migration.cjs +16 -19
  50. package/schematics/bundles/{parse_html-C97tKKp3.cjs → parse_html-8VLCL37B.cjs} +5 -5
  51. package/schematics/bundles/{project_paths-C6g3lqjX.cjs → project_paths-DvD50ouC.cjs} +14 -247
  52. package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.cjs +90 -0
  53. package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
  54. package/schematics/bundles/route-lazy-loading.cjs +9 -25
  55. package/schematics/bundles/router-current-navigation.cjs +6 -17
  56. package/schematics/bundles/router-last-successful-navigation.cjs +6 -17
  57. package/schematics/bundles/router-testing-module-migration.cjs +7 -18
  58. package/schematics/bundles/self-closing-tags-migration.cjs +14 -17
  59. package/schematics/bundles/signal-input-migration.cjs +23 -26
  60. package/schematics/bundles/signal-queries-migration.cjs +22 -25
  61. package/schematics/bundles/signals.cjs +10 -13
  62. package/schematics/bundles/standalone-migration.cjs +22 -56
  63. package/schematics/bundles/symbol-BObKoqes.cjs +1 -1
  64. package/schematics/collection.json +6 -0
  65. package/schematics/migrations/common-to-standalone-migration/schema.json +14 -0
  66. package/types/_api-chunk.d.ts +1 -1
  67. package/types/_chrome_dev_tools_performance-chunk.d.ts +20 -12
  68. package/types/_discovery-chunk.d.ts +18 -14
  69. package/types/_effect-chunk.d.ts +1 -1
  70. package/types/_event_dispatcher-chunk.d.ts +1 -1
  71. package/types/_formatter-chunk.d.ts +4 -3
  72. package/types/_weak_ref-chunk.d.ts +1 -1
  73. package/types/core.d.ts +49 -100
  74. package/types/primitives-di.d.ts +1 -1
  75. package/types/primitives-event-dispatch.d.ts +1 -1
  76. package/types/primitives-signals.d.ts +2 -2
  77. package/types/rxjs-interop.d.ts +1 -1
  78. package/types/testing.d.ts +1 -1
  79. package/fesm2022/_root_effect_scheduler-chunk.mjs +0 -4630
  80. package/fesm2022/_root_effect_scheduler-chunk.mjs.map +0 -1
  81. package/fesm2022/_signal-chunk.mjs +0 -581
  82. package/fesm2022/_signal-chunk.mjs.map +0 -1
  83. package/schematics/bundles/index-BnmACOsq.cjs +0 -22319
  84. package/schematics/bundles/project_tsconfig_paths-CdhVNYMk.cjs +0 -51583
@@ -1,38 +1,25 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.8
3
+ * @license Angular v21.0.0-rc.0
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
9
  var schematics = require('@angular-devkit/schematics');
10
- var index = require('./index-BnmACOsq.cjs');
10
+ var compilerCli = require('@angular/compiler-cli');
11
11
  var fs = require('fs');
12
- var p = require('path');
12
+ var path = require('path');
13
13
  var ts = require('typescript');
14
- var compiler_host = require('./compiler_host-T6xncpiw.cjs');
15
- var project_tsconfig_paths = require('./project_tsconfig_paths-CdhVNYMk.cjs');
16
- var ng_decorators = require('./ng_decorators-BI0uV7KI.cjs');
14
+ var compiler_host = require('./compiler_host-DBwYMlTo.cjs');
15
+ var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.cjs');
16
+ var ng_decorators = require('./ng_decorators-DSFlWYQY.cjs');
17
17
  var nodes = require('./nodes-B16H9JUd.cjs');
18
18
  var symbol = require('./symbol-BObKoqes.cjs');
19
- var imports = require('./imports-DwPXlGFl.cjs');
20
- require('os');
21
- require('module');
22
- require('url');
19
+ var imports = require('./imports-DP72APSx.cjs');
20
+ var migrations = require('@angular/compiler-cli/private/migrations');
23
21
  require('@angular-devkit/core');
24
22
 
25
- function createProgram({ rootNames, options, host, oldProgram, }) {
26
- return new index.NgtscProgram(rootNames, options, host, oldProgram);
27
- }
28
-
29
- /*!
30
- * @license
31
- * Copyright Google LLC All Rights Reserved.
32
- *
33
- * Use of this source code is governed by an MIT-style license that can be
34
- * found in the LICENSE file at https://angular.dev/license
35
- */
36
23
  /** Utility class used to track a one-to-many relationship where all the items are unique. */
37
24
  class UniqueItemTracker {
38
25
  _nodes = new Map();
@@ -227,13 +214,13 @@ function findLiteralProperty(literal, name) {
227
214
  }
228
215
  /** Gets a relative path between two files that can be used inside a TypeScript import. */
229
216
  function getRelativeImportPath(fromFile, toFile) {
230
- let path = p.relative(p.dirname(fromFile), toFile).replace(/\.ts$/, '');
217
+ let path$1 = path.relative(path.dirname(fromFile), toFile).replace(/\.ts$/, '');
231
218
  // `relative` returns paths inside the same directory without `./`
232
- if (!path.startsWith('.')) {
233
- path = './' + path;
219
+ if (!path$1.startsWith('.')) {
220
+ path$1 = './' + path$1;
234
221
  }
235
222
  // Using the Node utilities can yield paths with forward slashes on Windows.
236
- return compiler_host.normalizePath(path);
223
+ return compiler_host.normalizePath(path$1);
237
224
  }
238
225
  /** Function used to remap the generated `imports` for a component to known shorter aliases. */
239
226
  function knownInternalAliasRemapper(imports) {
@@ -308,13 +295,6 @@ function isTestCall(typeChecker, node, testBedImport, catalystImport) {
308
295
  return !!(isTestBedCall || isCatalystCall);
309
296
  }
310
297
 
311
- /*!
312
- * @license
313
- * Copyright Google LLC All Rights Reserved.
314
- *
315
- * Use of this source code is governed by an MIT-style license that can be
316
- * found in the LICENSE file at https://angular.dev/license
317
- */
318
298
  /**
319
299
  * Converts all declarations in the specified files to standalone.
320
300
  * @param sourceFiles Files that should be migrated.
@@ -400,8 +380,8 @@ function getComponentImportExpressions(decl, allDeclarations, tracker, typeCheck
400
380
  const resolvedDependencies = [];
401
381
  for (const dep of templateDependencies) {
402
382
  const importLocation = findImportLocation(dep, decl, usedDependenciesInMigration.has(dep)
403
- ? project_tsconfig_paths.PotentialImportMode.ForceDirect
404
- : project_tsconfig_paths.PotentialImportMode.Normal, typeChecker);
383
+ ? migrations.PotentialImportMode.ForceDirect
384
+ : migrations.PotentialImportMode.Normal, typeChecker);
405
385
  if (importLocation) {
406
386
  // Create a unique key that includes both the symbol name and module specifier
407
387
  // to handle cases where the same symbol name is imported from different modules
@@ -640,13 +620,13 @@ function findImportLocation(target, inContext, importMode, typeChecker) {
640
620
  for (const location of importLocations) {
641
621
  // Prefer a standalone import, if we can find one.
642
622
  // Otherwise fall back to the first module-based import.
643
- if (location.kind === project_tsconfig_paths.PotentialImportKind.Standalone) {
623
+ if (location.kind === migrations.PotentialImportKind.Standalone) {
644
624
  return location;
645
625
  }
646
626
  if (!location.moduleSpecifier && !firstSameFileImport) {
647
627
  firstSameFileImport = location;
648
628
  }
649
- if (location.kind === project_tsconfig_paths.PotentialImportKind.NgModule &&
629
+ if (location.kind === migrations.PotentialImportKind.NgModule &&
650
630
  !firstModuleImport &&
651
631
  // ɵ is used for some internal Angular modules that we want to skip over.
652
632
  !location.symbolName.startsWith('ɵ')) {
@@ -927,13 +907,6 @@ function isStandaloneDeclaration(node, declarationsInMigration, templateTypeChec
927
907
  return metadata != null && metadata.isStandalone;
928
908
  }
929
909
 
930
- /*!
931
- * @license
932
- * Copyright Google LLC All Rights Reserved.
933
- *
934
- * Use of this source code is governed by an MIT-style license that can be
935
- * found in the LICENSE file at https://angular.dev/license
936
- */
937
910
  function pruneNgModules(program, host, basePath, rootFileNames, sourceFiles, printer, importRemapper, referenceLookupExcludedFiles, declarationImportRemapper) {
938
911
  const filesToRemove = new Set();
939
912
  const tracker = new compiler_host.ChangeTracker(printer, importRemapper);
@@ -1215,7 +1188,7 @@ function replaceModulesInImportsArray(array, replacements, nodesToRemove, tracke
1215
1188
  }
1216
1189
  const potentialImports = [];
1217
1190
  for (const ref of replacementRefs) {
1218
- const importLocation = findImportLocation(ref, array, project_tsconfig_paths.PotentialImportMode.Normal, templateTypeChecker);
1191
+ const importLocation = findImportLocation(ref, array, migrations.PotentialImportMode.Normal, templateTypeChecker);
1219
1192
  if (importLocation) {
1220
1193
  potentialImports.push(importLocation);
1221
1194
  }
@@ -1452,13 +1425,6 @@ function isInImportsArray(closestAssignment, closestArray) {
1452
1425
  closestAssignment.name.text === 'imports');
1453
1426
  }
1454
1427
 
1455
- /*!
1456
- * @license
1457
- * Copyright Google LLC All Rights Reserved.
1458
- *
1459
- * Use of this source code is governed by an MIT-style license that can be
1460
- * found in the LICENSE file at https://angular.dev/license
1461
- */
1462
1428
  function toStandaloneBootstrap(program, host, basePath, rootFileNames, sourceFiles, printer, importRemapper, referenceLookupExcludedFiles, declarationImportRemapper) {
1463
1429
  const tracker = new compiler_host.ChangeTracker(printer, importRemapper);
1464
1430
  const typeChecker = program.getTsProgram().getTypeChecker();
@@ -1980,7 +1946,7 @@ function isOutsideRange(excludeStart, excludeEnd, start, end) {
1980
1946
  * @param specifier Specifier whose path is being remapped.
1981
1947
  */
1982
1948
  function remapRelativeImport(targetFileName, specifier) {
1983
- return getRelativeImportPath(targetFileName, p.join(p.dirname(specifier.getSourceFile().fileName), specifier.text));
1949
+ return getRelativeImportPath(targetFileName, path.join(path.dirname(specifier.getSourceFile().fileName), specifier.text));
1984
1950
  }
1985
1951
  /**
1986
1952
  * Whether a node is exported.
@@ -2053,7 +2019,7 @@ function migrate(options) {
2053
2019
  const allPaths = [...buildPaths, ...testPaths];
2054
2020
  // TS and Schematic use paths in POSIX format even on Windows. This is needed as otherwise
2055
2021
  // string matching such as `sourceFile.fileName.startsWith(pathToMigrate)` might not work.
2056
- const pathToMigrate = compiler_host.normalizePath(p.join(basePath, options.path));
2022
+ const pathToMigrate = compiler_host.normalizePath(path.join(basePath, options.path));
2057
2023
  let migratedFiles = 0;
2058
2024
  if (!allPaths.length) {
2059
2025
  throw new schematics.SchematicsException('Could not find any tsconfig file. Cannot run the standalone migration.');
@@ -2081,7 +2047,7 @@ function standaloneMigration(tree, tsconfigPath, basePath, pathToMigrate, schema
2081
2047
  skipDefaultLibCheck: true,
2082
2048
  });
2083
2049
  const referenceLookupExcludedFiles = /node_modules|\.ngtypecheck\.ts/;
2084
- const program = createProgram({ rootNames, host, options, oldProgram });
2050
+ const program = compilerCli.createProgram({ rootNames, host, options, oldProgram });
2085
2051
  const printer = ts.createPrinter();
2086
2052
  if (fs.existsSync(pathToMigrate) && !fs.statSync(pathToMigrate).isDirectory()) {
2087
2053
  throw new schematics.SchematicsException(`Migration path ${pathToMigrate} has to be a directory. Cannot run the standalone migration.`);
@@ -2113,7 +2079,7 @@ function standaloneMigration(tree, tsconfigPath, basePath, pathToMigrate, schema
2113
2079
  if (filesToRemove?.has(file)) {
2114
2080
  continue;
2115
2081
  }
2116
- const update = tree.beginUpdate(p.relative(basePath, file.fileName));
2082
+ const update = tree.beginUpdate(path.relative(basePath, file.fileName));
2117
2083
  changes.forEach((change) => {
2118
2084
  if (change.removeLength != null) {
2119
2085
  update.remove(change.start, change.removeLength);
@@ -2124,7 +2090,7 @@ function standaloneMigration(tree, tsconfigPath, basePath, pathToMigrate, schema
2124
2090
  }
2125
2091
  if (filesToRemove) {
2126
2092
  for (const file of filesToRemove) {
2127
- tree.delete(p.relative(basePath, file.fileName));
2093
+ tree.delete(path.relative(basePath, file.fileName));
2128
2094
  }
2129
2095
  }
2130
2096
  // Run the module pruning after the standalone bootstrap to automatically remove the root module.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.8
3
+ * @license Angular v21.0.0-rc.0
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -52,6 +52,12 @@
52
52
  "schema": "./ng-generate/self-closing-tags-migration/schema.json",
53
53
  "aliases": ["self-closing-tag"]
54
54
  },
55
+ "common-to-standalone-migration": {
56
+ "description": "Replaces CommonModule with individual imports from @angular/common",
57
+ "factory": "./bundles/common-to-standalone-migration.cjs#migrate",
58
+ "schema": "./migrations/common-to-standalone-migration/schema.json",
59
+ "aliases": ["common-to-standalone"]
60
+ },
55
61
  "control-flow-migration": {
56
62
  "description": "Converts the entire application to block control flow syntax",
57
63
  "factory": "./bundles/control-flow-migration.cjs#migrate",
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "AngularCommonToStandaloneMigration",
4
+ "title": "Angular Common to Standalone Migration Schema",
5
+ "type": "object",
6
+ "properties": {
7
+ "path": {
8
+ "type": "string",
9
+ "description": "Path to the directory where all components and modules should be migrated.",
10
+ "x-prompt": "Which directory do you want to migrate?",
11
+ "default": "./"
12
+ }
13
+ }
14
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-rc.0
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-rc.0
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -243,7 +243,7 @@ interface ValueSansProvider {
243
243
  }
244
244
  /**
245
245
  * Configures the `Injector` to return a value for a token.
246
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
246
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
247
247
  *
248
248
  * @usageNotes
249
249
  *
@@ -288,7 +288,7 @@ interface StaticClassSansProvider {
288
288
  }
289
289
  /**
290
290
  * Configures the `Injector` to return an instance of `useClass` for a token.
291
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
291
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
292
292
  *
293
293
  * @usageNotes
294
294
  *
@@ -318,7 +318,7 @@ interface StaticClassProvider extends StaticClassSansProvider {
318
318
  /**
319
319
  * Configures the `Injector` to return an instance of a token.
320
320
  *
321
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
321
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
322
322
  *
323
323
  * @usageNotes
324
324
  *
@@ -338,7 +338,7 @@ interface ConstructorSansProvider {
338
338
  /**
339
339
  * Configures the `Injector` to return an instance of a token.
340
340
  *
341
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
341
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
342
342
  *
343
343
  * @usageNotes
344
344
  *
@@ -365,7 +365,7 @@ interface ConstructorProvider extends ConstructorSansProvider {
365
365
  * Configures the `Injector` to return a value of another `useExisting` token.
366
366
  *
367
367
  * @see {@link ExistingProvider}
368
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
368
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
369
369
  *
370
370
  * @publicApi
371
371
  */
@@ -378,7 +378,7 @@ interface ExistingSansProvider {
378
378
  /**
379
379
  * Configures the `Injector` to return a value of another `useExisting` token.
380
380
  *
381
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
381
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
382
382
  *
383
383
  * @usageNotes
384
384
  *
@@ -405,7 +405,7 @@ interface ExistingProvider extends ExistingSansProvider {
405
405
  * Configures the `Injector` to return a value by invoking a `useFactory` function.
406
406
  *
407
407
  * @see {@link FactoryProvider}
408
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
408
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
409
409
  *
410
410
  * @publicApi
411
411
  */
@@ -423,7 +423,7 @@ interface FactorySansProvider {
423
423
  }
424
424
  /**
425
425
  * Configures the `Injector` to return a value by invoking a `useFactory` function.
426
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
426
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
427
427
  *
428
428
  * @usageNotes
429
429
  *
@@ -480,7 +480,7 @@ interface TypeProvider extends Type<any> {
480
480
  * Configures the `Injector` to return a value by invoking a `useClass` function.
481
481
  * Base for `ClassProvider` decorator.
482
482
  *
483
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
483
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
484
484
  *
485
485
  * @publicApi
486
486
  */
@@ -492,7 +492,7 @@ interface ClassSansProvider {
492
492
  }
493
493
  /**
494
494
  * Configures the `Injector` to return an instance of `useClass` for a token.
495
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
495
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
496
496
  *
497
497
  * @usageNotes
498
498
  *
@@ -521,7 +521,7 @@ interface ClassProvider extends ClassSansProvider {
521
521
  }
522
522
  /**
523
523
  * Describes how the `Injector` should be configured.
524
- * @see [Dependency Injection Guide](guide/di/dependency-injection.
524
+ * @see [Dependency Injection Guide](guide/di/dependency-injection)
525
525
  *
526
526
  * @see {@link StaticProvider}
527
527
  *
@@ -728,6 +728,8 @@ interface DestroyableInjector extends Injector {
728
728
  * is injected in a component or directive, the callbacks run when that component or
729
729
  * directive is destroyed. Otherwise the callbacks run when a corresponding injector is destroyed.
730
730
  *
731
+ * @see [Lifecycle DestroyRef](guide/components/lifecycle#destroyref)
732
+ *
731
733
  * @publicApi
732
734
  */
733
735
  declare abstract class DestroyRef {
@@ -746,10 +748,16 @@ declare abstract class DestroyRef {
746
748
  * // stop the destroy callback from executing if needed
747
749
  * unregisterFn();
748
750
  * ```
751
+ *
752
+ * @see [Lifecycle DestroyRef](guide/components/lifecycle#destroyref)
753
+ *
749
754
  */
750
755
  abstract onDestroy(callback: () => void): () => void;
751
756
  /**
752
757
  * Indicates whether the instance has already been destroyed.
758
+ *
759
+ * @see [Detecting instance destruction](guide/components/lifecycle#detecting-instance-destruction)
760
+ *
753
761
  */
754
762
  abstract get destroyed(): boolean;
755
763
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-rc.0
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -1168,17 +1168,23 @@ declare const enum TNodeFlags {
1168
1168
  */
1169
1169
  isFormCheckboxControl = 4096,
1170
1170
  /**
1171
- * Bit #14 - This bit is set if the node is a native control with a numeric type.
1171
+ * Bit #14 - This bit is set if the node hosts an interoperable control implementation.
1172
+ *
1173
+ * This is used to bind to a `ControlValueAccessor` from `@angular/forms`.
1174
+ */
1175
+ isInteropControl = 8192,
1176
+ /**
1177
+ * Bit #15 - This bit is set if the node is a native control with a numeric type.
1172
1178
  *
1173
1179
  * This is used to determine whether the control supports the `min` and `max` properties.
1174
1180
  */
1175
- isNativeNumericControl = 8192,
1181
+ isNativeNumericControl = 16384,
1176
1182
  /**
1177
- * Bit #15 - This bit is set if the node is a native text control.
1183
+ * Bit #16 - This bit is set if the node is a native text control.
1178
1184
  *
1179
1185
  * This is used to determine whether control supports the `minLength` and `maxLength` properties.
1180
1186
  */
1181
- isNativeTextControl = 16384
1187
+ isNativeTextControl = 32768
1182
1188
  }
1183
1189
  /**
1184
1190
  * Corresponds to the TNode.providerIndexes property.
@@ -2996,6 +3002,12 @@ interface TracingService<T extends TracingSnapshot> {
2996
3002
  * snapshot.
2997
3003
  */
2998
3004
  snapshot(linkedSnapshot: T | null): T;
3005
+ /**
3006
+ * Propagate the current tracing context to the provided function.
3007
+ * @param fn A function.
3008
+ * @return A function that will propagate the current tracing context.
3009
+ */
3010
+ propagate?<T extends Function>(fn: T): T;
2999
3011
  /**
3000
3012
  * Wrap an event listener bound by the framework for tracing.
3001
3013
  * @param element Element on which the event is bound.
@@ -5725,14 +5737,6 @@ declare abstract class ChangeDetectorRef {
5725
5737
  /** Returns a ChangeDetectorRef (a.k.a. a ViewRef) */
5726
5738
  declare function injectChangeDetectorRef(flags: InternalInjectFlags): ChangeDetectorRef;
5727
5739
 
5728
- /*!
5729
- * @license
5730
- * Copyright Google LLC All Rights Reserved.
5731
- *
5732
- * Use of this source code is governed by an MIT-style license that can be
5733
- * found in the LICENSE file at https://angular.dev/license
5734
- */
5735
-
5736
5740
  /** Symbol used to store and retrieve metadata about a binding. */
5737
5741
  declare const BINDING: unique symbol;
5738
5742
  /**
@@ -6826,7 +6830,7 @@ interface NgModule {
6826
6830
  * The set of injectable objects that are available in the injector
6827
6831
  * of this module.
6828
6832
  *
6829
- * @see [Dependency Injection guide](guide/di/dependency-injection
6833
+ * @see [Dependency Injection guide](guide/di/dependency-injection)
6830
6834
  * @see [NgModule guide](guide/ngmodules/providers)
6831
6835
  *
6832
6836
  * @usageNotes
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-rc.0
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-rc.0
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-rc.0
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -39,6 +39,7 @@ interface ReactiveLink {
39
39
  nextConsumer: ReactiveLink | undefined;
40
40
  nextProducer: ReactiveLink | undefined;
41
41
  }
42
+ type ReactiveNodeKind = 'signal' | 'computed' | 'effect' | 'template' | 'linkedSignal' | 'afterRenderEffectPhase' | 'unknown';
42
43
  /**
43
44
  * A producer and/or consumer which participates in the reactive graph.
44
45
  *
@@ -125,7 +126,7 @@ interface ReactiveNode {
125
126
  *
126
127
  * Used in Angular DevTools to identify the kind of signal.
127
128
  */
128
- kind: string;
129
+ kind: ReactiveNodeKind;
129
130
  }
130
131
  /**
131
132
  * Called by implementations when a producer's signal is read.
@@ -211,4 +212,4 @@ declare global {
211
212
  declare function installDevToolsSignalFormatter(): void;
212
213
 
213
214
  export { REACTIVE_NODE, SIGNAL, consumerAfterComputation, consumerBeforeComputation, consumerDestroy, consumerMarkDirty, consumerPollProducersForChange, defaultEquals, finalizeConsumerAfterComputation, getActiveConsumer, installDevToolsSignalFormatter, isInNotificationPhase, isReactive, producerAccessed, producerIncrementEpoch, producerMarkClean, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, resetConsumerBeforeComputation, runPostProducerCreatedFn, setActiveConsumer, setPostProducerCreatedFn };
214
- export type { Reactive, ReactiveHookFn, ReactiveNode, ValueEqualityFn };
215
+ export type { Reactive, ReactiveHookFn, ReactiveNode, ReactiveNodeKind, ValueEqualityFn };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.8
2
+ * @license Angular v21.0.0-rc.0
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */