Auto-rebuild and Each If Children
306537
5 July 2026
🎁 Added
  • State<T> + Track<T>( initial ) on both GooPanel and Cell. Auto-dirtying state for mutation outside event handlers (timers, network, polls): writing a different Value marks the owner dirty, no manual Rebuild()
  • Each.Of( items, builder ) / Each.Of( items, keyOf, builder ) plus a Children.Add overload for it: keyed list building inline in a Children = { ... } initializer instead of a separate AddRange call
  • Children.Add( in T? child ): nullable-child overload, the conditional-child idiom that replaces AddIf
  • Layout.Stack() and Layout.Layer( child ) with overloads for Container, Sector, Arc, and Polygon
  • Hud.ScrollArea, Hud.DismissScrim, Hud.FillRect: factories for the three most common test case patterns (bounded-height scroll triple, invisible dismiss click-catcher, absolute left-anchored fill bar)
  • Controls.Slider optional palette params: trackColor, fillColor, thumbColor
  • Viewport.CenterOn( world, screenPoint ): pin a world position to a given screen point
  • Perf: opt-in live pipeline profiler (Perf.Enabled, Report(), Reset())
🧼 Improved
  • Cell.Mount no longer allocates when seed and configure are both null.
  • Variant application is gated on raw inputs: identical variant inputs skip the StringBuilder and rgba string work, so per-frame style writes on variant-carrying panels no longer pay a CSS build per pass
🚯 Removed
  • Removed Children.AddIf( condition, child ). Replace with the new nullable Add: children.Add( cond ? child : null )