We don't really like the name AnimatedChildSwitcher, and we think that AnimatedSwitcher might be better (since the Child part is redundant). We also considered AnimatedChild, AnimatedTransition and AnimatedReplacement (among others).
Nothing in here besides a rename.
This fixes a rendering problem in the AnimatedChildSwitcher where it would add a new "previous" child each time it rebuilt, and if you did it fast enough, all of them would disappear from the page.
It also expands the API for AnimatedChildSwitcher to allow you to specify your own transition and/or layout builder for the transition.
Fixes#16226
This converts the chips to use a ChipThemeData to get most of their customization values from (if not overridden by specific arguments to the chip constructors), and to have the base ThemeData contain one of these. It also adds the ChipTheme widget that will allow overriding the theme for a particular subtree in the widget hierarchy.
Added tests for both, and just more tests in general for the Chips.
Changes since last roll:
```
ed303c628 Roll dart sdk again. Previous roll required 23ae4fa098 revert. (#4966)
8cd272733 Revert "Roll dart to 7764e6962e22afcf4b58c4e3cef3147330f3c884. (#4960)" (#4965)
9199b40f2 Revert "Support multiple shells in a single process. (#4932)" (#4964)
6baff4c82 Support multiple shells in a single process. (#4932)
31c5bb427 Roll dart to 7764e6962e22afcf4b58c4e3cef3147330f3c884. (#4960)
c8e4c6984 Avoid copying the contents of large platform message responses (#4947)
5ff527295 Update to use new vulkan GrBackendRenderTarget ctor. (#4962)
0c8993a1a Update to use new vulkan GrBackendRenderTarget ctor (part 2) (#4963)
132ebdda8 Revert "Roll src/third_party/skia/ 9874bf1bc..52e16d984 (135 commits) (#4958)" (#4961)
11882ab9e Roll src/third_party/skia/ 9874bf1bc..52e16d984 (135 commits) (#4958)
```
Add consts
There was a bug in the size calculation for the height of the chip label, where it would force the label to be larger than it wanted to be, causing text to not be vertically centered.
This renames the chip's border attribute to 'shape' so that it is consistent with the other places where we supply a ShapeBorder.
This is a breaking change, but a very small one: the border attribute was introduced only a few months ago, and is not widely used.
This implements various different chip types: There are now the InputChip, ChoiceChip, FilterChip, ActionChip, and the original vanilla Chip, all of which have different uses. They can be customized in a number of ways. See their docs for more information.
Also fixes#16083
The AnimatedChildSwitcher widget (originally authored by Hixie), will cross-fade between a new child, and a previous child (or children, if the switch happens faster than the fade finishes).
It's a good candidate for places where a widget will be added/removed from a slot, and you want a nice transition to occur.