# AssetAccordion

## 2026-07-20 — Inline Add / Edit Property form (FE parity)

**Prompted by:** Hellen Tran (PO)

### What changed
- The accordion now hosts an **inline add/edit form** in the item area (no modal / no route change), matching the real frontend loan-application flow.
- "Add {asset}" opens a blank inline form; the Edit (pencil) icon opens the same form pre-filled; both end with **Save & Collapse** / Cancel back to the collapsed summary row.
- Property form fields (composed from existing primitives): Address (`AddressAutocomplete`), usage toggle Owner Occupier / Investment (`LoanOptionGroup`), rental income + frequency (shown only for Investment), estimate (`CurrencyInputWithSlider`), "Has a mortgage?" → mortgage sub-section (owing / original / repayment + frequency / interest rate via `InterestRateInput`), and ownership split (`OwnershipSplit`, shown when > 1 owner).
- Props: replaced `onAddItem`/`onEditItem` with a single `onSaveItem(assetType, item)` (item.id === "" ⇒ newly added). Added `owners` (seed ownership split) and `addressSuggestions`. `AssetItem` extended with the property detail fields; new `AssetOwner` type exported.

### Why
- The previous version only rendered read-only rows; adding/editing an asset fired a no-op callback. This brings the design system to parity with the frontend's inline asset flow so the Storybook wizard is testable end-to-end.

### Affected tokens / files
- `packages/shadcn/src/components/ui/asset-accordion.tsx`
- Reuses `form-primitives.tsx` (`AddressAutocomplete`, `CurrencyInputWithSlider`, `OwnershipSplit`), `interest-rate-input.tsx`, `loan-option-group.tsx`.
