From 125f8c5857d59d0c957a943bc439d2ebb5aec7c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 06:42:06 +0000 Subject: [PATCH 01/24] Bump @angular/cdk from 21.2.14 to 22.0.0 in /web_embedding/ng-flutter (#2848) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/cdk](https://github.com/angular/components) from 21.2.14 to 22.0.0.
Release notes

Sourced from @​angular/cdk's releases.

22.0.0

aria

Commit Description
feat - d91f46b4c accordion: introduce accordion harness (#33046)
feat - e3d84f2e0 combobox: add test harnesses (#33194)
feat - 0ca47b4a0 combobox: migrate simple-combobox directly into primary entrypoints (#33206)
feat - 6ec07bc0c grid: add test harnesses (#33081)
feat - 1885d3534 listbox: introduce listbox harness (#33064)
feat - 75fae5275 menu: introduce menu harness (#33067)
feat - c25e6252e tabs: add test harnesses (#33079)
feat - a49508bac toolbar: add test harnesses (#33068)
feat - 30f223972 tree: add test harnesses (#33066)
fix - 91a4932f6 combobox: increases autocomplete demo's placeholder text c… (#33084)
fix - 218a77cf9 combobox: separates placeholder prefixes (#33163)
fix - ce1d9a728 menu: allow menu item role override (#33264)
fix - 196b7064d menu: defer menu item focus in case menus in cdk overlay (#33258)
fix - 6443b79f9 menu: unable to set softDisabled (#33265)

cdk

Commit Description
feat - 1a5d5d101 dialog: add the ability to pass bindings
feat - 24115c021 portal: add directives support to ComponentPortal (#33142)
fix - 7426334c5 a11y: breaking changes for v22
fix - 81c6bbd89 drag-drop: breaking changes for v22
fix - ffb23f6f8 menu: breaking changes for v22
fix - 4c298970e scrolling: make it easier to provide custom scrollable (#33269)
fix - aa42b7798 table: expose rendered rows (#33304)

material

Commit Description
feat - 867ba993b bottom-sheet: add the ability to pass bindings
feat - b4a89d599 button: Add support for showing a progress indicator inside the button (#32698)
feat - a46b0a1d4 core: add mixins for Material Design typography (#32959)
feat - bf3596b53 dialog: add the ability to pass bindings
feat - 85c16fe4b tabs: add support for separate tab animation durations (#32869)
fix - 440cb1606 autocomplete: remove modal workaround
fix - 21f8bbbf2 badge: allow badge defaults to be configured (#33312)
fix - 07c2d002d core: address sass compiler warnings (#33040)
fix - add8f16c0 list: breaking changes for v22
fix - 31904510b menu: close menu when cleared from trigger (#33306)
fix - 9d73c98b5 menu: missing panelClass getter (#33191)
fix - 348c3c89d select: remove modal workaround
fix - f1a435508 sidenav: handle mixed sidenav and drawer (#33274)
fix - c31619852 sidenav: mark content as inert while open
fix - a4d92c5fc sidenav: more robust reset logic for inert attribute (#33257)
fix - c2f1c5b03 sidenav: query not resolving
fix - 75718e4fb sort: breaking changes for v22
fix - 6ed6218c4 tabs: incorrect animation variable name (#32941)

google-maps

... (truncated)

Changelog

Sourced from @​angular/cdk's changelog.

22.0.0 "aurostibite-ambulance" (2026-06-03)

Breaking Changes

aria

cdk

material

multiple

google-maps

Commit Type Description
e44ff8318 feat Add support for the gmp-click event (#33147)
b8201edee fix deprecate heatmap layer (#33208)

material

Commit Type Description
867ba993b feat bottom-sheet: add the ability to pass bindings
b4a89d599 feat button: Add support for showing a progress indicator inside the button (#32698)
a46b0a1d4 feat core: add mixins for Material Design typography (#32959)
bf3596b53 feat dialog: add the ability to pass bindings
85c16fe4b feat tabs: add support for separate tab animation durations (#32869)
440cb1606 fix autocomplete: remove modal workaround

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/cdk&package-manager=npm_and_yarn&previous-version=21.2.14&new-version=22.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index ae9112762..f4f7bb025 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -12,7 +12,7 @@ "private": true, "dependencies": { "@angular/animations": "^21.1.1", - "@angular/cdk": "^21.1.2", + "@angular/cdk": "^22.0.0", "@angular/common": "^21.1.1", "@angular/compiler": "^21.1.0", "@angular/core": "^21.2.0", From 5766971b6e4765abba99653321c95130010dcecc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 06:43:58 +0000 Subject: [PATCH 02/24] Bump @angular/forms from 21.2.16 to 22.0.0 in /web_embedding/ng-flutter (#2847) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) from 21.2.16 to 22.0.0.
Release notes

Sourced from @​angular/forms's releases.

VSCode Extension: 22.0.0

Breaking Changes

The extension now bundles TypeScript version 6.0, which itself includes breaking changes, including new defaults such as strict being true. You will need to explicitly set "strict": false in your tsconfig.json. Alternatively, the extension supports configuring the tsdk in the same way as the built in TS/JS extension.

Fixes and features

22.0.0

compiler

Commit Description
feat - 47fcbc4704 allow safe navigation to correctly narrow down nullables
feat - 2896c93cc1 Angular expressions with optional chaining returns undefined
feat - e850643b1b Support comments in html element.
fix - 96be4f429b abstract emitter producing incorrect code for dynamic imports
fix - 488d962bc7 Don't bind inputs/outputs for data- attributes
fix - 2c5aabb9da don't escape dollar sign in literal expression
fix - c7aef8ec5d enforce parentheses containing arguments for :host-context
fix - b225a5d902 invalid type checking code if field name needs to be quoted
fix - ab9154ab75 normalize tag names with custom namespaces in DomElementSchemaRegistry (#68868)
fix - 8a1533c9ad preserve leading commas in animation definitions
fix - 194f723f66 remove dedicated support for legacy shadow DOM selectors
fix - 4c25a42e98 remove deprecated shadow CSS encapsulation polyfills
fix - 6ff620a033 sanitize dynamic href and xlink:href bindings on SVG a elements (#68868)
fix - 7dc1017e51 simplify handling of colon host with a selector list
fix - d99ab0e040 stop generating unused field
fix - 03db2aefaa throw on duplicate input/outputs
fix - 786ef8261f throw on invalid in expressions
fix - ccb7d427e4 type check invalid for loops

compiler-cli

Commit Description
feat - b8d3f36ed9 add support for Node.js 26.0.0
feat - 7f9450219f Adds warning for prefetch without main defer trigger
feat - 2eae497a04 support external TCBs with copied content in specific mode
fix - e5f96c2d88 animation events not type checked properly when bound through HostListener decorator
fix - 9218140348 resolve TCB mapping failure for safe property reads with as any
fix - 7a0d6b8df2 transform dropping exclamationToken from properties
refactor - ca67828ee2 introduce NG8023 compile-time diagnostic for duplicate selectors

core

Commit Description
feat - 17d3ea44e2 add IdleRequestOptions support to IdleService
feat - 3b0ae5fef0 add provideWebMcpTools

... (truncated)

Changelog

Sourced from @​angular/forms's changelog.

22.0.0 (2026-06-03)

Blog post "Announcing Angular v22".

Breaking Changes

compiler

compiler-cli

core

forms

http

platform-browser

router

upgrade

Deprecations

http

compiler

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/forms&package-manager=npm_and_yarn&previous-version=21.2.16&new-version=22.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index f4f7bb025..a77219fb5 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -16,7 +16,7 @@ "@angular/common": "^21.1.1", "@angular/compiler": "^21.1.0", "@angular/core": "^21.2.0", - "@angular/forms": "^21.1.0", + "@angular/forms": "^22.0.0", "@angular/material": "^21.1.1", "@angular/platform-browser": "^21.2.0", "@angular/platform-browser-dynamic": "^21.1.2", From 8df115f2a75ee3e2e1cb60e13201b52a66a6bcfe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 06:44:01 +0000 Subject: [PATCH 03/24] Bump @angular/platform-browser-dynamic from 21.2.16 to 22.0.0 in /web_embedding/ng-flutter (#2849) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) from 21.2.16 to 22.0.0.
Release notes

Sourced from @​angular/platform-browser-dynamic's releases.

VSCode Extension: 22.0.0

Breaking Changes

The extension now bundles TypeScript version 6.0, which itself includes breaking changes, including new defaults such as strict being true. You will need to explicitly set "strict": false in your tsconfig.json. Alternatively, the extension supports configuring the tsdk in the same way as the built in TS/JS extension.

Fixes and features

22.0.0

compiler

Commit Description
feat - 47fcbc4704 allow safe navigation to correctly narrow down nullables
feat - 2896c93cc1 Angular expressions with optional chaining returns undefined
feat - e850643b1b Support comments in html element.
fix - 96be4f429b abstract emitter producing incorrect code for dynamic imports
fix - 488d962bc7 Don't bind inputs/outputs for data- attributes
fix - 2c5aabb9da don't escape dollar sign in literal expression
fix - c7aef8ec5d enforce parentheses containing arguments for :host-context
fix - b225a5d902 invalid type checking code if field name needs to be quoted
fix - ab9154ab75 normalize tag names with custom namespaces in DomElementSchemaRegistry (#68868)
fix - 8a1533c9ad preserve leading commas in animation definitions
fix - 194f723f66 remove dedicated support for legacy shadow DOM selectors
fix - 4c25a42e98 remove deprecated shadow CSS encapsulation polyfills
fix - 6ff620a033 sanitize dynamic href and xlink:href bindings on SVG a elements (#68868)
fix - 7dc1017e51 simplify handling of colon host with a selector list
fix - d99ab0e040 stop generating unused field
fix - 03db2aefaa throw on duplicate input/outputs
fix - 786ef8261f throw on invalid in expressions
fix - ccb7d427e4 type check invalid for loops

compiler-cli

Commit Description
feat - b8d3f36ed9 add support for Node.js 26.0.0
feat - 7f9450219f Adds warning for prefetch without main defer trigger
feat - 2eae497a04 support external TCBs with copied content in specific mode
fix - e5f96c2d88 animation events not type checked properly when bound through HostListener decorator
fix - 9218140348 resolve TCB mapping failure for safe property reads with as any
fix - 7a0d6b8df2 transform dropping exclamationToken from properties
refactor - ca67828ee2 introduce NG8023 compile-time diagnostic for duplicate selectors

core

Commit Description
feat - 17d3ea44e2 add IdleRequestOptions support to IdleService
feat - 3b0ae5fef0 add provideWebMcpTools

... (truncated)

Changelog

Sourced from @​angular/platform-browser-dynamic's changelog.

22.0.0 (2026-06-03)

Blog post "Announcing Angular v22".

Breaking Changes

compiler

compiler-cli

core

forms

http

platform-browser

router

upgrade

Deprecations

http

compiler

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/platform-browser-dynamic&package-manager=npm_and_yarn&previous-version=21.2.16&new-version=22.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index a77219fb5..8e3e16888 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -19,7 +19,7 @@ "@angular/forms": "^22.0.0", "@angular/material": "^21.1.1", "@angular/platform-browser": "^21.2.0", - "@angular/platform-browser-dynamic": "^21.1.2", + "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^21.1.0", "rxjs": "~7.8.1", "tslib": "^2.6.2", From b40c2efa4f1f44d85e9b54b5d4de3dcb530b319b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 06:42:38 +0000 Subject: [PATCH 04/24] Bump @angular/platform-browser from 21.2.17 to 22.0.1 in /web_embedding/ng-flutter (#2857) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) from 21.2.17 to 22.0.1.
Release notes

Sourced from @​angular/platform-browser's releases.

22.0.1

common

Commit Description
fix - c4b5fa3c92 escape CSS string-terminating characters in escapeCssUrl
fix - dfff57ede9 Limits date format string length
fix - 3c2892c8df prevent prototype pollution in formatDateTime
fix - 1d87c49f6e use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Description
fix - 1ee224ca30 disallow i18n event attributes
fix - a56f1cdf8f more robust logic to check if regex can be optimized
fix - 5946c18275 sanitize href/xlink:href attributes of any element of the MathML namespace
fix - 393b84caf8 sanitize two-way properties

compiler-cli

Commit Description
fix - 3d9ca2f173 bind switch exhaustive check expressions

core

Commit Description
fix - 669146b0e7 disable WebMCP during SSR
fix - 562a566ead Handle synchronous errors in PendingTasks.run function
fix - fa546f382d harden TransferState restoration against DOM clobbering
fix - 29fdb98684 prevent dangling prevConsumer reference from leaking destroyed views (#68681)
fix - cdcea80327 require WebMCP tool descriptions
fix - 4289c4c840 update comment for Default change detection
fix - 3dd433b39a use Object.hasOwn to handle null-prototype objects in toStylingKeyValueArray
fix - 045bb736b3 validate lowercase SVG animation attribute names

forms

Commit Description
fix - 11836a670a delay mcp reading the form model by a tick
fix - 85d2d100e3 harden FormGroup control lookups against prototype shadowing
fix - e51ad374ea remove animationstart listener on component destroy to prevent memory leak
fix - 55b7b5a6b6 set additionalProperties: false on generated WebMCP form

http

Commit Description
fix - ffb06c0514 ensure query parameters are inserted before URL fragments
fix - 2dd65d21e6 pass down the reportUploadProgress and reportDownloadProgress on post/patch requests
fix - 4254eb416c preserve empty referrer option in HttpRequest
fix - 167bd4c162 Rejects non-HTTP(S) URLs in JSONP requests

language-service

Commit Description
fix - 43a0e28729 prevent external template inlay hints from appearing in TS files

platform-server

| Commit | Description |

... (truncated)

Changelog

Sourced from @​angular/platform-browser's changelog.

22.0.1 (2026-06-10)

Deprecations

platform-server

common

Commit Type Description
c4b5fa3c92 fix escape CSS string-terminating characters in escapeCssUrl
dfff57ede9 fix Limits date format string length
3c2892c8df fix prevent prototype pollution in formatDateTime
1d87c49f6e fix use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Type Description
1ee224ca30 fix disallow i18n event attributes
a56f1cdf8f fix more robust logic to check if regex can be optimized
5946c18275 fix sanitize href/xlink:href attributes of any element of the MathML namespace
393b84caf8 fix sanitize two-way properties

compiler-cli

Commit Type Description
3d9ca2f173 fix bind switch exhaustive check expressions

core

Commit Type Description
669146b0e7 fix disable WebMCP during SSR
562a566ead fix Handle synchronous errors in PendingTasks.run function
fa546f382d fix harden TransferState restoration against DOM clobbering
29fdb98684 fix prevent dangling prevConsumer reference from leaking destroyed views (#68681)
cdcea80327 fix require WebMCP tool descriptions
4289c4c840 fix update comment for Default change detection
3dd433b39a fix use Object.hasOwn to handle null-prototype objects in toStylingKeyValueArray
045bb736b3 fix validate lowercase SVG animation attribute names

forms

Commit Type Description
11836a670a fix delay mcp reading the form model by a tick
85d2d100e3 fix harden FormGroup control lookups against prototype shadowing
e51ad374ea fix remove animationstart listener on component destroy to prevent memory leak
55b7b5a6b6 fix set additionalProperties: false on generated WebMCP form

http

Commit Type Description
ffb06c0514 fix ensure query parameters are inserted before URL fragments
2dd65d21e6 fix pass down the reportUploadProgress and reportDownloadProgress on post/patch requests
4254eb416c fix preserve empty referrer option in HttpRequest
167bd4c162 fix Rejects non-HTTP(S) URLs in JSONP requests

language-service

| Commit | Type | Description |

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/platform-browser&package-manager=npm_and_yarn&previous-version=21.2.17&new-version=22.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 8e3e16888..7356aeed4 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -18,7 +18,7 @@ "@angular/core": "^21.2.0", "@angular/forms": "^22.0.0", "@angular/material": "^21.1.1", - "@angular/platform-browser": "^21.2.0", + "@angular/platform-browser": "^22.0.1", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^21.1.0", "rxjs": "~7.8.1", From a177301972cd962063073952481764f02c36d008 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 06:43:49 +0000 Subject: [PATCH 05/24] Bump @angular/router from 21.2.17 to 22.0.1 in /web_embedding/ng-flutter (#2854) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) from 21.2.17 to 22.0.1.
Release notes

Sourced from @​angular/router's releases.

22.0.1

common

Commit Description
fix - c4b5fa3c92 escape CSS string-terminating characters in escapeCssUrl
fix - dfff57ede9 Limits date format string length
fix - 3c2892c8df prevent prototype pollution in formatDateTime
fix - 1d87c49f6e use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Description
fix - 1ee224ca30 disallow i18n event attributes
fix - a56f1cdf8f more robust logic to check if regex can be optimized
fix - 5946c18275 sanitize href/xlink:href attributes of any element of the MathML namespace
fix - 393b84caf8 sanitize two-way properties

compiler-cli

Commit Description
fix - 3d9ca2f173 bind switch exhaustive check expressions

core

Commit Description
fix - 669146b0e7 disable WebMCP during SSR
fix - 562a566ead Handle synchronous errors in PendingTasks.run function
fix - fa546f382d harden TransferState restoration against DOM clobbering
fix - 29fdb98684 prevent dangling prevConsumer reference from leaking destroyed views (#68681)
fix - cdcea80327 require WebMCP tool descriptions
fix - 4289c4c840 update comment for Default change detection
fix - 3dd433b39a use Object.hasOwn to handle null-prototype objects in toStylingKeyValueArray
fix - 045bb736b3 validate lowercase SVG animation attribute names

forms

Commit Description
fix - 11836a670a delay mcp reading the form model by a tick
fix - 85d2d100e3 harden FormGroup control lookups against prototype shadowing
fix - e51ad374ea remove animationstart listener on component destroy to prevent memory leak
fix - 55b7b5a6b6 set additionalProperties: false on generated WebMCP form

http

Commit Description
fix - ffb06c0514 ensure query parameters are inserted before URL fragments
fix - 2dd65d21e6 pass down the reportUploadProgress and reportDownloadProgress on post/patch requests
fix - 4254eb416c preserve empty referrer option in HttpRequest
fix - 167bd4c162 Rejects non-HTTP(S) URLs in JSONP requests

language-service

Commit Description
fix - 43a0e28729 prevent external template inlay hints from appearing in TS files

platform-server

| Commit | Description |

... (truncated)

Changelog

Sourced from @​angular/router's changelog.

22.0.1 (2026-06-10)

Deprecations

platform-server

common

Commit Type Description
c4b5fa3c92 fix escape CSS string-terminating characters in escapeCssUrl
dfff57ede9 fix Limits date format string length
3c2892c8df fix prevent prototype pollution in formatDateTime
1d87c49f6e fix use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Type Description
1ee224ca30 fix disallow i18n event attributes
a56f1cdf8f fix more robust logic to check if regex can be optimized
5946c18275 fix sanitize href/xlink:href attributes of any element of the MathML namespace
393b84caf8 fix sanitize two-way properties

compiler-cli

Commit Type Description
3d9ca2f173 fix bind switch exhaustive check expressions

core

Commit Type Description
669146b0e7 fix disable WebMCP during SSR
562a566ead fix Handle synchronous errors in PendingTasks.run function
fa546f382d fix harden TransferState restoration against DOM clobbering
29fdb98684 fix prevent dangling prevConsumer reference from leaking destroyed views (#68681)
cdcea80327 fix require WebMCP tool descriptions
4289c4c840 fix update comment for Default change detection
3dd433b39a fix use Object.hasOwn to handle null-prototype objects in toStylingKeyValueArray
045bb736b3 fix validate lowercase SVG animation attribute names

forms

Commit Type Description
11836a670a fix delay mcp reading the form model by a tick
85d2d100e3 fix harden FormGroup control lookups against prototype shadowing
e51ad374ea fix remove animationstart listener on component destroy to prevent memory leak
55b7b5a6b6 fix set additionalProperties: false on generated WebMCP form

http

Commit Type Description
ffb06c0514 fix ensure query parameters are inserted before URL fragments
2dd65d21e6 fix pass down the reportUploadProgress and reportDownloadProgress on post/patch requests
4254eb416c fix preserve empty referrer option in HttpRequest
167bd4c162 fix Rejects non-HTTP(S) URLs in JSONP requests

language-service

| Commit | Type | Description |

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/router&package-manager=npm_and_yarn&previous-version=21.2.17&new-version=22.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 7356aeed4..ec730362b 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -20,7 +20,7 @@ "@angular/material": "^21.1.1", "@angular/platform-browser": "^22.0.1", "@angular/platform-browser-dynamic": "^22.0.0", - "@angular/router": "^21.1.0", + "@angular/router": "^22.0.1", "rxjs": "~7.8.1", "tslib": "^2.6.2", "zone.js": "~0.15.0" From 8cea3171eb20f80bb3f16636ff1c803763cd773c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 06:43:51 +0000 Subject: [PATCH 06/24] Bump @angular/compiler-cli from 21.2.17 to 22.0.1 in /web_embedding/ng-flutter (#2855) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) from 21.2.17 to 22.0.1.
Release notes

Sourced from @​angular/compiler-cli's releases.

22.0.1

common

Commit Description
fix - c4b5fa3c92 escape CSS string-terminating characters in escapeCssUrl
fix - dfff57ede9 Limits date format string length
fix - 3c2892c8df prevent prototype pollution in formatDateTime
fix - 1d87c49f6e use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Description
fix - 1ee224ca30 disallow i18n event attributes
fix - a56f1cdf8f more robust logic to check if regex can be optimized
fix - 5946c18275 sanitize href/xlink:href attributes of any element of the MathML namespace
fix - 393b84caf8 sanitize two-way properties

compiler-cli

Commit Description
fix - 3d9ca2f173 bind switch exhaustive check expressions

core

Commit Description
fix - 669146b0e7 disable WebMCP during SSR
fix - 562a566ead Handle synchronous errors in PendingTasks.run function
fix - fa546f382d harden TransferState restoration against DOM clobbering
fix - 29fdb98684 prevent dangling prevConsumer reference from leaking destroyed views (#68681)
fix - cdcea80327 require WebMCP tool descriptions
fix - 4289c4c840 update comment for Default change detection
fix - 3dd433b39a use Object.hasOwn to handle null-prototype objects in toStylingKeyValueArray
fix - 045bb736b3 validate lowercase SVG animation attribute names

forms

Commit Description
fix - 11836a670a delay mcp reading the form model by a tick
fix - 85d2d100e3 harden FormGroup control lookups against prototype shadowing
fix - e51ad374ea remove animationstart listener on component destroy to prevent memory leak
fix - 55b7b5a6b6 set additionalProperties: false on generated WebMCP form

http

Commit Description
fix - ffb06c0514 ensure query parameters are inserted before URL fragments
fix - 2dd65d21e6 pass down the reportUploadProgress and reportDownloadProgress on post/patch requests
fix - 4254eb416c preserve empty referrer option in HttpRequest
fix - 167bd4c162 Rejects non-HTTP(S) URLs in JSONP requests

language-service

Commit Description
fix - 43a0e28729 prevent external template inlay hints from appearing in TS files

platform-server

| Commit | Description |

... (truncated)

Changelog

Sourced from @​angular/compiler-cli's changelog.

22.0.1 (2026-06-10)

Deprecations

platform-server

common

Commit Type Description
c4b5fa3c92 fix escape CSS string-terminating characters in escapeCssUrl
dfff57ede9 fix Limits date format string length
3c2892c8df fix prevent prototype pollution in formatDateTime
1d87c49f6e fix use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Type Description
1ee224ca30 fix disallow i18n event attributes
a56f1cdf8f fix more robust logic to check if regex can be optimized
5946c18275 fix sanitize href/xlink:href attributes of any element of the MathML namespace
393b84caf8 fix sanitize two-way properties

compiler-cli

Commit Type Description
3d9ca2f173 fix bind switch exhaustive check expressions

core

Commit Type Description
669146b0e7 fix disable WebMCP during SSR
562a566ead fix Handle synchronous errors in PendingTasks.run function
fa546f382d fix harden TransferState restoration against DOM clobbering
29fdb98684 fix prevent dangling prevConsumer reference from leaking destroyed views (#68681)
cdcea80327 fix require WebMCP tool descriptions
4289c4c840 fix update comment for Default change detection
3dd433b39a fix use Object.hasOwn to handle null-prototype objects in toStylingKeyValueArray
045bb736b3 fix validate lowercase SVG animation attribute names

forms

Commit Type Description
11836a670a fix delay mcp reading the form model by a tick
85d2d100e3 fix harden FormGroup control lookups against prototype shadowing
e51ad374ea fix remove animationstart listener on component destroy to prevent memory leak
55b7b5a6b6 fix set additionalProperties: false on generated WebMCP form

http

Commit Type Description
ffb06c0514 fix ensure query parameters are inserted before URL fragments
2dd65d21e6 fix pass down the reportUploadProgress and reportDownloadProgress on post/patch requests
4254eb416c fix preserve empty referrer option in HttpRequest
167bd4c162 fix Rejects non-HTTP(S) URLs in JSONP requests

language-service

| Commit | Type | Description |

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/compiler-cli&package-manager=npm_and_yarn&previous-version=21.2.17&new-version=22.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index ec730362b..15dd296ed 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -28,7 +28,7 @@ "devDependencies": { "@angular-devkit/build-angular": "^21.1.2", "@angular/cli": "~21.1.1", - "@angular/compiler-cli": "^21.2.0", + "@angular/compiler-cli": "^22.0.1", "@types/jasmine": "~6.0.0", "jasmine-core": "~6.0.0", "karma": "~6.4.2", From 80069cd27276d718f2be6e26d3b6b2bb627f5873 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 06:44:45 +0000 Subject: [PATCH 07/24] Bump @angular-devkit/build-angular from 21.2.14 to 22.0.1 in /web_embedding/ng-flutter (#2853) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 21.2.14 to 22.0.1.
Release notes

Sourced from @​angular-devkit/build-angular's releases.

22.0.1

@​schematics/angular

Commit Description
fix - c80012294 fix browserMode option mapping in refactor-jasmine-vitest
fix - a9b6bd904 safely comment out multiline statements in refactor-jasmine-vitest
fix - 12199df00 use null objects and callbacks in karma-to-vitest migration

@​angular/cli

Commit Description
fix - b54e9a549 do not sort migrations of the same version alphabetically
fix - d33311612 fallback to local package.json for schematic detection on first run
fix - 918102a93 isolate temporary package installation from parent pnpm workspace
fix - b048b5f4a remove forceAuth and unscoped credential parsing
fix - 277934035 validate registry option is a valid URL in ng add
perf - 4510dae02 optimize update schematic registry query counts by fetching package metadata lazily

@​angular/build

Commit Description
fix - 89d1be979 allow disabling Vitest isolation from builder
fix - d45b84be9 exclude JSON imports from Vite dependency optimization
fix - e3cab4ddd prevent concurrent stylesheet bundling esbuild context leaks
fix - bd413b0eb restrict application builder output paths to output directory

22.0.0

@​schematics/angular

Commit Description
feat - be60a63b7 add migrate-karma-to-vitest update migration
feat - 43505066e add migration to add istanbul-lib-instrument
feat - b2f7a038b conditionally install istanbul coverage provider for Vitest migration
feat - d227e6985 migrate fake async to Vitest fake timers
feat - d2aa9ede5 migrate fakeAsync's flush behavior when used in beforeEach
feat - f98cc82eb rely on strict template default in generated workspaces
feat - c9f408153 set up fake timers in beforeEach instead of beforeAll
feat - de630c2fc stabilize refactor-jasmine-vitest schematic
feat - 8d0805dd1 update TSConfig globals during karma to vitest migration
fix - 470e1f937 add istanbul-lib-instrument to application/library generator dependencies
fix - dc1238e5a add trusted-proxy-headers migration
fix - 6572a6944 default components to OnPush change detection
fix - aed407db8 defer karma config deletion in Karma to Vitest migration
fix - 4fbc60891 preserve Jasmine stub-by-default semantics for bare spies
fix - b3d838dfd replace deprecated ChangeDetectionStrategy.Default with Eager
fix - a7ac8e5f0 support spy call arguments migration in refactor-jasmine-vitest
fix - 7fb59eaa6 use service decorator in ng generate

@​angular/cli

Commit Description
feat - 58c0978f6 add support for Node.js 26.0.0
fix - a5c7c0b5f reflect new minimum supported Node version in ng.js

... (truncated)

Changelog

Sourced from @​angular-devkit/build-angular's changelog.

22.0.1 (2026-06-10)

@​angular/cli

Commit Type Description
b54e9a549 fix do not sort migrations of the same version alphabetically
d33311612 fix fallback to local package.json for schematic detection on first run
918102a93 fix isolate temporary package installation from parent pnpm workspace
b048b5f4a fix remove forceAuth and unscoped credential parsing
277934035 fix validate registry option is a valid URL in ng add
4510dae02 perf optimize update schematic registry query counts by fetching package metadata lazily

@​schematics/angular

Commit Type Description
c80012294 fix fix browserMode option mapping in refactor-jasmine-vitest
a9b6bd904 fix safely comment out multiline statements in refactor-jasmine-vitest
12199df00 fix use null objects and callbacks in karma-to-vitest migration

@​angular/build

Commit Type Description
89d1be979 fix allow disabling Vitest isolation from builder
d45b84be9 fix exclude JSON imports from Vite dependency optimization
e3cab4ddd fix prevent concurrent stylesheet bundling esbuild context leaks
bd413b0eb fix restrict application builder output paths to output directory

22.0.0 (2026-06-03)

Breaking Changes

@​angular/build

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-devkit/build-angular&package-manager=npm_and_yarn&previous-version=21.2.14&new-version=22.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 15dd296ed..163d67ddf 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -26,7 +26,7 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^21.1.2", + "@angular-devkit/build-angular": "^22.0.1", "@angular/cli": "~21.1.1", "@angular/compiler-cli": "^22.0.1", "@types/jasmine": "~6.0.0", From 35833ec756aaebfc9c230c97cecf9dd93bf7812e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 06:47:04 +0000 Subject: [PATCH 08/24] Bump @angular/common from 21.2.17 to 22.0.1 in /web_embedding/ng-flutter (#2856) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) from 21.2.17 to 22.0.1.
Release notes

Sourced from @​angular/common's releases.

22.0.1

common

Commit Description
fix - c4b5fa3c92 escape CSS string-terminating characters in escapeCssUrl
fix - dfff57ede9 Limits date format string length
fix - 3c2892c8df prevent prototype pollution in formatDateTime
fix - 1d87c49f6e use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Description
fix - 1ee224ca30 disallow i18n event attributes
fix - a56f1cdf8f more robust logic to check if regex can be optimized
fix - 5946c18275 sanitize href/xlink:href attributes of any element of the MathML namespace
fix - 393b84caf8 sanitize two-way properties

compiler-cli

Commit Description
fix - 3d9ca2f173 bind switch exhaustive check expressions

core

Commit Description
fix - 669146b0e7 disable WebMCP during SSR
fix - 562a566ead Handle synchronous errors in PendingTasks.run function
fix - fa546f382d harden TransferState restoration against DOM clobbering
fix - 29fdb98684 prevent dangling prevConsumer reference from leaking destroyed views (#68681)
fix - cdcea80327 require WebMCP tool descriptions
fix - 4289c4c840 update comment for Default change detection
fix - 3dd433b39a use Object.hasOwn to handle null-prototype objects in toStylingKeyValueArray
fix - 045bb736b3 validate lowercase SVG animation attribute names

forms

Commit Description
fix - 11836a670a delay mcp reading the form model by a tick
fix - 85d2d100e3 harden FormGroup control lookups against prototype shadowing
fix - e51ad374ea remove animationstart listener on component destroy to prevent memory leak
fix - 55b7b5a6b6 set additionalProperties: false on generated WebMCP form

http

Commit Description
fix - ffb06c0514 ensure query parameters are inserted before URL fragments
fix - 2dd65d21e6 pass down the reportUploadProgress and reportDownloadProgress on post/patch requests
fix - 4254eb416c preserve empty referrer option in HttpRequest
fix - 167bd4c162 Rejects non-HTTP(S) URLs in JSONP requests

language-service

Commit Description
fix - 43a0e28729 prevent external template inlay hints from appearing in TS files

platform-server

| Commit | Description |

... (truncated)

Changelog

Sourced from @​angular/common's changelog.

22.0.1 (2026-06-10)

Deprecations

platform-server

common

Commit Type Description
c4b5fa3c92 fix escape CSS string-terminating characters in escapeCssUrl
dfff57ede9 fix Limits date format string length
3c2892c8df fix prevent prototype pollution in formatDateTime
1d87c49f6e fix use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Type Description
1ee224ca30 fix disallow i18n event attributes
a56f1cdf8f fix more robust logic to check if regex can be optimized
5946c18275 fix sanitize href/xlink:href attributes of any element of the MathML namespace
393b84caf8 fix sanitize two-way properties

compiler-cli

Commit Type Description
3d9ca2f173 fix bind switch exhaustive check expressions

core

Commit Type Description
669146b0e7 fix disable WebMCP during SSR
562a566ead fix Handle synchronous errors in PendingTasks.run function
fa546f382d fix harden TransferState restoration against DOM clobbering
29fdb98684 fix prevent dangling prevConsumer reference from leaking destroyed views (#68681)
cdcea80327 fix require WebMCP tool descriptions
4289c4c840 fix update comment for Default change detection
3dd433b39a fix use Object.hasOwn to handle null-prototype objects in toStylingKeyValueArray
045bb736b3 fix validate lowercase SVG animation attribute names

forms

Commit Type Description
11836a670a fix delay mcp reading the form model by a tick
85d2d100e3 fix harden FormGroup control lookups against prototype shadowing
e51ad374ea fix remove animationstart listener on component destroy to prevent memory leak
55b7b5a6b6 fix set additionalProperties: false on generated WebMCP form

http

Commit Type Description
ffb06c0514 fix ensure query parameters are inserted before URL fragments
2dd65d21e6 fix pass down the reportUploadProgress and reportDownloadProgress on post/patch requests
4254eb416c fix preserve empty referrer option in HttpRequest
167bd4c162 fix Rejects non-HTTP(S) URLs in JSONP requests

language-service

| Commit | Type | Description |

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/common&package-manager=npm_and_yarn&previous-version=21.2.17&new-version=22.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 163d67ddf..288dae4b6 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -13,7 +13,7 @@ "dependencies": { "@angular/animations": "^21.1.1", "@angular/cdk": "^22.0.0", - "@angular/common": "^21.1.1", + "@angular/common": "^22.0.1", "@angular/compiler": "^21.1.0", "@angular/core": "^21.2.0", "@angular/forms": "^22.0.0", From 86a98461b611ebd2d30ade868c588d70d6404a16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 16:04:32 +0200 Subject: [PATCH 09/24] Bump actions/setup-java from 5.2.0 to 5.3.0 (#2858) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/setup-java](https://github.com/actions/setup-java) from 5.2.0 to 5.3.0.
Release notes

Sourced from actions/setup-java's releases.

v5.3.0

What's Changed

New Contributors

Full Changelog: https://github.com/actions/setup-java/compare/v5...v5.3.0

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-java&package-manager=github_actions&previous-version=5.2.0&new-version=5.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-android.yml | 2 +- .github/workflows/build-ios.yml | 2 +- .github/workflows/main.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index e88b2a3fd..045b5e036 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -20,7 +20,7 @@ jobs: if: github.repository == 'flutter/samples' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 + - uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 with: distribution: 'zulu' java-version: '17' diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 91e222a7b..2468423a5 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -23,7 +23,7 @@ jobs: fail-fast: false steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 + - uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 with: distribution: 'zulu' java-version: '17' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 689aa71fa..a10d3cfcf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,7 +28,7 @@ jobs: os: [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 + - uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 with: distribution: 'zulu' java-version: '17' From b12d3d565ddb22a670185a06cd77d7514a93c2f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 16:17:02 +0200 Subject: [PATCH 10/24] Bump actions/checkout from 6.0.2 to 6.0.3 (#2846) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
Release notes

Sourced from actions/checkout's releases.

v6.0.3

What's Changed

New Contributors

Full Changelog: https://github.com/actions/checkout/compare/v6...v6.0.3

Changelog

Sourced from actions/checkout's changelog.

Changelog

v7.0.0

v6.0.3

v6.0.2

v6.0.1

v6.0.0

v5.0.1

v5.0.0

v4.3.1

v4.3.0

v4.2.2

v4.2.1

... (truncated)

Commits

Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-android.yml | 2 +- .github/workflows/build-ios.yml | 2 +- .github/workflows/gemini-cli.yml | 4 ++-- .github/workflows/gemini-issue-automated-triage.yml | 2 +- .github/workflows/gemini-issue-scheduled-triage.yml | 2 +- .github/workflows/gemini-pr-review.yml | 2 +- .github/workflows/main.yml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index 045b5e036..5eec9f6ab 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'flutter/samples' steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 with: distribution: 'zulu' diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 2468423a5..ce59d6f27 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 with: distribution: 'zulu' diff --git a/.github/workflows/gemini-cli.yml b/.github/workflows/gemini-cli.yml index b4feae184..8f8b1c23a 100644 --- a/.github/workflows/gemini-cli.yml +++ b/.github/workflows/gemini-cli.yml @@ -144,7 +144,7 @@ jobs: - name: 'Checkout PR branch' if: |- ${{ steps.get_context.outputs.is_pr == 'true' }} - uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10' # ratchet:actions/checkout@v4 with: token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' repository: '${{ github.repository }}' @@ -154,7 +154,7 @@ jobs: - name: 'Checkout main branch' if: |- ${{ steps.get_context.outputs.is_pr == 'false' }} - uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10' # ratchet:actions/checkout@v4 with: token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}' repository: '${{ github.repository }}' diff --git a/.github/workflows/gemini-issue-automated-triage.yml b/.github/workflows/gemini-issue-automated-triage.yml index 9bc4ec054..c122f78b5 100644 --- a/.github/workflows/gemini-issue-automated-triage.yml +++ b/.github/workflows/gemini-issue-automated-triage.yml @@ -44,7 +44,7 @@ jobs: steps: - name: 'Checkout repository' - uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/gemini-issue-scheduled-triage.yml b/.github/workflows/gemini-issue-scheduled-triage.yml index 2856ce4d2..bda1b89e6 100644 --- a/.github/workflows/gemini-issue-scheduled-triage.yml +++ b/.github/workflows/gemini-issue-scheduled-triage.yml @@ -26,7 +26,7 @@ jobs: steps: - name: 'Checkout repository' - uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/gemini-pr-review.yml b/.github/workflows/gemini-pr-review.yml index e9ae2a48d..d8412354c 100644 --- a/.github/workflows/gemini-pr-review.yml +++ b/.github/workflows/gemini-pr-review.yml @@ -66,7 +66,7 @@ jobs: steps: - name: 'Checkout PR code' - uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # ratchet:actions/checkout@v4 + uses: 'actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10' # ratchet:actions/checkout@v4 - name: 'Generate GitHub App Token' id: 'generate_token' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a10d3cfcf..80c849059 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: flutter_version: [stable] os: [ubuntu-latest, macos-latest] steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 with: distribution: 'zulu' From cd36ddc330abb635893ab2266037a0bea6c65795 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2026 06:40:46 +0000 Subject: [PATCH 11/24] Bump @angular/cli from 21.1.5 to 22.0.2 in /web_embedding/ng-flutter (#2862) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/cli](https://github.com/angular/angular-cli) from 21.1.5 to 22.0.2.
Release notes

Sourced from @​angular/cli's releases.

22.0.2

@​angular/cli

Commit Description
fix - 136fc2714 support registry metadata fetching under bun package manager
perf - 2653dd5c7 implement semaphore backpressure throttling in PackageManager

@​angular/build

Commit Description
perf - 0b4a48add implement semaphore backpressure throttling in JavaScriptTransformer

@​angular/ssr

Commit Description
fix - d996a27e9 avoid caching non-SSG page lookups
fix - 285a34e42 correct grammar in console warning for redirected location headers
fix - c8088a536 prioritize options over environment variables in AngularNodeAppEngine

22.0.1

@​schematics/angular

Commit Description
fix - c80012294 fix browserMode option mapping in refactor-jasmine-vitest
fix - a9b6bd904 safely comment out multiline statements in refactor-jasmine-vitest
fix - 12199df00 use null objects and callbacks in karma-to-vitest migration

@​angular/cli

Commit Description
fix - b54e9a549 do not sort migrations of the same version alphabetically
fix - d33311612 fallback to local package.json for schematic detection on first run
fix - 918102a93 isolate temporary package installation from parent pnpm workspace
fix - b048b5f4a remove forceAuth and unscoped credential parsing
fix - 277934035 validate registry option is a valid URL in ng add
perf - 4510dae02 optimize update schematic registry query counts by fetching package metadata lazily

@​angular/build

Commit Description
fix - 89d1be979 allow disabling Vitest isolation from builder
fix - d45b84be9 exclude JSON imports from Vite dependency optimization
fix - e3cab4ddd prevent concurrent stylesheet bundling esbuild context leaks
fix - bd413b0eb restrict application builder output paths to output directory

22.0.0

@​schematics/angular

Commit Description
feat - be60a63b7 add migrate-karma-to-vitest update migration
feat - 43505066e add migration to add istanbul-lib-instrument
feat - b2f7a038b conditionally install istanbul coverage provider for Vitest migration
feat - d227e6985 migrate fake async to Vitest fake timers
feat - d2aa9ede5 migrate fakeAsync's flush behavior when used in beforeEach

... (truncated)

Changelog

Sourced from @​angular/cli's changelog.

22.0.2 (2026-06-17)

@​angular/cli

Commit Type Description
136fc2714 fix support registry metadata fetching under bun package manager
2653dd5c7 perf implement semaphore backpressure throttling in PackageManager

@​angular/build

Commit Type Description
0b4a48add perf implement semaphore backpressure throttling in JavaScriptTransformer

@​angular/ssr

Commit Type Description
d996a27e9 fix avoid caching non-SSG page lookups
285a34e42 fix correct grammar in console warning for redirected location headers
c8088a536 fix prioritize options over environment variables in AngularNodeAppEngine

22.1.0-next.0 (2026-06-11)

Deprecations

@​angular-devkit/core

  • stringToFileBuffer and fileBufferToString are deprecated. Use standard Web APIs (TextEncoder and TextDecoder) instead.

    Internal usages within the repository have been removed and replaced with standard Web APIs. The public API golden file for @angular-devkit/core has been updated to reflect the deprecations.

@​schematics/angular

Commit Type Description
89d7f59cd feat update ai-config to include Angular MCP server config

@​angular/cli

Commit Type Description
7932caaf9 fix robustly parse npm manifest from array

@​angular-devkit/core

... (truncated)

Commits
  • aab6c10 release: cut the v22.0.2 release
  • 376e4dc build: update cross-repo angular dependencies
  • d996a27 fix(@​angular/ssr): avoid caching non-SSG page lookups
  • 5714bfc build: update pnpm to v10.34.3
  • f26011a build: lock file maintenance
  • 2879ed9 build: update bazel dependencies
  • 092bb2e build: update dependency pacote to v21.5.1
  • d3e8951 build: update dependency esbuild-wasm to v0.28.1
  • 0f777a8 build: update dependency esbuild to v0.28.1
  • 385909c refactor: move eslint disable comment to top of file
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/cli&package-manager=npm_and_yarn&previous-version=21.1.5&new-version=22.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 288dae4b6..34d7f764b 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@angular-devkit/build-angular": "^22.0.1", - "@angular/cli": "~21.1.1", + "@angular/cli": "~22.0.2", "@angular/compiler-cli": "^22.0.1", "@types/jasmine": "~6.0.0", "jasmine-core": "~6.0.0", From d890bebfca96944d2ba41373b021a27b4afde422 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2026 06:42:02 +0000 Subject: [PATCH 12/24] Bump @angular/compiler from 21.2.17 to 22.0.2 in /web_embedding/ng-flutter (#2861) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) from 21.2.17 to 22.0.2.
Release notes

Sourced from @​angular/compiler's releases.

22.0.2

common

Commit Description
fix - 94ea403563 escape anchor fragment in shadow DOM name selector
fix - 6c1f3e9d49 skip transfer cache for uncacheable HTTP traffic (#69316)

compiler

Commit Description
fix - 6f1171991a restrict possible event handler check to property names longer than 2 characters

core

Commit Description
fix - 528a34f766 avoid caching missing locale data
fix - e17e8d5422 escape overlapping comment delimiters in escapeCommentText
fix - 59dea13f80 guard against DOM clobbering in declareExperimentalWebMcpTool
fix - 3a48abc15c preserve leave animation for sibling instances sharing a TNode
fix - 93d0a5f95c prevent unsubscribe during emit from throwing off other listeners
fix - b32ee7ceb3 treat iframe credentialless as security-sensitive
perf - f902d1d35e detect existing signal dependency without checking all producer links

http

Commit Description
fix - 6867f77ec7 distinguish repeated transfer cache params
fix - 7ef1399068 skip transfer cache for fetch credentialed requests (#69316)

migrations

Commit Description
fix - 15314c1736 migration skip any target are not build or test

22.0.1

common

Commit Description
fix - c4b5fa3c92 escape CSS string-terminating characters in escapeCssUrl
fix - dfff57ede9 Limits date format string length
fix - 3c2892c8df prevent prototype pollution in formatDateTime
fix - 1d87c49f6e use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Description
fix - 1ee224ca30 disallow i18n event attributes
fix - a56f1cdf8f more robust logic to check if regex can be optimized
fix - 5946c18275 sanitize href/xlink:href attributes of any element of the MathML namespace
fix - 393b84caf8 sanitize two-way properties

compiler-cli

Commit Description
fix - 3d9ca2f173 bind switch exhaustive check expressions

core

... (truncated)

Changelog

Sourced from @​angular/compiler's changelog.

22.0.2 (2026-06-17)

common

Commit Type Description
94ea403563 fix escape anchor fragment in shadow DOM name selector
6c1f3e9d49 fix skip transfer cache for uncacheable HTTP traffic (#69316)

compiler

Commit Type Description
6f1171991a fix restrict possible event handler check to property names longer than 2 characters

core

Commit Type Description
528a34f766 fix avoid caching missing locale data
e17e8d5422 fix escape overlapping comment delimiters in escapeCommentText
59dea13f80 fix guard against DOM clobbering in declareExperimentalWebMcpTool
3a48abc15c fix preserve leave animation for sibling instances sharing a TNode
93d0a5f95c fix prevent unsubscribe during emit from throwing off other listeners
b32ee7ceb3 fix treat iframe credentialless as security-sensitive
f902d1d35e perf detect existing signal dependency without checking all producer links

http

Commit Type Description
6867f77ec7 fix distinguish repeated transfer cache params
7ef1399068 fix skip transfer cache for fetch credentialed requests (#69316)

migrations

Commit Type Description
15314c1736 fix migration skip any target are not build or test

22.1.0-next.0 (2026-06-10)

Deprecations

http

  • HttpClient.jsonp, HttpClientJsonpModule, and related JSONP classes/functions are deprecated. Use standard HTTP requests instead.

common

Commit Type Description
1ad6824d0d fix skip transfer cache for uncacheable HTTP traffic (#69017)

compiler

Commit Type Description
25c744c4d0 fix support foreign components defined outside top-level scope

compiler-cli

Commit Type Description
aeb55c8bc1 fix allow passing uninvoked signals as foreign component props
7c60a98b3c fix support import aliases in foreignImports (#68674)

... (truncated)

Commits
  • 74f2b91 refactor(compiler): correct TcbInvalidReferenceOp initializer
  • b32ee7c fix(core): treat iframe credentialless as security-sensitive
  • f309727 refactor(compiler): Collect in-element comments
  • 6f11719 fix(compiler): restrict possible event handler check to property names longer...
  • 8bb3947 refactor: optimize dom security schema lookups
  • 4645850 refactor(compiler): Remove 80 char limit on AbstractEmitterVisitor
  • 1ee224c fix(compiler): disallow i18n event attributes
  • 5946c18 fix(compiler): sanitize href/xlink:href attributes of any element of the ...
  • 393b84c fix(compiler): sanitize two-way properties
  • 3d9ca2f fix(compiler-cli): bind switch exhaustive check expressions
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/compiler&package-manager=npm_and_yarn&previous-version=21.2.17&new-version=22.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 34d7f764b..71889a024 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -14,7 +14,7 @@ "@angular/animations": "^21.1.1", "@angular/cdk": "^22.0.0", "@angular/common": "^22.0.1", - "@angular/compiler": "^21.1.0", + "@angular/compiler": "^22.0.2", "@angular/core": "^21.2.0", "@angular/forms": "^22.0.0", "@angular/material": "^21.1.1", From 0f4c6632f01220712fe9d7c2c0c110d30e76c952 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2026 06:42:04 +0000 Subject: [PATCH 13/24] Bump @angular/animations from 21.2.17 to 22.0.2 in /web_embedding/ng-flutter (#2860) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) from 21.2.17 to 22.0.2.
Release notes

Sourced from @​angular/animations's releases.

22.0.2

common

Commit Description
fix - 94ea403563 escape anchor fragment in shadow DOM name selector
fix - 6c1f3e9d49 skip transfer cache for uncacheable HTTP traffic (#69316)

compiler

Commit Description
fix - 6f1171991a restrict possible event handler check to property names longer than 2 characters

core

Commit Description
fix - 528a34f766 avoid caching missing locale data
fix - e17e8d5422 escape overlapping comment delimiters in escapeCommentText
fix - 59dea13f80 guard against DOM clobbering in declareExperimentalWebMcpTool
fix - 3a48abc15c preserve leave animation for sibling instances sharing a TNode
fix - 93d0a5f95c prevent unsubscribe during emit from throwing off other listeners
fix - b32ee7ceb3 treat iframe credentialless as security-sensitive
perf - f902d1d35e detect existing signal dependency without checking all producer links

http

Commit Description
fix - 6867f77ec7 distinguish repeated transfer cache params
fix - 7ef1399068 skip transfer cache for fetch credentialed requests (#69316)

migrations

Commit Description
fix - 15314c1736 migration skip any target are not build or test

22.0.1

common

Commit Description
fix - c4b5fa3c92 escape CSS string-terminating characters in escapeCssUrl
fix - dfff57ede9 Limits date format string length
fix - 3c2892c8df prevent prototype pollution in formatDateTime
fix - 1d87c49f6e use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Description
fix - 1ee224ca30 disallow i18n event attributes
fix - a56f1cdf8f more robust logic to check if regex can be optimized
fix - 5946c18275 sanitize href/xlink:href attributes of any element of the MathML namespace
fix - 393b84caf8 sanitize two-way properties

compiler-cli

Commit Description
fix - 3d9ca2f173 bind switch exhaustive check expressions

core

... (truncated)

Changelog

Sourced from @​angular/animations's changelog.

22.0.2 (2026-06-17)

common

Commit Type Description
94ea403563 fix escape anchor fragment in shadow DOM name selector
6c1f3e9d49 fix skip transfer cache for uncacheable HTTP traffic (#69316)

compiler

Commit Type Description
6f1171991a fix restrict possible event handler check to property names longer than 2 characters

core

Commit Type Description
528a34f766 fix avoid caching missing locale data
e17e8d5422 fix escape overlapping comment delimiters in escapeCommentText
59dea13f80 fix guard against DOM clobbering in declareExperimentalWebMcpTool
3a48abc15c fix preserve leave animation for sibling instances sharing a TNode
93d0a5f95c fix prevent unsubscribe during emit from throwing off other listeners
b32ee7ceb3 fix treat iframe credentialless as security-sensitive
f902d1d35e perf detect existing signal dependency without checking all producer links

http

Commit Type Description
6867f77ec7 fix distinguish repeated transfer cache params
7ef1399068 fix skip transfer cache for fetch credentialed requests (#69316)

migrations

Commit Type Description
15314c1736 fix migration skip any target are not build or test

22.1.0-next.0 (2026-06-10)

Deprecations

http

  • HttpClient.jsonp, HttpClientJsonpModule, and related JSONP classes/functions are deprecated. Use standard HTTP requests instead.

common

Commit Type Description
1ad6824d0d fix skip transfer cache for uncacheable HTTP traffic (#69017)

compiler

Commit Type Description
25c744c4d0 fix support foreign components defined outside top-level scope

compiler-cli

Commit Type Description
aeb55c8bc1 fix allow passing uninvoked signals as foreign component props
7c60a98b3c fix support import aliases in foreignImports (#68674)

... (truncated)

Commits
  • a97d5ec build: update minimum supported Node.js versions
  • ad717df refactor(core): use the @Service decorator where possible.
  • b8d3f36 feat(compiler-cli): add support for Node.js 26.0.0
  • 6672192 test: remove duplicate tests (#67518)
  • d550bf7 build: update minimum supported Node.js versions
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/animations&package-manager=npm_and_yarn&previous-version=21.2.17&new-version=22.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 71889a024..0ac633480 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -11,7 +11,7 @@ }, "private": true, "dependencies": { - "@angular/animations": "^21.1.1", + "@angular/animations": "^22.0.2", "@angular/cdk": "^22.0.0", "@angular/common": "^22.0.1", "@angular/compiler": "^22.0.2", From ecc4df1bdc2a8311aac3d61351a8e528b6f0ee41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2026 06:53:23 +0000 Subject: [PATCH 14/24] Bump @angular/material from 21.2.14 to 22.0.2 in /web_embedding/ng-flutter (#2863) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/material](https://github.com/angular/components) from 21.2.14 to 22.0.2.
Release notes

Sourced from @​angular/material's releases.

22.0.2

material

Commit Description
fix - fb4478bff3 bottom-sheet: ensure animation event comes from container
fix - e4f7f3498b chips: correct focus management on chip destruction (#33329)
fix - 766b7aceee chips: wrong padding when chip only has edit icon (#33407)
fix - ebca801ee5 grid-list: always validate colspan
fix - 30942bcd36 stepper: validate animation durations

cdk

Commit Description
fix - e8f3419060 layout: avoid CSS injection attacks in media matcher
fix - 9dc2b2b2ed platform: account for composedPath error during event replay (#33409)

multiple

Commit Description
fix - 2995797ded improve dark theme visibility in menu, overlay, and portal examples (#33367)

22.0.1

youtube-player

Commit Description
fix - d75a22d69 avoid errors with clobbered variables
fix - fe0a96ce6 validate ID before attaching them to placeholder

material

Commit Description
fix - d7a8cb963 dialog: ignore clicks on aria-disabled close buttons (#33373)
fix - bde3c7621 timepicker: do not allow intervals less than a second (#33354)

cdk

Commit Description
fix - 629aea403 a11y: avoid prototype conflicts in id generator (#33356)
fix - 49aeb676c clipboard: avoid infinite attempt loop (#33366)

aria

Commit Description
fix - 7581b0592 combobox: avoid error for synthetic events (#33360)
fix - 1c4706155 combobox: prevent re-dispatching keyboard event on control target change (#33362)
fix - 96e9ce10c tree: recursive textDirection getter (#33337)

22.0.0

aria

Commit Description
feat - d91f46b4c accordion: introduce accordion harness (#33046)
feat - e3d84f2e0 combobox: add test harnesses (#33194)
feat - 0ca47b4a0 combobox: migrate simple-combobox directly into primary entrypoints (#33206)
feat - 6ec07bc0c grid: add test harnesses (#33081)

... (truncated)

Changelog

Sourced from @​angular/material's changelog.

22.0.2 "plastic lion" (2026-06-17)

cdk

Commit Type Description
e8f3419060 fix layout: avoid CSS injection attacks in media matcher
9dc2b2b2ed fix platform: account for composedPath error during event replay (#33409)

material

Commit Type Description
fb4478bff3 fix bottom-sheet: ensure animation event comes from container
e4f7f3498b fix chips: correct focus management on chip destruction (#33329)
766b7aceee fix chips: wrong padding when chip only has edit icon (#33407)
ebca801ee5 fix grid-list: always validate colspan
30942bcd36 fix stepper: validate animation durations

multiple

Commit Type Description
2995797ded fix improve dark theme visibility in menu, overlay, and portal examples (#33367)

22.1.0-next.0 "argon-pineapple" (2026-06-10)

No user facing changes in this release

22.0.1 "argon-apple" (2026-06-10)

aria

Commit Type Description
7581b0592 fix combobox: avoid error for synthetic events (#33360)
1c4706155 fix combobox: prevent re-dispatching keyboard event on control target change (#33362)
96e9ce10c fix tree: recursive textDirection getter (#33337)

cdk

Commit Type Description
629aea403 fix a11y: avoid prototype conflicts in id generator (#33356)
49aeb676c fix clipboard: avoid infinite attempt loop (#33366)

material

Commit Type Description
d7a8cb963 fix dialog: ignore clicks on aria-disabled close buttons (#33373)
bde3c7621 fix timepicker: do not allow intervals less than a second (#33354)

youtube-player

Commit Type Description
d75a22d69 fix avoid errors with clobbered variables
fe0a96ce6 fix validate ID before attaching them to placeholder

... (truncated)

Commits
  • 9b9d0ea release: cut the v22.0.2 release
  • 7b54e95 build: update cross-repo angular dependencies (#33398)
  • b77a829 docs(google-maps): Document the behavior of using the clusterClick output in ...
  • 605f200 build: update pnpm to v10.34.3 (#33392)
  • 0309150 build: lock file maintenance (#33406)
  • 9dc2b2b fix(cdk/platform): account for composedPath error during event replay (#33409)
  • 766b7ac fix(material/chips): wrong padding when chip only has edit icon (#33407)
  • f7170b9 build: fix build failure (#33408)
  • e4f7f34 fix(material/chips): correct focus management on chip destruction (#33329)
  • 9ad7964 build: update review config (#33394)
  • Additional commits viewable in compare view

--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 0ac633480..852bbb0bf 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -17,7 +17,7 @@ "@angular/compiler": "^22.0.2", "@angular/core": "^21.2.0", "@angular/forms": "^22.0.0", - "@angular/material": "^21.1.1", + "@angular/material": "^22.0.2", "@angular/platform-browser": "^22.0.1", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^22.0.1", From 07909dd07e28bc79a6d14ad38ff117bc8e7f04bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2026 06:53:26 +0000 Subject: [PATCH 15/24] Bump @angular/core from 21.2.17 to 22.0.2 in /web_embedding/ng-flutter (#2859) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) from 21.2.17 to 22.0.2.
Release notes

Sourced from @​angular/core's releases.

22.0.2

common

Commit Description
fix - 94ea403563 escape anchor fragment in shadow DOM name selector
fix - 6c1f3e9d49 skip transfer cache for uncacheable HTTP traffic (#69316)

compiler

Commit Description
fix - 6f1171991a restrict possible event handler check to property names longer than 2 characters

core

Commit Description
fix - 528a34f766 avoid caching missing locale data
fix - e17e8d5422 escape overlapping comment delimiters in escapeCommentText
fix - 59dea13f80 guard against DOM clobbering in declareExperimentalWebMcpTool
fix - 3a48abc15c preserve leave animation for sibling instances sharing a TNode
fix - 93d0a5f95c prevent unsubscribe during emit from throwing off other listeners
fix - b32ee7ceb3 treat iframe credentialless as security-sensitive
perf - f902d1d35e detect existing signal dependency without checking all producer links

http

Commit Description
fix - 6867f77ec7 distinguish repeated transfer cache params
fix - 7ef1399068 skip transfer cache for fetch credentialed requests (#69316)

migrations

Commit Description
fix - 15314c1736 migration skip any target are not build or test

22.0.1

common

Commit Description
fix - c4b5fa3c92 escape CSS string-terminating characters in escapeCssUrl
fix - dfff57ede9 Limits date format string length
fix - 3c2892c8df prevent prototype pollution in formatDateTime
fix - 1d87c49f6e use cryptographically secure SHA-256 for transfer cache key generation

compiler

Commit Description
fix - 1ee224ca30 disallow i18n event attributes
fix - a56f1cdf8f more robust logic to check if regex can be optimized
fix - 5946c18275 sanitize href/xlink:href attributes of any element of the MathML namespace
fix - 393b84caf8 sanitize two-way properties

compiler-cli

Commit Description
fix - 3d9ca2f173 bind switch exhaustive check expressions

core

... (truncated)

Changelog

Sourced from @​angular/core's changelog.

22.0.2 (2026-06-17)

common

Commit Type Description
94ea403563 fix escape anchor fragment in shadow DOM name selector
6c1f3e9d49 fix skip transfer cache for uncacheable HTTP traffic (#69316)

compiler

Commit Type Description
6f1171991a fix restrict possible event handler check to property names longer than 2 characters

core

Commit Type Description
528a34f766 fix avoid caching missing locale data
e17e8d5422 fix escape overlapping comment delimiters in escapeCommentText
59dea13f80 fix guard against DOM clobbering in declareExperimentalWebMcpTool
3a48abc15c fix preserve leave animation for sibling instances sharing a TNode
93d0a5f95c fix prevent unsubscribe during emit from throwing off other listeners
b32ee7ceb3 fix treat iframe credentialless as security-sensitive
f902d1d35e perf detect existing signal dependency without checking all producer links

http

Commit Type Description
6867f77ec7 fix distinguish repeated transfer cache params
7ef1399068 fix skip transfer cache for fetch credentialed requests (#69316)

migrations

Commit Type Description
15314c1736 fix migration skip any target are not build or test

22.1.0-next.0 (2026-06-10)

Deprecations

http

  • HttpClient.jsonp, HttpClientJsonpModule, and related JSONP classes/functions are deprecated. Use standard HTTP requests instead.

common

Commit Type Description
1ad6824d0d fix skip transfer cache for uncacheable HTTP traffic (#69017)

compiler

Commit Type Description
25c744c4d0 fix support foreign components defined outside top-level scope

compiler-cli

Commit Type Description
aeb55c8bc1 fix allow passing uninvoked signals as foreign component props
7c60a98b3c fix support import aliases in foreignImports (#68674)

... (truncated)

Commits
  • 152601e refactor(core): add childSignalProp to ReactiveNodeKind
  • 59dea13 fix(core): guard against DOM clobbering in declareExperimentalWebMcpTool
  • 81cb457 refactor(router): Add handling for ActivatedRoute-scoped injector
  • f902d1d perf(core): detect existing signal dependency without checking all producer l...
  • e17e8d5 fix(core): escape overlapping comment delimiters in escapeCommentText
  • 0f1cfe3 build: update cross-repo angular dependencies to v22.0.2
  • b32ee7c fix(core): treat iframe credentialless as security-sensitive
  • 93d0a5f fix(core): prevent unsubscribe during emit from throwing off other listeners
  • 528a34f fix(core): avoid caching missing locale data
  • 6f11719 fix(compiler): restrict possible event handler check to property names longer...
  • Additional commits viewable in compare view

--- web_embedding/ng-flutter/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_embedding/ng-flutter/package.json b/web_embedding/ng-flutter/package.json index 852bbb0bf..f42e6436b 100644 --- a/web_embedding/ng-flutter/package.json +++ b/web_embedding/ng-flutter/package.json @@ -15,7 +15,7 @@ "@angular/cdk": "^22.0.0", "@angular/common": "^22.0.1", "@angular/compiler": "^22.0.2", - "@angular/core": "^21.2.0", + "@angular/core": "^22.0.2", "@angular/forms": "^22.0.0", "@angular/material": "^22.0.2", "@angular/platform-browser": "^22.0.1", From 5f4c7956953f5ac79399a9bb598cb88c789b86e4 Mon Sep 17 00:00:00 2001 From: Mozammal Hossain <152433210+mozammal-hossain@users.noreply.github.com> Date: Sat, 20 Jun 2026 03:11:27 +0600 Subject: [PATCH 16/24] =?UTF-8?q?[compass=5Fapp]=20Scope=20LogoutViewModel?= =?UTF-8?q?=20to=20route=20builder=20=E2=80=94=20fix=20#2604=20(#2819)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description **Problem:** `LogoutViewModel` was built inside `HomeHeader.build()`, so each rebuild could create a new instance and a new `logout` command. That does not match how other Compass view models are scoped (created in the GoRouter route `builder` and passed in), and it can affect an in-flight logout when the home screen rebuilds. **Change:** Create `LogoutViewModel` once in the `/home` route next to `HomeViewModel`, pass it through `HomeScreen` → `HomeHeader` → `LogoutButton`, and remove inline construction in `home_title.dart`. Update `home_screen_test.dart` to build `LogoutViewModel` with fakes and remove `Provider` wrappers that only supported `context.read()` in the header. **Result:** Logout view model lifetime aligns with the home route; no visual or copy changes (screenshots not needed). Fixes https://github.com/flutter/samples/issues/2604 --- ## Pre-launch Checklist - [x] I read the [Flutter Style Guide] _recently_, and have followed its advice. - [x] I signed the [CLA]. - [x] I read the [Contributors Guide]. - [x] I have added sample code updates to the [changelog]. - [x] I updated/added relevant documentation (doc comments with `///`). If you need help, consider asking for advice on the #hackers-devrel channel on [Discord]. [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [Discord]: https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md [Contributors Guide]: https://github.com/flutter/samples/blob/main/CONTRIBUTING.md [changelog]: ../CHANGELOG.md --------- Co-authored-by: Eric Windmill --- CHANGELOG.md | 10 ++++++ compass_app/app/lib/routing/router.dart | 10 +++++- .../app/lib/ui/home/widgets/home_screen.dart | 13 ++++++-- .../app/lib/ui/home/widgets/home_title.dart | 15 ++++----- .../ui/home/widgets/home_screen_test.dart | 20 +++++------ cupertino_gallery/lib/widgets/sheet_page.dart | 33 ++++++++----------- 6 files changed, 61 insertions(+), 40 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..3bb4049a4 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +Notable changes to the samples in this repository are listed here. + +## [Unreleased] + +### compass_app + +* Scope `LogoutViewModel` to the home route so it is not recreated on every + `HomeHeader` rebuild ([#2604](https://github.com/flutter/samples/issues/2604)). diff --git a/compass_app/app/lib/routing/router.dart b/compass_app/app/lib/routing/router.dart index 1ed94ed02..284706850 100644 --- a/compass_app/app/lib/routing/router.dart +++ b/compass_app/app/lib/routing/router.dart @@ -11,6 +11,7 @@ import '../ui/activities/view_models/activities_viewmodel.dart'; import '../ui/activities/widgets/activities_screen.dart'; import '../ui/auth/login/view_models/login_viewmodel.dart'; import '../ui/auth/login/widgets/login_screen.dart'; +import '../ui/auth/logout/view_models/logout_viewmodel.dart'; import '../ui/booking/view_models/booking_viewmodel.dart'; import '../ui/booking/widgets/booking_screen.dart'; import '../ui/home/view_models/home_viewmodel.dart'; @@ -46,7 +47,14 @@ GoRouter router(AuthRepository authRepository) => GoRouter( bookingRepository: context.read(), userRepository: context.read(), ); - return HomeScreen(viewModel: viewModel); + final logoutViewModel = LogoutViewModel( + authRepository: context.read(), + itineraryConfigRepository: context.read(), + ); + return HomeScreen( + viewModel: viewModel, + logoutViewModel: logoutViewModel, + ); }, routes: [ GoRoute( diff --git a/compass_app/app/lib/ui/home/widgets/home_screen.dart b/compass_app/app/lib/ui/home/widgets/home_screen.dart index fefe78003..09d1e49ba 100644 --- a/compass_app/app/lib/ui/home/widgets/home_screen.dart +++ b/compass_app/app/lib/ui/home/widgets/home_screen.dart @@ -7,6 +7,7 @@ import 'package:go_router/go_router.dart'; import '../../../domain/models/booking/booking_summary.dart'; import '../../../routing/routes.dart'; +import '../../auth/logout/view_models/logout_viewmodel.dart'; import '../../core/localization/applocalization.dart'; import '../../core/themes/colors.dart'; import '../../core/themes/dimens.dart'; @@ -18,9 +19,14 @@ import 'home_title.dart'; const String bookingButtonKey = 'booking-button'; class HomeScreen extends StatefulWidget { - const HomeScreen({super.key, required this.viewModel}); + const HomeScreen({ + super.key, + required this.viewModel, + required this.logoutViewModel, + }); final HomeViewModel viewModel; + final LogoutViewModel logoutViewModel; @override State createState() => _HomeScreenState(); @@ -88,7 +94,10 @@ class _HomeScreenState extends State { vertical: Dimens.of(context).paddingScreenVertical, horizontal: Dimens.of(context).paddingScreenHorizontal, ), - child: HomeHeader(viewModel: widget.viewModel), + child: HomeHeader( + viewModel: widget.viewModel, + logoutViewModel: widget.logoutViewModel, + ), ), ), SliverList.builder( diff --git a/compass_app/app/lib/ui/home/widgets/home_title.dart b/compass_app/app/lib/ui/home/widgets/home_title.dart index 165e7ffe5..16755793a 100644 --- a/compass_app/app/lib/ui/home/widgets/home_title.dart +++ b/compass_app/app/lib/ui/home/widgets/home_title.dart @@ -4,7 +4,6 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:provider/provider.dart'; import '../../auth/logout/view_models/logout_viewmodel.dart'; import '../../auth/logout/widgets/logout_button.dart'; @@ -13,9 +12,14 @@ import '../../core/themes/dimens.dart'; import '../view_models/home_viewmodel.dart'; class HomeHeader extends StatelessWidget { - const HomeHeader({super.key, required this.viewModel}); + const HomeHeader({ + super.key, + required this.viewModel, + required this.logoutViewModel, + }); final HomeViewModel viewModel; + final LogoutViewModel logoutViewModel; @override Widget build(BuildContext context) { @@ -37,12 +41,7 @@ class HomeHeader extends StatelessWidget { height: Dimens.of(context).profilePictureSize, ), ), - LogoutButton( - viewModel: LogoutViewModel( - authRepository: context.read(), - itineraryConfigRepository: context.read(), - ), - ), + LogoutButton(viewModel: logoutViewModel), ], ), const SizedBox(height: Dimens.paddingVertical), diff --git a/compass_app/app/test/ui/home/widgets/home_screen_test.dart b/compass_app/app/test/ui/home/widgets/home_screen_test.dart index 24890be41..a99981100 100644 --- a/compass_app/app/test/ui/home/widgets/home_screen_test.dart +++ b/compass_app/app/test/ui/home/widgets/home_screen_test.dart @@ -2,16 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:compass_app/data/repositories/auth/auth_repository.dart'; -import 'package:compass_app/data/repositories/itinerary_config/itinerary_config_repository.dart'; import 'package:compass_app/routing/routes.dart'; +import 'package:compass_app/ui/auth/logout/view_models/logout_viewmodel.dart'; import 'package:compass_app/ui/home/view_models/home_viewmodel.dart'; import 'package:compass_app/ui/home/widgets/home_screen.dart'; import 'package:compass_app/utils/result.dart'; -import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; -import 'package:provider/provider.dart'; import '../../../../testing/app.dart'; import '../../../../testing/fakes/repositories/fake_auth_repository.dart'; @@ -24,6 +22,7 @@ import '../../../../testing/models/booking.dart'; void main() { group('HomeScreen tests', () { late HomeViewModel viewModel; + late LogoutViewModel logoutViewModel; late MockGoRouter goRouter; late FakeBookingRepository bookingRepository; @@ -33,6 +32,10 @@ void main() { bookingRepository: bookingRepository, userRepository: FakeUserRepository(), ); + logoutViewModel = LogoutViewModel( + authRepository: FakeAuthRepository(), + itineraryConfigRepository: FakeItineraryConfigRepository(), + ); goRouter = MockGoRouter(); when(() => goRouter.push(any())).thenAnswer((_) => Future.value(null)); }); @@ -40,12 +43,9 @@ void main() { Future loadWidget(WidgetTester tester) async { await testApp( tester, - ChangeNotifierProvider.value( - value: FakeAuthRepository() as AuthRepository, - child: Provider.value( - value: FakeItineraryConfigRepository() as ItineraryConfigRepository, - child: HomeScreen(viewModel: viewModel), - ), + HomeScreen( + viewModel: viewModel, + logoutViewModel: logoutViewModel, ), goRouter: goRouter, ); diff --git a/cupertino_gallery/lib/widgets/sheet_page.dart b/cupertino_gallery/lib/widgets/sheet_page.dart index 9d27c0bd2..103d1bdcc 100644 --- a/cupertino_gallery/lib/widgets/sheet_page.dart +++ b/cupertino_gallery/lib/widgets/sheet_page.dart @@ -13,25 +13,20 @@ class SheetPage extends StatelessWidget { onPressed: () { Navigator.of(context).push( CupertinoSheetRoute( - scrollableBuilder: - (BuildContext context, ScrollController controller) { - Widget widgetBuilder(BuildContext context) { - return CupertinoPageScaffold( - navigationBar: CupertinoNavigationBar( - middle: const Text('Sheet'), - trailing: GestureDetector( - child: const Icon(CupertinoIcons.xmark), - onTap: () { - Navigator.of(context).pop(); - }, - ), - ), - child: const Center(child: Text('This is a sheet')), - ); - } - - return widgetBuilder(context); - }, + builder: (BuildContext context) { + return CupertinoPageScaffold( + navigationBar: CupertinoNavigationBar( + middle: const Text('Sheet'), + trailing: GestureDetector( + child: const Icon(CupertinoIcons.xmark), + onTap: () { + Navigator.of(context).pop(); + }, + ), + ), + child: const Center(child: Text('This is a sheet')), + ); + }, ), ); }, From 8da6d98439a0459ab26c3bf49ebcd3fbecbc5495 Mon Sep 17 00:00:00 2001 From: Niaz Sagor <50655067+NiazSagor@users.noreply.github.com> Date: Sat, 20 Jun 2026 03:13:45 +0600 Subject: [PATCH 17/24] Show placeholder for broken activity images (#2769) Hello, I noticed that there are several image URLs that fail to load on the Activities screen of the compass_app. The image shows the default error widget right now. This PR proposes to display a placeholder with a "broken image" icon instead of the default error widget. This provides better visual feedback to the user. Current: image After fix: image @ericwindmill, please take a look and see if it is appropriate. ## Pre-launch Checklist - [x] I read the [Flutter Style Guide] _recently_, and have followed its advice. - [x] I signed the [CLA]. - [x] I read the [Contributors Guide]. - [x] I have added sample code updates to the [changelog]. - [x] I updated/added relevant documentation (doc comments with `///`). [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [Discord]: https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md [Contributors Guide]: https://github.com/flutter/samples/blob/main/CONTRIBUTING.md [changelog]: ../CHANGELOG.md Co-authored-by: Eric Windmill --- .../ui/activities/widgets/activity_entry.dart | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/compass_app/app/lib/ui/activities/widgets/activity_entry.dart b/compass_app/app/lib/ui/activities/widgets/activity_entry.dart index 300e560a7..f75643f18 100644 --- a/compass_app/app/lib/ui/activities/widgets/activity_entry.dart +++ b/compass_app/app/lib/ui/activities/widgets/activity_entry.dart @@ -30,6 +30,7 @@ class ActivityEntry extends StatelessWidget { ClipRRect( borderRadius: BorderRadius.circular(8), child: CachedNetworkImage( + errorWidget: (context, url, error) => _ActivityErrorPlaceholder(), imageUrl: activity.imageUrl, height: 80, width: 80, @@ -66,3 +67,23 @@ class ActivityEntry extends StatelessWidget { ); } } + +class _ActivityErrorPlaceholder extends StatelessWidget { + const _ActivityErrorPlaceholder({super.key}); + + @override + Widget build(BuildContext context) { + return Container( + width: 80, + height: 80, + decoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: BorderRadius.circular(8), + ), + child: Icon( + Icons.broken_image_outlined, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ); + } +} From f755c81579172def489e38d5d2c6c4778b330e05 Mon Sep 17 00:00:00 2001 From: Eric Windmill Date: Fri, 19 Jun 2026 14:14:31 -0700 Subject: [PATCH 18/24] Fix image loading error (#2865) *Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.* *List which issues are fixed by this PR. For larger changes, raising an issue first helps reduce redundant work.* ## Pre-launch Checklist - [ ] I read the [Flutter Style Guide] _recently_, and have followed its advice. - [ ] I signed the [CLA]. - [ ] I read the [Contributors Guide]. - [ ] I have added sample code updates to the [changelog]. - [ ] I updated/added relevant documentation (doc comments with `///`). If you need help, consider asking for advice on the #hackers-devrel channel on [Discord]. [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [Discord]: https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md [Contributors Guide]: https://github.com/flutter/samples/blob/main/CONTRIBUTING.md [changelog]: ../CHANGELOG.md --------- Co-authored-by: NiazSagor Co-authored-by: Niaz Sagor <50655067+NiazSagor@users.noreply.github.com> --- compass_app/app/lib/ui/activities/widgets/activity_entry.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compass_app/app/lib/ui/activities/widgets/activity_entry.dart b/compass_app/app/lib/ui/activities/widgets/activity_entry.dart index f75643f18..b561844f9 100644 --- a/compass_app/app/lib/ui/activities/widgets/activity_entry.dart +++ b/compass_app/app/lib/ui/activities/widgets/activity_entry.dart @@ -69,7 +69,7 @@ class ActivityEntry extends StatelessWidget { } class _ActivityErrorPlaceholder extends StatelessWidget { - const _ActivityErrorPlaceholder({super.key}); + const _ActivityErrorPlaceholder(); @override Widget build(BuildContext context) { From 8bfffd4a84d83260eaa9fea12f806f206bafa9df Mon Sep 17 00:00:00 2001 From: Harsh Yadav Date: Sat, 20 Jun 2026 02:46:31 +0530 Subject: [PATCH 19/24] docs: clarify HomeViewModel lifecycle in Compass sample (#2838) Adds a comment explaining why `HomeViewModel` is not disposed in the Compass sample. This clarifies that the current implementation is safe because the ViewModel does not manage disposable resources. It also highlights that in real applications, proper lifecycle management is required when working with streams, controllers, or subscriptions. Fixes https://github.com/flutter/samples/issues/2788 ## Pre-launch Checklist * [x] I read the [[Flutter Style Guide](https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md)] recently, and have followed its advice. * [x] I signed the [[CLA](https://cla.developers.google.com/)]. * [ ] I have added sample code updates to the [[changelog](https://chatgpt.com/c/CHANGELOG.md)]. * [x] I updated/added relevant documentation (doc comments with `///`). [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [changelog]: ./CHANGELOG.md --------- Co-authored-by: Eric Windmill --- compass_app/app/lib/routing/router.dart | 3 +- .../home/widgets/home_screen_container.dart | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 compass_app/app/lib/ui/home/widgets/home_screen_container.dart diff --git a/compass_app/app/lib/routing/router.dart b/compass_app/app/lib/routing/router.dart index 284706850..05cad62b0 100644 --- a/compass_app/app/lib/routing/router.dart +++ b/compass_app/app/lib/routing/router.dart @@ -14,8 +14,7 @@ import '../ui/auth/login/widgets/login_screen.dart'; import '../ui/auth/logout/view_models/logout_viewmodel.dart'; import '../ui/booking/view_models/booking_viewmodel.dart'; import '../ui/booking/widgets/booking_screen.dart'; -import '../ui/home/view_models/home_viewmodel.dart'; -import '../ui/home/widgets/home_screen.dart'; +import '../ui/home/widgets/home_screen_container.dart'; import '../ui/results/view_models/results_viewmodel.dart'; import '../ui/results/widgets/results_screen.dart'; import '../ui/search_form/view_models/search_form_viewmodel.dart'; diff --git a/compass_app/app/lib/ui/home/widgets/home_screen_container.dart b/compass_app/app/lib/ui/home/widgets/home_screen_container.dart new file mode 100644 index 000000000..c62fbc3c1 --- /dev/null +++ b/compass_app/app/lib/ui/home/widgets/home_screen_container.dart @@ -0,0 +1,39 @@ +import 'package:flutter/widgets.dart'; +import 'package:provider/provider.dart'; + +import '../../../data/repositories/booking/booking_repository.dart'; +import '../../../data/repositories/user/user_repository.dart'; +import '../view_models/home_viewmodel.dart'; +import 'home_screen.dart'; + +class HomeScreenContainer extends StatefulWidget { + const HomeScreenContainer({super.key}); + + @override + State createState() => _HomeScreenContainerState(); +} + +class _HomeScreenContainerState extends State { + late final HomeViewModel _viewModel; + + @override + void initState() { + super.initState(); + + _viewModel = HomeViewModel( + bookingRepository: context.read(), + userRepository: context.read(), + ); + } + + @override + Widget build(BuildContext context) { + return HomeScreen(viewModel: _viewModel); + } + + @override + void dispose() { + _viewModel.dispose(); + super.dispose(); + } +} From effe13307c41368d53cdda0c01d789f423d5ff18 Mon Sep 17 00:00:00 2001 From: Abdulrahman Bashir <52699770+abdul-alaa@users.noreply.github.com> Date: Sat, 20 Jun 2026 01:35:48 +0400 Subject: [PATCH 21/24] Migrate testing_app to UIScene lifecycle (#2836) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary [![talabat.com contributions](https://img.shields.io/badge/talabat.com-contributions-FF5A00?style=flat&logo=flutter&logoColor=white)](https://www.talabat.com) [![Talabat Flutter PRs](https://img.shields.io/badge/Talabat_Flutter_PRs-26%20merged-97ca00?style=flat&logo=flutter&logoColor=white)](https://github.com/search?q=org%3Aflutter+talabat&type=pullrequests) - Migrate `testing_app` iOS project to the UIScene lifecycle as per the [migration guide](https://docs.flutter.dev/release/breaking-changes/uiscenedelegate) - Update `AppDelegate.swift` to use `@main`, `FlutterImplicitEngineDelegate`, and move plugin registration to `didInitializeImplicitFlutterEngine` - Add `UIApplicationSceneManifest` to `Info.plist` Part of flutter/flutter#176957 ## Test plan - [x] Ran `testing_app` on iOS simulator — app launches and works correctly --------- Co-authored-by: Eric Windmill --- compass_app/app/lib/routing/router.dart | 3 +- .../lib/pedometer_bindings_generated.dart | 4 +-- pubspec.yaml | 4 +-- testing_app/ios/Runner/AppDelegate.swift | 11 ++++--- testing_app/ios/Runner/Info.plist | 29 ++++++++++++++++--- 5 files changed, 37 insertions(+), 14 deletions(-) diff --git a/compass_app/app/lib/routing/router.dart b/compass_app/app/lib/routing/router.dart index 05cad62b0..284706850 100644 --- a/compass_app/app/lib/routing/router.dart +++ b/compass_app/app/lib/routing/router.dart @@ -14,7 +14,8 @@ import '../ui/auth/login/widgets/login_screen.dart'; import '../ui/auth/logout/view_models/logout_viewmodel.dart'; import '../ui/booking/view_models/booking_viewmodel.dart'; import '../ui/booking/widgets/booking_screen.dart'; -import '../ui/home/widgets/home_screen_container.dart'; +import '../ui/home/view_models/home_viewmodel.dart'; +import '../ui/home/widgets/home_screen.dart'; import '../ui/results/view_models/results_viewmodel.dart'; import '../ui/results/widgets/results_screen.dart'; import '../ui/search_form/view_models/search_form_viewmodel.dart'; diff --git a/pedometer/lib/pedometer_bindings_generated.dart b/pedometer/lib/pedometer_bindings_generated.dart index eb567657b..91c38f28a 100644 --- a/pedometer/lib/pedometer_bindings_generated.dart +++ b/pedometer/lib/pedometer_bindings_generated.dart @@ -45993,9 +45993,7 @@ class ObjCBlock_ffiVoid_ObjCObject_ffiUnsignedLong_bool extends _ObjCBlockBase { ffi.UnsignedLong, ffi.Pointer, ) - >( - _ObjCBlock_ffiVoid_ObjCObject_ffiUnsignedLong_bool_closureTrampoline, - ) + >(_ObjCBlock_ffiVoid_ObjCObject_ffiUnsignedLong_bool_closureTrampoline) .cast(), _ObjCBlock_ffiVoid_ObjCObject_ffiUnsignedLong_bool_registerClosure( ( diff --git a/pubspec.yaml b/pubspec.yaml index a4a3adbf4..813d5cac6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -50,8 +50,8 @@ skip_ci: - add_to_app/multiple_flutters/multiple_flutters_module - add_to_app/plugin/flutter_module_using_plugin - add_to_app/prebuilt_module/flutter_module - # remove after 3.44 release - cupertino_gallery skip_ci_beta: - - material_3_demo + # - sample_name_to_skip + diff --git a/testing_app/ios/Runner/AppDelegate.swift b/testing_app/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/testing_app/ios/Runner/AppDelegate.swift +++ b/testing_app/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/testing_app/ios/Runner/Info.plist b/testing_app/ios/Runner/Info.plist index 0f22db4b2..434734531 100644 --- a/testing_app/ios/Runner/Info.plist +++ b/testing_app/ios/Runner/Info.plist @@ -2,6 +2,8 @@ + CADisableMinimumFrameDurationOnPhone + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName @@ -24,6 +26,29 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + + UIApplicationSupportsIndirectInputEvents + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -43,9 +68,5 @@ UIViewControllerBasedStatusBarAppearance - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - From 659acd06908b386b56eb6576c43d23298e26328c Mon Sep 17 00:00:00 2001 From: Harsh Yadav Date: Sat, 20 Jun 2026 03:13:13 +0530 Subject: [PATCH 22/24] refactor: remove redundant notifyListeners in HomeViewModel deleteBooking (#2839) Removes redundant notifyListeners() call from _deleteBooking(). The method is executed through Command, which already manages its own notifyListeners lifecycle. This change ensures that HomeViewModel only notifies listeners when its internal state (_bookings) changes, avoiding unnecessary updates. Fixes https://github.com/flutter/samples/issues/2746 ## Pre-launch Checklist - [x] I read the [Flutter Style Guide] recently, and have followed its advice. - [x] I signed the [CLA]. - [ ] I have added sample code updates to the [changelog]. - [ ] I updated/added relevant documentation (doc comments with `///`). [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [changelog]: ./CHANGELOG.md Co-authored-by: Eric Windmill --- .../ui/home/view_models/home_viewmodel.dart | 44 +++++++++---------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/compass_app/app/lib/ui/home/view_models/home_viewmodel.dart b/compass_app/app/lib/ui/home/view_models/home_viewmodel.dart index df4a2e479..fba990528 100644 --- a/compass_app/app/lib/ui/home/view_models/home_viewmodel.dart +++ b/compass_app/app/lib/ui/home/view_models/home_viewmodel.dart @@ -65,31 +65,27 @@ class HomeViewModel extends ChangeNotifier { } Future> _deleteBooking(int id) async { - try { - final resultDelete = await _bookingRepository.delete(id); - switch (resultDelete) { - case Ok(): - _log.fine('Deleted booking $id'); - case Error(): - _log.warning('Failed to delete booking $id', resultDelete.error); - return resultDelete; - } - - // After deleting the booking, we need to reload the bookings list. - // BookingRepository is the source of truth for bookings. - final resultLoadBookings = await _bookingRepository.getBookingsList(); - switch (resultLoadBookings) { - case Ok>(): - _bookings = resultLoadBookings.value; - _log.fine('Loaded bookings'); - case Error>(): - _log.warning('Failed to load bookings', resultLoadBookings.error); - return resultLoadBookings; - } + final resultDelete = await _bookingRepository.delete(id); + switch (resultDelete) { + case Ok(): + _log.fine('Deleted booking $id'); + case Error(): + _log.warning('Failed to delete booking $id', resultDelete.error); + return resultDelete; + } - return resultLoadBookings; - } finally { - notifyListeners(); + // After deleting the booking, reload the bookings list. + final resultLoadBookings = await _bookingRepository.getBookingsList(); + switch (resultLoadBookings) { + case Ok>(): + _bookings = resultLoadBookings.value; + _log.fine('Loaded bookings'); + notifyListeners(); // notify only when data changes + case Error>(): + _log.warning('Failed to load bookings', resultLoadBookings.error); + return resultLoadBookings; } + + return resultLoadBookings; } } From d9a2b781a2af69df726a63a02382b237df194d08 Mon Sep 17 00:00:00 2001 From: Eric Windmill Date: Fri, 19 Jun 2026 14:54:02 -0700 Subject: [PATCH 23/24] Various simple fixes (#2866) *Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.* *List which issues are fixed by this PR. For larger changes, raising an issue first helps reduce redundant work.* ## Pre-launch Checklist - [ ] I read the [Flutter Style Guide] _recently_, and have followed its advice. - [ ] I signed the [CLA]. - [ ] I read the [Contributors Guide]. - [ ] I have added sample code updates to the [changelog]. - [ ] I updated/added relevant documentation (doc comments with `///`). If you need help, consider asking for advice on the #hackers-devrel channel on [Discord]. [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [Discord]: https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md [Contributors Guide]: https://github.com/flutter/samples/blob/main/CONTRIBUTING.md [changelog]: ../CHANGELOG.md --- compass_app/app/lib/routing/router.dart | 10 ++-------- .../lib/ui/home/widgets/home_screen_container.dart | 13 +++++++++++-- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/compass_app/app/lib/routing/router.dart b/compass_app/app/lib/routing/router.dart index 284706850..2d3030085 100644 --- a/compass_app/app/lib/routing/router.dart +++ b/compass_app/app/lib/routing/router.dart @@ -14,8 +14,7 @@ import '../ui/auth/login/widgets/login_screen.dart'; import '../ui/auth/logout/view_models/logout_viewmodel.dart'; import '../ui/booking/view_models/booking_viewmodel.dart'; import '../ui/booking/widgets/booking_screen.dart'; -import '../ui/home/view_models/home_viewmodel.dart'; -import '../ui/home/widgets/home_screen.dart'; +import '../ui/home/widgets/home_screen_container.dart'; import '../ui/results/view_models/results_viewmodel.dart'; import '../ui/results/widgets/results_screen.dart'; import '../ui/search_form/view_models/search_form_viewmodel.dart'; @@ -43,16 +42,11 @@ GoRouter router(AuthRepository authRepository) => GoRouter( GoRoute( path: Routes.home, builder: (context, state) { - final viewModel = HomeViewModel( - bookingRepository: context.read(), - userRepository: context.read(), - ); final logoutViewModel = LogoutViewModel( authRepository: context.read(), itineraryConfigRepository: context.read(), ); - return HomeScreen( - viewModel: viewModel, + return HomeScreenContainer( logoutViewModel: logoutViewModel, ); }, diff --git a/compass_app/app/lib/ui/home/widgets/home_screen_container.dart b/compass_app/app/lib/ui/home/widgets/home_screen_container.dart index c62fbc3c1..31608b1a5 100644 --- a/compass_app/app/lib/ui/home/widgets/home_screen_container.dart +++ b/compass_app/app/lib/ui/home/widgets/home_screen_container.dart @@ -3,11 +3,17 @@ import 'package:provider/provider.dart'; import '../../../data/repositories/booking/booking_repository.dart'; import '../../../data/repositories/user/user_repository.dart'; +import '../../auth/logout/view_models/logout_viewmodel.dart'; import '../view_models/home_viewmodel.dart'; import 'home_screen.dart'; class HomeScreenContainer extends StatefulWidget { - const HomeScreenContainer({super.key}); + const HomeScreenContainer({ + super.key, + required this.logoutViewModel, + }); + + final LogoutViewModel logoutViewModel; @override State createState() => _HomeScreenContainerState(); @@ -28,7 +34,10 @@ class _HomeScreenContainerState extends State { @override Widget build(BuildContext context) { - return HomeScreen(viewModel: _viewModel); + return HomeScreen( + viewModel: _viewModel, + logoutViewModel: widget.logoutViewModel, + ); } @override From 7e12f75defd8c295517acf35abd3365cd1a3ad3d Mon Sep 17 00:00:00 2001 From: Harsh Yadav Date: Sat, 20 Jun 2026 03:32:33 +0530 Subject: [PATCH 24/24] Migrate compass_app to SharedPreferencesAsync (#2841) ## Description Migrated `SharedPreferences` usage in `compass_app` to `SharedPreferencesAsync` to align with the latest `shared_preferences` recommendations. ### Changes made * Replaced `SharedPreferences.getInstance()` usages * Updated async preference reads with awaited getters * Migrated token persistence logic * Updated test setup preference clearing logic Fixes #2720 ## Pre-launch Checklist * [x] I read the [[Flutter Style Guide](https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md)] *recently*, and have followed its advice. * [x] I signed the [[CLA](https://cla.developers.google.com/)]. * [x] I read the [[Contributors Guide](https://github.com/flutter/samples/blob/main/CONTRIBUTING.md)]. * [ ] I have added sample code updates to the [[changelog](https://chatgpt.com/CHANGELOG.md)]. * [ ] I updated/added relevant documentation (doc comments with `///`). [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [Discord]: https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md [Contributors Guide]: https://github.com/flutter/samples/blob/main/CONTRIBUTING.md [changelog]: ../CHANGELOG.md Co-authored-by: Eric Windmill --- background_isolate_channels/lib/main.dart | 10 ++++++---- .../app/integration_test/app_server_data_test.dart | 2 +- .../data/services/shared_preferences_service.dart | 12 +++++++++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/background_isolate_channels/lib/main.dart b/background_isolate_channels/lib/main.dart index a0c874e34..c929ee0b1 100644 --- a/background_isolate_channels/lib/main.dart +++ b/background_isolate_channels/lib/main.dart @@ -65,10 +65,12 @@ class _MyHomePageState extends State { // Write the value to [SharedPreferences] which will get read on the // [SimpleDatabase]'s isolate. For this example the value is always true // just for demonstration purposes. - final Future sharedPreferencesSet = SharedPreferences.getInstance() - .then( - (sharedPreferences) => sharedPreferences.setBool('isDebug', true), - ); + final SharedPreferencesAsync sharedPreferences = SharedPreferencesAsync(); + + final Future sharedPreferencesSet = sharedPreferences.setBool( + 'isDebug', + true, + ); final Future tempDirFuture = path_provider .getTemporaryDirectory(); diff --git a/compass_app/app/integration_test/app_server_data_test.dart b/compass_app/app/integration_test/app_server_data_test.dart index cb4bb28b7..c406c72ea 100644 --- a/compass_app/app/integration_test/app_server_data_test.dart +++ b/compass_app/app/integration_test/app_server_data_test.dart @@ -30,7 +30,7 @@ void main() { setUpAll(() async { // Clear any stored shared preferences - final sharedPreferences = await SharedPreferences.getInstance(); + final sharedPreferences = SharedPreferencesAsync(); await sharedPreferences.clear(); // Start the dart server diff --git a/compass_app/app/lib/data/services/shared_preferences_service.dart b/compass_app/app/lib/data/services/shared_preferences_service.dart index 24a67a9b5..09c34391f 100644 --- a/compass_app/app/lib/data/services/shared_preferences_service.dart +++ b/compass_app/app/lib/data/services/shared_preferences_service.dart @@ -13,9 +13,11 @@ class SharedPreferencesService { Future> fetchToken() async { try { - final sharedPreferences = await SharedPreferences.getInstance(); + final sharedPreferences = SharedPreferencesAsync(); + _log.finer('Got token from SharedPreferences'); - return Result.ok(sharedPreferences.getString(_tokenKey)); + + return Result.ok(await sharedPreferences.getString(_tokenKey)); } on Exception catch (e) { _log.warning('Failed to get token', e); return Result.error(e); @@ -24,14 +26,18 @@ class SharedPreferencesService { Future> saveToken(String? token) async { try { - final sharedPreferences = await SharedPreferences.getInstance(); + final sharedPreferences = SharedPreferencesAsync(); + if (token == null) { _log.finer('Removed token'); + await sharedPreferences.remove(_tokenKey); } else { _log.finer('Replaced token'); + await sharedPreferences.setString(_tokenKey, token); } + return const Result.ok(null); } on Exception catch (e) { _log.warning('Failed to set token', e);