UX state machine interface for any asynchronous operation.
This is UX state, not data state. It answers "What should the user
see right now?" - not "What is the data?" It drives skeleton, loading bar,
toast, empty state, and ARIA communication. It does not replace SignalStore,
NgRx, or any data store - it composes with them.
Every derived value is a computed() from a single source (status).
The system cannot become inconsistent.
All UI feedback components accept CngxAsyncState<unknown> as input -
typed on the interface, not on a concrete implementation.