WalletSyncIndicator
Labelled wallet-sync progress: a stage label on the left, the live percentage on the right (when determinate), and the branded RunnerDustProgress track below. This is the one reusable sync indicator — the wallet pill and example apps feed it real progress digits instead of each rolling its own bar.
Determinate vs indeterminate is driven entirely by progress:
0f..1f→ the runner fills to that fraction and the percentage shows. Use whenever a count is available (e.g.eventsProcessed / totalEventsfrom com.midnight.kuira.sdk.MidnightWallet.syncDust).null→ the runner loops and no percentage shows. Reserve this for phases with no measurable total (e.g. the Rust replay after streaming completes) — not as the default, so users don't see an endless loop for a finite task.
Themeable via WalletPanelColors so each consuming app keeps its look.
Parameters
0f..1f for determinate, or null for indeterminate.
Stage / detail text, e.g. "Syncing dust" or "Replaying events".