update method
Refreshes the planner data in place when the host Planner widget is
rebuilt with new config or entries. The controller is preserved, so
the current scroll/zoom position survives the rebuild instead of being
reset — which is what the previous static controller state hacked around.
Implementation
void update({
required PlannerConfig<T> config,
required List<PlannerEntry<T>> entries,
}) {
this.config = config;
this.entries = entries;
controller.updateConfig(config);
_buildEvents();
}