Skip to content

Releases: angular/angular

21.1.0

14 Jan 19:44

Choose a tag to compare

common

Commit Description
feat - d8790972be Add custom transformations for Cloudflare and Cloudinary image loaders
feat - a6b8cb68af support custom transformations in ImageKit and Imgix loaders

compiler

Commit Description
feat - 640693da8e Add support for multiple swich cases matching
fix - 0ad3adc7c6 Support empty cases

core

Commit Description
feat - 99ad18a4ee Add stability debugging utility
feat - a0dfa5fa86 support rest arguments in function calls
feat - 6e18fa8bc9 support spread elements in array literals
feat - e407280ab5 support spread expressions in object literals
fix - 06be8034bb Microtask scheduling should be used after any application synchronization
fix - b4f584cf42 return StaticProvider for providePlatformInitializer

forms

Commit Description
feat - 1ea5c97703 allow focusing bound control from field state

platform-browser

Commit Description
feat - ec9dc94cee add context to createApplication
feat - ab67988d2e resolve JIT resources in createApplication

router

Commit Description
feat - 5edceffd04 add controls for route cleanup
feat - a03c82564d Add scroll behavior controls on router navigation
feat - e44839b016 Add standalone function to create a comptued for isActive
feat - c25d749d85 Execute RunGuardsAndResolvers function in injection context
feat - 1c00ab42f8 extend paramters of RedirectFunction to include paramMap and queryParamMap
feat - 7003e8d241 Publish Router's integration with platform Navigation API as experimental
feat - c84d372778 Support wildcard params with segments trailing (#64737)

upgrade

Commit Description
refactor - 75fe8f8af9 deprecate VERSION export

Deprecations

upgrade

  • VERSION from @angular/upgrade is deprecated. Please use the entry from @angular/upgrade/static instead.

21.0.9

14 Jan 19:30

Choose a tag to compare

forms

Commit Description
fix - 82d556a8fb Ensure the control instruction comes after the other bindings
fix - 0055f3cc79 Rename signal form [field] to [formField]

migrations

Commit Description
fix - e4bfa5c9e7 prevent duplicate imports in common-to-standalone migration

VSCode Extension: 21.1.0

13 Jan 00:51

Choose a tag to compare

21.1.0 (2026-01-12)

  • fix(vscode-extension): convert enum member kind in completions correctly (50674f8c28)

21.1.0-rc.0

08 Jan 20:50

Choose a tag to compare

21.1.0-rc.0 Pre-release
Pre-release

common

Commit Description
feat - d8790972be Add custom transformations for Cloudflare and Cloudinary image loaders
feat - a6b8cb68af support custom transformations in ImageKit and Imgix loaders

compiler

Commit Description
feat - 640693da8e Add support for multiple swich cases matching
fix - 10da2f9029 better types for a few expression AST nodes
fix - 3a56c1367f produce accurate span for typeof and void expressions
fix - 76fa180005 provide location information for literal map keys
fix - fa7cb4b87a stop ThisReceiver inheritance from ImplicitReceiver
fix - 0ad3adc7c6 Support empty cases

compiler-cli

Commit Description
fix - 106ba63650 ensure component import diagnostics are reported within the imports expression
fix - 3a26244d61 fix up spelling of diagnostic
fix - f12e160bc1 support qualified names in typeof type references

core

Commit Description
feat - 99ad18a4ee Add stability debugging utility
feat - a0dfa5fa86 support rest arguments in function calls
feat - 6e18fa8bc9 support spread elements in array literals
feat - e407280ab5 support spread expressions in object literals
fix - 80b0fbba1f avoid leaking view data in animations
fix - e2a9938c51 explicitly cast signal node value to String
fix - 30e9c62bdf fix memory leak with event replay
fix - 86dc1283e8 handle cancelled traversals in fake navigation
fix - 91dc91bae4 sanitize sensitive attributes on SVG script elements

forms

Commit Description
feat - 2d85ae5811 add [formField] directive
fix - 89c37f1f7f allow custom controls to require dirty input
fix - 82edf18427 allow custom controls to require hidden input
fix - 1a4c3eb1d0 allow custom controls to require pending input
fix - e7d99f02cb clean up abort listener after timeout
fix - cb09fb8308 support custom controls with non signal-based models
fix - 282220d032 Support readonly arrays in signal forms

router

Commit Description
feat - 5edceffd04 add controls for route cleanup
feat - e44839b016 Add standalone function to create a comptued for isActive
feat - 1c00ab42f8 extend paramters of RedirectFunction to include paramMap and queryParamMap
feat - 7003e8d241 Publish Router's integration with platform Navigation API as experimental
fix - bcef77d950 Fix RouterLink href not updating with queryParamsHandling
fix - 9e043decaf handle errors from view transition updateCallbackDone promise

21.0.8

08 Jan 20:42

Choose a tag to compare

core

Commit Description
fix - a6a2621bf9 fix memory leak with event replay
fix - 5239e471a1 handle cancelled traversals in fake navigation

21.0.7

07 Jan 21:45

Choose a tag to compare

compiler

Commit Description
fix - 8e808740c9 better types for a few expression AST nodes
fix - 63b1cdcf70 produce accurate span for typeof and void expressions
fix - 3c3ae0cb64 provide location information for literal map keys
fix - 523dbaf1c3 stop ThisReceiver inheritance from ImplicitReceiver

compiler-cli

Commit Description
fix - 4d9c4567ed ensure component import diagnostics are reported within the imports expression
fix - cd405685af fix up spelling of diagnostic
fix - 778460fcca support qualified names in typeof type references

core

Commit Description
fix - 7c74674eb0 avoid leaking view data in animations
fix - 0edbee4550 explicitly cast signal node value to String
fix - f9c29572d2 sanitize sensitive attributes on SVG script elements

forms

Commit Description
feat - e3fba182f9 add [formField] directive
fix - 561772b152 allow custom controls to require dirty input
fix - f0fb1d8581 allow custom controls to require hidden input
fix - ec110f170b allow custom controls to require pending input
fix - ae1dc16bb0 clean up abort listener after timeout
fix - 9748b0d5da support custom controls with non signal-based models
fix - 6bd22df987 Support readonly arrays in signal forms

router

Commit Description
fix - 41cd4a6af8 Fix RouterLink href not updating with queryParamsHandling
fix - 5e9e09aee0 handle errors from view transition updateCallbackDone promise

20.3.16

07 Jan 22:18

Choose a tag to compare

core

Commit Description
fix - c2c2b4aaa8 sanitize sensitive attributes on SVG script elements

19.2.18

07 Jan 22:12

Choose a tag to compare

core

Commit Description
fix - 26cdc53d9c sanitize sensitive attributes on SVG script elements

21.1.0-next.4

17 Dec 21:19

Choose a tag to compare

21.1.0-next.4 Pre-release
Pre-release

core

Commit Description
fix - 06be8034bb Microtask scheduling should be used after any application synchronization
fix - b4f584cf42 return StaticProvider for providePlatformInitializer
fix - 7be4ddef1c throw better errors for potential circular references
fix - f516370c8e use mutable ResponseInit type for RESPONSE_INIT token

forms

Commit Description
feat - 348f149e8b pass field directive to class config
refactor - ae0c59028a rename field to fieldTree in FieldContext and ValidationError

language-service

Commit Description
fix - 9f5744a92d avoid interpolation highlighting inside @let
fix - ce1a4769f9 Prevent language service from crashing on suggestion diagnostic errors

Breaking Changes

forms

  • The shape of SignalFormsConfig.classes has changed

    Previously each function in the classes map took a FieldState. Now
    it takes a Field directive.

    For example if you previously had:

    provideSignalFormsConfig({
      classes: {
        'my-valid': (state) => state.valid()
      }
    })
    

    You would need to update to:

    provideSignalFormsConfig({
      classes: {
        'my-valid': ({state}) => state().valid()
      }
    })
    

21.0.6

17 Dec 21:12

Choose a tag to compare

core

Commit Description
fix - 4c8fb3631d throw better errors for potential circular references
fix - 48492524ea use mutable ResponseInit type for RESPONSE_INIT token

forms

Commit Description
feat - 81772b420d pass field directive to class config
refactor - 729b96476b rename field to fieldTree in FieldContext and ValidationError

language-service

Commit Description
fix - e0694df3ec avoid interpolation highlighting inside @let
fix - 5047be4bc1 Prevent language service from crashing on suggestion diagnostic errors

Breaking Changes

forms

  • The shape of SignalFormsConfig.classes has changed

    Previously each function in the classes map took a FieldState. Now
    it takes a Field directive.

    For example if you previously had:

    provideSignalFormsConfig({
      classes: {
        'my-valid': (state) => state.valid()
      }
    })
    

    You would need to update to:

    provideSignalFormsConfig({
      classes: {
        'my-valid': ({state}) => state().valid()
      }
    })
    

    (cherry picked from commit 348f149)

  • (cherry picked from commit ae0c590)