* a195a92cc [SkParagraph] Text layout benchmarks using SkParagraph (flutter/engine#16373)
* 0340d457a Roll fuchsia/sdk/core/mac-amd64 from fvWgE... to FLFOw... (flutter/engine#16498)
* 9443518f6 Fix safe area reporting with transparent FlutterActivitys. (#46060) (flutter/engine#16208)
* 0980b2ad5 Roll src/third_party/skia 9f3eef796f63..b2031d4255e2 (12 commits) (flutter/engine#16499)
* 8f03a563d Check Java formatting in format.sh (flutter/engine#16500)
* 077918dcf Apply Google Java format (flutter/engine#16501)
* ec1b2e39f Roll src/third_party/skia b2031d4255e2..a9405c2a2967 (5 commits) (flutter/engine#16502)
* 82d193241 Roll src/third_party/skia a9405c2a2967..8dad1ffd81f8 (1 commits) (flutter/engine#16505)
* a302bfd06 Roll src/third_party/dart fd992e423ef6..4310f50edc95 (17 commits) (flutter/engine#16506)
* a86f4cba3 Roll fuchsia/sdk/core/linux-amd64 from LvSlH... to 8L7NY... (flutter/engine#16508)
* 6c04a6960 Roll src/third_party/skia 8dad1ffd81f8..c03e6982f96f (2 commits) (flutter/engine#16510)
* b1aaec3c4 Roll src/third_party/dart 4310f50edc95..9464eb51f539 (2 commits) (flutter/engine#16511)
* cab49e420 Roll fuchsia/sdk/core/mac-amd64 from FLFOw... to PMcw3... (flutter/engine#16512)
* 695a2768e Roll src/third_party/dart 9464eb51f539..f120417ddbfc (1 commits) (flutter/engine#16513)
* 6d3e2606e Roll src/third_party/dart f120417ddbfc..b158bf7bd537 (2 commits) (flutter/engine#16514)
* acc26a2f1 Use Skia to determine "actual" font name in CanvasKit backend (flutter/engine#16504)
* 1daba5318 Partially fix canvas vs text paint order when running on Blink/Webkit browsers (flutter/engine#16483)
* 826b2d46e Apply lints from internal roll (flutter/engine#16509)
* d107eaaa0 Remove mirrors on the web (flutter/engine#16516)
* 7e869faf5 Adds new route annoucement method. (flutter/engine#16523)
* 0e8ed2715 Roll src/third_party/dart b158bf7bd537..5244d99a5d4e (1 commits) (flutter/engine#16517)
This change adds a way to provide explicit focus order for a part of the widget tree.
It adds FocusTraversalPolicyGroup, which in many ways is similar to DefaultFocusTraversal, except that it groups a widget subtree together so that those nodes are traversed as a group. DefaultFocusTraversal doesn't work as one would expect: If there is more than one DefaultFocusTraversal inside of a focus scope, the policy can change depending on which node was asked to move "next", which can cause unexpected behavior. The new grouping mechanism doesn't have that problem. I deprecate DefaultFocusTraversal in this PR.
It also adds OrderedFocusTraversalPolicy, which is a policy that can be supplied to FocusTraversalPolicyGroup to set the policy for a sub-tree. It looks for FocusTraversalOrder inherited widgets, which use a FocusOrder to do the sorting. FocusOrder has two subclasses: NumericalFocusOrder (which sorts based on a double), and LexicalFocusOrder, which sorts based on a String.
As part of doing this, I refactored the way FocusTraversalPolicy is implemented so that it has more default implementation methods, and exposes a new protected member: sortDescendants, which makes it easier for developers to make their own policy subclasses: they only need to implement sortDescendants to get a new ordering behavior, but can also still override any of the default implementation behaviors if they need different behavior.
I was able to do this without breaking the API (AFAICT).
This PR modifies the existing API docs samples to use DartPad so that all of the samples are now interactive apps on the API docs site.
It also removes the restriction for the max width of the description area so that the dartpad region can expand horizontally.
I updated the first paragraph on the API docs to indicate that Flutter is more than just mobile now (same text as the README.md at the top level).
I modified a few of the examples so that they looked nicer, and fit better on the page.
I added the sample description text above each DartPad instance, since that often defines the context of the example.
I removed animations and images when they were redundant with the sample content. There were a few that made sense to keep, so I did.