Package-level declarations
Types
SINGLE owner of the durable dust-backup choice — the tri-state {never-chosen / enabled / opted-out} that was previously two independent pref keys + two StateFlows hand-synced at five call sites inside WalletPanelViewModel. A singleton so the restore gate (a com.midnight.kuira.sdk.walletruntime.DustRestoreGate impl, which outlives any ViewModel) and the panel VM read/write the SAME live state: a gate-committed toggle is instantly visible to the UI, and the wallet's upload-time prefs supplier (com.midnight.kuira.sdk.MidnightWallet.walletBackupPrefsProvider) always reads current truth — no pushed snapshot to go stale.
The bundled wallet UI's DustRestoreGate (roadmap #61). Contract (canonical copy on MidnightSdk.Builder.dustRestoreGate): consent resolution ONLY, never a wallet sync call. A @Singleton (not ViewModel state) so it exists before any SDK build and survives every panel lifecycle — no registration race, nothing to clobber on ViewModel teardown.
UI state for the restore-from-phrase flow (#252).
Send-flow UI state for the Send screen (#240).
Which pill's gear opened the shared Settings overlay.
Sample-able UI model for the sigil chip's tiers.
Durable store for the chosen appearance theme — a single id in the wallet's existing SharedPreferences file (no new dependency, survives process death). The UI keeps an in-memory mirror for instant recomposition; this is the source of truth read on first launch.
Display model for WalletBalanceCompact. Pre-formatted strings keep the component pure UI (no SDK types) so it previews and reuses freely.
The full-screen wallet overlays the SDK can surface on top of a host's content.
UI-navigation state holder for the wallet's full-screen overlays.
Color tokens for WalletStatusPanel. Host apps can pass a custom palette to theme the wallet panel; Default matches the dark-themed example apps already in this repo.
Wallet panel presenter: drives the canonical WalletConfig and translates SDK / seed state into WalletStatus for the panel UI.
UI state for WalletStatusPanel / WalletPanelViewModel.
Wallet-sync progress for the sheet's WalletSyncIndicator.
A pickable appearance theme: a display name + the full WalletPanelColors it maps to.
The built-in appearance themes, in display order. Default (Kuira monochrome) is first and is the fallback for an unknown/absent persisted id.
Properties
Ambient WalletOverlayController. Default is a real-but-orphaned controller whose open/close simply flip state nobody renders — so a standalone pill that is NOT wrapped in WalletOverlayHost never crashes; it just can't surface the overlays (a standalone WalletStatusPanel() with no host has nowhere to put a full screen).
Functions
Recommended root wrapper for a host that drops in the SDK's wallet UI.
Compact wallet balance — the SDK/example-app density of the Kuira balance "flag": a NIGHT hero card (headline total + an equal-weight public/private split + an elegant ⟳ refresh), a slim DUST row with its own Register affordance, and Send / Receive quick actions. Stateless + themeable.
Balance error — keeps the card frame, states the failure, offers Retry.
First-load skeleton — shimmer placeholders shaped like the real cards.
Root host for the wallet's full-screen overlays (Send / Receive / Settings, with Recovery nested inside Settings).
Drop-in wallet panel for example apps.
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.