HazeBlurStyle
An opaque, shareable sequence of Blur Style writes.
The block passed to HazeBlurStyle runs each time a hazeBlur node resolves its style, into a fresh node-owned accumulator. It may run on any frame and must not have side effects. Calling then creates a new Style whose writes apply after this one, so the last write to each property wins.
A block may read snapshot state, such as an animated value. Each consuming node observes those reads; when the state changes the node resolves the Style again and redraws on the next frame without recomposition. Styles created with HazeBlurStyle compare by identity, so remember or hoist them. Built-in material presets compare by value. A Style never owns renderer or platform resources. Lists passed to HazeBlurStyleScope.colorEffects are snapshotted each time the block runs.