This contains the test changes for adding TargetPlatform.macOS, which was done in #43457.
The main goal of this PR is to enable tests in the material library that are currently running only on iOS to also run on macOS, but only for the tests where that makes sense. For instance, we don't run any of the haptic feedback tests on macOS.
The error message was misleading because BoxDecoration does not have a `backgroundColor` parameter. Instead it has a `color` parameter, which sets the background color. I also removed the optional `new` keyword.
This changes the behavior of requestFocus when it is called on a FocusNode that does not yet have a parent, so that it defers requesting focus until it receives a parent. Before this change, calling requestFocus before it had a parent was a no-op.
This allows scenarios where a widget is newly added and wishes to immediately request the focus. Previously, it was very hard to make that work because requesting focus before the widget's focus node had a parent was ignored, so the developer had to wait until two frames later to request focus (one for the widget's node to be added to the focus tree, and one to request the focus).
Now, in order to have a widget be focused when initially added, you just need to call requestFocus on its node when you create it, and as soon as it is added, it will automatically request focus.
This is different from the autofocus attribute on the Focus widget, because it unconditionally requests focus when added (autofocus will only request focus if nothing else in the scope has focus).
This simplifies the diagnostic output for the Shortcuts widget so that if a debugLabel is supplied, then that is printed instead of the full list of shortcut keys in the map. Also, the output of the shortcut map is simplified to have the list of keys presented in more readable text.
* Added property for expanded padding of expansion panel for solving #24071
* #24071: Renamed default const name for being more descriptive
* #24071: Improved comment of property expandedPadding
* #24071: Improved test by expanding the expansion panel by header tap + precise assertion
* #24071: Renamed property to be more descriptive
* #24071: Adjusted property comment and added missing trailing commas
* #24071: Improved test by checking real exact header size
* #24071: Added test for default header padding
* #24071: Improved comment of expandedHeaderPadding + code style adjustments
* #24071: Added missing trailing comma
This adds CatmullRomCurve animation curve, and a CatmullRomSpline, which is what it uses to do interpolation.
This allows us to create animation curves which can smoothly interpolate the values given to the curve.
Since I've introduced a 2D spline curve, I also created a Curve2D base class for such parametric curves.