The easing serialisation protocol now matches the Anime.js v4 API. Anime.js
v4 removed the string syntax for cubic bezier, steps, and spring easings, so
these are now serialised as structured payloads and reconstructed as
anime.cubicBezier(), anime.steps(), and anime.spring() calls in
JavaScript. Spring parameters (previously silently ignored) now actually
take effect.
anime_on(), anime_playback(), and anime_render() now take x as the
name of their first argument (previously timeline), since they also
accept the new anime_animation objects.
anime_playback() arguments now default to NULL, meaning "leave the
current setting unchanged", instead of overwriting all playback settings on
every call.
anime_target_class() and anime_target_id() now require a single string;
anime_target_class() rejects class names with a leading dot instead of
silently producing a broken selector.
animejs_widget() argument timeline_config has been renamed to config.
anime_animate() creates a single animation without a timeline, mirroring
Anime.js v4's animate(). It works with anime_playback(), anime_on(),
and anime_render().
anime_easing_steps() gains a from_start argument to jump at the start
of each step (CSS jump-start behaviour).
anime_from_to() gains an ease argument for per-property easing.
anime_on() supports all seven Anime.js v4 callbacks, adding
"onBeforeUpdate", "onRender", and "onPause".
anime_playback() gains loop_delay and playback_rate arguments.
anime_stagger() gains start and reversed arguments.
animejsOutput() and renderAnimejs() provide Shiny bindings.
All user-facing functions now validate their inputs and raise structured, informative error messages.
Parameterised elastic and back easings no longer trigger spurious browser console warnings.
Easing specifications inside keyframes (anime_keyframes()) and staggers
(anime_stagger(ease = )) are now serialised and resolved correctly;
previously they were dropped by Anime.js.
anime_from_to() no longer converts numeric values to strings when unit
is NULL.
anime_playback(controls = TRUE) no longer overwrites onUpdate and
onComplete callbacks registered with anime_on(); the controls bar now
chains them.