Parts

Inventory with default markup, vendor link, and reorder threshold. Low-stock parts surface on the dashboard.

Scaffolded, awaiting UI.

Data table parts exists in both D1 and IndexedDB and syncs through /api/sync. To flesh out this screen, mirror the pattern in src/routes/customers/: list page + [id]/ editor using upsert() from $lib/db/mutations.