1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-08 13:58:47 +00:00
Files
samples/web_embedding/ng-flutter
dependabot[bot] 217482f4bc Bump @angular/material from 19.2.19 to 20.1.0 in /web_embedding/ng-flutter (#2691)
Bumps [@angular/material](https://github.com/angular/components) from 19.2.19 to 20.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/angular/components/releases"><code>@​angular/material</code>'s releases</a>.</em></p>
<blockquote>
<h2>20.1.0</h2>
<h3>cdk-experimental</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="4f9ab216c1"><img src="https://img.shields.io/badge/4f9ab216c1-feat-blue" alt="feat - 4f9ab216c1" /></a></td>
<td><strong>accordion:</strong> add accordion directives, example, and tests (<a href="https://redirect.github.com/angular/components/issues/31134">#31134</a>)</td>
</tr>
<tr>
<td><a href="3704b7e32f"><img src="https://img.shields.io/badge/3704b7e32f-feat-blue" alt="feat - 3704b7e32f" /></a></td>
<td><strong>radio:</strong> add radio demo to dev-app (<a href="https://redirect.github.com/angular/components/issues/31180">#31180</a>)</td>
</tr>
<tr>
<td><a href="50c3e0e12d"><img src="https://img.shields.io/badge/50c3e0e12d-feat-blue" alt="feat - 50c3e0e12d" /></a></td>
<td><strong>radio:</strong> create radio group and button directives (<a href="https://redirect.github.com/angular/components/issues/31050">#31050</a>)</td>
</tr>
<tr>
<td><a href="cdc0dab261"><img src="https://img.shields.io/badge/cdc0dab261-feat-blue" alt="feat - cdc0dab261" /></a></td>
<td><strong>tabs:</strong> add setDefaultState and unit tests, refactor the content children strategy (<a href="https://redirect.github.com/angular/components/issues/31374">#31374</a>)</td>
</tr>
<tr>
<td><a href="97d60c5378"><img src="https://img.shields.io/badge/97d60c5378-feat-blue" alt="feat - 97d60c5378" /></a></td>
<td><strong>tree:</strong> add tree directives, example, and tests (<a href="https://redirect.github.com/angular/components/issues/31350">#31350</a>)</td>
</tr>
<tr>
<td><a href="ff0f6c61b5"><img src="https://img.shields.io/badge/ff0f6c61b5-feat-blue" alt="feat - ff0f6c61b5" /></a></td>
<td><strong>ui-patterns:</strong> accordion (<a href="https://redirect.github.com/angular/components/issues/31034">#31034</a>)</td>
</tr>
<tr>
<td><a href="c5b2f0ac6d"><img src="https://img.shields.io/badge/c5b2f0ac6d-feat-blue" alt="feat - c5b2f0ac6d" /></a></td>
<td><strong>ui-patterns:</strong> create grid navigation behavior (<a href="https://redirect.github.com/angular/components/issues/31290">#31290</a>)</td>
</tr>
<tr>
<td><a href="ce145fa9a3"><img src="https://img.shields.io/badge/ce145fa9a3-feat-blue" alt="feat - ce145fa9a3" /></a></td>
<td><strong>ui-patterns:</strong> create the grid focus behavior (<a href="https://redirect.github.com/angular/components/issues/31055">#31055</a>)</td>
</tr>
<tr>
<td><a href="9f249d0a25"><img src="https://img.shields.io/badge/9f249d0a25-feat-blue" alt="feat - 9f249d0a25" /></a></td>
<td><strong>ui-patterns:</strong> radio button and group (<a href="https://redirect.github.com/angular/components/issues/31016">#31016</a>)</td>
</tr>
<tr>
<td><a href="70841dbb5b"><img src="https://img.shields.io/badge/70841dbb5b-feat-blue" alt="feat - 70841dbb5b" /></a></td>
<td><strong>ui-patterns:</strong> tree (<a href="https://redirect.github.com/angular/components/issues/31308">#31308</a>)</td>
</tr>
<tr>
<td><a href="06d7384a23"><img src="https://img.shields.io/badge/06d7384a23-fix-green" alt="fix - 06d7384a23" /></a></td>
<td><strong>accordion:</strong> fix disabled trigger button can't be focused when skipDisabled=false (<a href="https://redirect.github.com/angular/components/issues/31379">#31379</a>)</td>
</tr>
<tr>
<td><a href="9a856ad559"><img src="https://img.shields.io/badge/9a856ad559-fix-green" alt="fix - 9a856ad559" /></a></td>
<td><strong>tabs:</strong> fix tabs example styles (<a href="https://redirect.github.com/angular/components/issues/31382">#31382</a>)</td>
</tr>
<tr>
<td><a href="8a091a7ea8"><img src="https://img.shields.io/badge/8a091a7ea8-fix-green" alt="fix - 8a091a7ea8" /></a></td>
<td><strong>tabs:</strong> set tabpanel tabindex to -1 if hidden (<a href="https://redirect.github.com/angular/components/issues/31401">#31401</a>)</td>
</tr>
<tr>
<td><a href="ea700e6d81"><img src="https://img.shields.io/badge/ea700e6d81-fix-green" alt="fix - ea700e6d81" /></a></td>
<td><strong>ui-patterns:</strong> add guardrails to selectOne for edge cases (<a href="https://redirect.github.com/angular/components/issues/31402">#31402</a>)</td>
</tr>
</tbody>
</table>
<h3>material</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="243845460d"><img src="https://img.shields.io/badge/243845460d-feat-blue" alt="feat - 243845460d" /></a></td>
<td><strong>chips:</strong> add (optional) edit icon to input chips (<a href="https://redirect.github.com/angular/components/issues/31041">#31041</a>)</td>
</tr>
<tr>
<td><a href="9e942b4ba2"><img src="https://img.shields.io/badge/9e942b4ba2-feat-blue" alt="feat - 9e942b4ba2" /></a></td>
<td><strong>menu:</strong> add support for context menu</td>
</tr>
<tr>
<td><a href="4de7c0fb2d"><img src="https://img.shields.io/badge/4de7c0fb2d-feat-blue" alt="feat - 4de7c0fb2d" /></a></td>
<td><strong>testing:</strong> Extend Angular harness testing functionality  (<a href="https://redirect.github.com/angular/components/issues/30960">#30960</a>)</td>
</tr>
<tr>
<td><a href="512433b6d1"><img src="https://img.shields.io/badge/512433b6d1-fix-green" alt="fix - 512433b6d1" /></a></td>
<td><strong>badge:</strong> remove badge opacity color mix (<a href="https://redirect.github.com/angular/components/issues/31213">#31213</a>)</td>
</tr>
<tr>
<td><a href="92a8253e28"><img src="https://img.shields.io/badge/92a8253e28-fix-green" alt="fix - 92a8253e28" /></a></td>
<td><strong>badge:</strong> use system disabled states (<a href="https://redirect.github.com/angular/components/issues/31266">#31266</a>)</td>
</tr>
<tr>
<td><a href="a7150d42cf"><img src="https://img.shields.io/badge/a7150d42cf-fix-green" alt="fix - a7150d42cf" /></a></td>
<td><strong>button-toggle:</strong> simplify divider color (<a href="https://redirect.github.com/angular/components/issues/31214">#31214</a>)</td>
</tr>
<tr>
<td><a href="1f8b1302f2"><img src="https://img.shields.io/badge/1f8b1302f2-fix-green" alt="fix - 1f8b1302f2" /></a></td>
<td><strong>button-toggle:</strong> use system colors (<a href="https://redirect.github.com/angular/components/issues/31231">#31231</a>)</td>
</tr>
<tr>
<td><a href="5ee7d79e4c"><img src="https://img.shields.io/badge/5ee7d79e4c-fix-green" alt="fix - 5ee7d79e4c" /></a></td>
<td><strong>button:</strong> FAB emitting invalid elevation tokens (<a href="https://redirect.github.com/angular/components/issues/31028">#31028</a>)</td>
</tr>
<tr>
<td><a href="8523397fd2"><img src="https://img.shields.io/badge/8523397fd2-fix-green" alt="fix - 8523397fd2" /></a></td>
<td><strong>button:</strong> prevents mat-icon being cut off by text-spacing (<a href="https://redirect.github.com/angular/components/issues/30891">#30891</a>)</td>
</tr>
<tr>
<td><a href="afe36e4d42"><img src="https://img.shields.io/badge/afe36e4d42-fix-green" alt="fix - afe36e4d42" /></a></td>
<td><strong>button:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/issues/31017">#31017</a>)</td>
</tr>
<tr>
<td><a href="589ea5905e"><img src="https://img.shields.io/badge/589ea5905e-fix-green" alt="fix - 589ea5905e" /></a></td>
<td><strong>button:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/issues/31018">#31018</a>)</td>
</tr>
<tr>
<td><a href="0d47628d2e"><img src="https://img.shields.io/badge/0d47628d2e-fix-green" alt="fix - 0d47628d2e" /></a></td>
<td><strong>button:</strong> use system colors for state layers and text (<a href="https://redirect.github.com/angular/components/issues/31278">#31278</a>)</td>
</tr>
<tr>
<td><a href="203c1737eb"><img src="https://img.shields.io/badge/203c1737eb-fix-green" alt="fix - 203c1737eb" /></a></td>
<td><strong>card:</strong> subtitle text token should be on-surface-variant (<a href="https://redirect.github.com/angular/components/issues/31261">#31261</a>)</td>
</tr>
<tr>
<td><a href="55b7ba0814"><img src="https://img.shields.io/badge/55b7ba0814-fix-green" alt="fix - 55b7ba0814" /></a></td>
<td><strong>card:</strong> use system outline (<a href="https://redirect.github.com/angular/components/issues/31218">#31218</a>)</td>
</tr>
<tr>
<td><a href="eb9abc366f"><img src="https://img.shields.io/badge/eb9abc366f-fix-green" alt="fix - eb9abc366f" /></a></td>
<td><strong>checkbox:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/issues/31019">#31019</a>)</td>
</tr>
<tr>
<td><a href="458a17ba46"><img src="https://img.shields.io/badge/458a17ba46-fix-green" alt="fix - 458a17ba46" /></a></td>
<td><strong>checkbox:</strong> update tokens to system colors (<a href="https://redirect.github.com/angular/components/issues/31279">#31279</a>)</td>
</tr>
<tr>
<td><a href="68d7ea0351"><img src="https://img.shields.io/badge/68d7ea0351-fix-green" alt="fix - 68d7ea0351" /></a></td>
<td><strong>chips:</strong> provide ability to edit for all screen readers with a click on already focused chip (<a href="https://redirect.github.com/angular/components/issues/30983">#30983</a>)</td>
</tr>
<tr>
<td><a href="8c9cae0a8c"><img src="https://img.shields.io/badge/8c9cae0a8c-fix-green" alt="fix - 8c9cae0a8c" /></a></td>
<td><strong>chips:</strong> sync with g3 (<a href="https://redirect.github.com/angular/components/issues/31393">#31393</a>)</td>
</tr>
<tr>
<td><a href="be48108bc2"><img src="https://img.shields.io/badge/be48108bc2-fix-green" alt="fix - be48108bc2" /></a></td>
<td><strong>chips:</strong> update tokens to system colors (<a href="https://redirect.github.com/angular/components/issues/31280">#31280</a>)</td>
</tr>
<tr>
<td><a href="20ac2b2bd8"><img src="https://img.shields.io/badge/20ac2b2bd8-fix-green" alt="fix - 20ac2b2bd8" /></a></td>
<td><strong>core:</strong> improve disabled psuedo checkbox contrast (<a href="https://redirect.github.com/angular/components/issues/31464">#31464</a>)</td>
</tr>
<tr>
<td><a href="576a008b09"><img src="https://img.shields.io/badge/576a008b09-fix-green" alt="fix - 576a008b09" /></a></td>
<td><strong>core:</strong> remove unused form field mixins (<a href="https://redirect.github.com/angular/components/issues/31283">#31283</a>)</td>
</tr>
<tr>
<td><a href="4d67427cef"><img src="https://img.shields.io/badge/4d67427cef-fix-green" alt="fix - 4d67427cef" /></a></td>
<td><strong>core:</strong> update ripple tokens to system colors (<a href="https://redirect.github.com/angular/components/issues/31282">#31282</a>)</td>
</tr>
<tr>
<td><a href="28f2763f96"><img src="https://img.shields.io/badge/28f2763f96-fix-green" alt="fix - 28f2763f96" /></a></td>
<td><strong>core:</strong> update tokens to system colors (<a href="https://redirect.github.com/angular/components/issues/31281">#31281</a>)</td>
</tr>
<tr>
<td><a href="009424c73e"><img src="https://img.shields.io/badge/009424c73e-fix-green" alt="fix - 009424c73e" /></a></td>
<td><strong>datepicker:</strong> use system colors (<a href="https://redirect.github.com/angular/components/issues/31300">#31300</a>)</td>
</tr>
<tr>
<td><a href="a24081f2bd"><img src="https://img.shields.io/badge/a24081f2bd-fix-green" alt="fix - a24081f2bd" /></a></td>
<td><strong>dialog:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/issues/31020">#31020</a>)</td>
</tr>
<tr>
<td><a href="d52ede5627"><img src="https://img.shields.io/badge/d52ede5627-fix-green" alt="fix - d52ede5627" /></a></td>
<td><strong>expansion:</strong> add token for box shadow (<a href="https://redirect.github.com/angular/components/issues/31340">#31340</a>)</td>
</tr>
<tr>
<td><a href="ecc6a09ca5"><img src="https://img.shields.io/badge/ecc6a09ca5-fix-green" alt="fix - ecc6a09ca5" /></a></td>
<td><strong>expansion:</strong> align state layer colors (<a href="https://redirect.github.com/angular/components/issues/31236">#31236</a>)</td>
</tr>
<tr>
<td><a href="e57aef2912"><img src="https://img.shields.io/badge/e57aef2912-fix-green" alt="fix - e57aef2912" /></a></td>
<td><strong>expansion:</strong> use correct typography (<a href="https://redirect.github.com/angular/components/issues/31347">#31347</a>)</td>
</tr>
<tr>
<td><a href="82ab91e58a"><img src="https://img.shields.io/badge/82ab91e58a-fix-green" alt="fix - 82ab91e58a" /></a></td>
<td><strong>form-field:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/issues/31021">#31021</a>)</td>
</tr>
</tbody>
</table>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/angular/components/blob/main/CHANGELOG.md"><code>@​angular/material</code>'s changelog</a>.</em></p>
<blockquote>
<h1>20.1.0 &quot;metal-brownie&quot; (2025-07-09)</h1>
<p>There have been some internal mapping changes in Material 2 theme config maps generated by <code>mat.define-light-theme</code> and <code>mat.define-dark-theme</code>.</p>
<p>If your app was directly modifying these internal properties to alter styles, such as setting new color values used in the foreground and background palette maps, then your changes may no longer be applied to the components. The supported path for changing theme values is through each component’s overrides API.</p>
<p>The Material 2 component styles have undergone minor adjustments to enhance consistency across components and better align with the latest Material 2 specification. These changes result in a closer adherence to system-level colors such as <code>surface</code>, <code>background</code>, <code>disabled</code>, and <code>surface</code> variants. In general, these changes are slight hue differences for grey colors that aren’t very noticeable.</p>
<h3>cdk</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="f446d7c412">f446d7c412</a></td>
<td>feat</td>
<td><strong>drag-drop:</strong> add opt-in indicator of pick-up position (<a href="https://redirect.github.com/angular/components/pull/31288">#31288</a>)</td>
</tr>
<tr>
<td><a href="5564d7d016">5564d7d016</a></td>
<td>feat</td>
<td><strong>menu:</strong> add setActiveMenuItem to cdkMenu (<a href="https://redirect.github.com/angular/components/pull/31371">#31371</a>)</td>
</tr>
<tr>
<td><a href="6dc2f3ba50">6dc2f3ba50</a></td>
<td>fix</td>
<td><strong>a11y:</strong> allow mixed types to be passed into setActiveItem (<a href="https://redirect.github.com/angular/components/pull/31462">#31462</a>)</td>
</tr>
<tr>
<td><a href="cfa97bb785">cfa97bb785</a></td>
<td>fix</td>
<td><strong>dialog:</strong> avoid setting aria-hidden before focus has moved (<a href="https://redirect.github.com/angular/components/pull/31030">#31030</a>)</td>
</tr>
</tbody>
</table>
<h3>material</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="243845460d">243845460d</a></td>
<td>feat</td>
<td><strong>chips:</strong> add (optional) edit icon to input chips (<a href="https://redirect.github.com/angular/components/pull/31041">#31041</a>)</td>
</tr>
<tr>
<td><a href="9e942b4ba2">9e942b4ba2</a></td>
<td>feat</td>
<td><strong>menu:</strong> add support for context menu</td>
</tr>
<tr>
<td><a href="4de7c0fb2d">4de7c0fb2d</a></td>
<td>feat</td>
<td><strong>testing:</strong> Extend Angular harness testing functionality  (<a href="https://redirect.github.com/angular/components/pull/30960">#30960</a>)</td>
</tr>
<tr>
<td><a href="512433b6d1">512433b6d1</a></td>
<td>fix</td>
<td><strong>badge:</strong> remove badge opacity color mix (<a href="https://redirect.github.com/angular/components/pull/31213">#31213</a>)</td>
</tr>
<tr>
<td><a href="92a8253e28">92a8253e28</a></td>
<td>fix</td>
<td><strong>badge:</strong> use system disabled states (<a href="https://redirect.github.com/angular/components/pull/31266">#31266</a>)</td>
</tr>
<tr>
<td><a href="a7150d42cf">a7150d42cf</a></td>
<td>fix</td>
<td><strong>button-toggle:</strong> simplify divider color (<a href="https://redirect.github.com/angular/components/pull/31214">#31214</a>)</td>
</tr>
<tr>
<td><a href="1f8b1302f2">1f8b1302f2</a></td>
<td>fix</td>
<td><strong>button-toggle:</strong> use system colors (<a href="https://redirect.github.com/angular/components/pull/31231">#31231</a>)</td>
</tr>
<tr>
<td><a href="5ee7d79e4c">5ee7d79e4c</a></td>
<td>fix</td>
<td><strong>button:</strong> FAB emitting invalid elevation tokens (<a href="https://redirect.github.com/angular/components/pull/31028">#31028</a>)</td>
</tr>
<tr>
<td><a href="8523397fd2">8523397fd2</a></td>
<td>fix</td>
<td><strong>button:</strong> prevents mat-icon being cut off by text-spacing (<a href="https://redirect.github.com/angular/components/pull/30891">#30891</a>)</td>
</tr>
<tr>
<td><a href="afe36e4d42">afe36e4d42</a></td>
<td>fix</td>
<td><strong>button:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/pull/31017">#31017</a>)</td>
</tr>
<tr>
<td><a href="589ea5905e">589ea5905e</a></td>
<td>fix</td>
<td><strong>button:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/pull/31018">#31018</a>)</td>
</tr>
<tr>
<td><a href="0d47628d2e">0d47628d2e</a></td>
<td>fix</td>
<td><strong>button:</strong> use system colors for state layers and text (<a href="https://redirect.github.com/angular/components/pull/31278">#31278</a>)</td>
</tr>
<tr>
<td><a href="203c1737eb">203c1737eb</a></td>
<td>fix</td>
<td><strong>card:</strong> subtitle text token should be on-surface-variant (<a href="https://redirect.github.com/angular/components/pull/31261">#31261</a>)</td>
</tr>
<tr>
<td><a href="55b7ba0814">55b7ba0814</a></td>
<td>fix</td>
<td><strong>card:</strong> use system outline (<a href="https://redirect.github.com/angular/components/pull/31218">#31218</a>)</td>
</tr>
<tr>
<td><a href="eb9abc366f">eb9abc366f</a></td>
<td>fix</td>
<td><strong>checkbox:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/pull/31019">#31019</a>)</td>
</tr>
<tr>
<td><a href="458a17ba46">458a17ba46</a></td>
<td>fix</td>
<td><strong>checkbox:</strong> update tokens to system colors (<a href="https://redirect.github.com/angular/components/pull/31279">#31279</a>)</td>
</tr>
<tr>
<td><a href="68d7ea0351">68d7ea0351</a></td>
<td>fix</td>
<td><strong>chips:</strong> provide ability to edit for all screen readers with a click on already focused chip (<a href="https://redirect.github.com/angular/components/pull/30983">#30983</a>)</td>
</tr>
<tr>
<td><a href="8c9cae0a8c">8c9cae0a8c</a></td>
<td>fix</td>
<td><strong>chips:</strong> sync with g3 (<a href="https://redirect.github.com/angular/components/pull/31393">#31393</a>)</td>
</tr>
<tr>
<td><a href="be48108bc2">be48108bc2</a></td>
<td>fix</td>
<td><strong>chips:</strong> update tokens to system colors (<a href="https://redirect.github.com/angular/components/pull/31280">#31280</a>)</td>
</tr>
<tr>
<td><a href="20ac2b2bd8">20ac2b2bd8</a></td>
<td>fix</td>
<td><strong>core:</strong> improve disabled psuedo checkbox contrast (<a href="https://redirect.github.com/angular/components/pull/31464">#31464</a>)</td>
</tr>
<tr>
<td><a href="576a008b09">576a008b09</a></td>
<td>fix</td>
<td><strong>core:</strong> remove unused form field mixins (<a href="https://redirect.github.com/angular/components/pull/31283">#31283</a>)</td>
</tr>
<tr>
<td><a href="4d67427cef">4d67427cef</a></td>
<td>fix</td>
<td><strong>core:</strong> update ripple tokens to system colors (<a href="https://redirect.github.com/angular/components/pull/31282">#31282</a>)</td>
</tr>
<tr>
<td><a href="28f2763f96">28f2763f96</a></td>
<td>fix</td>
<td><strong>core:</strong> update tokens to system colors (<a href="https://redirect.github.com/angular/components/pull/31281">#31281</a>)</td>
</tr>
<tr>
<td><a href="009424c73e">009424c73e</a></td>
<td>fix</td>
<td><strong>datepicker:</strong> use system colors (<a href="https://redirect.github.com/angular/components/pull/31300">#31300</a>)</td>
</tr>
<tr>
<td><a href="a24081f2bd">a24081f2bd</a></td>
<td>fix</td>
<td><strong>dialog:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/pull/31020">#31020</a>)</td>
</tr>
<tr>
<td><a href="d52ede5627">d52ede5627</a></td>
<td>fix</td>
<td><strong>expansion:</strong> add token for box shadow (<a href="https://redirect.github.com/angular/components/pull/31340">#31340</a>)</td>
</tr>
<tr>
<td><a href="ecc6a09ca5">ecc6a09ca5</a></td>
<td>fix</td>
<td><strong>expansion:</strong> align state layer colors (<a href="https://redirect.github.com/angular/components/pull/31236">#31236</a>)</td>
</tr>
<tr>
<td><a href="e57aef2912">e57aef2912</a></td>
<td>fix</td>
<td><strong>expansion:</strong> use correct typography (<a href="https://redirect.github.com/angular/components/pull/31347">#31347</a>)</td>
</tr>
<tr>
<td><a href="82ab91e58a">82ab91e58a</a></td>
<td>fix</td>
<td><strong>form-field:</strong> remove internal-only M2 styles (<a href="https://redirect.github.com/angular/components/pull/31021">#31021</a>)</td>
</tr>
<tr>
<td><a href="6d27e04051">6d27e04051</a></td>
<td>fix</td>
<td><strong>form-field:</strong> use system for neutral colors (<a href="https://redirect.github.com/angular/components/pull/31272">#31272</a>)</td>
</tr>
<tr>
<td><a href="918b625438">918b625438</a></td>
<td>fix</td>
<td><strong>list:</strong> update tokens to system colors (<a href="https://redirect.github.com/angular/components/pull/31284">#31284</a>)</td>
</tr>
<tr>
<td><a href="a62164db5b">a62164db5b</a></td>
<td>fix</td>
<td><strong>menu:</strong> do not auto-focus when hover opens menu (<a href="https://redirect.github.com/angular/components/pull/31257">#31257</a>)</td>
</tr>
<tr>
<td><a href="623030b50d">623030b50d</a></td>
<td>fix</td>
<td><strong>menu:</strong> update tokens to system colors (<a href="https://redirect.github.com/angular/components/pull/31285">#31285</a>)</td>
</tr>
</tbody>
</table>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="24f86fd5e7"><code>24f86fd</code></a> release: cut the v20.1.0 release</li>
<li><a href="2bfe12e882"><code>2bfe12e</code></a> fix(material/tabs): remove delay on touch devices (<a href="https://redirect.github.com/angular/components/issues/31489">#31489</a>)</li>
<li><a href="01e09d1cf8"><code>01e09d1</code></a> build: clean up animations references in build files (<a href="https://redirect.github.com/angular/components/issues/31498">#31498</a>)</li>
<li><a href="eb04b6de48"><code>eb04b6d</code></a> Terms of Service (<a href="https://redirect.github.com/angular/components/issues/31495">#31495</a>)</li>
<li><a href="405a0d242c"><code>405a0d2</code></a> test(cdk/scrolling): Change test spying on tick (<a href="https://redirect.github.com/angular/components/issues/31247">#31247</a>)</li>
<li><a href="3f7b6b7e64"><code>3f7b6b7</code></a> release: cut the v20.1.0-rc.0 release</li>
<li><a href="d1c8e1a518"><code>d1c8e1a</code></a> docs: release notes for the v20.0.5 release</li>
<li><a href="7bb0a82a43"><code>7bb0a82</code></a> fix(material/snack-bar): use inverse primary for button color (<a href="https://redirect.github.com/angular/components/issues/31465">#31465</a>)</li>
<li><a href="20ac2b2bd8"><code>20ac2b2</code></a> fix(material/core): improve disabled psuedo checkbox contrast (<a href="https://redirect.github.com/angular/components/issues/31464">#31464</a>)</li>
<li><a href="8860e65171"><code>8860e65</code></a> build: fix up markdown renderer tests</li>
<li>Additional commits viewable in <a href="https://github.com/angular/components/compare/19.2.19...20.1.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/material&package-manager=npm_and_yarn&previous-version=19.2.19&new-version=20.1.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`.

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> 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)

</details>
2025-07-14 07:53:08 +00:00
..
2025-02-12 18:08:01 -05:00
2023-05-06 10:53:17 +10:00

ng-flutter

This Angular project is a simple example of how Angular and Flutter web apps could be integrated, and have them interop.

Points of Interest

Angular

This repository is a quite standard Angular app. The following changes were made to be able to use (and interop) with a Flutter web application:

  • package.json has a custom prebuild script that builds the Flutter web app, so Angular can find it later.
  • flutter.js is added as a "scripts" entry in angular.json. Angular takes care of minimizing and injecting it as any other script.
  • The rest of the flutter app flutter/build/web/ is registered as an "assets" entry in angular.json, and moved to /flutter.
  • The ng-flutter component takes care of embedding Flutter web, and yielding control to Angular through an appLoaded EventEmitter. The object yielded by this emitter is a state controller exposed by flutter via a JS custom event!

Flutter

The embedded Flutter application lives in the flutter directory of this repo. That application is a standard web app, that doesn't need to be aware that it's going to be embedded in another framework.

  • Flutter uses new @staticInterop methods to allow certain Dart functions to be called from JavaScript.
  • Look at how createDartExport and broadcastAppEvent work together to make the _state controller of the Flutter app available to Angular!

How to build the app

Requirements

If you want to build and run this demo on your machine, you'll need a moderately recent version of Angular:

$ ng version

Angular CLI: 17.0.0
Node: 20.9.0
Package Manager: npm 10.1.0
OS: linux x64

And Flutter:

$ flutter --version

Flutter 3.13.9 • channel stable
Framework • revision d211f42860 (2 weeks ago) • 2023-10-25 13:42:25 -0700
Engine • revision 0545f8705d
Tools • Dart 3.1.5 • DevTools 2.25.0

Ensure npm, ng and flutter are present in your $PATH.

Building the app

This repository is a moderately standard Angular app. It integrates Flutter web by making it part of the Angular assets.

In order to build this app, first fetch its npm dependencies:

$ npm install

added 963 packages, and audited 964 packages in 17s

93 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Then run the build script. It'll take care of building Flutter automatically:

$ npm run build

> ng-flutter@0.0.0 prebuild

... Flutter web build output ...

Compiling lib/main.dart for the Web...

> ng-flutter@0.0.0 build
> ng build

... Angular build output ...

✔ Browser application bundle generation complete.
✔ Copying assets complete.
✔ Index html generation complete.

Local Angular development

Once you've reached this point, you should be able to work with your Angular application normally, for example to run a local web server:

$ npm run start

> ng-flutter@0.0.0 start
> ng serve

✔ Browser application bundle generation complete.

Initial Chunk Files   | Names         |  Raw Size
vendor.js             | vendor        |   4.38 MB | 

... Angular build output...

** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **


✔ Compiled successfully.

Navigate to http://localhost:4200/. The application will automatically reload if you change any of its Angular source files.

Local Flutter web development

The Flutter app lives inside the flutter directory, and can be developed independently. Just do any changes on Flutter web as you'd normally do. It even includes a small web/index.html so you can see changes to your app without running the whole Angular setup.

Note

For now, Angular does not auto-detect changes to your Flutter web app, so once you're happy with your Flutter web app, make sure to call npm run build so everything rebuilds and gets placed into its correct location.

Deploying the app

After npm run build, you should have a deployable Angular + Flutter web app in the dist directory of this Angular project.

Your built app can can be deployed anywhere, but do check Firebase hosting for a super-easy deployment experience!

Troubleshooting

Flutter

Ensure your flutter app is properly rebuilt after any changes.

  • Run npm run build to re-build the Flutter app.

If you encounter error messages like:

Error: Can't resolve 'flutter/build/web/flutter.js' in '/my/checkout/of/ng-flutter'

You definitely need to run npm run build!

Reach out to the team(s)!

Have you had any problem not covered in this README? Do you want to see other embedding examples?

Let us know by creating an issue or opening a new pull request.

Thanks!