Package-level declarations
Types
Crash / non-fatal reporting behind an interface, so callers depend on the capability — not on Firebase Crashlytics or Sentry directly. Swapping in a real backend is a one-line DI change with no call-site edits.
Injectable dispatchers so ViewModels/repositories are testable (swap for a test dispatcher).
Dependency-free default CrashReporter that routes everything through AppLog (Napier). Gives the same call sites and breadcrumb discipline as a real backend, minus the upload. Honors the setEnabled kill switch (starts enabled); when disabled, reporting calls drop silently.
Functions
EaseInQuart — sharp initial acceleration.
EaseOutBack — slight overshoot settle. s=1.70158 (same constant both origin apps used).
EaseOutCubic — smooth deceleration.
Decimal formatting without String.format. Rounds half-up to places digits.
Whole-number thousands-comma grouping, no String.format (e.g. 12345.6 -> "12,345").
12-hour time with AM/PM, e.g. (13, 5) -> "1:05 PM".
24-hour time, e.g. (9, 5) -> "09:05".
Renders minor currency units (e.g. paise, cents) to a "<major>.<minor>" decimal string with fractionDigits digits — the single canonical minorUnits->decimal formatter for :common and its consumers.
Friendly date, e.g. "Jun 19, 2026".