Minimal event-timeline recorder used to diagnose frame-timing issues
(e.g. the borderless-window resize jitter on Windows). Any crate in
the workspace can push timestamped events into it and dump them as a
single ordered log at a convenient moment (e.g. WM_EXITSIZEMOVE).
Bridges xen-svg’s framework-agnostic color type to xengui’s own Color.
Lives here (not in xen-svg) since xen-svg must stay independent of
xengui; the conversion trait is local to this crate so it doesn’t run
into orphan-rule restrictions on either foreign type.
Generates the Widget trait accessor methods every base: WidgetBase +
layout_box: LayoutBox widget needs (identity, dirty flag, style
pointers, interaction, layout box). Widget-specific behavior
(debug_name, children, measure, paint, event, …) is still
implemented by hand next to this macro call.
Generic animatable payload; every property (color, scale, opacity…)
is flattened into up to 4 floats so the manager can interpolate
anything without knowing what it represents.
Describes how a single animated value should move from its current
value to a new target: how long it takes, how long to wait before
starting, and the easing curve applied over that duration.
Per-group transition overrides layered on top of a base Transition.
Each field takes priority over the general transition for its own
property group, so e.g. colors and transforms can animate with
different durations/easings while sharing one base transition.