# RateLock

> Locked rate with a countdown and expiry behavior.

Source: https://lopifi.com/components/rate-lock
Part of: Lopifi — US GAAP books on autopilot, reviewed by a CPA (https://lopifi.com)

---

- **Family:** Swaps & FX — 
- **Status:** Implemented
- **Spec:** https://lopifi.com/docs/catalog/04-swaps-fx

## Install

```bash
npx shadcn@latest add @lopifi/theme
npx shadcn@latest add @lopifi/rate-lock
```

## Specification

A locked rate with a countdown. The countdown is a **rule-line progress bar**, `linear`, consistent with the statement grammar rather than a rounded progress pill.

On expiry: the rate refreshes, the new rate crossfades in, and the confirm action is **disabled until the user acknowledges the new rate**. Silently executing at a rate the user didn't see is the worst failure this family can have.

Warning state at 20% remaining — amber, plus a text countdown, never color alone.

## Rules this component obeys

Money is minor units, never floats. `null` is not `0` and neither is redacted. Negatives render in accounting parentheses with the parenthesis column reserved on both sides. Debit and credit are two columns. Per-currency decimal places. Polarity is explicit — up is not always good. Every figure states its period, entity, currency, basis and as-of.
